我的问题是什么
我无法从 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下载了预装的 19.10 映像并将dd
其编辑到 SD 卡上并启动树莓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
是空的。这是图片中的原始文件,我没有修改它。
我在这里不知所措,不知道如何进一步调试。你们中有人知道那个系统出了什么问题吗?
不知道为什么会这样,但我遇到了完全相同的问题。对我来说,解决方案是从 /etc/apt/sources.list 中注释掉 Universe/multiverse 条目,然后运行 apt-get purge 和 apt-get clean。之后,我运行了 apt-add-repository Universe 和 apt-add-repository multiverse,就成功了。