it-swarm.it

Trova un quale pacchetto include un file in Ubuntu/Debian?

Mi trovo spesso a mancare un programma, una pagina man o un altro file quando lavoro sul mio sistema Ubuntu 8.04. C'è un modo semplice per cercare quale pacchetto contiene un dato file (se è già installato o meno)? Forse qualche opzione oscura per apt o dpkg?

286
Jay Conrod
apt-file search filename

o

apt-file search /path/to/file


Per installare apt-file , utilizzare:

Sudo apt-get install apt-file

Dovrai aggiornare il suo database prima di poterlo usare:

Sudo apt-file update
235
John T

(Debian/Ubuntu) Scopri a quale pacchetto appartiene un file :

dpkg -S /usr/bin/ls

'dpkg -S' corrisponde semplicemente alla stringa che gli viene fornita, quindi basta usare 'ls' come argomento corrispondente a qualsiasi file di qualsiasi pacchetto che abbia 'ls' ovunque nel nome file. Quindi di solito è una buona idea usare un percorso assoluto. Nel secondo esempio è possibile vedere che 12 mila file noti a dpkg corrispondono alla stringa "ls".

387
splattne

packages.debian.org è quello che uso sempre per portare a termine questo compito. È superiore a apt-file perché può trovare anche parti di nomi di file. È anche collegato alla lista dei pacchetti principali che elencherà descrizioni, bug, ecc. Tutto sommato un buon sito web. Non altrettanto utile dalla riga di comando, ma comunque abbastanza utile.

Per velocità, ho aggiunto un segnalibro all'URL:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&Arch=any

in Firefox, e ha aggiunto "debfind" come parola chiave (fai clic su "altro" nel gestore di segnalibri con Hilighted), quindi posso semplicemente digitare "debfind" e funzionerà. Puoi cambiare 'suite' da unstable a stable o testare se vuoi, per altre versioni della distribuzione.

18
jamuraa

Puoi anche usare dlocate. Dalla pagina man;

$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
11
jeremiah

Ho trovato Wajig ...

wajig whichpackage /path/to/file 

per esempio.

wajig whichpackage /etc/apt/sources.list

Wajig è un pratico strumento da riga di comando o console che racchiude tutta la bontà di apt-get, dpkg che non avresti mai voluto imparare. .

Per installare wajig utilizzare:

apt-get install wajig

Quel comando 'whichpackage' stesso dipende da apt-file

sarà comunque necessario aggiornare il suo database prima di poterlo utilizzare: - Non so ancora se l'aggiornamento di wajig che fa un aggiornamento apt-get aggiorni anche la cache dei file, ma mi aspetto che ciò accada.

Sudo wajig update

Sudo apt-file update

(e Super Cow, Easter egss?!)

4
pete_m

Simmilar alla risposta di jamuraa per Debian, puoi anche andare su http://packages.ubuntu.com/ per Ubuntu. Dovrai scorrere verso il basso un po 'per trovare il "Cerca il contenuto dei pacchetti" searchbox dove puoi inserire il percorso di un file.

2
kiri

Prova a cercare i file usando http://www.kodkast.com/applications/find-which-package-file-belongs-to

Questa è un'applicazione per cercare file che sono contenuti in diversi pacchetti rpms/linux, ed è molto utile quando non hai nemmeno il rpm installato sul tuo computer.

0
Ravi Agarwal

Il pacchetto command-not-found fornisce suggerimenti sui potenziali comandi e sul nome del pacchetto debian. Funziona digitando il comando nella bash Shell e osservando il suo output.

Ad esempio, se il nome del comando è noto:

[email protected]:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed.  To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

e se il comando non è noto, vengono applicate alcune ipotesi:

[email protected]:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-Shell-Perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found
0
erwing