我安装了鞋子宝石,但我无法使用它:
> gem install green_shoes
Successfully installed green_shoes-1.1.374
Parsing documentation for green_shoes-1.1.374
unable to convert "\xA9" from ASCII-8BIT to UTF-8 for lib/shoes/minitar.rb, skipping
Done installing documentation for green_shoes after 1 seconds
1 gem installed
olivier@FIXE C:\Users\olivier\Documents\ruby
> irb
irb(main):001:0> require 'green_shoes'
LoadError: cannot load such file -- gobject-introspection
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/gdk_pixbuf2-3.0.9-x64-mingw32/lib/gdk_pixbuf2.rb:17:in `<top (require
d)>'
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/green_shoes-1.1.374/lib/green_shoes.rb:5:in `<top (required)>'
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `require'
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require'
from C:/Ruby23-x64/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from (irb):1
from C:/Ruby23-x64/bin/irb.cmd:19:in `<main>'
如何解决此问题?
我安装了2个宝石,但是一个简单的演示程序(以&#34开头;需要&#39; green_shoes&#39;&#34;)给出了这个错误:
ruby test1.rb C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb:2288:in `raise_if_conflicts&#39;:无法激活 gobject-introspection-3.0.8-x86-mingw32,因为 glib2-3.0.9-x86-mingw32与glib2冲突(= 3.0.8) (GEM :: ConflictError)
这是程序:
require 'green_shoes'
puts "hello world"
puts Math.sqrt(9)
def say_hi(name="!")
puts "hello world #{name}"
end
say_hi("Olivier")
say_hi
class Greeter
def initialize(name)
@name=name
end
def say_hello
puts "hello #{@name.capitalize}"
end
def to_s
"I said hello!"
end
end
g=Greeter.new("olivier")
g.say_hello
puts g
# hello_world.rb
Shoes.app do
para "Hello World"
end
Shoes.app { button "Push me" }
它是一个测试程序,它不包含重要的东西。
ps:我理解glib2的两个版本之间的冲突,但我对要删除的版本犹豫不决:我不想破坏我的ruby安装。 我该删除哪个?
还有一个问题:green_shoes需要安装pango和cairo,但其他版本需要3.0.8:
gem uninstall glib2 -v 3.0.9
您已请求卸载gem:
glib2-3.0.9 86的mingw32
atk-3.0.9取决于glib2(= 3.0.9)
gdk_pixbuf2-3.0.9取决于glib2(= 3.0.9)
pango-3.0.9取决于glib2(= 3.0.9)如果你 删除此gem,将无法满足这些依赖关系。
我不知道该怎么办...... 你有哪个版本的green_shoes?
ps:我刚看到你编辑的其余内容;特别之处在于我得到了与你相同版本的green_shoes ......但是对我来说安装了glib2-3.0.9,并为你设置glib2 3.0.8 ....我想删除green_shoes及其依赖项,然后在3.0.8版本中安装一些依赖项,然后安装green_shoes并希望它不再需要3.0.9版本的依赖项...... 你怎么看待这个?
SNIF!这是我害怕的事情!
这是安装green_shoes的结果:
> gem install green_shoes
Fetching: glib2-3.0.9-x86-mingw32.gem (100%)
Successfully installed glib2-3.0.9-x86-mingw32
Fetching: green_shoes-1.1.374.gem (100%)
Successfully installed green_shoes-1.1.374
现在我有glib2的两个版本(3.0.8&amp; 3.0.9)
我什么都不懂:看看这个:
宝石列表glib2
*本地宝石* glib2(3.0.9 x86-mingw32)
olivier @ FIXE C:\ Users \ olivier \ Documents \ rubyruby test2.rb C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb:2288:in `raise_if_conflic ts&#39;:无法激活 gobject-introspection-3.0.8-x86-mingw32,因为glib2-3.0.9-x 86-mingw32与glib2(= 3.0.8)(Gem :: ConflictError)冲突
我删除了glib2 v 3.0.8,但仍然存在冲突......
我按照你的建议,删除了3.0.9版本,但奇怪的是似乎仍然需要3.0.8版本:
ruby test2.rb C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/dependency.rb:310:in
to_specs': Could not find 'glib2' (= 3.0.9) - did find: [glib2-3.0.8-x86-mingw32] (Gem::MissingSpecVersionError) Checked in 'GEM_PATH=C:/Users/olivier/.gem/ruby/2.3.0;C:/Ruby23/lib/ruby/gems/2.3.0', execute
gem env`获取更多信息
虽然我删除了它的3.0.8依赖项,但让3.0.9保持不变。 我还是不明白。
答案 0 :(得分:1)
我最近在Windows7和Ruby 2.3.0下重新安装了green_shoes并没有遇到任何困难,这里是我系统上使用的gdk版本。 在指定此版本时单独安装它们。 不知道在这里是否有必要,但始终建议您使用devkit。
版本:
gdk3 (3.0.8 x64-mingw32)
gdk_pixbuf2 (3.0.8 x64-mingw32)
按
安装gem install gdk3 -v 3.0.8
gem install gdk_pixbuf2 -v 3.0.8
修改
我的glib版本如下,我建议您使用gem list glib2
检查当前版本,记下来,安装我的版本,如果事情中断,您可以随时将gem卸载glib2并重新安装旧版本。
glib2 (3.0.8 x64-mingw32)
以下命令应列出所有依赖项,但似乎没有递归,所以如果我需要深入了解,请告诉我。
C:\Users\Gebruiker>gem dependency green_shoes --reverse-dependencies
Gem green_shoes-1.1.374
gtk2 (>= 0)
C:\Users\Gebruiker>gem dependency gtk2 --reverse-dependencies
Gem gtk2-3.0.8-x64-mingw32
atk (= 3.0.8)
gdk_pixbuf2 (= 3.0.8)
pango (= 3.0.8)
Used by
green_shoes-1.1.374 (gtk2 (>= 0))
Gem pango-3.0.8-x64-mingw32
cairo (>= 1.14.0)
glib2 (= 3.0.8)
Used by
gdk3-3.0.8-x64-mingw32 (pango (= 3.0.8))
gtk2-3.0.8-x64-mingw32 (pango (= 3.0.8))
gtk3-3.0.8-x64-mingw32 (pango (= 3.0.8))
rsvg2-3.0.8-x64-mingw32 (pango (>= 3.0.8))
EDIT2
我设法使用this回答
获得完整的依赖树{"green_shoes 1.1.374"=>
{"gtk2 3.0.8"=>
{"gtk2 3.0.8"=>
{"atk 3.0.8"=>
{"atk 3.0.8"=>
{"glib2 3.0.8"=>
{"glib2 3.0.8"=>
{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}},
"cairo 1.15.2"=>
{"cairo 1.15.2"=>
{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}}}}}}}},
"pango 3.0.8"=>
{"pango 3.0.8"=>
{"cairo 1.15.2"=>
{"cairo 1.15.2"=>{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}}}},
"glib2 3.0.8"=>
{"glib2 3.0.8"=>
{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}},
"cairo 1.15.2"=>
{"cairo 1.15.2"=>
{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}}}}}}}},
"gdk_pixbuf2 3.0.8"=>
{"gdk_pixbuf2 3.0.8"=>
{"glib2 3.0.8"=>
{"glib2 3.0.8"=>
{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}},
"cairo 1.15.2"=>
{"cairo 1.15.2"=>
{"pkg-config 1.1.7"=>{"pkg-config 1.1.7"=>{}}}}}}}}}}}}