ruby:已安装鞋子,但hello world程序不起作用

时间:2016-10-15 15:16:01

标签: ruby shoes

我安装了鞋子宝石,但我无法使用它:

> 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安装。 我该删除哪个?

EDIT2:

还有一个问题: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版本的依赖项...... 你怎么看待这个?

EDIT3:

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)

EDIT4:

我什么都不懂:看看这个:

  
    

宝石列表glib2

  
     

*本地宝石* glib2(3.0.9 x86-mingw32)
                                                                                                                                               olivier @ FIXE C:\ Users \ olivier \ Documents \ ruby​​

     
    

ruby​​ 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,但仍然存在冲突......

EDIT5:

我按照你的建议,删除了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保持不变。 我还是不明白。

1 个答案:

答案 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"=>{}}}}}}}}}}}}