web-dev-qa-db-fra.com

Comment puis-je savoir quels programmes un paquet apt-get contient?

Je voudrais savoir ce que certains package installent, par exemple, lors de l'installation de ncurses, j'ai trouvé que TAB la clé se développe:

Sudo apt-get install ncurses-

montrer:

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

Comment puis-je savoir ce que, par exemple, ncurses-term installe? Je m'intéresse principalement aux programmes, mais les bibliothèques et tous les autres types de fichiers pourraient également être utiles.

Ligne de commande, si possible, la méthode serait préférée ( toutes les autres acceptées aussi).

17

Voici quelques options, celles-ci listeront tous les fichiers installés par un paquet:

A. Lister tous les fichiers inclus dans un paquet

  1. Pour les paquets installés

    dpkg -L ncurses-term
    
  2. Pour tous les paquets, installés ou non

    apt-file -F list ncurses-term
    

    Le -F de la correspondance de modèle devient de sorte que seuls les packages dont les correspondances exactes sont renvoyées. Vous devrez peut-être installer apt-file avec Sudo apt-get install apt-file, puis mettre à jour sa base de données avec Sudo apt-file update.

B. Liste seulement les fichiers exécutables inclus dans un paquet

  1. Pour les paquets installés

    Il suffit d'installer dlocate (Sudo apt-get dlocate) et d'exécuter:

    dlocate -lsbin ncurses-term 
    

    Comme expliqué dans man dlocate:

    -lsbin Liste le chemin complet/noms de fichiers des fichiers exécutables (le cas échéant) dans le package

    Si vous ne souhaitez pas installer de packages supplémentaires, vous pouvez le faire manuellement. Il suffit de collecter la liste des fichiers et de trouver ceux qui ont le bit exécutable défini:

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

    Le petit scriptlet ci-dessus n’imprimera que le chemin (cut -d ' ' -f 2), puis le transmettra à travers une boucle while qui vérifie si le fichier est exécutable (-x $file) et s’il s’agit d’un fichier normal. aucun répertoire ou lien symbolique (-f $file) et affiche son nom uniquement si passe les deux tests.

  2. Pour tous les paquets, installés ou non

    Je ne connais aucun moyen de répertorier uniquement les exécutables inclus dans un package désinstallé. Cependant, comme la plupart des exécutables sont installés dans les répertoires bin, vous pouvez en obtenir la plupart en analysant le résultat:

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

    L'option -w correspond à des mots entiers. Ainsi, aucune installation n'est possible, par exemple, trashbin ou autre.


NOTE: Aucune des commandes ci-dessus ne produira de sortie pour ncurses-term, mais c'est parce que ce paquet n'installe aucun fichier exécutable. Les commandes fonctionnent néanmoins, essayez avec un paquet différent.

20
terdon

Vous pouvez utiliser apt-file:

Sudo apt-file update        
apt-file list package_name
4
Sylvain Pineau

Il existe une possibilité d'utiliser votre navigateur (ne nécessitant donc pas l'accès à un système APT). Par exemple, pour lister le contenu du paquet "ncurses-term", tapez simplement

https://packages.debian.org/wheezy/all/ncurses-term/filelist

dans la barre d’adresse de votre navigateur (remplacez "wheezy" au besoin) pour Debian ou

http://packages.ubuntu.com/saucy/all/ncurses-term/filelist

pour Ubuntu (remplacez "grincheux" si nécessaire).

3
Michael Kremser