GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo consultar archivos, paquetes y repositorios en Linux

Al tener algo de experiencia con Linux, probablemente sepa que no puede simplemente compartir un comando o una utilidad entre sistemas. La razón por la que no puede simplemente copiar un ejecutable de un sistema a otro se debe a las dependencias, como bibliotecas y otros paquetes de soporte. Algunas utilidades ciertamente pueden ser copiado pero esto no es universalmente así. Si olvidó qué paquete instaló que incluía el nslookup comando, por ejemplo, necesita una forma de encontrarlo.

Además, una vez que encuentre el paquete al que pertenece un comando, es posible que desee averiguar desde qué repositorio instaló el paquete. Los repositorios básicos de AppStream , BaseOS y Extras contienen mucho, pero ciertamente no todo de los paquetes que pueda necesitar o encontrar. En este artículo, exploro algunos métodos de consulta del sistema para encontrar repositorios, paquetes y comandos relacionados.

  • Los paquetes contienen comandos, utilidades y bibliotecas
  • Los paquetes tienen dependencias
  • Los repositorios contienen, almacenan y proporcionan paquetes

Clasificación del tipo de archivo

¿La utilidad que está utilizando es un script, texto sin formato o un comando? ¿Está compilado? ¿Cuál es la ubicación del archivo? Es posible que desee obtener información básica sobre la utilidad. El which El comando localiza un archivo si está en su camino. Deberá ubicar un archivo antes de poder identificarlo más.

$ which mtr

/usr/sbin/mtr

Para mostrar la información del tipo de archivo, el file el mando es indispensable.

