目录 /var/lib/apt/lists/partial 不存在 - 获取 (20:不是目录)

43

当我执行sudo apt update时,会出现以下情况:

Reading package lists... Done
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (20: Not a directory)

此外,我收到了一个状态错误,我使用以下方法解决了该问题

sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status

我尝试了sudo mkdir /var/lib/apt/lists/partial,这是其他几个线程中建议的。

mkdir: cannot create directory ‘/var/lib/apt/lists/partial’: Not a directory

我尝试过 sudo mkdir /var/lib/apt/lists/

还有其他解决方案吗?


1
在我的docker文件中出现这个问题之前,日志中有一个早期的错误提示 => ERROR [3/3] RUN apt-get update。谁能想到这与用户权限有关!经过仔细检查发现了这个错误,这就是我来到这篇文章并得到@ssi-anik下面的答案帮助解决问题的原因。添加此评论以便Google可以将此页面作为这两个问题的第一搜索结果!;) 谢谢大家。 - SydMK
我在尝试清理糟糕的安装后遇到了这个问题。这个链接对我很有帮助:https://askubuntu.com/a/358971/1718249 - theSparky
8个回答

122

我的回答可能不适用于这里。但是其他人也可能会来到这里。

如果你正在使用 Docker 并且遇到了相同的问题,你可以尝试以下方法。

USER root
# RUN commands
USER 1001

参考资料: 链接


5
如果你是在事后运行(例如,检查容器是否需要更新),可以尝试使用sudo docker run -it --rm --user 0 ....。请注意,这是一条命令,用于Docker容器的管理。 - starbeamrainbowlabs
4
冒昧指出一点: "USER 1001" 假设这是您希望容器(或随后的Dockerfile条目)要运行的用户。如果您从 FROM foo 开始,那么您需要将 FOO 配置的任何用户放在那个位置。 - MatrixManAtYrService
1
这个答案在2021年仍然有效 - 刚刚解决了我的问题。谢谢。 - user743873

24

您可以尝试在命令中添加-u 0

sudo docker exec -u 0 -it ContainerID bin/bash

据Docker官方文档,-u标识可以定义容器的运行用户名或UID,在命令中设置-u 0表示以root用户身份运行容器,请谨慎使用!参考链接


3

这是如何在Docker Bash中以root身份访问并安装您的应用程序的方法。

通过名称获取容器ID。

sudo docker ps -aqf "name=name=es01"

root 身份访问 bash

sudo docker exec -u 0 -it 3d42134dfd59 bash

安装示例:

apt get update
apt-get install nano

3
我也遇到了同样的问题。我按照这个回答作为指南:The package lists or status file could not be parsed or opened
我认为我的列表已经损坏了。我进入了/var/lib/apt/目录,看到一个文件(lists@)而不是一个目录。我删除了它(sudo rm lists),并重新创建了路径(sudo mkdir -p /var/lib/apt/lists/partial)。请仔细检查路径是否被创建。

2
我在构建新容器并尝试使用Dockerfile进行实验时遇到了同样的问题。最终拯救我的方法就是使用docker rm删除我在此过程中创建的所有容器。

1

当我使用Bitnami Spark镜像和带有参数-u的docker exec命令时,我遇到了类似的错误。但是这个方法对我不起作用。我在镜像文档这里中找到了答案。

如果您正在使用Docker镜像,则可能是镜像为非根容器镜像。请阅读Docker镜像提供程序的文档,以查找解决方案,了解如何将该镜像用作根容器镜像。


同样适用于apache/spark-py镜像。只需在docker compose文件中的镜像后指定user:root即可。 - Dhruv

0

在我尝试在 Ubuntu 20.04 上安装Typora时,我遇到了同样的问题。

每当我运行以下命令时,就会遇到错误:

# add Typora's repository

sudo add-apt-repository 'deb https://typora.io/linux ./'
以下是我的解决方法:

我断开并重新连接了我的网络连接,然后再次运行命令,问题就得到了解决。

我认为这是我的网络连接出现了问题。

就这些了。

希望这能帮到你。


-1

首先,您需要通过输入sudo -i并输入密码来获取超级用户权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接