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

¿Encontrar a qué paquete pertenece un archivo en Ubuntu/Debian?

Con frecuencia me encuentro con que me falta un programa, una página man o cualquier otro archivo cuando trabajo en mi sistema Ubuntu 8.04. ¿Existe alguna forma sencilla de buscar qué paquete contiene un archivo determinado (tanto si ya está instalado como si no)? ¿Tal vez alguna opción oscura para apt o dpkg?

Respuestas (8)

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

(Debian/Ubuntu) Descubre a qué paquete pertenece un fichero ](http://www.commandlinefu.com/commands/view/1947/debianubuntu-discover-what-package-a-file-belongs-to):

dpkg -S /usr/bin/ls

‘dpkg -S’ sólo coincide con la cadena que le proporcione, por lo que el uso de ‘ls’ como argumento coincide con cualquier fichero de cualquier paquete que tenga ‘ls’ en cualquier parte del nombre del fichero. Así que normalmente es una buena idea usar una ruta absoluta. Puede ver en el segundo ejemplo que 12 mil archivos conocidos por dpkg coinciden con la cadena ‘ls’.

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

o

apt-file search /path/to/file

Para instalar apt-file , utilice:

sudo apt-get install apt-file

Deberá actualizar su base de datos antes de poder utilizarlo:

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

packages.debian.org es lo que siempre uso para realizar esta tarea. Es superior a apt-file porque también puede encontrar partes de nombres de archivos. También está vinculado a la lista principal de paquetes, que contiene descripciones, errores, etc. En general, un buen sitio web. No es tan útil desde la línea de comandos, pero sigue siendo bastante útil.

Para mayor rapidez, he marcado la url:

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

en Firefox, y añadí “debfind” como palabra clave (haz clic en “más” en el gestor de marcadores con ella resaltada), así que puedo escribir simplemente “debfind ” y funcionará. Puedes cambiar la “suite” de inestable a estable o de prueba si quieres, para otras versiones de la distribución.

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

También puedes usar dlocate. De la página 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

He encontrado Wajig… Wajig es una práctica herramienta de línea de comandos o de consola que envuelve todas las bondades de apt-get y dpkg que nunca quisiste aprender. .

Para instalar wajig use:

wajig whichpackage /path/to/file

Ese comando ‘whichpackage’ en sí mismo depende de apt-file

todavía tendrá que actualizar su base de datos antes de poder usarlo: - No sé todavía si wajig update whixh hace un apt-get update también actualiza la caché de archivos, pero espero que pueda.

wajig whichpackage /etc/apt/sources.list

( y Super Cow, Easter egss ! )

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

De forma similar a la respuesta de jamuraa para Debian, también puede ir a http://packages.ubuntu.com/ para Ubuntu. Tendrá que desplazarse un poco hacia abajo para encontrar el cuadro de búsqueda “Buscar el contenido de los paquetes” donde puede introducir la ruta de un archivo.

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

El paquete command-not-found le da pistas sobre posibles comandos y el nombre del paquete debian. Funciona escribiendo el comando en el shell bash y mirando su salida.

Por ejemplo, si se conoce el nombre del comando:

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

y si no se conoce el comando, se aplican algunas conjeturas:

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

Intente buscar archivos usando http://www.kodkast.com/applications/find-which-package-file-belongs-to

Esta es una aplicación para buscar archivos que están contenidos en diferentes rpms/paquetes de Linux, y es muy útil cuando ni siquiera tiene el rpm instalado en su máquina.