Vorrei ottenere un elenco di tutti i file nel mio sistema Gentoo Linux che non sono stati installati dal gestore pacchetti (Portage). Questo perché voglio mantenere il mio sistema il più pulito possibile, rimuovendo tutti i file inutili in giro.
Lascia che ti dica cosa ho provato fino ad ora. Innanzitutto, generi l'elenco di tutti i file che appartengono ad alcuni pacchetti tracciati da Portage:
equery files "*" | sort | uniq > portage.txt
Quindi generi l'elenco di tutti i file sul mio sistema, ad eccezione di quelli che non mi interessano:
find / \( -path /dev -o -path /proc -o -path /sys -o -path /media \
-o -path /mnt -o -path /usr/portage -o -path /var/db/pkg \
-o -path /var/www/localhost/htdocs -o -path /lib64/modules \
-o -path /usr/src -o -path /var/cache -o -path /home \
-o -path /root -o -path /run -o -path /var/run -o -path /var/tmp \
-o -path /var/log -o -path /tmp -o -path /etc/config-archive \
-o -path /usr/local/portage -o -path /boot \) -prune \
-o -type f | sort | uniq > all.txt
Infine, ottengo l'elenco di tutti i file che non sono monitorati da Portage:
comm -13 portage.txt all.txt > extra.txt
Alcune statistiche:
wc -l portage.txt all.txt extra.txt
127724 portage.txt
78371 all.txt
8438 extra.txt
Come vedi ho ancora più di otto mila file extra. Vorrei ridurre quel numero, al fine di concentrarmi maggiormente sui file che devono davvero essere eliminati.
Ho notato che extra.txt
ci sono migliaia di file in un piccolo numero di directory, come /usr/lib64/gcc
, /usr/lib64/python2.7
e /usr/lib64/python3.2
. Il /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.3/crtbegin.o
file, ad esempio, non è presente portage.txt
perché, al suo posto, esiste /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/crtbegin.o
. Sul mio sistema /usr/lib
è presente un collegamento simbolico a /usr/lib64
. Quindi sembra che devo gestire correttamente i collegamenti simbolici per ottenere risultati migliori. Forse aggiungendo portage.txt
tutti i file che indicano. Non so davvero come farlo.
Inoltre, perché portage.txt
è più grande di all.txt
? Non dovrebbe essere il contrario poiché i file tracciati da Portage sono un sottoinsieme di tutti i file nel mio sistema?
Infine, sto dimenticando qualsiasi altra posizione nel find
comando che dovrebbe essere esclusa?