Comment lister tous les fichiers de configuration d'un package déjà installé?

11

J'utilise Ubuntu 12.10 et, si possible, j'aimerais obtenir la liste des fichiers de configuration disponibles pour un paquet donné déjà installé.

Je préférerais le faire en utilisant dpkg ou apt si possible, mais aucun problème si d'autres outils tels que aptitude ou dselect sont nécessaires / recommandés.

Daniel Yuste Aroca
la source

Réponses:

16

Il n'est pas nécessaire d'utiliser autre chose que cat, si j'ai bien compris votre intention:

cat /var/lib/dpkg/info/<package>.conffiles

devrait vous donner ce que vous recherchez. Par exemple pour le paquet zsh:

% cat /var/lib/dpkg/info/zsh.conffiles
/etc/zsh/zlogin
/etc/zsh/zlogout
/etc/zsh/zprofile
/etc/zsh/zshenv
/etc/zsh/zshrc
/etc/zsh/newuser.zshrc.recommended

Concernant un cas où il n'y a pas de fichier de ce type pour un paquet donné - c'est au responsable du paquet de désigner certains fichiers comme configuration. Si cela n'a pas été fait correctement, vous devez déposer un bogue le cas échéant.

Dans de tels cas, vous avez deux options.

  1. Liste les fichiers appartenant au package qui se trouvent dans / etc /:

    dpkg -L package | grep '/etc'
    
  2. Récupérez et inspectez le package source pour savoir comment il a été compilé (ce qui devrait également vous montrer où il s'attend à ce que ses fichiers de configuration soient situés).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Recherchez la page du projet en amont pour trouver de la documentation.

Marcin Kaminski
la source
Si un paquet donné est de ne pas avoir un tel .conffiles de fichier sous ce chemin, cela signifie qu'il est pas en utilisant les fichiers de configuration?
Daniel Yuste Aroca
Pas nécessairement - il se peut qu'il y ait effectivement des fichiers de configuration utilisés par le package mais le packager n'a désigné aucun fichier comme faisant partie des fichiers de configuration de l'application packagée.
Marcin Kaminski
Le fichier .conffiles répertorie tous les fichiers de configuration qui sont livrés avec le colis et sont marqués comme tel par l'emballeur. Un qui ne semble pas automatiquement installés il y a un bug d'emballage, mais sachez que certains fichiers ( en particulier de configuration spécifiques à l' utilisateur dans les dotfiles d'un utilisateur) ne peut pas être livré avec le paquet et ne peut pas vraiment être automatiquement situé à moins que vous savez déjà ce que elles sont.
Darael
1

Prenons par exemple tester le package aptpour obtenir le fichier de configuration (s).

Il peut être difficile de comprendre ce que .conffilesvous devriez vérifier l'info donc je suggère d' utiliser greppour trouver la moindre idée.

locate *.conffiles | grep apt

/var/lib/dpkg/info/apt-config-icons.conffiles
/var/lib/dpkg/info/apt.conffiles
/var/lib/dpkg/info/aptdaemon.conffiles
/var/lib/dpkg/info/apturl-common.conffiles
/var/lib/dpkg/info/libatk-adaptor:amd64.conffiles

Et l' catun de ces en particulier si vous êtes intéressé selon la réponse de Marcin Kaminski.

Une autre astuce consiste à lire le manuel, par exemple man aptvous mènera à voir également la section où vous pouvez appeler man apt.confoù vous verrez l'emplacement du fichier de configuration pour aptdans ce cas: /etc/apt/apt.conf.

Cependant, le fichier de configuration /etc/apt/apt.confpeut ne pas exister. Soyez conscient lors de la recherche pour les fichiers de configuration.

Dans les fichiers de configuration Linux doivent être dans le /etc/répertoire. Vous pouvez utiliser dpkg-query -L your_package | grep etcpour lister tous les fichiers du package et répertoires dans le /etc/répertoire.

prosti
la source
1

Que diriez-vous dpkg -S [package-name]? Ne peux pas voir étant mentionné ici.

root@homehub:/# dpkg -S nginx

nginx-common: /usr/share/nginx/html
nginx-full: /usr/share/man/man8/nginx.8.gz
libnginx-mod-http-xslt-filter: /usr/share/doc/libnginx-mod-http-xslt-filter/copyright
nginx-common: /etc/logrotate.d/nginx
libnginx-mod-mail: /usr/share/doc/libnginx-mod-mail/changelog.gz
libnginx-mod-http-upstream-fair: /usr/share/doc/libnginx-mod-http-upstream-fair
libnginx-mod-http-auth-pam: /usr/share/doc/libnginx-mod-http-auth-pam/changelog.Debian.gz
libnginx-mod-http-image-filter: /usr/lib/nginx/modules/ngx_http_image_filter_module.so
nginx-common: /etc/nginx/snippets
libnginx-mod-mail: /usr/share/doc/libnginx-mod-mail/copyright
nginx-common: /etc/nginx/snippets/fastcgi-php.conf
libnginx-mod-http-xslt-filter: /usr/share/doc/libnginx-mod-http-xslt-filter/changelog.Debian.gz
nginx-full: /usr/share/doc/nginx-full/copyright
nginx-common: /usr/share/doc/nginx-common
nginx-common: /etc/ufw/applications.d/nginx
libnginx-mod-http-upstream-fair: /usr/share/doc/libnginx-mod-http-upstream-fair/changelog.gz
libnginx-mod-stream: /usr/share/nginx/modules-available/mod-stream.conf
nginx-common: /etc/nginx/sites-enabled
libnginx-mod-http-upstream-fair: /usr/share/doc/libnginx-mod-http-upstream-fair/copyright
libnginx-mod-http-subs-filter: /usr/share/doc/libnginx-mod-http-subs-filter/changelog.gz
libnginx-mod-http-dav-ext: /usr/share/nginx/modules-available/mod-http-dav-ext.conf
nginx-common: /etc/nginx/koi-utf
nginx-common: /etc/nginx/mime.types
nginx-common: /usr/share/vim/addons/syntax/nginx.vim
nginx-common: /usr/share/doc/nginx-common/NEWS.Debian.gz
nginx-common: /usr/share/doc/nginx-common/README.Debian
nginx-full: /usr/share/doc/nginx-full
libnginx-mod-mail: /usr/share/nginx/modules-available/mod-mail.conf
libnginx-mod-http-auth-pam: /usr/share/doc/libnginx-mod-http-auth-pam/changelog.gz
nginx: /usr/share/doc/nginx
nginx-common: /etc/nginx/win-utf
libnginx-mod-http-dav-ext: /usr/share/doc/libnginx-mod-http-dav-ext
....

Et parfois sur la structure en fonction du nom de fichier, il pourrait être bon si canalisé sur les noms de grep contenant « .conf »:

root@homehub:/# dpkg -S nginx |grep ".conf"

nginx-common: /etc/nginx/snippets/fastcgi-php.conf
libnginx-mod-stream: /usr/share/nginx/modules-available/mod-stream.conf
libnginx-mod-http-dav-ext: /usr/share/nginx/modules-available/mod-http-dav-ext.conf
libnginx-mod-mail: /usr/share/nginx/modules-available/mod-mail.conf
libnginx-mod-http-auth-pam: /usr/share/nginx/modules-available/mod-http-auth-pam.conf
nginx-common: /etc/nginx/fastcgi.conf
nginx-common: /etc/init/nginx.conf
nginx-common: /etc/nginx/conf.d
libnginx-mod-http-subs-filter: /usr/share/nginx/modules-available/mod-http-subs-filter.conf
libnginx-mod-http-geoip: /usr/share/nginx/modules-available/mod-http-geoip.conf
libnginx-mod-http-echo: /usr/share/nginx/modules-available/mod-http-echo.conf
libnginx-mod-http-upstream-fair: /usr/share/nginx/modules-available/mod-http-upstream-fair.conf
nginx-common: /etc/init/nginx.conf
libnginx-mod-http-xslt-filter: /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
nginx-common: /etc/nginx/snippets/snakeoil.conf
nginx-common: /etc/nginx/nginx.conf
libnginx-mod-http-image-filter: /usr/share/nginx/modules-available/mod-http-image-filter.conf
hrdy
la source