0

grub-customizer最近被添加到主要的 Debian 存储库中,这很酷。

但是,当我尝试从应用程序菜单启动它时,输入密码后没有任何反应。

尝试从命令行启动它会导致错误:

cameronhudson:~$ pkexec grub-customizer
Unable to init server: Could not connect: Connection refused

(grub-customizer:13778): Gtk-WARNING **: 07:59:33.251: cannot open display:

我怎样才能grub-customizer启动?

4

1 回答 1

1

这个问题的解决方案涉及2个部分:

  1. 创建一个pkexec可以使用的“策略”。pkexec这是和之间的主要区别gksudo。历史上,gksudo用于以 root 用户身份启动图形应用程序。但是,它已被弃用,取而代之的是pkexec.

    要创建策略,请创建一个/usr/share/polkit-1/actions/org.freedesktop.policykit.grub-customizer.policy包含以下内容的文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE policyconfig PUBLIC
     "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
     "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
    <policyconfig>
    
      <action id="org.freedesktop.policykit.example.pkexec.grub-customizer">
        <description>Run Grub Customizer</description>
        <message>Authentication is required to run Grub Customizer</message>
        <icon_name>audio-x-generic</icon_name>
        <defaults>
          <allow_any>auth_admin</allow_any>
          <allow_inactive>auth_admin</allow_inactive>
          <allow_active>auth_admin</allow_active>
        </defaults>
        <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/grub-customizer</annotate>
        <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
      </action>
    
    </policyconfig>
    
  2. 在我写这篇文章时, Wayland中有一个已知的错误,需要额外的步骤。

    第一次尝试

    pkexec grub-customizer
    

    如果您收到此错误消息:

    cameronhudson@debian:~$ pkexec grub-customizer
    No protocol specified
    Unable to init server: Could not connect: Connection refused
    
    (grub-customizer:4111): Gtk-WARNING **: 09:32:29.152: cannot open display: :0
    

    然后运行这个命令:

    xhost +si:localuser:root
    

    不要用您自己的用户名替换“localuser”。将其保留为“本地用户”。

    然后,再试pkexec grub-customizer一次。

    此外,您现在应该能够从应用程序菜单启动 Grub Customizer。

于 2019-08-08T16:57:03.427 回答