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

我没有使用Unity,所以我没有方便的按钮来点击启动software-center 。 但是,搜索软件偶尔会有用,所以我从命令行运行它。 但是,我实际上无法通过该接口安装软件(没有权限)。 所以我尝试了sudo software-center ,希望能解决这个问题。 在命令行输入密码后,我会看到一个对话框,询问:

输入密码环’default’的密码以解锁

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

这是一些更多的信息。 我正在运行Enlightenment(E17)作为我的桌面环境。 单侧边栏上显示的按钮在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”。 所以我想这提出了一个问题,当我登录时,是否有人知道如何让它自动启动?

谢谢!

您不应该以root身份运行软件中心。 您只需将其作为自己的用户启动即可。 安装软件包应该提示您输入要求输入密码的策略包对话框。 那不是发生了吗?

你需要pkexec代替:

 pkexec software-center 

这种方式就像你从GUI启动它。

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

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

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

 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来启动图形应用程序?