จะแสดงรายการไฟล์กำหนดค่าทั้งหมดสำหรับแพ็คเกจที่ติดตั้งไว้แล้วได้อย่างไร


11

ฉันกำลังใช้งาน Ubuntu 12.10 และถ้าเป็นไปได้ฉันต้องการรับรายการไฟล์การกำหนดค่าสำหรับแพ็คเกจที่กำหนดซึ่งติดตั้งไว้แล้ว

ฉันต้องการทำเช่นนี้โดยใช้ dpkg หรือฉลาดถ้าเป็นไปได้ แต่ไม่มีปัญหาหากเครื่องมืออื่น ๆ เช่นความถนัดหรือ dselect มีความจำเป็น / แนะนำ

คำตอบ:


16

ไม่จำเป็นต้องใช้สิ่งอื่นนอกจากcatถ้าฉันเข้าใจความตั้งใจของคุณอย่างถูกต้อง:

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

ควรให้สิ่งที่คุณต้องการ ตัวอย่างเช่น package 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

เกี่ยวกับกรณีที่ไม่มีไฟล์ดังกล่าวสำหรับแพ็คเกจที่กำหนด - ขึ้นอยู่กับผู้ดูแลแพ็คเกจเพื่อกำหนดไฟล์บางไฟล์เป็นการกำหนดค่า หากยังไม่ได้ดำเนินการอย่างถูกต้องคุณควรยื่นข้อบกพร่องตามความเหมาะสม

ในกรณีเช่นนี้คุณมีสองทางเลือก

  1. รายการไฟล์ที่เป็นของแพ็คเกจที่อยู่ใน / etc /:

    dpkg -L package | grep '/etc'
    
  2. ดึงข้อมูลและตรวจสอบซอร์สแพ็กเกจเพื่อค้นหาวิธีรวบรวม (ซึ่งควรแสดงให้คุณเห็นว่าไฟล์นั้นจะอยู่ที่ใด)

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. ค้นหาหน้าโครงการต้นน้ำเพื่อค้นหาเอกสาร


หากแพ็กเกจที่กำหนดไม่มีไฟล์. conffiles ในพา ธ นี้หมายความว่าไม่ได้ใช้ไฟล์คอนฟิกูเรชันหรือไม่?
Daniel Yuste Aroca

ไม่จำเป็น - อาจเป็นเพราะมีไฟล์การกำหนดค่าที่ใช้จริงโดยแพ็คเกจ แต่ผู้จัดทำไม่ได้กำหนดไฟล์ใด ๆ ซึ่งเป็นส่วนหนึ่งของไฟล์กำหนดค่าของแอปพลิเคชันที่จัดทำแพคเกจ
Marcin Kaminski

ไฟล์. container จะแสดงรายการไฟล์การกำหนดค่าทั้งหมดที่จัดส่งมาพร้อมกับแพ็คเกจและทำเครื่องหมายโดยผู้จัดทำ หนึ่งที่ติดตั้งโดยอัตโนมัติที่ไม่ปรากฏว่ามีข้อผิดพลาดบรรจุภัณฑ์ แต่โปรดทราบว่าไฟล์บางไฟล์ (โดยเฉพาะการกำหนดค่าเฉพาะผู้ใช้ใน dotfiles ของผู้ใช้) ไม่สามารถจัดส่งพร้อมกับแพคเกจและไม่สามารถอยู่ได้โดยอัตโนมัติ พวกเขาคือ.
Darael

1

ตัวอย่างเช่นลองทดสอบแพ็คเกจaptเพื่อรับไฟล์กำหนดค่า

อาจเป็นเรื่องยากที่จะเข้าใจสิ่งที่.conffilesคุณควรตรวจสอบเพื่อดูข้อมูลดังนั้นฉันแนะนำให้ใช้grepเพื่อค้นหาเบาะแส

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สิ่งเหล่านี้โดยเฉพาะหากคุณสนใจคำตอบของมาร์คินคามินสกี้

เคล็ดลับก็คือการอ่านคู่มือการใช้งานตัวอย่างเช่นman aptจะนำคุณไปยังเห็นส่วนจากการที่คุณสามารถโทรหาman apt.confที่คุณจะเห็นสถานที่ตั้งของไฟล์ config สำหรับในกรณีนี้:apt/etc/apt/apt.conf

อย่างไรก็ตามไฟล์กำหนดค่า/etc/apt/apt.confอาจไม่มีอยู่จริง ระวังเมื่อทำการค้นหาไฟล์ปรับแต่ง

ในไฟล์กำหนดค่า Linux ควรอยู่ใน/etc/ไดเรกทอรี คุณสามารถใช้dpkg-query -L your_package | grep etcเพื่อแสดงรายการไฟล์และไดเรกทอรีทั้งหมดใน/etc/ไดเรกทอรี


1

แล้ว dpkg -S [ชื่อแพ็คเกจ] ล่ะ? ไม่เห็นว่ามันถูกกล่าวถึงที่นี่

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

และบางครั้งขึ้นอยู่กับโครงสร้างชื่อไฟล์มันอาจจะดีถ้าส่งออกไปยังชื่อ grep ที่มี ".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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.