【问题标题】:Unable to install gems or RVM无法安装 gem 或 RVM
【发布时间】:2013-02-07 03:06:57
【问题描述】:

我正在尝试安装Foundation with Sass and Compass,但我很难获得这个,或者通过终端安装的任何 gem。我使用的是运行最新版本 OS X 的 Macbook Pro。

运行 gem install zurb-foundation 或 gem install bundler 会返回以下错误:

ERROR:  While executing gem ... (TypeError)
can't convert Array into String

$ sudo gem update --system --no-user-install

遇到同样的错误

我的 gem env 是什么样子的:

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.25
- RUBY VERSION: 1.9.3 (2013-02-06 patchlevel 385) [x86_64-darwin12.2.0]
- INSTALLATION DIRECTORY: ["/Users/mc/.gems"]
- RUBY EXECUTABLE: /Users/mc/.rvm/rubies/ruby-1.9.3-p385/bin/ruby
- EXECUTABLE DIRECTORY: /Users/mc/.gems/bin
- RUBYGEMS PLATFORMS:
 - ruby
 - x86_64-darwin-12
- GEM PATHS:
 - ["/Users/mc/.gems"]
 - /usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
 - :update_sources => true
 - :verbose => true
 - :benchmark => false
 - :backtrace => false
 - :bulk_threshold => 1000
 - :sources => ["http://rubygems.org/", "https://rubygems.org"]
 - "gem" => "--no-rdoc --no-ri"
 - "gempath" => ["/usr/lib/ruby/gems/1.8"]
 - "gemhome" => ["/Users/mc/.gems"]
- REMOTE SOURCES:
 - http://rubygems.org/
 - https://rubygems.org

我有最新版本的 xCode 并安装了命令行工具插件。

有些东西告诉我这是一个目录/权限问题,因为如果我在 OS X 上以 root 身份登录,我没有任何问题。我尝试使用 RVM 内爆并重新安装 ruby​​,但在下面的屏幕截图中显示,我总是遇到上述相同的 TypeError 问题。

http://i.imgur.com/1AQSEe9.jpg

【问题讨论】:

  • 运行 gem list --local 以显示本地宝石
  • 如果您不使用 ruby​​ 进行开发,请不要使用 rvm。为了在 Mac OS X 下编译 ruby​​,您必须安装兼容的编译器。我认为这些对于你做指南针工作来说不是必需的。
  • 当我运行 gem list --local 时,我看到没有安装本地 gem。通常我会使用 CodeKit 来编译我的 Sass 和 JavaScript,但我会研究一些 OS X 编译器并避免使用 RVM,谢谢。
  • 试试 macruby。 macruby.org

标签: ruby gem rvm rbenv rbenv-gemset


【解决方案1】:

首先,总的来说,我推荐rbenv 而非rvm 来维护您的红宝石和相关宝石。我发现 rbenv 更容易使用,并且干扰更少,并且在使用它的背后也没有那么痛苦。

其次,与 ShiningRay 评论的相反,能够维护和使用 Ruby 沙箱是一个巨大的胜利。有时您会想在没有

的情况下尝试不同的 rubies 和/或 gem 版本

如果你想安装 rbenv,最简单的方法是通过Homebrew。如果您安装 Homebrew,请在本地安装(不要使用 sudo 安装)。

要安装 Hombrew,只需在提示符下执行以下命令:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

在安装 rbenv 之前,您需要删除现有的 - 但显然不起作用的 - rvm 安装。请参阅How to remove rvm (ruby version manager from my system? 了解如何有效地做到这一点。

我相信您必须通过 sudo 运行 rvm implode 才能为您完成这项工作。

以本地用户身份安装 Homebrew 后,请使用它来安装 rbenv Homebrew on Mac OS X section 中所述的 rbenv。

重要 不要以 root 身份运行这些命令!不要使用 sudo。只需在上面安装 homebrew 时执行 rbenv 的本地安装。

除了 rbenv 和 ruby​​-build,我还会安装以下 rbenv 扩展:

注意 为了有效,在安装之前,rbenv-bundler 要求你安装了bundler。

现在您已经完成了所有这些,您可以开始安装您需要安装的 rubies 和 gems。我会创建一个 gemset,与您要使用的 ruby​​ 相关联,并将您需要使用的各种 gem 安装到其中。

【讨论】:

  • 谢谢你,@Jordan。我删除了 rvm 并成功安装了 Homebrew + rbenv,但在 brew install rbenv 之后确实收到了以下警告:Warning: The cleaning step did not complete successfully Still, the installation was successful, so we will link it into your prefix 我安装了 rbenv-gemset 扩展,但没有安装 rbenv-bundler,因为我遇到了同样的问题安装捆绑器时出现问题。 gem install bundler : ERROR: While executing gem ... (TypeError) can't convert Array into String 似乎我无法执行 gem install (任何东西)。
  • 这个周末我可能有一些时间来进一步研究这个问题。如果可以,我会更新我的回复或在此处添加评论。
猜你喜欢
  • 2012-04-26
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多