【问题标题】:Yosemite, ruby issues优胜美地,红宝石问题
【发布时间】:2015-11-23 01:12:26
【问题描述】:

我买了一台带有 Yosemite 的新 Macbook Pro,我在以前的机器上安装了 Mavericks。 IT 说他从我的旧机器上重新映像,但是缺少很多东西。我并没有想太多,我只是开始手动安装我所有的全局变量(node、npm、mongodb、sass)以及我缺少的其他软件。

问题 我似乎无法得到任何与工作有关的红宝石。对于所有 gem 安装尝试,我都会收到相同的错误。

/Library/Ruby/Site/2.0.0/rubygems/specification.rb:15:in `require': cannot load such file -- rubygems/util/stringio (LoadError)
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:15:in `<top (required)>'
from /Library/Ruby/Site/2.0.0/rubygems.rb:1204:in `require'
from /Library/Ruby/Site/2.0.0/rubygems.rb:1204:in `<module:Gem>'
from /Library/Ruby/Site/2.0.0/rubygems.rb:115:in `<top (required)>'
from <internal:gem_prelude>:1:in `require'
from <internal:gem_prelude>:1:in `<compiled>'

请记住,我没有接触过 ruby​​,我什至没有使用自制软件,因为它是用 ruby​​ 安装的。我尝试时遇到同样的错误。

ruby -v 给了我这个:

ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

回显 $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/ryanore/npm-global:/data/db:/usr/local/bin/mongodb/bin

很有可能我需要完全重新安装 Yosemite,但我不是 Ruby 人,所以我希望有人告诉我这是一个简单的修复方法。

请,谢谢。

【问题讨论】:

  • 这很容易解决。告诉 IT 人员,他显然没有对机器进行映像,就好像他做了一样,您将拥有相同的设置,但硬盘驱动器上的可用(可能)空间除外。让他使用正确的图像。除此之外,您将不得不进行一些安装。

标签: ruby osx-yosemite


【解决方案1】:

您当前正在使用 OS X 默认的 Ruby 安装。似乎也缺少一些 gem 安装。

我建议安装 RVM 并使用 Ruby Version Manager 安装您喜欢的 Ruby 版本(我会选择 2.2)*。

这将允许您安装更新的 Ruby 版本并保持操作系统的 Ruby 安装完好无损。

安装干净的 Ruby 更新版本后,只需使用 rvm (rum use 2.2) 选择更新版本并安装所需的所有 gem - 如果您正在使用,您可能希望从应用的文件夹中运行 bundle install Bundler(Rail 的默认 gem 管理器)。

不需要为了这么小的事情重新安装整个系统,但是干净更新的 Ruby 安装总是很有趣。

附言

确保在安装任何需要编译的 gem 之前安装 XCode 和命令行工具。 ruby 安装可能也需要 XCode。

* 确保遵循RVM's 的说明并在安装任何 gem 之前选择您新安装的 Ruby 版本。您可能希望将新安装的 Ruby 版本设为您的用户的默认版本:rvm use 2.2 --default

【讨论】:

  • 谢谢,我倾向于 rbenv ,这是另一个话题。但我很欣赏这个答案。
  • 作为更新,RVM 使用需要 ruby​​ 的自制软件,这最终给了我同样的错误。所有的道路都会导致这个错误。再次感谢伙计。
【解决方案2】:

安装 Xcode 和命令行工具。通过在终端中运行来安装命令行工具

xcode-select --install

至于 Ruby 版本管理器,我更喜欢 rbenv。使用系统 ruby​​ 会遇到太多问题。

安装 RBENV:

克隆仓库:

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

将 Rbenv 添加到您的 $PATH - 在终端中运行:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

将 rbenv init 添加到您的 shell - 在终端中运行:

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

重新启动您的终端以进行更改

你应该可以跑了:

 type rbenv

应该输出:“rbenv is a function”

现在将 Ruby-build 安装为插件

克隆仓库:

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

您还应该安装一些推荐的库以避免依赖项问题 - 假设您使用的是自制软件:

brew install openssl libyaml libffi

现在开始安装 Ruby:

列出可用版本

rbenv install -l

安装一个版本

rbenv install 2.2.0

设置全局运行:

rbenv global 2.2.0

还有更多可用的命令,但这些命令应该可以帮助您入门。

https://github.com/sstephenson/rbenv

https://github.com/sstephenson/ruby-build#readme

【讨论】:

  • 感谢您的详细回答。
【解决方案3】:

有趣的是,正确的答案最终是@vgoff 在评论中所说的。告诉 IT 人员他做错了。

我正在进行一个为期 4 个月的大型项目,但我无法擦拭我的机器,直到它结束。我无法用 rbenv 或 rvm 解决问题,因为它总是会导致相同的错误。我什至无法安装它们。

感谢所有答案,但最后,这种边缘情况只能通过全新安装解决

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多