meld - gi._glib.GError: 主题中不存在图标“meld-change-apply-right”。安装有什么问题?

14
我已经成功安装了meld 3.14.2和所有依赖包,通过从源代码编译每个包,并将它们都安装在NFS共享上,其中meld工具使用--prefix=<base>/meld,依赖项使用--prefix=<base>/meld/deps
最终,我调用了该工具并且可以看到GUI界面。但是当我尝试进行一些功能测试时,它会抛出错误。我以前从未使用过这个工具,所以不知道它应该如何正常工作。但是用户指出了以下错误,可能还有其他错误。以下是其中之一。
$meld
GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
II 1
Traceback (most recent call last):
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/newdifftab.py", line 117, in on_button_compare_clicked
tab = self.diff_methods[self.diff_type](compare_paths)
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/meldwindow.py", line 647, in append_filediff
doc = filediff.FileDiff(len(files))
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/filediff.py", line 281, in __init__
from meld.gutterrendererchunk import GutterRendererChunkAction
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/gutterrendererchunk.py", line 33, in <module>
class GutterRendererChunkAction(GtkSource.GutterRendererPixbuf):
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/gutterrendererchunk.py", line 38, in GutterRendererChunkAction
MODE_REPLACE: load("meld-change-apply-right"),
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/gutterrendererchunk.py", line 30, in load
return icon_theme.load_icon(icon_name, LINE_HEIGHT, 0)
File "/applics/platform/meld/meld-3.14.2/dependencies/lib/python2.7/site-packages/gi/types.py", line 113, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: Icon 'meld-change-apply-right' not present in theme

请告诉我可能出了什么问题?
在安装和使用工具时,我使用了以下变量。
PATH、LD_LIBRARY_PATH、PKG_CONFIG_PATH、PYTHONPATH、GSETTINGS_SCHEMA_DIR
使用所有这些路径的原因是完全定制的安装,因为服务器上已经存在GTK等版本,并且我们不想干扰它们,希望为meld设置一个单独的安装,并且以同样的方式可以从多个服务器使用NFS共享相同的安装。
但是,与通常安装的其他工具不同,meld有非常严重的依赖关系,我们需要编译复杂的软件包,如GTK。
无论如何,有人能告诉我们当前安装有什么问题吗?我需要设置更多的变量和引用,还是需要再次安装模块并使用额外选项?现在,我只安装了每个软件包的推荐依赖项,并留下了可选软件包依赖项。
至于错误,我可以在我的安装中找到png文件<base>/meld/share/icons/hicolor/16x16/actions/meld-change-apply-right.png,那么为什么工具无法找到它呢?这里的“主题”是什么意思?

看到窗口后,我其实感到很自豪,但现在它似乎只是一个没有任何功能的空窗口 :(

enter image description here

5个回答

21

我也遇到了这个错误,
重新安装 Meld 和 gnome-icon-theme 解决了我的问题:

sudo apt-get install --reinstall meld gnome-icon-theme

如果没有使用--reinstall选项,我的Ubuntu 18.04.1 LTS只会得到以下内容:

$ sudo apt-get install meld gnome-icon-theme
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gnome-icon-theme is already the newest version (3.12.0-3).
meld is already the newest version (3.18.0-6).

2
Meld没有显示任何文本(目录比较中的文件名丢失了),现在已经修复。 - Terry Brown
1
与Terry遇到相同的问题,采用相同的解决方案。 - Amedee Van Gasse
1
非常感谢,已在Ubuntu 20.04上修复此问题。 - Jérôme B
1
安装gnome-icon-theme解决了我的问题(ubuntu 20.04)。谢谢。 - Tweepy
1
在 Fedora 36 上也适用。安装 gnome-icon-theme。 - Wes

8

我在Ubuntu 16.04上解决了这个问题,方法如下:

sudo apt-get install gnome-icon-theme

2

我在Archlinux上运行Meld 3.16.0时遇到了类似的问题。在我的情况下,特定的错误信息为GLib.Error: gtk-icon-theme-error-quark: Icon 'meld-change-apply-right' not present in theme gnome (0)

我通过在Meld图标安装目录中创建符号链接,将Meld图标放置到Meld显然正在寻找这些图标的位置来“解决”它。在我这个例子中,这意味着ln -s /usr/share/icons/hicolor/16x16/actions/meld* /usr/share/icons/gnome/16x16/actions/

我认为这只是一个权宜之计而不是一个真正的解决方案,但至少Meld现在可以正常工作了。


嗨..在我的情况下,即使创建了软链接,仍然会发生同样的问题。我们需要设置任何变量吗? - GP92
2
我不确定,但您可以尝试使用类似于 sudo gtk-update-icon-cache --force /usr/share/icons/hicolorsudo gtk-update-icon-cache --force /usr/share/icons/gnome 的命令重建图标缓存(根据需要更改路径)。请参阅 https://bugzilla.gnome.org/show_bug.cgi?id=767396 上的错误报告。 - Ista

1
我解决了重新安装meld。
$ sudo apt-get install meld

在 Debian Stretch 中有一个新版本可用。问题已消失。


0

在我的情况下,重新安装解决了CentOs 7上的问题。

sudo yum remove meld
sudo yum install meld

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