GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar el paquete que proporciona un archivo específico en Linux

Este breve tutorial explica algunas formas diferentes de encontrar el paquete que proporciona un archivo específico en Linux. Esto podría ser útil cuando compila e instala manualmente un paquete. Cuando está compilando un paquete desde el origen, es posible que reciba un error similar a "No hay regla para hacer que el objetivo sea '', necesario para ''. Deténgase". . Es posible que no sepa exactamente qué paquetes proporcionan el archivo que falta. En tales casos, puede encontrar fácilmente los paquetes que proporcionan esos archivos faltantes e instalarlos en su caja de Linux como se describe en esta guía.

Encuentre el paquete que proporciona un archivo específico en Linux

Arch Linux, Antergos, Manjaro Linux:

En Arch, hay una pequeña herramienta de línea de comandos llamada pkgfile , que se utiliza para buscar archivos de paquetes.

Pkgfile viene preinstalado con Arch Linux. Si no es así, puede instalar usando el siguiente comando:

$ sudo pacman -S pkgfile

Luego, ejecute el siguiente comando para sincronizar con la base de datos pkgfile:

$ sudo pkgfile -u

Ahora, puede encontrar el paquete que proporciona un archivo específico, digamos, por ejemplo, alisp.h , usando el comando:

$ pkgfile alisp.h
extra/alsa-lib

Como puede ver en el resultado anterior, alsa-lib el paquete proporciona alisp.h expediente. Y el paquete está disponible desde extra repositorio. Ahora puede instalar este paquete como se muestra a continuación.

$ sudo pacman -S alsa-lib

Para enumerar todos los archivos proporcionados por el paquete alsa-lib, ejecute:

$ pkgfile -l alsa-lib

RHEL, CentOS, Fedora:

En sistemas basados ​​en YUM como RHEL y sus clones como CentOS, Scientific Linux, puede encontrar el paquete que posee un archivo en particular, usando el siguiente comando:

$ yum whatprovides '*filename'

En Fedora, use el siguiente comando en su lugar:

$ dnf provides '*filename'

Si el archivo ya está disponible en su sistema, diga por ejemplo /bin/ls , luego puede encontrar el paquete que posee el archivo usando el comando:

# rpm -qf /bin/ls
coreutils-8.22-18.el7.x86_64

También puedes usar el repoquery comando de la siguiente manera:

$ repoquery -f /bin/ls

Si el comando repoquery no está disponible en su sistema, instale yum-utils paquete.

$ sudo yum install yum-utils

O,

$ sudo dnf install yum-utils

Debian, Ubuntu, Linux Mint:

En cualquier sistema basado en DEB, puede encontrar el paquete que proporciona un determinado archivo usando apt-file herramienta.

Instale el archivo apt como se muestra a continuación si aún no está instalado:

$ sudo apt-get install apt-file

Si acaba de instalar apt-file, es posible que la memoria caché de todo el sistema esté vacía. Debe ejecutar 'apt-file update' como root para actualizar el caché. También puede ejecutar 'apt-file update' como usuario normal para usar un caché en el directorio de inicio del usuario.

Actualicemos la caché de la base de datos usando el comando:

$ sudo apt-file update

Y luego busque los paquetes que contienen un archivo específico, digamos alisp.h , con comando:

$ apt-file find alisp.h

O,

$ apt-file search alisp.h

La muestra sería:

libasound2-dev: /usr/include/alsa/alisp.h

Bueno, libasound2-dev ¡está! Puede instalar este paquete usando el comando:

$ sudo apt-get install libasound2-dev

Si ya tiene el archivo y solo quiere saber a qué paquete pertenece, puede usar dpkg comando como se muestra a continuación.

$ dpkg -S $(which alisp.h)

O,

$ dpkg -S `which alisp.h`

Si conoce la ruta completa del archivo, diga, por ejemplo, /bin/ls , puedes buscar los paquetes a los que pertenece usando el siguiente comando:

$ dpkg -S /bin/ls
coreutils: /bin/ls

SUSE/openSUSE:

En SUSE y openSUSE, ejecute el siguiente comando para averiguar a qué paquete pertenece un determinado archivo.

$ zypper wp alisp.h

O,

$ zypper se --provides --match-exact alisp.h

Lectura sugerida:

  • Cómo enumerar los paquetes instalados desde un determinado repositorio en Linux
  • Cómo encontrar dependencias para un paquete en particular en CentOS

Y eso es todo. Espero que esto ayude. Si conoce otros métodos para encontrar el paquete que contiene un archivo en particular, no dude en hacérnoslo saber en la sección de comentarios a continuación. Comprobaré y actualizaré la guía en consecuencia.


Linux
  1. Cómo encontrar un archivo en Linux

  2. Cómo enumerar las dependencias de un paquete en Linux

  3. Cómo encontrar el archivo más antiguo en un árbol de directorios en Linux

  4. Cómo encontrar qué paquete rpm proporciona un archivo o biblioteca específicos en RHEL/CentOS

  5. Encuentre el archivo y luego cd a ese directorio en Linux

Cómo usar el comando de cabeza de Linux

Cómo usar el comando diff de Linux

Cómo encontrar la versión de Redhat Linux instalada

Cómo encontrar una cadena en un archivo en Linux

Permisos de Linux:cómo encontrar los permisos de un archivo

Cómo encontrar archivos que contengan una cadena de texto específica en Linux