Yanıtlar:
Paketleri kaldırabilir ve yeniden yükleyebilirsiniz
ppa-purge
temiz bir kaçış için muhtemelen en iyi bahistir. Paketin geldiği PPA'yı tekrar ekleyin ve sonra ppa-purge
öldürmek için kullanın. Ben yüklediğiniz kaç PPA'lar emin değilim ama 10 daha az ise, ben istiyorum bunu yaparken bakıyor.
Bu yöntemin çok yumuşak olduğunu düşünüyorsanız bash
, yükleme kaynağı şu anda yalnızca yerel olarak bulunan paket sürümlerini tanımlamaya yardımcı olmak için biraz -porn yazdım /var/lib/dpkg/status
. Bu "artık" paketlerle aynı değildir.
for p in `dpkg-query --showformat='${Package} ' -W`; do
if [[ $(apt-cache policy $p | grep -Pzo "\*\*\* [^\n]+\s+100") ]]; then
echo $p;
fi;
done
Bunun mükemmel olup olmadığından emin değilim ama bir deneyin. Sadece paketlerin adlarını yazdıracağını unutmayın. Her paketi manuel olarak kaldırmanız / yeniden yüklemeniz gerekecek.
Bunu yapmak için, önce çalıştırarak o paket için nelerin mevcut olduğuna apt-cache policy <package>
bakın ve paket sürümlerinin ( /var/lib/dpkg/status
sürüm dahil ) bir listesini göreceksiniz . En yakın harici olanı bulun ve çalıştırın:
sudo apt-get install <package>=<version>
Sonra bir eklemeniz gerekebilir --reinstall
, install
ancak nasıl gittiğini görün.
ppa-purge
kaldırıldı? Trusty ve desteklenen tüm diğer sürümlerin depolarında bulunuyor .
Mevcut sürümü bir PPA'dan olmayan paketleri tanıyacak daha eksiksiz bir komut dosyası yazdım ve alternatif bir PPA mevcut sürümü var. Çalıştıktan sonra, bu paketleri PPA sürümlerine indirecek çalışmaya hazır bir komut yazdırır.
https://gist.github.com/peci1/2d7859857fdad73ee8443f5ecd5ee5a3
#!/usr/bin/env bash
# BSD 3-clause license, copyright Martin Pecka @ 2019
# This script outputs a command that will revert all packages from non-PPA versions to their latest PPA version.
# This may be handy i.e. for finding packages for which you installed a newer version from a .deb file, or after
# incompletely removing a PPA.
export LC_ALL=C
command=""
for p in `dpkg-query --showformat='${Package} ' -W`; do
if [[ $(apt-cache policy $p | grep -Pzo "\*\*\* [^\n]+\s+100") ]]; then
versions=$(apt-cache policy $p | tr "\n" "\r" | grep -Po '(?<=\r )[ *]{3} [^\r]+ [0-9]+\r\s+[0-9]+' | sed 's/ [0-9]\+\r\s\+\([0-9]\+\)/ \1/g' | tr "\r" "\n")
installable_versions=$(echo "${versions}" | grep -v " 100$")
version_to_install=$(echo "${installable_versions}" | head -n1 | grep -Po "\s+\K.*(?= [0-9]+$)")
if [[ ! -z "${version_to_install}" ]]; then
echo "${p}=${version_to_install}"
command="${command} ${p}=${version_to_install}"
else
echo "${p}: no PPA version"
fi
fi;
done
echo "To revert packages to their latest PPA version, call the following command as root. Please, carefully go through the list of changes apt-get will present to you!"
echo "apt-get install ${command}"