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