Come elencare tutti i file di configurazione per un pacchetto già installato?


11

Sto eseguendo Ubuntu 12.10 e, se possibile, vorrei ottenere l'elenco dei file di configurazione disponibili per un determinato pacchetto che è già installato.

Preferirei farlo usando dpkg o apt se possibile, ma nessun problema se sono necessari / consigliati altri strumenti come aptitude o dselect.

Risposte:


16

Non c'è bisogno di usare altro che cat, se ho capito bene le tue intenzioni:

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

dovrebbe darti quello che stai cercando. Ad esempio per il pacchetto 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

Per quanto riguarda un caso in cui non esiste un file simile per un determinato pacchetto, spetta al manutentore del pacchetto designare determinati file come configurazione. Se ciò non è stato fatto correttamente, dovresti presentare un bug dove appropriato.

In questi casi hai un paio di opzioni.

  1. Elenca i file appartenenti al pacchetto che si trovano in / etc /:

    dpkg -L package | grep '/etc'
    
  2. Recupera e ispeziona il pacchetto sorgente per scoprire come è stato compilato (che dovrebbe anche mostrarti dove si aspetta che si trovino i suoi file di configurazione).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Cerca la pagina del progetto a monte per trovare la documentazione.


Se un determinato pacchetto non ha un file .conffiles in questo percorso, significa che non sta usando i file di configurazione?
— Daniel Yuste Aroca,

Non necessariamente: è possibile che vi siano effettivamente dei file di configurazione utilizzati dal pacchetto, ma il packager non ha designato alcun file come parte dei file di configurazione dell'applicazione in pacchetto.
— Marcin Kaminski,

Il file .conffiles elenca tutti i file di configurazione forniti con il pacchetto e sono contrassegnati come tali dal packager. Uno installato automaticamente che non appare è un bug di packaging, ma tieni presente che alcuni file (in particolare la configurazione specifica dell'utente nei dotfile di un utente) non possono essere spediti con il pacchetto e non possono essere localizzati automaticamente se non sai già cosa loro sono.
— Darael,

1

Proviamo ad esempio il pacchetto aptper ottenere i file di configurazione.

Può essere difficile capire cosa .conffilesdovresti controllare per vedere le informazioni, quindi ti suggerisco di usare grepper trovare l'indizio.

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

E a catuno di questi in particolare se sei interessato secondo la risposta di Marcin Kaminski.

Un altro trucco è quello di leggere il manuale, per esempio, man aptvi porterà a vedere anche la sezione da cui si può chiamare man apt.confdove si trova la posizione del file di configurazione per aptin questo caso: /etc/apt/apt.conf.

Tuttavia, il file di configurazione /etc/apt/apt.confpotrebbe non esistere nemmeno. Essere consapevoli di ciò quando si cercano i file di configurazione.

In Linux i file di configurazione devono trovarsi all'interno della /etc/directory. È possibile utilizzare dpkg-query -L your_package | grep etcper elencare tutti i file e le directory dei pacchetti all'interno della /etc/directory.


1

Che ne dici di dpkg -S [nome pacchetto]? Non riesco a vederlo essere menzionato qui.

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
....

E a volte a seconda della struttura del nome file potrebbe essere utile se inviato ai nomi grep contenenti ".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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.