我正在尝试安装 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 问题。
最佳答案
首先,总的来说,我推荐rbenv在 rvm用于维护您的 ruby 和相关 gem 。我发现 rbenv 更易于使用,而且侵入性更小,在背后工作的痛苦也更少。
其次,与 ShiningRay 的评论相反,能够维护和使用 Ruby 沙箱是一个巨大的胜利。有时您会想在没有
的情况下尝试不同的 ruby 和/或 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,如 rbenv Homebrew on Mac OS X section 中所述.
重要 不要以 root 身份运行这些命令!不要使用须藤。就像安装上面的自制软件一样,只需在本地安装 rbenv。
除了 rbenv 和 ruby-build,我还会安装以下 rbenv 扩展:
注意 为了有效,在安装之前,rbenv-bundler 要求你有 bundler安装。
现在您已经完成了所有这些,您可以开始安装您需要安装的 ruby 和 gem 了。我会创建一个 gemset,与您要使用的 ruby 相关联,然后将您需要使用的各种 gem 安装到其中。
关于ruby - 无法安装 gem 或 RVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14742835/