How to reverse '-proposed' channel package upgrade?
I have an Ubuntu GNOME 16.04 with GNOME 3.18 64-bit VM, and in that VM I needed to test something in the xenial-proposed
channel so I activated it in the software-properties-gtk
, ran sudo apt-get update && sudo apt-get dist-upgrade
and installed all the upgrades from the xenial-proposed
channel as I couldn't find a way to get it just to upgrade the package I needed.
Now however I wish to downgrade all the packaged upgraded to their xenial-proposed
versions to their version in the stable/normal channels, but how can this be achieved? Can I use ppa-purge
to do this? And if so, how?
If I just disable the xenial-proposed
channel via the same means that I enabled it will the packaged installed and upgraded to their xenial-proposed
versions start to receive updates again from the stable/normal channels once the version numbers there are higher than the installed or will I receive no updates at all then until I enable the xenial-proposed
channel again?
Adapting http://www.webupd8.org/2013/11/how-to-downgrade-proposed-repository.html and https://wiki.ubuntu.com/Testing/EnableProposed, the packages installed from the xenial-proposed
repository can be downgraded by doing the following (replace xenial
with the codename of whichever release you are using):
- Disable the
xenial-proposed
repository insoftware-properties-gtk
as you have suggested. - In
/etc/apt/preferences.d
, create a file named99-downgrade-proposed
. -
Copy and paste the following lines into the file:
Package: * Pin: release a=xenial Pin-Priority: 1001 Package: * Pin: release a=xenial-updates Pin-Priority: 1001 Package: * Pin: release a=xenial-security Pin-Priority: 1001 Package: * Pin: release a=xenial-backports Pin-Priority: 1001 Package: * Pin: release a=xenial-proposed Pin-Priority: -1
Run
sudo apt update
followed bysudo apt full-upgrade
.- Delete the file by running
sudo rm /etc/apt/preferences.d/99-downgrade-proposed
.
-
Save a list of packages currently installed from the proposed suite:
aptitude -F '%p' search "?narrow(?installed, ?archive($(lsb_release -sc)-proposed))" > /path/to/proposed-packages.txt
Attention: Make sure that the resulting file size in bytes is well below 128 KiB or you’re likely going to run into issues in step 4.
Disable the proposed repository suite. If you don't know how, see How do I add the "proposed" repository? and do the reverse.
-
Update the local package index:
sudo apt-get update
-
Coerce all packages from the list from step 1 to the most recent known version for the current release:
xargs -x -r -d '\n' -a /path/to/proposed-packages.txt -- sudo apt-get install -f -t "$(lsb_release -sc)" --
After the removal of the repositories for the proposed suite and the package index update the most recent known package versions will be from updates, security, or the “bare” suite for your release depending on which other suite(s) you have enabled and what they contain.
P.S.: The above instructions are analogous to those of the removal of the backports suite and the down-grade of all its installed packages. Simply replace all instances of proposed with backports.