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

ste*_*fun 5 apt ubuntu-16.04

当我执行sudo apt update我得到

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

另外,我收到了一个状态错误,我使用它解决了

sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

sudo mkdir /var/lib/apt/lists/partial按照其他几个线程的建议进行了尝试

mkdir: cannot create directory ‘/var/lib/apt/lists/partial’: Not a directory
Run Code Online (Sandbox Code Playgroud)

即使我试过 sudo mkdir /var/lib/apt/lists/

还有其他解决办法吗?

ssi*_*nik 28

这里的答案可能不合适。但是当我来到这里时,其他人也可能会在这里降落。

如果您正在使用 docker 并且遇到同样的问题,您可以执行以下操作。

USER root
# RUN commands
USER 1001
Run Code Online (Sandbox Code Playgroud)

参考:链接

  • 冒着指出显而易见的风险:“USER 1001”假设您希望容器(或后续的 dockerfile 条目)以该用户身份运行。如果您从“FROM foo”开始,那么您需要将配置的任何用户 FOO 放在该位置。 (4认同)
  • 或者,如果您事后运行(例如检查容器是否需要更新),请尝试“sudo docker run -it --rm --user 0 ....” (3认同)

v.n*_*.ng 25

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

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

根据 Docker 的说法, u 标志定义了容器在系统中以什么用户名或 UID 运行,设置-u 0意味着你将容器运行为root,请谨慎使用!参考这里