답변:
패키지를 제거하고 다시 설치할 수 있습니다
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
#!/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}"