列表目录 /var/lib/apt/lists/partial 丢失。 - 获取(20:不是目录)

问题描述 投票:0回答:8

当我执行时

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/

还有其他解决办法吗?

ubuntu-16.04 apt
8个回答
146
投票

这个答案在这里可能不合适,但当我从搜索引擎来到这里时 - 其他人也可能会登陆这里。

如果您使用 Docker 并且遇到同样的问题,您可以执行以下操作:

USER root
# RUN commands
USER 1001

参考:GitHub


26
投票

您可以尝试在命令中添加

-u 0

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

根据 Docker,u 标志定义了容器在系统中以什么用户名或 UID 运行,设置

-u 0
意味着您以
root
身份运行容器,请谨慎使用! 参考这里


3
投票

同样的事情也发生在我身上。我按照这个答案作为指导:无法解析或打开包列表或状态文件

我以为我的列表已损坏。我去了

/var/lib/apt/
我看到了一个文件(lists@)而不是一个目录。我删除了它(
sudo rm lists
)并重新创建了路径(
sudo mkdir -p /var/lib/apt/lists/partial
)。仔细检查已创建的路径。


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

2
投票

我在尝试构建一个新容器并尝试使用

Dockerfile
一段时间时遇到了同样的问题。 最终拯救我的是使用
docker rm
删除在此过程中创建的所有容器。


1
投票

在使用 bitnami Spark 图像和带有参数 -u 的 docker exec 命令时,我遇到了类似的错误 -u 对我不起作用。我在图像文档here中找到了答案。

如果您使用的是 docker 映像,该映像可能是非根容器映像。阅读docker镜像提供者的文档,找到解决方案,看看如何使用该镜像作为根容器镜像。


0
投票

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

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

# add Typora's repository

sudo add-apt-repository 'deb https://typora.io/linux ./'

这是我解决的方法

我断开并重新连接网络连接,当我再次运行该命令时,它工作正常。

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

仅此而已。

我希望这有帮助


-1
投票

您首先需要通过输入

sudo -i
然后输入密码来获得超级用户权限。

© www.soinside.com 2019 - 2024. All rights reserved.