我在笔记本电脑上安装了Linux。 Ubuntu Mate 17.10.1。我在我的主目录的子目录中安装了Ruby 2.5.0。当试图运行需要gtk3的Ruby程序时,我得到了这个:
Traceback (most recent call last):
6: from /home/david/Public/zeta-code-example-1-laptop.rb:17:in `<main>'
5: from /home/david/.gem/ruby/2.5.0/gems/gtk3-3.2.1/lib/gtk3.rb:40:in `const_missing'
4: from /home/david/.gem/ruby/2.5.0/gems/gtk3-3.2.1/lib/gtk3.rb:64:in `init'
3: from /home/david/.gem/ruby/2.5.0/gems/gdk3-3.2.1/lib/gdk3.rb:59:in `init'
2: from /home/david/.gem/ruby/2.5.0/gems/gdk3-3.2.1/lib/gdk3/x11-loader.rb:21:in `load'
1: from /home/david/.gem/ruby/2.5.0/gems/gobject-introspection-3.2.1/lib/gobject-introspection/loader.rb:37:in `load'
/home/david/.gem/ruby/2.5.0/gems/gobject-introspection-3.2.1/lib/gobject-introspection/loader.rb:37:in `require': Requiring namespace 'Gdk' version '4.0', but '3.0' is already loaded (GObjectIntrospection::RepositoryError::NamespaceVersionConflict)
我已经在我的桌面上使用类似的设置运行程序,没有任何问题。我在/home/david/.gem下安装了相应的宝石 我有许多其他需要gtk3的程序。我也得到了同样的错误。
另外,使用发行版中安装了相应gem的发行版Ruby(2.3),我得到了相同的结果。
我已经在网上搜索过相当多的内容,但没有发现任何相关内容。
任何人都知道这里发生了什么?提前谢谢。
答案 0 :(得分:0)
错误消息表示版本冲突。请尝试以下方法。
转到应用程序的根目录并运行:
gem list gtk
查看您是否拥有所需的正确版本,以及是否还可以安装任何其他版本。也许那就试试吧:
gem uninstall gtk3
gem install gtk3
如果您仍然收到错误检查,看看您的应用加载的其他任何宝石是否需要不同的版本。作为测试可能会做
gem install pry
启动撬开会议
pry
来自撬壳:
要求'gtk3' cd Gtk show-method Loader#你应该看到一个像这样的方法:
def load
self.version = "3.0"
super("Gtk")
end
!!! # will get you out of pry shell.
从这里你知道你能够再次加载正确版本的Gtk,它必须是其他试图加载错误/另一个版本的东西。
还要确保更新系统依赖项。
sudo apt-get update
答案 1 :(得分:0)
解决了我的问题。事实证明我显然安装了 来自synaptic的gir1.2-gtk-4.0以及其他一些软件 我首先建立了我的系统。我不认为它是默认安装的。
我卸载了该文件,我的图形程序运行正常。 这个文件不在我的桌面计算机上,我没有遇到任何问题。
对我的帖子的回复是明智的,并且很感激。