我在笔记本电脑上安装了Linux。Ubuntu Mate 17.10.1.我在我的home目录下的一个子目录中安装了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下安装了适当的.gem。
我还有许多其他需要gtk3的程序。我用它们也得到了同样的错误。
同样,使用发行版的Ruby (2.3)并安装适当的gem,我得到了相同的结果。
我已经在网上做了相当多的搜索,但没有找到任何相关的东西。
有人知道这是怎么回事吗?提前谢谢。
发布于 2018-03-28 10:57:40
错误消息指示版本冲突。尝试以下操作。
转到应用程序的根目录并运行:
gem list gtk看看您是否拥有预期的正确版本,以及是否还可以安装任何其他版本。也许你可以试一试:
gem uninstall gtk3
gem install gtk3如果您仍然得到错误检查,看看您的应用程序正在加载的任何其他get可能需要不同的版本。作为一个测试,可能会这样做
gem install pry启动pry会话
pry来自pry shell:
require '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发布于 2018-03-30 06:46:40
解决了我的问题。事实证明,当我第一次设置我的系统时,我显然已经安装了来自synaptic的GRI1.2-gtk-4.0以及一些其他软件。我不认为它是默认安装的。
我卸载了那个文件,我的图形程序运行得很好。此文件不在我的台式计算机上,我对它没有任何问题。
对我的帖子的回复是明智的和赞赏的。
https://stackoverflow.com/questions/49523513
复制相似问题