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.