¿Cómo enumerar todos los archivos de configuración para un paquete ya instalado?

11

Estoy ejecutando Ubuntu 12.10 y, si es posible, me gustaría obtener la lista de archivos de configuración disponibles para un paquete dado que ya está instalado.

Preferiría hacer esto usando dpkg o apt si es posible, pero no hay problema si se necesitan / recomiendan otras herramientas como aptitude o dselect.

Daniel Yuste Aroca
fuente

Respuestas:

16

No hay necesidad de usar otra cosa que cat, si entendí tu intención correctamente:

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

debería darte lo que buscas. Por ejemplo para el paquete 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

En cuanto a un caso en el que no existe dicho archivo para un paquete dado, depende del responsable del paquete designar ciertos archivos como configuración. Si esto no se ha hecho correctamente, debe presentar un error cuando corresponda.

En tales casos, tiene un par de opciones.

  1. Lista de archivos que pertenecen al paquete que están en / etc /:

    dpkg -L package | grep '/etc'
    
  2. Obtenga e inspeccione el paquete fuente para averiguar cómo se compiló (que también debería mostrarle dónde espera que se ubiquen sus archivos de configuración).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Busque la página del proyecto aguas arriba para encontrar documentación.

Marcin Kaminski
fuente
Si un paquete dado no tiene ese archivo .conffiles bajo esta ruta, ¿significa que no está usando archivos de configuración?
Daniel Yuste Aroca
No necesariamente: puede ser que el paquete realmente use archivos de configuración, pero el empaquetador no designó ningún archivo como parte de los archivos de configuración de la aplicación empaquetada.
Marcin Kaminski el
El archivo .conffiles enumerará todos los archivos de configuración que se envían con el paquete y están marcados como tales por el empaquetador. Uno que se instala automáticamente y que no aparece allí es un error de empaquetado, pero tenga en cuenta que algunos archivos (particularmente la configuración específica del usuario en los archivos de puntos de un usuario) no pueden enviarse con el paquete y realmente no pueden ubicarse automáticamente a menos que ya sepa qué son.
Darael
1

Probemos, por ejemplo, el paquete aptpara obtener los archivos de configuración.

Puede ser complicado entender lo .conffilesque debe verificar para ver la información, por lo que sugiero usar greppara encontrar la pista.

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

Y a catcualquiera de estos en particular si está interesado según la respuesta Kaminski de Marcin.

Otro truco es leer el manual, por ejemplo, man aptle llevará a ver también la sección desde donde se puede llamar man apt.confdonde verá la ubicación del archivo de configuración para aptque en este caso: /etc/apt/apt.conf.

Sin embargo, el archivo de configuración /etc/apt/apt.confpuede incluso no existir. Tenga en cuenta eso cuando busque los archivos de configuración.

En Linux, los archivos de configuración deben estar dentro del /etc/directorio. Puede usar dpkg-query -L your_package | grep etcpara enumerar todos los archivos y directorios de paquetes dentro del /etc/directorio.

prosti
fuente
1

¿Qué tal dpkg -S [nombre-paquete]? No puedo ver que se mencione aquí.

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

Y a veces, dependiendo de la estructura del nombre de archivo, puede ser bueno si se canaliza a nombres grep que contienen ".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
fuente