Come scoprire a quale pacchetto Debian (non installato) appartiene un file?


41

Sui sistemi Debian (e derivati):

$ dpkg --search /bin/ls
coreutils: /bin/ls

Cioè, il file /bin/lsappartiene al pacchetto Debian denominato coreutils.

Questo funziona solo se il pacchetto è installato. E se non lo fosse?

Risposte:


58

apt-file

apt-filefornisce la funzionalità di ricerca di un pacchetto fornendo un binario (come Debian o Ubuntu ), non è installato di default ma nei repository.

apt-file search <path-to-file>

Potresti voler aggiornare una volta prima di cercare ...

apt-file update 

Ad esempio, cerchiamo il binario non installato mysqldump:

$ apt-file search /usr/bin/mysqldump

mysql-client-5.1: /usr/bin/mysqldump
mysql-client-5.1: /usr/bin/mysqldumpslow
mysql-cluster-client-5.1: /usr/bin/mysqldump
mysql-cluster-client-5.1: /usr/bin/mysqldumpslow

È anche possibile elencare il contenuto di un pacchetto (non installato):

$ apt-file list mysql-client-5.1

mysql-client-5.1: /usr/bin/innochecksum
mysql-client-5.1: /usr/bin/innotop
mysql-client-5.1: /usr/bin/myisam_ftdump
mysql-client-5.1: /usr/bin/mysql_client_test
...

yum

yumaccetta il comando whatprovides(o provides) per cercare i binari installati o non installati:

yum whatprovides <path-to-file>

Ancora una volta, il non installato mysqldump:

$ yum whatprovides /usr/bin/mysqldump

mysql-5.1.51-2.fc14.i686 : MySQL client programs and shared libraries
Repo        : fedora
Matched from: 
Filename    : /usr/bin/mysqldump

mysql-5.1.51-1.fc14.i686 : MySQL client programs and shared libraries
Repo        : fedora
Matched from: 
Filename    : /usr/bin/mysqldump

zypper

zypperIl searchcomando di può controllare gli elenchi di file quando utilizzato con l' -fopzione.

zypper se -f /bin/mksh
Loading repository data...
Reading installed packages...

S | Name | Summary           | Type   
--+------+-------------------+--------
  | mksh | MirBSD Korn Shell | package

Webpin fornisce una soluzione webbased , esiste persino uno script per la riga di comando.

pkgfile

Disponibile come pkgtoolsper i pacmansistemi basati. Fornisce una funzione di ricerca simile come le precedenti:

$ pkgfile -si /usr/bin/mysqldump

Name      : mysql-clients
Version   : 5.1.54-1
Url       : http://www.mysql.com/
License   : GPL
Depends   : libmysqlclient
...

apt-file search protoc, ad esempio, dà oltre seimila risultati. Tuttavia il risultato finale nel nome del file, quindi con grep si può effettivamente trovare il nome del file che si sta cercando: apt-file search protoc | grep 'protoc$'. Funziona perché filtra tutto ciò che termina in "protocollo". Ovviamente dovresti sostituire "protocollo" con qualunque cosa tu stia cercando.
Luc,

5

Lo strumento standard per questo è apt-file . Esegui apt-file updateper scaricare il file indice. Ecco l'output:

Downloading complete file ftp://ftp.is.co.za/debian/dists/squeeze/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16.6M  100 16.6M    0     0  33191      0  0:08:47  0:08:47 --:--:-- 38951

Dopodiché, corri apt-file search search_term.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.