it-swarm.dev

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

Con frecuencia me encuentro faltando un programa, una página de manual u otro archivo cuando trabajo en mi sistema Ubuntu 8.04. ¿Hay alguna forma sencilla de buscar qué paquete contiene un archivo dado (ya esté instalado o no)? Tal vez alguna opción oscura para apt o dpkg?

286
Jay Conrod
apt-file search filename

o

apt-file search /path/to/file


Para instalar apt-file , use:

Sudo apt-get install apt-file

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

Sudo apt-file update
235
John T

(Debian/Ubuntu) Descubre a qué paquete pertenece un archivo :

dpkg -S /usr/bin/ls

'dpkg -S' solo coincide con la cadena que lo suministras, así que solo usar 'ls' como argumento coincide con cualquier archivo de cualquier paquete que tenga 'ls' en cualquier lugar del nombre del archivo. Por lo general, es una buena idea usar un camino absoluto. Puede ver en el segundo ejemplo que 12 mil archivos que se conocen con dpkg coinciden con la cadena 'ls'.

387
splattne

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

Para la velocidad, marqué el url:

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

en Firefox, y agregué "debfind" como palabra clave (haga clic en "más" en el administrador de marcadores para que aparezca más destacado), así que solo puedo escribir "debfind" y funcionará. Puede cambiar 'suite' de inestable a estable o probar si lo desea, para otras versiones de la distribución.

18
jamuraa

También puedes usar dlocate. De la página del manual;

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

Encontré a Wajig ...

wajig whichpackage /path/to/file 

p.ej.

wajig whichpackage /etc/apt/sources.list

Wajig es una práctica herramienta de línea de comandos o consola que envuelve todo lo bueno de apt-get, dpkg que nunca quiso aprender. .

Para instalar wajig use:

apt-get install wajig

Ese comando 'whichpackage' depende del archivo apt

todavía necesitará actualizar su base de datos antes de poder usarla: - No sé aún si wajig update whixh realiza una actualización apt-get también actualiza la caché de archivos, pero espero que lo haga.

Sudo wajig update

Sudo apt-file update

(y Super Vaca, Pascua egss?!)

4
pete_m

Al igual que la respuesta de Jamuraa para Debian, también puede ir a http://packages.ubuntu.com/ para Ubuntu. Tendrá que desplazarse hacia abajo un poco para encontrar "Buscar en el contenido de los paquetes" cuadro de búsqueda donde puede ingresar la ruta de un archivo.

2
kiri

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

Esta es una aplicación para buscar archivos que se encuentran en diferentes paquetes rpms/linux, y es muy útil cuando ni siquiera tienes las rpm instaladas en tu máquina.

0
Ravi Agarwal

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

Por ejemplo, si el nombre del comando es conocido:

[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

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

[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