我的问题是什么

我的问题是什么

我的问题是什么

我无法从 ubuntu 存储库安装更新或任何新软件包。软件包列表似乎只包含已安装的软件包,例如

$ apt-cache policy bash
bash:
  Installed: 5.0-4ubuntu1
  Candidate: 5.0-4ubuntu1
  Version table:
 *** 5.0-4ubuntu1 100
        100 /var/lib/dpkg/status
$ apt search curl
Sorting... Done
Full Text Search... Done
curl/now 7.65.3-1ubuntu3 arm64 [installed,local]
  command line tool for transferring data with URL syntax

libcurl3-gnutls/now 7.65.3-1ubuntu3 arm64 [installed,local]
  easy-to-use client-side URL transfer library (GnuTLS flavour)

libcurl4/now 7.65.3-1ubuntu3 arm64 [installed,local]
  easy-to-use client-side URL transfer library (OpenSSL flavour)

我期望apt-cache policy显示如下行

500 http://ports.ubuntu.com/ubuntu-ports eoan/main arm64 Packages

就像在任何其他 ubuntu 上一样。该apt search命令应该输出一长串软件包列表。

这件事发生之前我做了什么

我今天从http://cdimage.ubuntu.com/releases/eoan/release/ubuntu-19.10-preinstalled-server-arm64+raspi3.img.xz并将dd其编辑到 SD 卡上并从中启动了 raspberry pi 4b。设备启动正常。然后我想像dist-upgrade往常一样从某个映像安装 ubuntu 系统后执行此操作。

apt update似乎运行起来没有任何严重问题:

$ sudo apt update
Hit:1 http://ports.ubuntu.com/ubuntu-ports eoan InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports eoan-updates InRelease
Hit:3 http://ports.ubuntu.com/ubuntu-ports eoan-backports InRelease
Hit:4 http://ports.ubuntu.com/ubuntu-ports eoan-security InRelease
WARNING:root:cannot read /var/lib/command-not-found/commands.db.metadata: Expecting value: line 1 column 1 (char 0)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

那个警告看起来有点奇怪,但apt update再次运行时就消失了。

之后我立即跑了

$ sudo apt upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

这首次表明有些事情很奇怪,因为通常这些图像并不是完全最新的。

我尝试解决此问题

我尝试了这些命令几次,在做了其他一些更改(设置主机名、向引导加载程序添加内核参数)后重新启动了系统。仍然没有软件包。

然后我向 apt 添加了另一个存储库,它完全正常工作。我可以在其中找到软件包并安装它们。完全没有问题。

但尝试安装包nfs-common和时docker.io,无法找到它们。

我查找了软件包列表文件,/var/cache/apt/list但找不到该目录。在运行的 18.04 armhf 系统上,该目录也丢失了,所以这似乎没问题。相反,有一个文件/var/cache/apt/pkgcache.bin,我尝试将其删除(sudo rm /var/cache/apt/pkgcache.bin),但apt update问题仍然存在。

更多有用信息

我的/etc/apt/sources.list(为简洁起见删除了评论):

deb http://ports.ubuntu.com/ubuntu-ports eoan main restricted
deb http://ports.ubuntu.com/ubuntu-ports eoan-updates main restricted

deb http://ports.ubuntu.com/ubuntu-ports eoan universe
deb http://ports.ubuntu.com/ubuntu-ports eoan-updates universe

deb http://ports.ubuntu.com/ubuntu-ports eoan multiverse
deb http://ports.ubuntu.com/ubuntu-ports eoan-updates multiverse

deb http://ports.ubuntu.com/ubuntu-ports eoan-backports main restricted universe multiverse

deb http://ports.ubuntu.com/ubuntu-ports eoan-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports eoan-security universe
deb http://ports.ubuntu.com/ubuntu-ports eoan-security multiverse

/etc/apt/sources.list.d是空的。这是图片中的原始文件,我没有修改它。

我不知所措,不知道如何进一步调试。你们有人知道那个系统出了什么问题吗?

答案1

不知道为什么会发生这种情况,但我遇到了完全相同的问题。对我来说,解决方案是将 universe/multiverse 条目从 /etc/apt/sources.list 中注释掉,然后运行 ​​apt-get purge 和 apt-get clean。之后,我运行了 apt-add-repository universe 和 apt-add-repository multiverse,这样就解决了问题。

相关内容