Bagaimana cara mendaftar semua file konfigurasi untuk paket yang sudah diinstal?

11

Saya menjalankan Ubuntu 12.10 dan, jika mungkin, saya ingin mendapatkan daftar file konfigurasi yang tersedia untuk paket tertentu yang sudah diinstal.

Saya lebih suka melakukan ini menggunakan dpkg atau apt jika memungkinkan, tetapi tidak ada masalah jika alat lain seperti aptitude atau dselect diperlukan / direkomendasikan.

Daniel Yuste Aroca
sumber

Jawaban:

16

Tidak perlu menggunakan apa pun selain cat, jika saya memahami maksud Anda dengan benar:

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

harus memberi Anda apa yang Anda cari. Misalnya untuk 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

Mengenai kasus di mana tidak ada file seperti itu untuk paket yang diberikan - terserah pengelola paket untuk menunjuk file tertentu sebagai konfigurasi. Jika ini belum dilakukan dengan benar, Anda harus mengajukan bug yang sesuai.

Dalam kasus seperti itu, Anda memiliki beberapa opsi.

  1. Daftar file milik paket yang ada di / etc /:

    dpkg -L package | grep '/etc'
    
  2. Ambil dan periksa paket sumber untuk mengetahui bagaimana itu dikompilasi (yang juga akan menunjukkan kepada Anda di mana ia mengharapkan file konfigurasinya akan ditemukan).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Cari halaman proyek hulu untuk menemukan dokumentasi.

Marcin Kaminski
sumber
Jika paket yang diberikan tidak memiliki file .conffiles di bawah jalur ini, apakah ini berarti tidak menggunakan file konfigurasi?
Daniel Yuste Aroca
Tidak harus - mungkin memang ada file konfigurasi yang digunakan oleh paket tetapi pemaket tidak menunjuk file apa pun sebagai bagian dari file konfigurasi aplikasi paket.
Marcin Kaminski
File .conffiles akan mencantumkan semua file konfigurasi yang dikirimkan bersama paket dan ditandai oleh packager. Yang diinstal secara otomatis yang tidak muncul ada bug pengemasan, tetapi perlu diketahui bahwa beberapa file (terutama konfigurasi khusus pengguna dalam dotfile pengguna) tidak dapat dikirimkan bersama paket dan tidak dapat benar-benar ditemukan secara otomatis kecuali Anda sudah tahu apa mereka.
Darael
1

Sebagai contoh, mari kita uji paket aptuntuk mendapatkan file konfigurasi.

Mungkin sulit untuk memahami apa .conffilesyang harus Anda periksa untuk melihat info, jadi saya sarankan menggunakan grepuntuk menemukan petunjuk.

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

Dan untuk catsemua ini khususnya jika Anda tertarik menurut jawaban Kaminski Marcin.

Trik lain adalah dengan membaca manual, misalnya man aptakan membawa Anda ke LIHAT JUGA bagian dari mana Anda dapat menghubungi man apt.confdi mana Anda akan melihat lokasi file konfigurasi untuk aptdalam kasus ini: /etc/apt/apt.conf.

Namun, file konfigurasi /etc/apt/apt.confbahkan mungkin tidak ada. Ketahuilah saat mencari file konfigurasi.

Di Linux, file konfigurasi harus berada di dalam /etc/direktori. Anda dapat menggunakan dpkg-query -L your_package | grep etcuntuk mendaftar semua file paket dan direktori di dalam /etc/direktori.

prosti
sumber
1

Bagaimana dengan dpkg -S [nama-paket]? Tidak bisa melihatnya disebutkan di sini.

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

Dan kadang-kadang tergantung pada struktur nama file itu mungkin baik jika disalurkan ke grep nama yang mengandung ".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
sumber