【问题标题】:I installed Capistrano using MacPorts but capify can not find the capistrano gem我使用 MacPorts 安装了 Capistrano,但 capify 找不到 capistrano gem
【发布时间】:2013-06-19 03:25:56
【问题描述】:

在 OS X 10.7.5 上使用 MacPorts 我安装了 capistrano,如下所示:

[~] > install rb-capistrano

但是当我运行 capify 时,出现以下错误:

/opt/local/lib/ruby/vendor_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem capistrano (>= 0) (Gem::LoadError)
from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems.rb:214:in `activate'
from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems.rb:1082:in `gem'
from /opt/local/bin/capify-1.8:18

这显然是 MacPorts 部署 capistrano、ruby 和 gems 的一个错误,但我有什么办法可以同时解决这个问题吗?我只想让 Capistrano 工作,我根本不关心 Ruby on Rails 或任何 Ruby。

【问题讨论】:

  • 我肯定会避免使用另一个包管理系统作为安装 gems 的代理。此外,Ruby 1.8 已经结束生命周期,将不再接收安全更新;您应该立即升级到 Ruby 2.0(或 1.9)。
  • 可悲的是,当您 sudo port install ruby 时,您会得到 1.8。谢谢你的警告!

标签: ruby rubygems capistrano macports


【解决方案1】:

这是我的解决方法:要么手动安装 gem,要么使用 rvm 安装它,完全绕过 MacPorts。

我选择了选项 1:使用“gem”安装 Capistrano。这当然涉及安装 MacPorts gem 并修复安装以使其实际工作:

12:10 ~project ➤ which gem
/usr/bin/gem
12:10 ~project ➤ sudo port install rb-rubygems
12:11 ~project ➤ ln -s /opt/local/libexec/ruby1.8/gem /opt/local/bin/gem
12:11 ~project ➤ sudo gem install capistrano                                         
Successfully installed highline-1.6.19
Successfully installed net-ssh-2.6.7
Successfully installed net-ssh-gateway-1.2.0
Successfully installed capistrano-2.15.4
4 gems installed
Installing ri documentation for highline-1.6.19...
Installing ri documentation for net-ssh-2.6.7...
Installing ri documentation for net-ssh-gateway-1.2.0...
Installing ri documentation for capistrano-2.15.4...
Installing RDoc documentation for highline-1.6.19...
Could not find main page README
Could not find main page README
Could not find main page README
Could not find main page README
Installing RDoc documentation for net-ssh-2.6.7...
Installing RDoc documentation for net-ssh-gateway-1.2.0...
Installing RDoc documentation for capistrano-2.15.4...
12:12 ~project ➤ which capify
/opt/local/bin/capify
12:12 ~project ➤ capify .
[add] making directory './config'
[add] writing './config/deploy.rb'
[add] writing './Capfile'
[done] capified!

如您所见,gem 通过安装到 /opt/local/(即:MacPorts)目录为我做了“正确的事”。

此错误已作为 https://trac.macports.org/ticket/39467 报告给 MacPorts

【讨论】:

  • 正如@AndrewMarshall 提到的,在使用另一个包管理器时使用 gem 安装包是一件坏事。在这种情况下,清理混乱就像重新安装 MacPorts 一样简单(即:rm -rf /opt/local,然后从头开始)。我不会再破坏 MacPorts 了。
猜你喜欢
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多