¿Cómo encontrar archivos en un sistema Debian no instalado o creado por dpkg?

20

He instalado algunas cosas manualmente en el pasado y me gustaría eliminar todos los archivos relacionados. Por lo tanto, necesito una forma de encontrar automáticamente todos los archivos (en / usr, por ejemplo) que no están incluidos en ninguno de los paquetes actualmente instalados en el sistema Debian. Sin embargo, también necesitaría filtrar los archivos que se crean durante la instalación del paquete (mediante scripts posteriores a la instalación de dpkg y cosas similares).

Karol
fuente
1
Consulte también esta pregunta: unix.stackexchange.com/questions/18038/…
Taha Jahangir

Respuestas:

25

Usa el cruftpaquete:

cruft es un programa para buscar en el sistema cualquier cosa que no debería estar allí, pero lo está; o para cualquier cosa que debería estar allí, pero no lo está.

Osito de peluche
fuente
4

Podrías probar algo como esto:

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 "

De esta manera obtendrá todos los archivos que están en / usr pero no cualquier archivo de paquete. Como primer disparo, esto podría ayudarte.

rems
fuente
No puedo encontrar ninguna manera de obtener -L para enumerar más de un paquete a la vez, pero puede obtener el mismo efecto degrep -h "^/usr" /var/lib/dpkg/info/*.list > dpkg-files.dat
DerfK
No hay --list-all-package-filesopcion.
Karol
@DerfK: Puede obtener -l para enumerar más de un paquete, por ejemplo así:dpkg -L `aptitude search ~i -F "%p"`
Karol
El problema con este enfoque es que hay más archivos o enlaces en / usr que los que realmente figuran en dpkg. Por ejemplo, / usr / bin / aptitude existe, probablemente creado por algún script posterior a la instalación, pero no está listado por dpkg. Entonces, supongo que lo que quiero aquí es una lista de archivos instalados o creados instalando cualquier paquete (cambiará la pregunta).
Karol
@ Karol: Otras fuentes de archivos podrían ser desvíos y alternativas. La salida está en forma de oración, pero puede ver las desviaciones dpkg-divert --listcomo raíz (generalmente se les asigna un sufijo). Las alternativas son un poco más difíciles, el formato de archivo en / var / lib / dpkg / alternative / es incómodo y update-alternativesme dice casi todo, PERO el nombre del enlace. find /usr -lname '/etc/alternatives/*'es probablemente la forma más fácil de obtenerlos.
DerfK