$ file mtr
mtr: cannot open `mtr' (No such file or directory)

$ file /usr/sbin/mtr
/usr/sbin/mtr: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d34479cefafe7299b65d8375769c63978c6c453f, stripped, too many notes (256)

El primer intento falló porque el file el comando no conoce la ubicación del mtr dominio. Después de proporcionar la ruta completa a file , se muestra la información.

Este es un ejemplo de un archivo ejecutable que no está compilado.

$ file /usr/sbin/ifcfg
/usr/sbin/ifcfg: POSIX shell script, ASCII text executable

Como puede ver, el file El comando es importante para saber y uno que seguramente usará a lo largo de su carrera.

[ A los lectores también les gustó:Gestión de paquetes de Linux con YUM y RPM ]

Encontrar el paquete

El nslookup El comando es uno que usa con frecuencia pero no está instalado en ninguno de los sistemas en su nuevo trabajo. Quiere instalarlo pero no recuerda qué paquete lo contiene e intenta instalarlo como nslookup falla.

# dnf -y install nslookup
Last metadata expiration check: 2:44:51 ago on Tue 10 Nov 2020 03:27:27 PM CST.
No match for argument: nslookup
Error: Unable to find a match: nslookup

Para encontrar el paquete que contiene nslookup , puede realizar una búsqueda "inversa" usando el rpm comando.

# rpm -qf nslookup
error: file /root/nslookup: No such file or directory

¿Qué pasa aquí? Las rpm el comando no puede encontrar nslookup pero está instalado porque lo has usado. Esperar. Mire la ruta:/root/nslookup . No hay nslookup comando en su directorio actual (inicio de la raíz). Localice nslookup usando el which comando y luego emita el rpm comando.

# which nslookup
/usr/bin/nslookup

# rpm -qf /usr/bin/nslookup
bind-utils-9.11.13-6.el8_2.1.x86_64

Ves que nslookup es parte de bind-utils paquete. Ahora puede copiarlo a sus otros sistemas y usarlo como lo haría normalmente.

 # nslookup google.com
/opt/nslookup: error while loading shared libraries: libdns.so.1107: cannot open shared object file: No such file or directory

El error te dice que nslookup El comando tiene dependencias que no se han cumplido en el nuevo sistema en el que lo ha copiado. La solución es instalarlo individualmente en cada sistema usando DNF/YUM.

Revelación de dependencias de paquetes

Realmente te gusta el nslookup y le gustaría tenerlo disponible en todos sus sistemas. Después de un intento fallido, te das cuenta de que no puedes simplemente copiarlo a otro sistema y esperar que funcione. Después de mucha investigación, descubre que nslookup El comando tiene varias dependencias que deben cumplirse. ¿Cuáles son esas dependencias?

# dnf deplist nslookup
Last metadata expiration check: 3:00:24 ago on Tue 10 Nov 2020 03:27:27 PM CST.

¿Significa esto que no hay dependencias para nslookup? ? No. Significa que intentó encontrar dependencias para un comando en lugar de un paquete.

# dnf deplist bind-utils

Last metadata expiration check: 0:00:14 ago on Tue 10 Nov 2020 06:29:37 PM CST.
package: bind-utils-32:9.11.13-6.el8_2.1.x86_64
  dependency: /usr/libexec/platform-python
   provider: platform-python-3.6.8-23.el8.i686
   provider: platform-python-3.6.8-23.el8.x86_64
  dependency: bind-libs(x86-64) = 32:9.11.13-6.el8_2.1
   provider: bind-libs-32:9.11.13-6.el8_2.1.x86_64
 *** longer list of dependencies ***
  dependency: rtld(GNU_HASH)
   provider: glibc-2.28-101.el8.i686
   provider: glibc-2.28-101.el8.x86_64

Recuerda que los paquetes tener dependencias. Enumerar las dependencias puede ser valioso si desea satisfacerlas manualmente o si cree que las nuevas dependencias pueden interferir o ser incompatibles con los paquetes y dependencias que ya están instalados en su sistema.

Identificación del repositorio

Viste a un compañero administrador de sistemas usando la herramienta de información de hardware (hwinfo ) comando en su sistema. Prueba el comando en su sistema pero recibe un error de "comando no encontrado". Luego intenta instalarlo.

# dnf -y install hwinfo

Last metadata expiration check: 0:09:34 ago on Tue 10 Nov 2020 06:42:15 PM CST.
No match for argument: hwinfo
Error: Unable to find a match: hwinfo

Le pides a tu compañero de trabajo que te diga dónde obtuvo el hwinfo paquete. Ella realiza la siguiente consulta para encontrar su fuente.

# dnf list hwinfo

Last metadata expiration check: 0:11:17 ago on Tue 10 Nov 2020 06:42:15 PM CST.
Installed Packages
hwinfo.x86_64                         21.47-9.el8                             @epel

Observa que la fuente parece ser un repositorio identificado como epel . Además, le pide que le diga cómo configurar el epel repositorio. Ella recuerda que epel es en realidad un paquete RPM instalable pero no recuerda su nombre completo. Ella realiza la siguiente consulta para identificarlo.

# rpm -qa |grep epel
epel-release-8-8.el8.noarch

Ahora puedes instalar el epel-release paquete y luego instale el hwinfo paquete.

Nota:epel-release repository es la configuración del repositorio de Extra Packages for Enterprise Linux y es lo primero que instalo en cualquier sistema nuevo que encuentro que no lo tiene.

[ Descarga gratuita:hoja de referencia de comandos avanzados de Linux. ]

Conclusión

Linux proporciona a sus administradores muchas utilidades y comandos útiles para encontrar información sobre el sistema y sus componentes. Debe agregar estos comandos y utilidades a su caja de herramientas de administrador de sistemas. Como puede ver en este artículo, no necesita conocer todas las opciones oscuras de un comando para obtener lo que necesita. Usa man páginas para esos.


Linux
  1. Cómo encontrar los principales directorios y archivos (espacio en disco) en Linux

  2. Cómo cambiar el nombre de los archivos en Linux

  3. Cómo eliminar archivos y directorios en Linux desde la línea de comandos

  4. Cómo dividir y combinar archivos desde la línea de comandos en Linux

  5. Cómo archivar y comprimir archivos en Linux

Cómo cambiar el nombre de archivos y directorios en Linux

Cómo comprimir archivos y directorios en Linux

Cómo mover archivos y directorios en Linux (comando mv)

Cómo ordenar archivos en Linux (GUI y Shell)

Cómo instalar y usar el comando fd en Linux

Cómo contar archivos en el directorio en Linux