当我执行时
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/
还有其他解决办法吗?
这个答案在这里可能不合适,但当我从搜索引擎来到这里时 - 其他人也可能会登陆这里。
如果您使用 Docker 并且遇到同样的问题,您可以执行以下操作:
USER root
# RUN commands
USER 1001
参考:GitHub
您可以尝试在命令中添加
-u 0
sudo docker exec -u 0 -it ContainerID bin/bash
根据 Docker,u 标志定义了容器在系统中以什么用户名或 UID 运行,设置
-u 0
意味着您以 root
身份运行容器,请谨慎使用! 参考这里
同样的事情也发生在我身上。我按照这个答案作为指导:无法解析或打开包列表或状态文件
我以为我的列表已损坏。我去了
/var/lib/apt/
我看到了一个文件(lists@)而不是一个目录。我删除了它(sudo rm lists
)并重新创建了路径(sudo mkdir -p /var/lib/apt/lists/partial
)。仔细检查已创建的路径。
这就是它在 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
我在尝试构建一个新容器并尝试使用
Dockerfile
一段时间时遇到了同样的问题。
最终拯救我的是使用docker rm
删除在此过程中创建的所有容器。
在使用 bitnami Spark 图像和带有参数 -u 的 docker exec 命令时,我遇到了类似的错误 -u 对我不起作用。我在图像文档here中找到了答案。
如果您使用的是 docker 映像,该映像可能是非根容器映像。阅读docker镜像提供者的文档,找到解决方案,看看如何使用该镜像作为根容器镜像。
尝试在 Ubuntu 20.04 上安装 Typora 时,我遇到了同样的问题。
每当我运行以下命令时,我都会遇到错误:
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
这是我解决的方法:
我断开并重新连接网络连接,当我再次运行该命令时,它工作正常。
我认为这是我的网络连接问题。
仅此而已。
我希望这有帮助
您首先需要通过输入
sudo -i
然后输入密码来获得超级用户权限。