Ubuntu – How to revert all packages to their official versions

ppapurge

I've installed a number of packages from PPAs, and I would like to revert to official versions now. Many of the PPAs no longer exist in /etc/apt/sources.list.d, so ppa-purge will not work on them.

What is the most straight-forward way for that?

Best Answer

  • Well you can remove and reinstall the packages

    ppa-purge is probably still your best bet for a clean escape. Just re-adding the PPA the package came from and then using ppa-purge to kill it. I'm not sure how many PPAs you have installed but if it's fewer than 10, I'd be looking at doing this.

    If you think that method is too soft I've just written some bash-porn to help identify package versions whose installation source now only exists locally in /var/lib/dpkg/status. This is not the same as "orphaned" packages.

    for p in `dpkg-query --showformat='${Package} ' -W`; do
        if [[ $(apt-cache policy $p | grep -Pzo "\*\*\* [^\n]+\s+100") ]]; then
            echo $p;
        fi;
    done
    

    I'm not sure if this is perfect yet but give it a go. Note it's only going to print out the names of the packages. You're going to have to manually uninstall/reinstall each package.

    To do that, first look at what is available for that package by running apt-cache policy <package> and you'll see a list of package versions (including the /var/lib/dpkg/status version). Find the nearest external one and run:

    sudo apt-get install <package>=<version>
    

    You might need to add a --reinstall after the install but see how it goes.