Я установил несколько пакетов из PPA, и я хотел бы сейчас вернуться к официальным версиям. Многие из PPA больше не существуют /etc/apt/sources.list.d
, поэтому ppa-purge
не будут работать на них.
Какой самый простой способ для этого?
Ну, вы можете удалить и переустановить пакеты
ppa-purge
вероятно, все еще ваш лучший выбор для чистого побега. Просто повторно добавьте PPA, из которого пришел пакет, и затем используйте его, ppa-purge
чтобы убить. Я не уверен, сколько PPA вы установили, но если их меньше 10, я бы посмотрел на это.
Если вы считаете, что этот метод слишком мягкий, я просто написал bash
-porn, чтобы помочь определить версии пакетов, исходный код установки которых теперь существует только локально /var/lib/dpkg/status
. Это не то же самое, что «осиротевшие» пакеты.
for p in `dpkg-query --showformat='${Package} ' -W`; do
if [[ $(apt-cache policy $p | grep -Pzo "\*\*\* [^\n]+\s+100") ]]; then
echo $p;
fi;
done
Я не уверен, что это идеально, но попробуй. Обратите внимание, что он будет только распечатывать названия пакетов. Вам придется вручную удалить / переустановить каждый пакет.
Для этого сначала посмотрите, что доступно для этого пакета, apt-cache policy <package>
и вы увидите список версий пакета (включая /var/lib/dpkg/status
версию). Найдите ближайший внешний и запустите:
sudo apt-get install <package>=<version>
Возможно, вам придется добавить --reinstall
после, install
но посмотрите, как это происходит.
ppa-purge
был удален? Он находится в репозиториях для Trusty и всех остальных поддерживаемых версий .Я написал более полный скрипт, который распознает пакеты, чья текущая версия не из PPA, и у них есть альтернативная версия, доступная для PPA. После запуска он печатает готовую к запуску команду, которая понизит такие пакеты до их версий PPA.
https://gist.github.com/peci1/2d7859857fdad73ee8443f5ecd5ee5a3
источник