2009-07-22 19:06:32 +0000 2009-07-22 19:06:32 +0000
310
310

Trovare a quale pacchetto appartiene un file in Ubuntu/Debian?

Mi trovo spesso a perdere un programma, una pagina man o altri 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 oscura opzione per apt o dpkg?

Risposte (8)

416
416
416
2009-07-22 19:13:44 +0000

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

dpkg -S /usr/bin/ls

‘dpkg -S’ corrisponde solo alla stringa fornita, quindi usando semplicemente ‘ls’ come argomento corrisponde a qualsiasi file di qualsiasi pacchetto che abbia ‘ls’ da qualche parte nel nome del file. Quindi di solito è una buona idea usare un percorso assoluto. Si può vedere nel secondo esempio che 12 mila file che sono noti a dpkg corrispondono alla stringa nuda ‘ls’.

255
255
255
2009-07-22 19:08:44 +0000
apt-file search filename

o

apt-file search /path/to/file

Per installare apt-file , usa:

sudo apt-get install apt-file

Dovrai aggiornare il suo database prima di poterlo usare:

sudo apt-file update
20
20
20
2009-07-22 20:07:17 +0000

packages.debian.org è quello che uso sempre per svolgere questo compito. È superiore a apt-file perché può trovare anche parti di nomi di file. È anche collegato all'elenco principale dei pacchetti che elenca descrizioni, bug, ecc. Tutto sommato un buon sito web. Non così utile dalla linea di comando, ma comunque abbastanza utile.

Per la velocità, ho messo l'url nei segnalibri:

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

in Firefox, e ho aggiunto “debfind” come parola chiave (cliccate “more” nel bookmark manager con la parola evidenziata), così posso semplicemente digitare “debfind ” e funziona. Potete cambiare “suite” da unstable a stable o testing se volete, per altre versioni della distribuzione.

11
11
11
2011-08-08 19:30:27 +0000

Potete anche usare dlocate. Dalla pagina man;

$ dlocate [PATTERN]
List all records where either the package name or the filename matches PATTERN.
4
4
4
2013-01-14 02:40:06 +0000

Ho trovato Wajig…

wajig whichpackage /path/to/file

es.

wajig whichpackage /etc/apt/sources.list

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

Per installare wajig usare:

apt-get install wajig

Quel comando ‘whichpackage’ stesso dipende da apt-file

avrete ancora bisogno di aggiornare il suo database prima di poterlo usare: - Non so ancora se wajig update whixh fa un apt-get update aggiorna anche la cache dei file, ma mi aspetto che possa farlo.

sudo wajig update

sudo apt-file update

( e Super Cow, Easter egss ? ! )

2
2
2
2013-10-28 10:40:51 +0000

Similmente alla risposta di jamuraa per Debian, puoi anche andare su http://packages.ubuntu.com/ per Ubuntu. Dovrai scorrere un po’ in basso per trovare la casella di ricerca “Cerca il contenuto dei pacchetti” dove puoi inserire il percorso di un file.

0
0
0
2014-11-24 09:59:47 +0000

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

Per esempio, se il nome del comando è noto:

zer@ivy:~ 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:

zer@ivy:~ 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
0
0
2012-12-20 00:33:23 +0000

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

Questa è un'applicazione per cercare i file che sono contenuti in diversi pacchetti rpms/linux, ed è molto utile quando non hai nemmeno l'rpm installato sulla tua macchina.