“dpkg:错误:请求的操作需要超级用户权限”。无法从删除的包中删除所有配置信息,sudo 不起作用

Gre*_*een 5 uninstall dpkg sudo

我想运行此命令(请参阅4此处https://help.ubuntu.com/community/AptGet/Howto#Removal_commands部分):

dpkg -l | grep '^rc' | awk '{print $2}' | xargs dpkg --purge
Run Code Online (Sandbox Code Playgroud)

sudo在开始时使用,但无论如何我得到一个错误:

user@user-desktop:~$ sudo dpkg -l | grep '^rc' | awk '{print $2}' | xargs dpkg --purge
[sudo] password for user:
dpkg: error: requested operation requires superuser privilege
Run Code Online (Sandbox Code Playgroud)

为什么sudo不起作用?我还应该输入什么?

Mel*_*ius 8

sudo仅适用于单个命令,不适用于整个管道。在您的情况下,以超级用户身份运行的命令是dpkg -l\xe2\x80\x93 ,这是不必要的。

\n\n

相反,管道中真正需要超级用户访问权限的命令是dpkg --purge,因此sudo直接在其前面添加。

\n\n
dpkg -l | grep \'^rc\' | awk \'{print $2}\' | xargs sudo dpkg --purge\n
Run Code Online (Sandbox Code Playgroud)\n\n

顺便说一下,awk可以像使用正则表达式一样过滤行grep,这样你就可以节省一个命令:

\n\n
dpkg -l | awk \'/^rc/{print $2}\' | xargs sudo dpkg --purge\n
Run Code Online (Sandbox Code Playgroud)\n


Rod*_*van 5

尝试以 root 身份登录,以获得超能力,您可以通过键入:

sudo -i
Run Code Online (Sandbox Code Playgroud)

然后在终端中写入(复制/粘贴:: Ctrl + C / Ctrl + Shift + V <--粘贴到终端中)您的命令,它应该可以工作


小智 1

sudo -i dpkg -l | grep '^rc' | awk '{print $2}' | xargs dpkg --purge
Run Code Online (Sandbox Code Playgroud)

这可能会以ROOT权限运行您的命令。sudo 和 root 是不同的。参考

  • 这既不能解释为什么它不起作用,也不能解释该怎么做。请参阅@Melebius 的答案。 (2认同)