368 votes

Comment lister les fichiers d'un paquet Debian sans l'installer ?

Cette commande ne peut lister que le contenu des paquets installés,

dpkg -L PACKAGENAME

mais comment lister le contenu d'un paquet non installé, pour prévisualiser/examiner le paquet ?

0 votes

Similaire sur Ubuntu : askubuntu.com/questions/32507/

461voto

Aviose Points 8172

dpkg -c (ou --contents ) liste le contenu d'un fichier de paquetage .deb (c'est un frontal de l'application dpkg-deb .)

dpkg -c package_file.deb

Pour travailler directement avec les noms de paquets plutôt qu'avec les fichiers de paquets, vous pouvez utiliser apt-file . (Vous devrez peut-être installer le apt-file paquet d'abord).

sudo apt-file update        
apt-file list package_name

Comme indiqué dans le premier commentaire, apt-file liste le contenu des paquets de vos dépôts Apt déjà configurés. Il n'est pas important de savoir si un paquet particulier est ou non installé.

61voto

user12786 Points 454

Utilisez --contents au lieu de -L :

dpkg --contents PACKAGENAME

Lorsqu'il est utilisé de cette manière, dpkg agit comme un frontal pour dpkg-deb donc utiliser man dpkg-deb pour voir toutes les options.

Vous pouvez également utiliser un navigateur d'archives pour visualiser le contenu du paquet.

28voto

Brian Sullivan Points 101

dpkg --contents vous permettra de consulter le paquet désinstallé. Si le fichier .deb n'est pas encore sur votre système, procédez comme suit

apt-get --download-only install pkgname

Le paquet sera téléchargé dans /var/cache/apt/archives mais pas installé.

18voto

baldoz Points 171

Le meilleur moyen est de naviguer directement dans le dépôt de paquets :

http://packages.debian.org/[distro name]/all/[package name]/filelist

Beispiel:

http://packages.debian.org/wheezy/all/transmission-common/filelist

12voto

notpeter Points 1067

J'ai pris L'idée du http de @baldoz et l'a généralisé pour Ubuntu et Debian, a ajouté un petit sed et l'a emballé dans une fonction bash en une ligne :

function deb_list () { curl -s $(lsb_release -si | sed -e 's Ubuntu https://packages.ubuntu.com ' -e 's Debian https://packages.debian.org ')/$(lsb_release -sc)/all/$1/filelist | sed -n -e '/<pre>/,/<\/pre>/p' | sed -e 's/<[^>]\+>//g' -e '/^$/d'; }

Utilisation :

$ deb_list curl
/usr/bin/curl
/usr/share/doc/curl/changelog.Debian.gz
/usr/share/doc/curl/copyright
/usr/share/doc/curl/NEWS.Debian.gz
/usr/share/man/man1/curl.1.gz

Même fonction sur plusieurs lignes :

function deb_list () {
    curl -s $(lsb_release -si \
                | sed -e 's Ubuntu https://packages.ubuntu.com ' \
                      -e 's Debian https://packages.debian.org '
              )/$(lsb_release -sc)/all/$1/filelist \
      | sed -n -e '/<pre>/,/<\/pre>/p' \
      | sed -e 's/<[^>]\+>//g' -e '/^$/d';
}

Expliqué :

  1. lsb_release -si renvoie "Ubuntu" ou "Debian" remplacez cela par l'url de base https://packages.ubuntu.com o https://packages.debian.org
  2. lsb_Release -sc renvoie le nom de code (par exemple, "trusty", "sid", etc). Utilisez-le pour construire l'URL complète : https://packages.ubuntu.com/trusty/all/curl/filelist
  3. Récupérer cette URL avec curl et faire passer le html par trois commandes sed. La première capture uniquement la liste des fichiers (ce qui est entre <pre> y </pre> ) ; le deuxième supprime toutes les balises html ; le troisième supprime toutes les lignes vides.

Note : Il ne recherche pas les PPAs, les dépôts de sources apt alternatifs et ne recherche que les paquets officiels disponibles pour la version de debian/ubuntu que vous utilisez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X