¿Cómo puedo saber qué programas contiene algún paquete apt-get?

17

Me gustaría saber qué instalaciones específicas del paquete , por ejemplo, al instalar ncurses , he encontrado que la clave TAB se expande:

sudo apt-get install ncurses-

para mostrar:

ncurses-base      ncurses-doc       ncurses-hexedit
ncurses-bin       ncurses-examples  ncurses-term

¿Cómo puedo saber qué, digamos, ncurses-term installs? Me interesan principalmente los programas, pero las bibliotecas y cualquier otro tipo de archivo también pueden ser útiles.

Línea de comando método, si es posible, sería preferido ( cualquier otro aceptado también).

    
pregunta Sopalajo de Arrierez 16.03.2014 - 21:53

3 respuestas

20

Aquí hay algunas opciones, estas mostrarán todos los archivos instalados por un paquete:

A. Listado de todos los archivos incluidos en un paquete

  1. para paquetes instalados

    dpkg -L ncurses-term
    
  2. Para todos los paquetes, instalados o no

    apt-file -F list ncurses-term
    

    El -F coincide con el patrón para que solo se devuelvan los paquetes cuyo nombre exacto coincida. Es posible que deba instalar apt-file con sudo apt-get install apt-file y luego actualice su base de datos con sudo apt-file update .

B. Listado de archivos ejecutables incluidos en un paquete

  1. para paquetes instalados

    Simplemente instala dlocate ( sudo apt-get dlocate ) y ejecuta:

    dlocate -lsbin ncurses-term 
    

    Como se explica en man dlocate :

      

    -lsbin Lista de ruta completa / nombres de archivo de archivos ejecutables (si los hay) en el paquete

    Si no desea instalar paquetes adicionales, puede hacerlo manualmente. Simplemente recopile la lista de archivos y encuentre cualquiera de ellos que tenga el bit ejecutable establecido:

    apt-file -F list ncurses-term | cut -d ' ' -f 2 | 
        while read file; do [[ -x $file && -f $file ]] && echo "$file"; done
    

    El pequeño scriptlet anterior solo imprimirá la ruta ( cut -d ' ' -f 2 ) y luego lo pasará a través de un bucle while que verifica si el archivo es ejecutable ( -x $file ) y si es un archivo normal, no hay directorios o enlaces simbólicos ( -f $file ) e imprime su nombre solo si pasa ambas pruebas.

  2. Para todos los paquetes, instalados o no

    No hay forma de que sepa enumerar solo los ejecutables incluidos en un paquete desinstalado. Sin embargo, dado que la mayoría de los ejecutables están instalados en los directorios bin , puede obtener la mayoría de ellos al analizar el resultado:

     apt-file -F list ncurses-term | grep -Ew "bin|sbin"
    

    La opción -w coincide con palabras completas, por lo que no se instalan cosas, por ejemplo, trashbin o lo que sea.

NOTA : ninguno de los comandos anteriores producirá ningún resultado para ncurses-term , pero eso se debe a que este paquete no instala archivos ejecutables. Los comandos funcionan, sin embargo, intente con un paquete diferente.

    
respondido por el terdon 16.03.2014 - 22:16
4

Puedes usar apt-file:

sudo apt-file update        
apt-file list package_name
    
respondido por el Sylvain Pineau 16.03.2014 - 22:13
3

Existe la posibilidad de utilizar su navegador (por lo tanto, no es necesario acceder a un sistema APT). Por ejemplo, para mostrar el contenido del archivo del paquete "ncurses-term", solo escriba

enlace

en la barra de direcciones de su navegador (reemplace "wheezy" según sea necesario) por Debian o

enlace

para Ubuntu (reemplace "descarado" según sea necesario).

    
respondido por el Michael Kremser 17.03.2014 - 08:34

Lea otras preguntas en las etiquetas