¿Cómo averiguar a qué paquete Debian (no instalado) pertenece un archivo?


41

En sistemas Debian (y derivados):

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

Es decir, el archivo /bin/lspertenece al paquete Debian llamado coreutils.

Pero esto solo funciona si el paquete está instalado. ¿Y si no es así?

Respuestas:


58

apt-file

apt-fileproporciona la función de buscar un paquete que proporcione un archivo binario (como Debian o Ubuntu ), no está instalado de forma predeterminada sino en los repositorios.

apt-file search <path-to-file>

Es posible que desee actualizar una vez antes de buscar ...

apt-file update 

Por ejemplo, busquemos el binario no instalado 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

También es posible enumerar el contenido de un paquete (no instalado):

$ 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
...

ñam

yumacepta el comando whatprovides(o provides) para buscar binarios instalados o no instalados:

yum whatprovides <path-to-file>

De nuevo, el no instalado 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

zypperEl searchcomando puede verificar las listas de archivos cuando se usa con la -fopción.

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

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

Webpin proporciona una solución basada en la web, incluso hay un script para la línea de comandos.

pkgfile

Disponible como pkgtoolspara pacmansistemas basados. Proporciona una función de búsqueda similar a las anteriores:

$ 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, por ejemplo, da más de seis mil resultados. Sin embargo, los resultados terminan en el nombre del archivo, por lo que con grep en realidad se puede encontrar el nombre de archivo que buscas: apt-file search protoc | grep 'protoc$'. Funciona porque filtra todo lo que termina en "protocolo". Por supuesto, debe reemplazar "protocol" con lo que esté buscando.
Luc

5

La herramienta estándar para esto es apt-file . Ejecute apt-file updatepara descargar el archivo de índice. Aquí está la salida:

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

Después de eso, corre apt-file search search_term.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.