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?
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
(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'.
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.
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.
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?!)
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.
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.
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