Come trovare i file in un sistema Debian non installato o creato da dpkg?


20

Ho installato alcune cose manualmente in passato e vorrei eliminare tutti i file correlati. Quindi, ho bisogno di un modo per trovare automaticamente tutti i file (in / usr, per esempio) che non sono inclusi in nessuno dei pacchetti attualmente installati sul sistema Debian. Tuttavia, avrei anche bisogno di filtrare i file creati durante l'installazione del pacchetto (tramite script post-installazione di dpkg e cose simili).


Risposte:


25

Usa il cruftpacchetto:

cruft è un programma per cercare nel sistema tutto ciò che non dovrebbe essere lì, ma lo è; o per tutto ciò che dovrebbe essere lì, ma non lo è.


4

Potresti provare qualcosa del genere:

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 "

In questo modo otterrai tutti i file che sono in / usr ma non alcun file di pacchetto. Come primo colpo questo potrebbe aiutarti.


Non riesco a trovare un modo per ottenere -L per elencare più di un pacchetto alla volta, ma puoi ottenere lo stesso effetto dagrep -h "^/usr" /var/lib/dpkg/info/*.list > dpkg-files.dat
DerfK

Non c'è --list-all-package-filesopzione.
Karol,

@DerfK: è possibile ottenere -l per elencare più di un pacchetto, ad esempio in questo modo:dpkg -L `aptitude search ~i -F "%p"`
Karol

Il problema con questo approccio è che ci sono più file o collegamenti in / usr di quelli effettivamente elencati da dpkg. Ad esempio, esiste / usr / bin / aptitude, probabilmente creato da alcuni script post-installazione, ma non è elencato da dpkg. Quindi, immagino che quello che voglio qui sia un elenco di file installati o creati installando qualsiasi pacchetto (cambierà domanda).
Karol,

@Karol: Altre fonti di file potrebbero essere diversioni e alternative. L'output è in forma di frase ma puoi vedere le deviazioni con dpkg-divert --listcome root (di solito viene dato un suffisso). Le alternative sono un po 'più difficili, il formato del file in / var / lib / dpkg / alternatives / è scomodo e update-alternativesmi dice praticamente tutto, MA il nome del collegamento. find /usr -lname '/etc/alternatives/*'è probabilmente il modo più semplice per ottenerli.
DerfK,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.