以 root 身份从命令行运行软件中心

以 root 身份从命令行运行软件中心

我没有使用 Unity,因此没有方便的按钮可以单击以启动software-center。不过,搜索软件有时很有用,因此我从命令行运行它。但是,我实际上无法通过该界面安装软件(没有权限)。所以我尝试了sudo software-center,希望可以解决这个问题。在命令行中输入密码后,我会看到一个对话框,要求输入:

输入密钥环“default”的密码来解锁

我应该在这里输入什么才能真正software-center以 root 身份启动?

这里还有一些信息。我正在运行 Enlightenment (E17) 作为我的桌面环境。Unity 侧栏上出现的按钮似乎在 E17 中没有对应的按钮,这就是我从命令行运行软件中心的原因。当我以我的身份而不是 root 身份执行此操作时,在我尝试安装某些东西时,会弹出一条错误消息,内容为:

Authentication Error. Software can't be installed or removed because the authentication service is not available. (org.freedesktop.PolicyKit.Error.Failed: ('system-bus-name', {'name': ':1.96'}): org.debian.apt.install-or-remove-packages

Policykit 似乎没有运行,或者至少没有出现任何与该名称类似的“ps wux”。所以我想这引发了一个问题,有人知道如何让它在我登录时自动启动吗?

谢谢!

答案1

您不应该以 root 身份运行软件中心。您应该以自己的用户身份启动它。安装软件包时应该会弹出一个 policykit 对话框,要求您输入密码。难道不是这样吗?

答案2

您需要 pkexec 来代替:

pkexec software-center

这种方式就像是从 GUI 启动它一样。

答案3

一个好的选择是使用以下两个命令:

sudo -i           #login as root
software-center   #run software-center as root

如果你想使用pkexec software-center@Braiam 建议的他的回答您很可能会遇到一些错误,并且命令会导致核心转储(正如@gunbert 所说此评论software-center)。以 root 身份运行的正确方法pkexec是:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY software-center

这是正常的,因为man pkexec从这个意义上来说非常清楚:

       [...] pkexec will not allow you to run X11 applications
       as another user since the $DISPLAY and $XAUTHORITY environment
       variables are not set.[...]

另请参阅为什么用户永远不应该使用普通的 sudo 来启动图形应用程序?

相关内容