¿Cómo puedo saber de qué paquete Debian proviene un archivo?
fuente
¿Cómo puedo saber de qué paquete Debian proviene un archivo?
Hay varias utilidades en Debian que realizan esta tarea; comprobar esta página para una descripción. Mencionaré dos de ellos, apt-file
y dlocate
.
apt-file
busca su caché interno, lo que le permite no instalar todos los paquetes que desea buscar. A continuación encontrará una guía más detallada.
dlocate
es una alternativa rápida a dpkg -L
(el comando que enumera el contenido del paquete), y como tal, solo busca los paquetes instalados. La búsqueda es realizada por dlocate -S file.name
.
También puedes buscar paquetes en línea usando packages.debian.org servidor (el Buscar el contenido de los paquetes. sección).
apt-file
Es una buena idea actualizar primero:
sudo apt-get update
Mira qué apt-file
es para:
apt-cache show apt-file
Instalarlo:
sudo apt-get install apt-file
Leer datos de repositorios (esto funciona también sin sudo
pero crea el caché del usuario entonces; con sudo
el caché es de todo el sistema):
sudo apt-file update
Realizar búsqueda En este ejemplo queremos saber en qué paquete. xrandr
ejecutable es:
apt-file search xrandr
Enumera muchos paquetes con unxrandr
, lxrandr.mo
o source_lxrandr.py
. No es muy útil en nuestro caso. Búsqueda más inteligente:
apt-file search -x /xrandr$
( $
denota el final de la línea). Ejemplo de salida:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
El primer resultado no parece ejecutable, el segundo sí lo hace. Podemos investigar más a fondo. Correr:
apt-cache show x11-xserver-utils
¡Bingo! Este es el paquete.
Donde bash es el nombre del paquete.
fuente
Otra alternativa:
Al menos en mi Ubuntu, ambos parecen estar en el
dpkg
paquete, por lo que no hay una ventaja real para cualquier específico ...fuente
Instalacion de archivos generados. no será encontrado por
dpkg -S
, como se menciona en: https://askubuntu.com/a/667227/52975Por ejemplo,
/bin/nc
aparece cuando instala el paquetenetcat-openbsd
.Pero sobre:
obtenemos
dpkg-query: no path found matching pattern /bin/nc
.Esto sucede porque
/bin/nc
es generado por elupdate-alternatives
llamar al script postinst que se ejecuta después de la instalación.Funciona así porque otra versión de
/bin/nc
es proporcionado por elnetcat-traditional
paquete.No creo que haya una forma general de encontrar tales archivos generados. En el caso específico de enlaces simbólicos alternativos, solo podemos seguir el enlace con
readlink -f
:fuente
Al no estar familiarizado con Debian, me sorprendió cuando intenté esto:
Un poco de investigación y encontré el paquete:
fuente