我使用答案安装了 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,一切就可以正常工作了。