Pregunta:
¿Cómo averiguo de qué paquete Debian proviene un archivo?
Respuesta:
Para hacer esto sin instalar ningún paquete adicional, ejecute
user@host:~$ dpkg-query -S /bin/bash
bash: /bin/bash
donde bash es el nombre del paquete.
Alternativamente, hay varias utilidades en Debian que realizan esta tarea; consulte esta página para obtener una descripción. Mencionaré dos de ellos, apt-file
y dlocate
.
apt-file
busca en 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 lista el contenido del paquete) y, como tal, busca solo los paquetes instalados. La búsqueda se realiza mediante dlocate -S file.name
.
También puede buscar paquetes en línea usando el servidor packages.debian.org (la sección Buscar el contenido de los paquetes ).
Instalación y uso de apt-file
Es una buena idea actualizar primero:
sudo apt-get update
Vea para qué sirve el apt-file
:
apt-cache show apt-file
Instalarlo:
sudo apt-get install apt-file
Leer datos de repositorios (esto también funciona sin sudo
pero crea la caché del usuario; con sudo
la caché es para todo el sistema):
sudo apt-file update
Realice una búsqueda. En este ejemplo queremos saber en qué paquete se encuentra el ejecutable xrandr
:
apt-file search xrandr
En él se enumeran muchos paquetes con unxrandr
, lxrandr.mo
o source_lxrandr.py
. No muy útil en nuestro caso. Búsqueda más inteligente:
apt-file search -x /xrandr$
( $
denota final de línea). Salida de ejemplo:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
El primer resultado no parece ejecutable, el segundo sí. Podemos investigar más. Correr:
apt-cache show x11-xserver-utils
¡Bingo! Este es el paquete.