Como listar todos os arquivos de configuração para um pacote já instalado?

11

Estou executando o Ubuntu 12.10 e, se possível, gostaria de obter a lista de arquivos de configuração disponíveis para um determinado pacote que já está instalado.

Eu preferiria fazer isso usando dpkg ou apt, se possível, mas não há problema se outras ferramentas como aptitude ou dselect forem necessárias / recomendadas.

Daniel Yuste Aroca
fonte

Respostas:

16

Não há necessidade de usar outra coisa senão cat, se eu entendi sua intenção corretamente:

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

deve lhe dar o que procura. Por exemplo, para o pacote 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

Em relação a um caso em que não existe esse arquivo para um determinado pacote - cabe ao mantenedor do pacote designar determinados arquivos como configuração. Se isso não tiver sido feito corretamente, você deve registrar um erro, quando apropriado.

Nesses casos, você tem algumas opções.

  1. Listar arquivos pertencentes ao pacote que estão em / etc /:

    dpkg -L package | grep '/etc'
    
  2. Busque e inspecione o pacote de origem para descobrir como ele foi compilado (o que também deve mostrar onde ele espera que seus arquivos de configuração estejam localizados).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Consulte a página do projeto upstream para encontrar a documentação.

Marcin Kaminski
fonte
Se um determinado pacote não tiver esse arquivo .conffiles nesse caminho, significa que ele não está usando arquivos de configuração?
Daniel Yuste Aroca
Não necessariamente - pode ser que haja realmente arquivos de configuração usados ​​pelo pacote, mas o empacotador não designou nenhum arquivo como parte dos arquivos de configuração do aplicativo empacotado.
Marcin Kaminski
O arquivo .conffiles listará todos os arquivos de configuração que acompanham o pacote e são marcados como tal pelo empacotador. Um instalado automaticamente, que não aparece, apresenta um erro de empacotamento, mas lembre-se de que alguns arquivos (particularmente a configuração específica do usuário nos arquivos de pontos de um usuário) não podem ser enviados com o pacote e não podem ser localizados automaticamente, a menos que você já saiba o que eles são.
Darael
1

Vamos, por exemplo, testar o pacote aptpara obter o (s) arquivo (s) de configuração.

Pode ser complicado entender o que .conffilesvocê deve verificar para ver as informações, então sugiro usar greppara encontrar a 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

E para catqualquer um desses itens em particular, se você estiver interessado, de acordo com a resposta de Marcin Kaminski.

Outro truque é ler o manual, por exemplo, man aptvai levar você a ver também a secção de onde você pode chamar man apt.conf, onde você verá a localização do arquivo de configuração para apt, neste caso: /etc/apt/apt.conf.

No entanto, o arquivo de configuração /etc/apt/apt.confpode nem existir. Esteja ciente disso ao pesquisar os arquivos de configuração.

No Linux, os arquivos de configuração devem estar dentro do /etc/diretório Você pode usar dpkg-query -L your_package | grep etcpara listar todos os arquivos e diretórios de pacotes dentro do /etc/diretório.

prosti
fonte
1

E o dpkg -S [nome do pacote]? Não posso vê-lo sendo mencionado aqui.

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

E às vezes, dependendo da estrutura do nome do arquivo, pode ser bom se direcionar para nomes grep contendo ".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
fonte