我将服务器从 16.04 升级到 18.04。
最后一次重启后,我重新激活了在更新期间被禁用的附加源列表。(它是 Zabbix 存储库)
然后我升级了系统,但没有通知有关新的升级。
但是安装的版本是用于 xenial 的,并且可以使用用于 bionic 的版本正常工作。(相同版本)。
当我尝试:
更新:没有可用的新版本
重新安装:无法找到包(这似乎合乎逻辑,因为我用 bionic 替换了 xenial)
手动安装bionic版本:系统认为当前版本(xenial)是最新版本
我最终删除并安装了这些软件包。
但我想知道将软件包从一个 Ubuntu 版本升级到另一个版本并避免这种情况的正确方法是什么?
答案1
存储库维护人员错误地为软件包的 Xenial 和 Bionic 版本分配了相同的版本字符串,这正是您现在面临的原因。
您应该向他们报告该问题,同时您可以删除 Xenial 版本并安装 Bionic 版本,或者如果它没有引起问题,则暂时保留 Xenial 版本(当新版本发布时,将安装 Bionic 版本)。
答案2
虽然我知道这个问题并不新鲜,但我认为它总体上仍然有效,所以我想添加一个对我有用的替代方案供参考:
您可以明确定义命令的预期版本名称apt install
。 在我的例子中(nginx=1.16.0-1~xenial
vs. nginx=1.16.0-1~bionic
),我遇到了同样的情况,Ubuntu 没有从 Xenial 包升级到 Bionic 包,因为它假设它是降级(可能与字母数字排序“x”与“b”有关?!)。 无论如何,这为我解决了这个问题:
$ dpkg -l | grep '^.i' | grep nginx
ii nginx 1.16.0-1~xenial amd64 high performance web server
$ sudo apt-get install nginx=1.16.0-1~bionic
$ dpkg -l | grep '^.i' | grep nginx
ii nginx 1.16.0-1~bionic amd64 high performance web server
希望这对任何人都有帮助。