Zainstalowałem wiele pakietów z PPA i chciałbym teraz powrócić do oficjalnych wersji. Wiele umów PPA już nie istnieje /etc/apt/sources.list.d
, więc ppa-purge
nie będą nad nimi działały.
Jaki jest najprostszy sposób na to?
Możesz usunąć i ponownie zainstalować pakiety
ppa-purge
jest prawdopodobnie najlepszym wyborem na czystą ucieczkę. Wystarczy ponownie dodać PPA, z którego pochodzi pakiet, a następnie użyć go, ppa-purge
aby go zabić. Nie jestem pewien, ile zainstalowanych PPA, ale jeśli jest ich mniej niż 10, chciałbym to zrobić.
Jeśli uważasz, że ta metoda jest zbyt miękka, właśnie napisałem bash
-porn, aby pomóc zidentyfikować wersje pakietów, których źródło instalacji jest teraz dostępne tylko lokalnie /var/lib/dpkg/status
. To nie to samo, co „osierocone” pakiety.
for p in `dpkg-query --showformat='${Package} ' -W`; do
if [[ $(apt-cache policy $p | grep -Pzo "\*\*\* [^\n]+\s+100") ]]; then
echo $p;
fi;
done
Nie jestem pewien, czy jest to jeszcze idealne, ale spróbuj. Uwaga: wydrukuje tylko nazwy pakietów. Będziesz musiał ręcznie odinstalować / ponownie zainstalować każdy pakiet.
Aby to zrobić, najpierw sprawdź, co jest dostępne dla tego pakietu, uruchamiając, apt-cache policy <package>
a zobaczysz listę wersji pakietu (w tym /var/lib/dpkg/status
wersji). Znajdź najbliższy zewnętrzny i uruchom:
sudo apt-get install <package>=<version>
Może być konieczne dodanie --reinstall
po, install
ale zobacz, jak to idzie.
ppa-purge
został usunięty? Znajduje się w repozytoriach Trusty, a także w każdej innej obsługiwanej wersji .Napisałem bardziej kompletny skrypt, który rozpozna pakiety, których bieżąca wersja nie pochodzi z PPA, i mają alternatywną wersję dostępną dla PPA. Po uruchomieniu drukuje gotowe do uruchomienia polecenie, które obniży takie pakiety do ich wersji PPA.
https://gist.github.com/peci1/2d7859857fdad73ee8443f5ecd5ee5a3
źródło