apt 无法安装“openssh-server”

apt 无法安装“openssh-server”

我有一个几乎全新的 16.04 安装(几周前才安装的)。今天,当我尝试

$ sudo apt update
$ sudo apt install openssh-server

我受到了

The following NEW packages will be installed
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
0 to upgrade, 4 to newly install, 0 to remove and 2 not to upgrade.
Need to get 373 kB/633 kB of archives.
After this operation, 5,136 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Err:1 http://gb.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.5
  404  Not Found [IP: 91.189.88.152 80]
Err:2 http://gb.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.5
  404  Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-sftp-server_7.2p2-4ubuntu2.5_amd64.deb  404  Not Found [IP: 91.189.88.152 80]

E: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-server_7.2p2-4ubuntu2.5_amd64.deb  404  Not Found [IP: 91.189.88.152 80]

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

显然,我尝试了sudo apt update --fix-missing,但什么也没改变。

显然,要么是我的系统在寻找不再存在的软件包版本,要么是某个服务器管理员删除了他们不应该删除的内容。我猜是前者。

有人知道我该如何调试或修复这个问题吗?我想解决根本原因,而不是只为 openssh 寻找解决方法。

我的系统上一个相关的差异(可能会产生影响)是,我安装了 NVIDIA SDK,除其他外,它还会将arm64架构添加到 apt,以便它可以下载一些用于交叉编译的软件包。我使用的是amd64(不是arm64)系统。这意味着当我 时apt update,我会收到一堆与不携带 arm64 软件包的存储库相关的错误,如下所示:

E: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/xenial/main/binary-arm64/Packages  404  Not Found [IP: 91.189.88.162 80]

这不是一个问题(我相信这是使用此 SDK 的必要之恶)。我之所以提到它,只是因为它可能与我当前的问题有关。


编辑:

问题的根源在于与此相关,但问题本身却不同。

答案1

感谢@muru 的评论和这个答案

根本问题:

如果 apt 更新其源列表时出错,它将忽略任何源,即使该错误来自不同的(和外部的)体系结构。因此,添加外部体系结构没有然后限制所有现有 apt 存储库源的体系结构将阻止它们更新。

供将来参考的解决方案,至少对于这种情况:

  • 运行sudo apt update并记下哪些源失败了。你正在寻找类似这样的行

    Err:19 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages                   
      404  Not Found [IP: 91.189.88.161 80]
    
  • /etc/apt/sources.list在您最喜欢的文本编辑器中打开进行编辑,例如sudo nano /etc/apt/sources.list

  • 对于满足以下条件的每一行:1) 未注释(不以 开头#)且 2) 与您之前记下的错误行之一匹配,请在和 URL[arch=amd64,i386]之间添加。因此,对于上一个示例,deb

    deb [arch=amd64,i386] http://security.ubuntu.com/ubuntu xenial-security main restricted
    

重复这些步骤,直到sudo apt update运行不再抱怨缺少arm64存储库。

相关内容