我没有使用 Unity,所以我没有一个方便的按钮可以点击开始software-center。不过,搜索软件有时很有用,所以我从命令行运行它。但是,我实际上无法通过该界面安装软件(无权限)。所以我尝试了sudo software-center,希望能解决这个问题。在命令行上输入我的密码后,我会看到一个对话框,要求:
输入密钥环“默认”的密码以解锁
我应该在这里输入什么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
Run Code Online (Sandbox Code Playgroud)
Policykit 似乎没有运行,或者至少没有与该名称类似的名称显示为“ps wux”。所以我想这提出了一个问题,有人知道如何在我登录时自动启动吗?
谢谢!
小智 6
您不应该以 root 身份运行 software-center。您应该简单地以您自己的用户身份启动它。安装包应该会提示您使用 policykit 对话框询问您的密码。那不会发生吗?
一个好的选择是使用以下两个命令:
sudo -i #login as root
software-center #run software-center as root
Run Code Online (Sandbox Code Playgroud)
pkexec software-center如果您想按照 @Braiam 在他的回答中建议的方式使用,您很可能会遇到一些错误,并且该命令会导致核心转储(如 @gunbert 在本评论中所说)。software-center以 root 身份运行的正确方法pkexec是:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY software-center
Run Code Online (Sandbox Code Playgroud)
这是正常的,因为man pkexec从这个意义上来说非常清楚:
Run Code Online (Sandbox Code Playgroud)[...] pkexec will not allow you to run X11 applications as another user since the $DISPLAY and $XAUTHORITY environment variables are not set.[...]
另请参阅为什么用户永远不应该使用普通 sudo 来启动图形应用程序?