È ansible annullare tutte le modifiche apportate da “aptitude build-dep xxxxxx”, ovvero disinstallare tutte le dipendenze installate da questo comando?
Non penso che ci sia un modo automatico. I pacchetti installati tramite build-dep
vengono registrati come se fossero stati richiesti direttamente per nome.
Se sai approssimativamente quando hai eseguito aptitude build-dep
, puoi scoprire quali pacchetti sono stati installati quando hai eseguito il comando osservando i log in /var/log/aptitude*
o /var/log/apt/*
.
È ansible eseguire apt-cache showsrc PACKAGENAME | grep '^Build-depends:'
apt-cache showsrc PACKAGENAME | grep '^Build-depends:'
per elencare le dipendenze di compilazione del pacchetto. Rivedi ognuno di loro per vedere se li vuoi; segna quelli di cui non ti interessa come non installati manualmente ( apt-get markauto PACKAGENAME
) e svuota i pacchetti non richiesti ( apt-get autoremove
).
Per il futuro, consiglio vivamente di usare mk-build-deps -i
invece di aptitude build-dep
. Questo lascia un pacchetto installato nel tuo sistema, a seconda dei build-deps, che puoi facilmente disinstallare in seguito.
Ho trovato questi comandi su una domanda del Launchpad:
sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | grep Build-Depends | perl -p -e 's/(?:[\[(].+?[\])]|Build-Depends:|,|\|)//g')
Esiste anche un’alternativa basata su sed che gestisce le parentesi nei nomi dei pacchetti:
sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | sed -e '/Build-Depends/!d;s/Build-Depends: \|,\|([^)]*),*\|\[[^]]*\]//g')
Nota: sostituisci PACKAGE_NAME
con il tuo pacchetto.