Apt:升级至 18.04 / Bionic 后,无法升级软件包,系统仍显示 16.04 / Xenial 源

Apt:升级至 18.04 / Bionic 后,无法升级软件包,系统仍显示 16.04 / Xenial 源

我正在运行一个最近从 16.04 / Xenial 升级到 18.04 / Bionic 的服务器。

在升级过程中,当系统询问我是否要删除过时的软件包时,我根本没有机会说明我的意图,因为当我查看列表时(我直接输入服务器,而不是使用 SSH),键盘和我在升级过程中的状态决定分道扬镳。我无法返回任何菜单,因此我只能重新启动,希望 18.04 能够出现。看起来确实如此(当您登录时,它会显示“欢迎使用 Ubuntu 18.04.5 LTS”),至于服务器需要做的事情,它仍在做。但 apt 仍在寻找 Xenial 更新,而不是 Bionic 更新。

(我之前问过这个问题Apt 升级错误:distro-info-data 破坏了 distro-info关于 distro-info-data 破坏 distro-info,但这似乎只是这个更大问题的一个症状。)

运行grep "^deb\ " -r /etc/apt/ --include=*.list产生:

/etc/apt/sources.list.d/certbot-ubuntu-certbot-xenial.list:deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main
/etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list:deb http://ppa.launchpad.net/ondrej/php/ubuntu xenial main
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial main restricted
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial universe
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial-updates universe
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial multiverse
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
/etc/apt/sources.list:deb http://ca.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu xenial-security main restricted
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu xenial-security universe
/etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu xenial-security multiverse

我可以将什么放入 apt 中以使其看起来像 Bionic 存储库而不是 Xenial 存储库?

答案1

基本上,我遵循了这里给出的答案:https://askubuntu.com/a/1230743/870100

只需将 3 个文件中的“xenial”替换为“bionic”,执行 apt update / upgrade / dist-upgrade / autoremove / autoclean 循环,然后重新启动,奇迹般地一切正常。即使 php 现在也位于正确的 18.04 软件包中,尽管我没有费心更改 certbot 或 ondrej 的列表文件名。

sudo sed -i "s/xenial/bionic/" /etc/apt/sources.list.d/certbot-ubuntu-xenial.list
sudo sed -i "s/xenial/bionic/" /etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list
sudo sed -i "s/xenial/bionic/" /etc/apt/sources.list
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo shutdown -r now

希望两年后转向 Focal 时不必再重新考虑这个问题。我曾一度想快速连续地从 Xenial -> Bionic -> Focal 过渡,但现在我认为,先解决下一个 LTS 中的问题,然后再转向下一个 LTS,这样会更有意义,因为这样会引入更多麻烦。

相关内容