Para listar arquivos pertencentes a um pacote, execute
$ dpkg -L packagename
Nota: geralmente não inclui arquivos de configuração.
Para encontrar o pacote ao qual um arquivo pertence, execute
$ dpkg -S /path/to/file
Não tenho certeza se é possível, mas se for, como posso encontrar todos os arquivos relacionados a um software? Por exemplo, existe alguma maneira de encontrar todos os arquivos que gedit
precisa e usa para trabalhar?
Esse comando / técnica coleta arquivos como /usr/share/gtksourceview-3.0/styles/oblivion.xml
, que não é dedicado apenas a um determinado software ou pertencente a um diferente?
Para listar arquivos pertencentes a um pacote, execute
$ dpkg -L packagename
Nota: geralmente não inclui arquivos de configuração.
Para encontrar o pacote ao qual um arquivo pertence, execute
$ dpkg -S /path/to/file
Este é um problema não trivial, receio. Algumas abordagens que podem ajudá-lo:
Você pode encontrar todos os arquivos instalados por um pacote específico procurando em /var/lib/dpkg/info/gedit.list
.
Você pode encontrar todos os outros pacotes dos quais gedit
depende executando apt-cache depends gedit
. (Por outro lado, você pode encontrar todos os pacotes que dependem de gedit
com apt-cache rdepends gedit
). Tenha em mente que estas funções não são recursivas - para gedit
executar com sucesso requer muito do seu sistema - por exemplo, a biblioteca C, o sistema gráfico X, o barramento de mensagens do sistema dbus ...
Você pode descobrir quais arquivos de biblioteca um executável requer em tempo de execução executando ldd $(which gedit)
. ( which gedit
retorna o caminho para a execução executável real quando você executa gedit
, neste caso /usr/bin/gedit
).
Você pode descobrir quais arquivos um determinado processo tem (atualmente) aberto executando lsof -c gedit
. (O programa pode carregar arquivos, por exemplo, ícones na memória na inicialização e fechar seus descritores de arquivo, que não serão exibidos em tal lista).