这个问题发生在我想要在服务器上使用apt-get update命令的时候。众所周知,apt-get update命令是一个非常重要的命令,可以帮助我们获取最新的可用软件。如果我们不能使用此命令,则意味着我们无法更新系统并安装一些新软件。这非常糟糕,因为计算机已无法维护。当我在Google中搜索此问题时,我发现很多人都面临着这个可怕的问题。

但是在尝试了这些方法之后,计算机没有任何反应。我想到了重新安装系统的想法。但是,由于我已经在VPS上托管了该网站,所以这种想法几乎是不可能的。这将使我处于极大的风险中。我写的博客很可能再也找不到了。

我在apt-get更新的错误消息中注意到404错误。当网站上没有此类文件或目录时,会发生404错误。我在错误消息中复制了URL http://us.archive.ubuntu.com/ubuntu 并在浏览器中将其打开。

我们可以在此页面中看到一些目录。我不十分清楚这些文件夹的用途,但是我在dists文件夹中找到了不同版本的Ubuntu。

实际上,Ubuntu 18.10的名称是cosmic。但是,在路径下不存在这个目录,这是因为Ubuntu 18.10不是LTS版本,在到期后就不在维护了。

对于这个问题,目前有很多解决方法:

  • 升级到19.10
  • 降级到18.04
  • 寻找可用的软件源

对于这三种方式,我建议使用最后一个,因为19.10同样不是LTS版本,在到期后会遇到和18.10一样的问题。降级的话官方的更新方式是不支持的,官方只允许升级到更新的版本,这样操作可以,但是有风险,如果你在服务器上运行了很多服务,不建议这么干。

寻找可用的软件源

一开始我想到了国内的源,但是一番尝试后发现同样没有18.10了,因此只能想别的办法。

后来在google上一番搜索发现,停止维护的系统软件源会被移动到old-releases.ubuntu.com,这也就是说把地址替换一下即可:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo sed -i -r 's/([a-z]{2}\.)?archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list  

sudo sed -i -r 's/security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list 

sudo apt update

这里我用到了sed命令来替换文件中原有的地址,完成后再apt-get update就可以了。

有任何问题可以在下方留言!

最后修改日期:2020年4月18日

作者

留言

发表评论