2017-04-30 4 views
0

Je suis curieux de savoir comment exactement dpkg -Lnom_package fonctionne.Comment fonctionne dpkg -L nom_paquet?

Voici ce que l'homme dit:

  -L, --listfiles package-name... 
       List files installed to your system from package-name. 

Voici la sortie d'un dpkg -L bash exécuté en tant que root:

/. 
/usr 
/usr/share 
/usr/share/info 
/usr/share/menu 
/usr/share/menu/bash 
/usr/share/lintian 
/usr/share/lintian/overrides 
/usr/share/lintian/overrides/bash 
/usr/share/man 
/usr/share/man/man7 
/usr/share/man/man7/bash-builtins.7.gz 
/usr/share/man/man1 
/usr/share/man/man1/bash.1.gz 
/usr/share/man/man1/rbash.1.gz 
/usr/share/man/man1/clear_console.1.gz 
/usr/share/man/man1/bashbug.1.gz 
/usr/share/doc 
/usr/share/doc/bash 
/usr/share/doc/bash/RBASH 
/usr/share/doc/bash/changelog.Debian.gz 
/usr/share/doc/bash/copyright 
/usr/share/doc/bash/README.abs-guide 
/usr/share/doc/bash/POSIX.gz 
/usr/share/doc/bash/inputrc.arrows 
/usr/share/doc/bash/INTRO.gz 
/usr/share/doc/bash/README.Debian.gz 
/usr/share/doc/bash/NEWS.gz 
/usr/share/doc/bash/COMPAT.gz 
/usr/share/doc/bash/README.commands.gz 
/usr/share/doc/bash/README 
/usr/bin 
/usr/bin/clear_console 
/usr/bin/bashbug 
/etc 
/etc/skel 
/etc/skel/.bashrc 
/etc/skel/.bash_logout 
/etc/skel/.profile 
/etc/bash.bashrc 
/bin 
/bin/bash 
/bin/rbash 

Comment savoir que dpkg? Pourquoi n'est pas (par exemple) /root/.bashrc inclus?

+1

Pourquoi devrait-il inclure '/ root/.bashrc'? Ce n'est pas un fichier dans le paquet. C'est un fichier que l'utilisateur crée (optionnellement) manuellement. Quoi qu'il en soit, ce n'est pas une question de programmation comme requis pour Stackoverflow et donc hors sujet. Passez en revue le [aide/sur-sujet] pour quels sujets peuvent être demandés ici. – kaylum

Répondre

3

Le contenu des paquets Debian installés est stocké dans des fichiers texte au format /var/lib/dpkg/info/PACKAGENAME.list.

Par exemple:

sh# cat /var/lib/dpkg/info/bash.list 
/. 
/etc 
/etc/bash.bashrc 
/etc/skel 
/etc/skel/.profile 
/etc/skel/.bash_logout 
/etc/skel/.bashrc 
/bin 
/bin/bash 
/usr 
… 

/root/.bashrc ne sont pas inclus car il ne fait pas partie du paquet bash. Il est copié à partir de /etc/skel/.bashrc lorsque l'utilisateur est créé, mais il n'est pas remplacé si le package bash est mis à jour et n'est pas supprimé si le package est désinstallé.

+0

Donc bash l'utilise et le modifie, et c'est une fonctionnalité basique, mais elle ne fait pas partie du paquet bash même si elle est programmée pour l'utiliser? Comment cette bash.list est-elle générée en premier lieu? – shrimpdrake

+1

Tous les fichiers de '/ var/lib/dpkg/info' sont gérés par' dpkg' lorsqu'il installe, met à jour ou supprime des paquets. En ce qui concerne bashrc: Gardez à l'esprit que les autres utilisateurs ont des fichiers '.bashrc' aussi! root n'est pas spécial à cet égard, et le paquet ne peut évidemment pas inclure un bashrc pour chaque utilisateur sur le système. – duskwuff