我已经厌倦了总是在 sudo 下调用 apt-get update 和 apt-get upgrade 并输入我的密码,所以我使用 visudo 在我的 /etc/sudoers 文件中添加了以下行:
<myusername> ALL=NOPASSWD: /usr/bin/apt-get
不幸的是,当我调用 apt-get 时遇到以下错误:
<myusername>@sputnik:~$ apt-get update
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
我也尝试将以下(相当明显的)行添加到 /etc/sudoers,但没有效果
<myusername> ALL=NOPASSWD: /usr/bin/dpkg
我必须做什么?
答案1
即使进行了这样的配置/etc/sudoers
,您仍需要使用以 root 身份sudo
运行apt-get
。不同之处在于,如果配置正确,您将不再需要输入密码。
答案2
您以不要求您输入密码的方式添加了 apt-get,但这并不意味着 apt-get 具有足够的权限来运行。由于您在没有 sudo 的情况下运行它,因此它无法锁定软件包系统。
尝试使用别名:
alias apt-get='sudo apt-get'
如果有效,您可以通过将其添加到.bashrc
文件中来使别名永久生效