我刚刚经历了升级软件包到上游版本然后决定降级的痛苦。这是通过维护人员的私有存储库完成的。在我的情况下,这一切都是为了尝试最新的systemd 233版本(尚未发布)。
关键是要理解您需要指定所有应该降级的软件包。如果您做得正确,apt将按照您的意愿执行操作。如果您漏掉了某些内容,apt会告诉您该操作将导致许多软件包被删除。为了确保安全,我们在实际执行降级操作之前使用“-s”标志进行测试。
您需要执行以下步骤:
1)列出所有升级到上游的依赖项(如果您的情况不同,请使用其他关键字):
dpkg -l|grep upstream
这将为您提供带有上游版本号的软件包列表。
2)列出每个软件包的正确稳定版本:
for i in libnss-resolve:amd64 libsystemd0:amd64 libpam-systemd:amd64 libsystemd0:i386 libudev1:amd64 libudev1:i386 systemd systemd-sysv udev; do apt-cache show $i; done|grep Version
3)双重检查一切都没问题:
apt -s --allow-downgrades --no-remove --reinstall install libnss-resolve:amd64=232-21ubuntu5 libsystemd0:amd64=232-21ubuntu5 libpam-systemd:amd64=232-21ubuntu5 libsystemd0:i386=232-21ubuntu5 libudev1:amd64=232-21ubuntu5 libudev1:i386=232-21ubuntu5 systemd=232-21ubuntu5 systemd-sysv=232-21ubuntu5 udev=232-21ubuntu5
0 to upgrade, 0 to newly install, 9 to downgrade, 0 to remove and 0 not to upgrade.
(不确定是否需要使用--reinstall,但这是我所做的)
4)去掉-s并执行。
apt --allow-downgrades --no-remove --reinstall install libnss-resolve:amd64=232-21ubuntu5 libsystemd0:amd64=232-21ubuntu5 libpam-systemd:amd64=232-21ubuntu5 libsystemd0:i386=232-21ubuntu5 libudev1:amd64=232-21ubuntu5 libudev1:i386=232-21ubuntu5 systemd=232-21ubuntu5 systemd-sysv=232-21ubuntu5 udev=232-21ubuntu5
ppa-purge
呢? - landronisynaptic
,当你选择xyz软件包时,默认情况下会选择所有依赖项。但是你也可以取消选择所有依赖项,只安装主要的软件包。之后你可以安装所有的依赖项。但是请注意,这只适用于你准备重新安装的情况。 - Registered User