install gem para ruby 1.8 mais antigo no Mac OS X 10.9 Maverics

2

Eu instalei o osx-trash usando a resposta aqui , mas recebi o erro:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in 'require': cannot load such file -- osx/cocoa (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in 'require'
    from /Library/Ruby/Gems/2.0.0/gems/osx-trash-1.0.0/bin/trash:35:in '<top (required)>'
    from /usr/bin/trash:23:in 'load'
    from /usr/bin/trash:23:in '<main>'

Parece que o Ruby 2.0 no Mac OS X mais novo não suporta mais o módulo "osx / cocoa" e as pessoas recomendam que o script seja executado com o Ruby 1.8, que eu já tenho no meu sistema. Eu editei / usr / bin / trash para mudar a primeira linha para executar o script como 1.8:

simbo$ diff /usr/bin/trash /usr/bin/trash.bak 
1c1
< #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
---
> #!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby

Mas agora recebo o erro:

/Library/Ruby/Site/1.8/rubygems/dependency.rb:247:in 'to_specs': Could not find osx-trash (>= 0) amongst [activesupport-3.2.13, .... uuidtools-2.1.2, vmc-0.3.18, vmc-0.3.14] (Gem::LoadError)
    from /Library/Ruby/Site/1.8/rubygems/dependency.rb:256:in 'to_spec'
    from /Library/Ruby/Site/1.8/rubygems.rb:1203:in 'gem'
    from /usr/bin/trash:22

Eu acho que isso pode significar que o comando original para instalar a gem que eu rodei no link acima instalou coisas para o ruby 2.0, então rodar o script no ruby 1.8 não possui dependências.

Como corrijo o script osx-trash instalado para ser executado corretamente?

    
por simbo1905 29.12.2013 / 10:31

1 resposta

1

Se você tiver ruby 1.8 em seu sistema, também deverá ter gem 1.8 . Nesse caso, acho que isso deve funcionar:

sudo ln -s /Library/Ruby/Gems/1.8/gems/rubygems-update-1.8.12/bin/gem /usr/bin/gem18
sudo gem18 install osx-trash

agora com a edição na parte superior do script de lixo para usar o ruby 1.8, as coisas funcionarão.

    
por 29.12.2013 / 13:30