Como encontrar arquivos em um sistema Debian não instalado ou criado pelo dpkg?


20

Eu instalei algumas coisas manualmente no passado e gostaria de eliminar todos os arquivos relacionados. Então, eu preciso de uma maneira de encontrar automaticamente todos os arquivos (em / usr, por exemplo) que não estão incluídos em nenhum dos pacotes atualmente instalados no sistema Debian. No entanto, eu também precisaria filtrar os arquivos criados durante a instalação do pacote (por scripts de pós-instalação do dpkg e coisas semelhantes).


Respostas:


25

Use o cruftpacote:

cruft é um programa que procura no sistema qualquer coisa que não deveria estar lá, mas está; ou para qualquer coisa que deveria estar lá, mas não está.


4

Você pode tentar algo como isto:

dpkg -L --list-all-package-files | grep "^/usr" > dpkg-files.dat   **(don't know the dpkg option "--list-all-package-files", read mand dpkg)**
find /usr -type f -o -type l > all-usr-files.dat
sort dpkg-files.dat all-usr-files.dat | uniq -c | grep " 1 "

Dessa forma, você obterá todos os arquivos que estão em / usr, mas não nenhum arquivo de pacote. Como um primeiro tiro, isso pode ajudá-lo.


Não consigo encontrar nenhuma maneira de obter -L para listar mais de um pacote de cada vez, mas você pode obter o mesmo efeito de grep -h "^/usr" /var/lib/dpkg/info/*.list > dpkg-files.dat
DerfK

Não há --list-all-package-filesopção.
Karol

@ DerfK: Você pode obter -l para listar mais de um pacote, por exemplo, assim: #dpkg -L `aptitude search ~i -F "%p"`
Karol

O problema com essa abordagem é que há mais arquivos ou links no / usr do que o listado no dpkg. Por exemplo, existe / usr / bin / aptitude, provavelmente criado por algum script de pós-instalação, mas não é listado pelo dpkg. Então, acho que o que quero aqui é uma lista de arquivos instalados ou criados pela instalação de qualquer pacote (isso mudará de questão).
2119 Karol

@ Karol: Outras fontes de arquivos podem ser desvios e alternativas. A saída está na forma de sentença, mas você pode ver desvios com dpkg-divert --listcomo raiz (geralmente são fornecidos um sufixo). As alternativas são um pouco mais difíceis, o formato do arquivo em / var / lib / dpkg / alternative / é estranho e update-alternativesme diz quase tudo, menos o nome do link. find /usr -lname '/etc/alternatives/*'é provavelmente a maneira mais fácil de obtê-los.
DerfK 21/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.