无法 apt-get 升级或更新

无法 apt-get 升级或更新

我有类似的问题

当我做 apt-get update 时

apt-get update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

apt-get upgrade
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

然而,在这个问题上,每个人都回答“使用 sudo”,是的,它允许执行,但是这不是一个答案因为:

  • 以前在我的电脑上,我可以不通过 sudo 进行更新和升级。所以我想知道如何再次无需 sudo 即可进行更新和升级

编辑:解决方案不是一直使用 sudo。有关参考,请查看本文或者本文实际上试图解决问题(不幸的是,他们的解决方案对我来说不起作用,但它朝着问题的方向发展)

编辑2. sudo 不应该是必需的另一个原因是:我使用了很多 docker 镜像。当你构建一个 docker 镜像时,你会使用Dockerfile。在 docker 文件中,你可以找到类似

RUN apt-get update && apt-get remove -y x264 libx264-dev
RUN apt-get update && apt-get upgrade -y && apt-get install -y sudo clang-format wget apt-utils

如果需要 sudo,那么我们根本无法构建 docker 镜像。到目前为止,我已经构建了几个这样的镜像,因为 sudo 不是必需的。

答案1

的默认值apt-get update是需要的sudo。如果你的系统在某个时刻不需要它(这通常不是一个好主意),那是因为有人做了某事。

如果您想恢复该行为,认为它应该是默认行为并且以某种方式发生了变化,我建议您重新考虑这个想法,并坚持下去sudo apt-get update

如果你知道所涉及的风险,并且仍然希望apt-get update不使用sudo,你可以打开终端并输入sudo visudo。在文件末尾(实际上是最后一行)输入 ,%yourusername% ALL=NOPASSWD: /usr/bin/apt-get install其中%yourusername%被你的username(来源)。这仍然需要,sudo但是它不会提示输入密码。

相关内容