GDebI拒绝为已故父母提供服务

3
我正在使用 GDebI 0.9.5.7,通过一键安装 .deb 包。它是我的默认 .deb 文件打开程序。我使用的浏览器是 Mozilla Firefox 58.0.2。我使用带有 XFCE 的 Ubuntu 17.10。
当我尝试使用 gdebi 打开在 firefox 中下载的 .deb 包并点击 Install Package 时,gdebi 立即关闭了。然而,如果我直接打开 gdebi 并使用它打开 .deb 文件,则安装过程正常进行。
我在终端上运行 firefox 来查看该情况下是否有任何异常输出。请注意,在我使用 firefox 打开的 gdebi 上单击 "Install Package" 时,终端会显示 "Refusing to render service to dead parents."。
我已经搜索过这个句子,甚至通过谷歌翻译等工具查看了俄罗斯论坛,但是没有发现有什么解决方法。我已经通过 apt 安装并卸载过了,但还是出现同样的问题。
请问有人知道如何帮助我吗?

1
Unix & Linux Stack Exchange上可能会有更好的运气。 - Tanner Babcock
问题尚未解决。不仅你一个人遇到了这个问题。 - Alex_Krug
Ubuntu是否可能在某个AppArmour配置文件(或其他安全上下文)中运行Firefox,从而阻止PolicyKit打开sudo对话框以提升GDebi的权限?也许/etc/apparmor.d/usr.bin.firefox不允许GDebi执行必要的操作来提升为root用户。 - Markus Kuhn
1个回答

1

这是因为,正如错误消息所说,如果没有父进程,pkexec将不会执行命令。

对于从浏览器或文件管理器启动的gdebi,一个解决方法是编写一个简单的包装脚本,命名为gdebi-gtk.wrapper:

#!/bin/sh

gdebi-gtk "$@"

将其放入~/bin目录中(确保~/bin目录在您的$PATH环境变量中)。

然后修改桌面文件:

cp /usr/share/applications/gdebi.desktop ~/.local/share/applications/gdebi.desktop

在您的本地 gdebi.desktop 文件中,编辑 Exec= 行以读取内容
Exec=gdebi-gtk-wrapper

现在对桌面文件的调用将以包装脚本作为父进程。我已经使用这个解决方法几年了。
对于尝试使用pkexec的菜单项,一个更简单的方法是替换
pkexec gdebi

使用

sh -c 'pkexec gdebi'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接