在 Mac OS X 10.9 Maverics 上为旧版 ruby​​ 1.8 安装 gem

在 Mac OS X 10.9 Maverics 上为旧版 ruby​​ 1.8 安装 gem

我使用答案安装了 osx-trash这里但出现错误:

/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>'

似乎较新的 Mac OS X 上的 Ruby 2.0 不再支持“osx/cocoa”模块,人们建议将脚本更改为使用 Ruby 1.8 运行,而我的系统上已经有这个版本。我编辑了 /usr/bin/trash,将第一行更改为以 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

但现在我收到了错误:

/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

我认为这可能意味着我从上面的链接运行的安装 gem 的原始命令安装了 ruby​​ 2.0 的东西,因此在 ruby​​ 1.8 上运行脚本缺少依赖项。

如何修复已安装的 osx-trash 脚本以使其正常运行?

答案1

如果你ruby 1.8的系统中有,那么你也应该有gem 1.8,在这种情况下我认为这应该有效:

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

现在,通过编辑垃圾脚本的顶部以使用 ruby​​ 1.8,一切就可以正常工作了。

相关内容