Làm thế nào để liệt kê tất cả các tập tin cấu hình cho một gói đã được cài đặt?


11

Tôi đang chạy Ubuntu 12.10 và, nếu có thể, tôi muốn lấy danh sách các tệp cấu hình có sẵn cho một gói nhất định đã được cài đặt.

Tôi muốn làm điều này bằng cách sử dụng dpkg hoặc apt nếu có thể, nhưng không có vấn đề gì nếu cần các công cụ khác như aptitude hoặc dselect.

Câu trả lời:


16

Không cần sử dụng bất cứ thứ gì khác ngoài cat, nếu tôi hiểu chính xác ý định của bạn:

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

sẽ cung cấp cho bạn những gì bạn đang theo đuổi. Ví dụ cho gói 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

Liên quan đến trường hợp không có tệp như vậy cho một gói nhất định - tùy thuộc vào người duy trì gói để chỉ định một số tệp nhất định làm cấu hình. Nếu điều này không được thực hiện đúng cách, bạn nên báo lỗi khi thích hợp.

Trong những trường hợp như vậy, bạn có một vài lựa chọn.

  1. Liệt kê các tệp thuộc gói nằm trong / etc /:

    dpkg -L package | grep '/etc'
    
  2. Tìm nạp và kiểm tra gói nguồn để tìm hiểu cách nó được biên dịch (cũng sẽ cho bạn thấy nơi mà nó mong đợi các tệp cấu hình của nó được đặt).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Tra cứu trang dự án ngược dòng để tìm tài liệu.


Nếu một gói nhất định không có tệp .conffiles như vậy trong đường dẫn này, điều đó có nghĩa là nó không sử dụng tệp cấu hình?
Daniel Yuste Aroca

Không nhất thiết - có thể có các tệp cấu hình thực sự được sử dụng bởi gói nhưng trình đóng gói không chỉ định bất kỳ tệp nào là một phần của tệp cấu hình của ứng dụng được đóng gói.
Marcin Kaminski

Tệp .conffiles sẽ liệt kê tất cả các tệp cấu hình đi kèm với gói và được đóng gói như vậy bởi trình đóng gói. Một tệp được cài đặt tự động không xuất hiện có lỗi đóng gói, nhưng lưu ý rằng một số tệp (cấu hình cụ thể của người dùng trong tệp chấm của người dùng) không thể gửi cùng với gói và thực sự không thể được định vị tự động trừ khi bạn đã biết những gì họ đang.
Darael

1

Ví dụ, hãy kiểm tra gói aptđể lấy (các) tệp cấu hình.

Có thể khó hiểu những gì .conffilesbạn nên kiểm tra để xem thông tin vì vậy tôi đề nghị sử dụng grepđể tìm manh mối.

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

catđặc biệt với bất kỳ điều nào trong số này nếu bạn quan tâm theo câu trả lời của Marcin Kaminski.

Một mẹo khác là đọc hướng dẫn, chẳng hạn man aptsẽ dẫn bạn đến phần XEM CSONG từ nơi bạn có thể gọi man apt.confnơi bạn sẽ thấy vị trí của tệp cấu hình apttrong trường hợp này : /etc/apt/apt.conf.

Tuy nhiên, tập tin cấu hình /etc/apt/apt.confcó thể không tồn tại. Hãy nhận biết điều đó khi tìm kiếm các tập tin cấu hình.

Trong tập tin cấu hình Linux nên ở trong /etc/thư mục. Bạn có thể sử dụng dpkg-query -L your_package | grep etcđể liệt kê tất cả các tệp và thư mục gói trong /etc/thư mục.


1

Làm thế nào về dpkg -S [tên gói]? Không thể nhìn thấy nó đang được đề cập ở đây.

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

Và đôi khi tùy thuộc vào cấu trúc tên tệp, có thể tốt nếu được chuyển sang tên grep có chứa ".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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.