sudo apt-get check 给我以下错误

krs*_*krs 5 package-management apt dpkg

sudo apt-get check

Reading package lists... Error!
E: Read error - read (21: Is a directory)
E: The package lists or status file could not be parsed or opened
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题。

Bra*_*iam 1

显然,存在一些混合权限和目录,删除/var/lib/apt/lists/它们并重新创建应该可以解决问题:

sudo rm -rf /var/lib/apt/lists/
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

第一个命令应该删除目录,第二个命令重新创建部分目录,第三个命令填充列表文件。


小智 0

破碎的/var。检查/var/lib/dpkg/status是文件而不是目录。否则重新制作如下:

sudo rm /var/lib/dpkg/status -d
sudo touch /var/lib/dpkg/status 
Run Code Online (Sandbox Code Playgroud)

下次尝试

sudo dpkg -i apt
Run Code Online (Sandbox Code Playgroud)

它确实不起作用,但说的是破坏目录。

应该/var/lib/dpkg/是目录:/alternatives, /info, /parts, /triggers, /updates.