Можно ли отменить все изменения, сделанные «aptitude build-dep xxxxxx», т.е. удалить все зависимости, установленные этой командой?
Я не думаю, что есть автоматический путь. Пакеты, установленные через build-dep
, записываются так же, как если бы они были запрошены напрямую по имени.
Если вы приблизительно знаете, когда вы запустили aptitude build-dep
, вы можете узнать, какие пакеты были установлены при запуске команды, просмотрев журналы в /var/log/aptitude*
или /var/log/apt/*
.
Вы можете запустить apt-cache showsrc PACKAGENAME | grep '^Build-depends:'
, чтобы получить список зависимостей сборки пакета. Просмотрите каждый из них, чтобы увидеть, если вы хотите их; пометьте те, которые вам не нужны, как не установленные вручную (apt-get markauto PACKAGENAME
), и сбросьте ненужные пакеты (apt-get autoremove
).
В будущем я настоятельно рекомендую использовать mk-build-deps -i
вместо aptitude build-dep
. Это оставляет пакет установленным в вашей системе, в зависимости от сборки, который вы можете легко удалить позже.
Я нашел эти команды в вопросе Launchpad :
sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | grep Build-Depends | perl -p -e 's/(?:[\[(].+?[\])]|Build-Depends:|,|\|)//g')
Существует также альтернатива, основанная на sed, которая справляется со скобками в именах пакетов:
sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | sed -e '/Build-Depends/!d;s/Build-Depends: \|,\|([^)]*),*\|\[[^]]*\]//g')
[ 117] Примечание. Замените PACKAGE_NAME
вашим собственным пакетом.