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 es debido a las dependencias, como bibliotecas y otros paquetes de soporte. Ciertas utilidades ciertamente deben copiarse, pero este no es el caso universalmente. 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 pedido, es posible que desee saber desde qué repositorio instaló el paquete. Los depósitos básicos de flujo de aplicaciones, Sistema operativo base, y Suplementos contiene mucho, pero ciertamente no 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 entregan paquetes
Índice

    Clasificar 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.

    $ which mtr
    
    /usr/sbin/mtr

    Para ver la información del tipo de archivo, el file ordenar es esencial.

    $ 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 fracasó porque el file el comando no conoce la ubicación del mtr pedido. Una vez que se da la ruta completa a file, se muestra la información.

    Aquí hay un ejemplo de un archivo ejecutable que no está compilado.

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

    Como puedes ver, el file El comando es algo importante que debe saber y que seguramente usará a lo largo de su carrera.

    Encuentra el paquete

    el nslookup El comando es un comando que usa con frecuencia, pero no está instalado en ninguno de los sistemas en su nuevo trabajo. Quiere instalarlo pero no puede recordar qué paquete lo contiene e intenta instalarlo como nslookup fallido.

    # 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" utilizando el rpm pedido.

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

    ¿Que esta mal aquí? el rpm el comando no encuentra nslookup pero está instalado porque lo usaste. Esperar. Mira el camino: /root/nslookup. No hay nslookup en su directorio actual (inicio de la raíz). Localizar nslookup utilizando el which comando, luego ejecute el rpm pedido.

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

    ves eso 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 el nslookup El comando tiene dependencias que no se cumplieron en el nuevo sistema en el que lo copió. La solución es instalarlo individualmente en cada sistema usando DNF/YUM.

    Revelar dependencias de paquetes

    realmente te gusta el nslookup y le gustaría que estuviera 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, descubres que el nslookup El comando tiene varias dependencias que deben cumplirse. ¿Cuáles son estas 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. Esto significa que ha intentado encontrar dependencias para un pedido 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 hay dependencias. La lista de dependencias puede ser útil si desea satisfacerlas manualmente o si cree que las nuevas dependencias pueden interferir o ser incompatibles con los paquetes y dependencias ya instalados en su sistema.

    Identificación del repositorio

    Ha visto a un compañero administrador del sistema usar la Herramienta de información de hardware (hwinfo) 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 pide a su colega que le diga dónde consiguió el hwinfo paquete. Ejecuta 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. También le pide que le muestre cómo configurar el epel depositar. Recuerda que en realidad se trata de un paquete RPM instalable, pero no recuerda su nombre completo. Ella hace la siguiente consulta para identificarlo.

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

    Ahora puede instalar el epel-release paquete, luego instale el hwinfo paquete.

    Envoltura

    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 kit de herramientas de administrador de sistemas. Como puede ver en este artículo, no tiene que conocer todas las oscuras opciones de un pedido para obtener lo que necesita. Usar man páginas para esos.

    Artículos de interés

    Subir