Difference between "ppa-purge" and "add-apt-repository -r"?
Solution 1:
For what I understand, the difference is what they do after removing the PPA.
ppa-purge - Disables a PPA and reverts to the official packages if applicable. For example, if I added the xorg-edgers PPA and installed the Nvidia drivers, if I do a ppa-purge
on said PPA, it would not only disable the xorg-edgers PPA but also revert the NVIDIA drivers from the one in the PPA to the official ones found on the official Ubuntu repositories.
add-apt-repository -r - Will only remove the said PPA. Will not revert any packages.
The case scenarios might be:
When you want to keep a package from a PPA but want to remove the actual PPA. For example, if you wanted to add the Ubuntu Tweak Package from a PPA but then wanted to remove the PPA, you would use add-apt-repository which will leave Ubuntu Tweak installed.
-
When you want to go back to an official package and stop using a PPA that has updated/experimental packages (Like Kernel version packages, Proprietary packages...). In this cases you might want to use ppa-purge assuming your intention is to go back to the official versions. Which is the same as removing each PPA package installed and then doing:
sudo apt-get update sudo apt-get upgrade sudo apt-get install PACKAGES
For most cases, add-apt-repository should be enough to add and remove PPAs. The use of ppa-purge can only help in the small cases where you want to actually remove a package and install the official version which is not common since most user add a PPA to have something better than the one that comes with Ubuntu. Cases like kazam (From Kazam PPA), Proprietary Video drivers (From swat-x or xorg-edgers PPA), and even the Google Chrome and VirtualBox ones. And even if they remove it, it is only 2 or 3 commands to remove the current packages from the removed PPA and install the official ones.
With all of this in mind, it simply comes down to what the user wants to do about the packages related to the PPA.
Solution 2:
The apt-add-repository
manpage says this about the command:
REPOSITORY can be either a line that can be added directly to
sources.list(5), in the form ppa:<user>/<ppa-name> for adding Personal
Package Archives, or a distribution component to enable.
In the first form, REPOSITORY will just be appended to
/etc/apt/sources.list.
In the second form, ppa:<user>/<ppa-name> will be expanded to the full
deb line of the PPA and added into a new file in the
/etc/apt/sources.list.d/ directory. The GPG public key of the newly
added PPA will also be downloaded and added to apt's keyring.
In the third form, the given distribution component will be enabled for
all sources.
and:
-r, --remove Remove the specified repository
So add-apt-repository
just adds and removes lines from /etc/apt/sources.list
and /etc/apt/sources.list.d/
.
The ppa-purge
manpage says this:
NAME
ppa-purge - disables a PPA and reverts to official packages
DESCRIPTION
This script provides a bash shell script capable of automatically
downgrading all packages in a given PPA back to the ubuntu versions.
You have to run it using root privileges because of the package
manager.
So ppa-purge
will not only remove a PPA, it will also downgrade any packages back to their default versions. This is useful when testing beta or newer versions of software.