如何扭转’-proposed’渠道包升级?
我有一个带有GNOME 3.18 64位虚拟机的Ubuntu GNOME 16.04,在那个虚拟机中我需要在xenial-proposed
频道中进行测试,所以我在software-properties-gtk
xenial-proposed
激活它,运行sudo apt-get update && sudo apt-get dist-upgrade
并安装了xenial-proposed
频道的所有升级,因为我找不到方法只是为了升级我需要的软件包。
现在我希望将所有打包升级到他们的xenial-proposed
版本降级到他们在稳定/正常渠道中的版本,但是如何实现呢? 我可以使用ppa-purge
来做到这一点吗? 如果是这样,怎么样?
如果我只是通过我启用的相同方式禁用xenial-proposed
通道,那么一旦版本号高于安装版本,安装和升级到其xenial-proposed
版本的打包将开始从稳定/正常通道再次接收更新或者在我再次启用xenial-proposed
频道之前,我是否会收到任何更新?
修改http://www.webupd8.org/2013/11/how-to-downgrade-proposed-repository.html和https://wiki.ubuntu.com/Testing/EnableProposed ,从xenial-proposed
存储库安装的软件包可以通过执行以下操作降级(使用您使用的任何版本的代号替换xenial
):
- 如您所建议,在
software-properties-gtk
禁用xenial-proposed
存储库。 - 在
/etc/apt/preferences.d
,创建一个名为99-downgrade-proposed
的文件。 -
将以下行复制并粘贴到文件中:
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
-
运行
sudo apt update
然后运行sudo apt update
sudo apt full-upgrade
。 - 通过运行
sudo rm /etc/apt/preferences.d/99-downgrade-proposed
删除该文件。
-
保存当前从建议套件中安装的软件包列表:
aptitude -F '%p' search "?narrow(?installed, ?archive($(lsb_release -sc)-proposed))" > /path/to/proposed-packages.txt
注意:确保生成的文件大小(以字节为单位)远低于128 KiB,否则您可能会在第4步中遇到问题。
-
禁用建议的存储库套件。 如果您不知道如何,请参阅如何添加“建议”存储库? 然后反过来。
-
更新本地包索引:
sudo apt-get update
-
将步骤1中列表中的所有包强制转换为当前版本的最新已知版本:
xargs -x -r -d '\n' -a /path/to/proposed-packages.txt -- sudo apt-get install -f -t "$(lsb_release -sc)" --
在删除了建议套件的存储库和软件包索引更新后,最新的已知软件包版本将来自更新 , 安全性或您的版本的“裸”套件,具体取决于您启用的其他套件以及他们包含。
PS:上述说明类似于删除后端套件和所有已安装软件包的低级版本。 只需将所有提议的实例替换为backports 。