Wie liste ich alle Konfigurationsdateien für ein bereits installiertes Paket auf?

11

Ich verwende Ubuntu 12.10 und möchte, wenn möglich, die Liste der Konfigurationsdateien abrufen, die für ein bestimmtes Paket verfügbar sind, das bereits installiert ist.

Ich würde es vorziehen, dies mit dpkg oder apt zu tun, wenn möglich, aber kein Problem, wenn andere Tools wie aptitude oder dselect benötigt / empfohlen werden.

Daniel Yuste Aroca
quelle

Antworten:

16

Sie müssen nichts anderes verwenden, als catwenn ich Ihre Absicht richtig verstanden habe:

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

sollte dir geben, wonach du suchst. Zum Beispiel für das Paket 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

In einem Fall, in dem es für ein bestimmtes Paket keine solche Datei gibt, muss der Paketbetreuer bestimmte Dateien als Konfiguration festlegen. Wenn dies nicht richtig gemacht wurde, sollten Sie gegebenenfalls einen Fehler melden.

In solchen Fällen haben Sie mehrere Möglichkeiten.

  1. Listen Sie die zum Paket gehörenden Dateien auf, die sich in / etc / befinden:

    dpkg -L package | grep '/etc'
    
  2. Rufen Sie das Quellpaket ab und überprüfen Sie es, um herauszufinden, wie es kompiliert wurde (was Ihnen auch zeigen sollte, wo sich die Konfigurationsdateien befinden sollen).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Suchen Sie auf der Upstream-Projektseite nach Dokumentation.

Marcin Kaminski
quelle
Wenn ein bestimmtes Paket keine solche Datei .conffiles unter diesem Pfad hat, bedeutet dies, dass keine Konfigurationsdateien verwendet werden?
Daniel Yuste Aroca
Nicht unbedingt - es kann sein, dass tatsächlich Konfigurationsdateien vom Paket verwendet werden, der Packager jedoch keine Dateien als Teil der Konfigurationsdateien der gepackten Anwendung festgelegt hat.
Marcin Kaminski
Die .conffiles Datei listet alle Konfigurationsdateien , dass Schiff mit dem Paket und sind als solche durch den Verpacker gekennzeichnet. Bei einer automatisch installierten Datei, die nicht angezeigt wird, liegt ein Verpackungsfehler vor. Beachten Sie jedoch, dass einige Dateien (insbesondere die benutzerspezifische Konfiguration in den Punktedateien eines Benutzers) nicht mit dem Paket geliefert werden können und nur dann automatisch gefunden werden können, wenn Sie bereits wissen, was Sie sind.
Darael
1

Testen wir zum Beispiel das Paket apt, um die Konfigurationsdatei (en) zu erhalten.

Es kann schwierig sein zu verstehen, was .conffilesSie überprüfen sollten, um die Informationen zu sehen. Ich empfehle grepdaher, den Hinweis zu verwenden.

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

Und zu catall diesen insbesondere, wenn Sie nach Marcins Kaminski-Antwort interessiert sind.

Ein weiterer Trick besteht darin, das Handbuch zu lesen. So gelangen man aptSie beispielsweise zum Abschnitt SIEHE AUCH, in dem Sie anrufen können, man apt.confwo Sie aptin diesem Fall den Speicherort der Konfigurationsdatei sehen : /etc/apt/apt.conf.

Die Konfigurationsdatei ist jedoch /etc/apt/apt.confmöglicherweise nicht einmal vorhanden. Beachten Sie dies bei der Suche nach den Konfigurationsdateien.

Unter Linux sollten sich Konfigurationsdateien im /etc/Verzeichnis befinden. Sie können verwenden, dpkg-query -L your_package | grep etcum alle Paketdateien und Verzeichnisse im Verzeichnis aufzulisten /etc/.

Prosti
quelle
1

Wie wäre es mit dpkg -S [Paketname]? Ich kann nicht sehen, dass es hier erwähnt wird.

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

Und manchmal, abhängig von der Dateinamenstruktur, kann es gut sein, wenn Grep-Namen mit ".conf" weitergeleitet werden:

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
quelle