ฉันกำลังใช้งาน Ubuntu 12.10 และถ้าเป็นไปได้ฉันต้องการรับรายการไฟล์การกำหนดค่าสำหรับแพ็คเกจที่กำหนดซึ่งติดตั้งไว้แล้ว
ฉันต้องการทำเช่นนี้โดยใช้ dpkg หรือฉลาดถ้าเป็นไปได้ แต่ไม่มีปัญหาหากเครื่องมืออื่น ๆ เช่นความถนัดหรือ dselect มีความจำเป็น / แนะนำ
ฉันกำลังใช้งาน Ubuntu 12.10 และถ้าเป็นไปได้ฉันต้องการรับรายการไฟล์การกำหนดค่าสำหรับแพ็คเกจที่กำหนดซึ่งติดตั้งไว้แล้ว
ฉันต้องการทำเช่นนี้โดยใช้ dpkg หรือฉลาดถ้าเป็นไปได้ แต่ไม่มีปัญหาหากเครื่องมืออื่น ๆ เช่นความถนัดหรือ dselect มีความจำเป็น / แนะนำ
คำตอบ:
ไม่จำเป็นต้องใช้สิ่งอื่นนอกจาก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
เกี่ยวกับกรณีที่ไม่มีไฟล์ดังกล่าวสำหรับแพ็คเกจที่กำหนด - ขึ้นอยู่กับผู้ดูแลแพ็คเกจเพื่อกำหนดไฟล์บางไฟล์เป็นการกำหนดค่า หากยังไม่ได้ดำเนินการอย่างถูกต้องคุณควรยื่นข้อบกพร่องตามความเหมาะสม
ในกรณีเช่นนี้คุณมีสองทางเลือก
รายการไฟล์ที่เป็นของแพ็คเกจที่อยู่ใน / etc /:
dpkg -L package | grep '/etc'
ดึงข้อมูลและตรวจสอบซอร์สแพ็กเกจเพื่อค้นหาวิธีรวบรวม (ซึ่งควรแสดงให้คุณเห็นว่าไฟล์นั้นจะอยู่ที่ใด)
apt-get source package
less package-x.y.z/debian/rules
ค้นหาหน้าโครงการต้นน้ำเพื่อค้นหาเอกสาร
ตัวอย่างเช่นลองทดสอบแพ็คเกจ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/
ไดเรกทอรี
แล้ว 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