1

几天来,我一直试图让 Ruby 在我的 Mac 上运行,但无论我做什么似乎都没有成功。我已经安装了 MacPorts 并按照这里的帖子:在 Mac OS X 10.8.2 上安装 Ruby

我运行了以下命令:

sudo port selfupdate
sudo port install apple-gcc42

他们成功完成了,然后我运行了下面的行:

CC=/opt/local/bin/gcc-apple-4.2 rvm install ruby-1.9.3-p194 --enable-shared --without-tk --without-tcl

在我运行那条线之后,它需要几分钟,我得到以下信息:

在此处输入代码 MacPorts base 已经是最新版本 调试:将 MacPorts 源所有权设置为 root 端口树已更新。要升级已安装的端口,您应该运行 port upgrade outdated i686-apple-darwin12-gcc-apple-4.2.1: no input files Missing required packages: autoconf, automake, libtool, pkgconfig, libiconv, libyaml, readline, libxml2, libxslt ,libksba,openssl,curl-ca-bundle,sqlite3,zlib,ncurses,gdbm。懦弱地拒绝继续,请阅读“rvm autolibs”。出现包安装错误,请务必阅读日志。

我是否需要安装它引用的缺失包?如果是这样,我该怎么做?我对 MacPorts 不是很熟悉,希望能帮我完成这项工作。

因为我最初是通过https://rvm.io/rvm/install/安装 RVM,所以我按照第一个命令使用 ruby​​ 安装 RVM:

$ \curl -#L https://get.rvm.io | bash -s stable --autolibs=3 --ruby

在我运行它下载并编译的命令之后,当它为 ruby​​-2.0.0-p0 安装 ruby​​gems-2.0.3 时,它给出了以下错误消息:

Error running 'env GEM_PATH=/usr/local/rvm/gems/ruby-2.0.0-p0:/usr/local/rvm/gems/ruby-2.0.0-p0@global:/usr/local/rvm/gems/ruby-2.0.0-p0:/usr/local/rvm/gems/ruby-2.0.0-p0@global GEM_HOME=/usr/local/rvm/gems/ruby-2.0.0-p0 /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby -d /usr/local/rvm/src/rubygems-2.0.3/setup.rb --verbose', please read /usr/local/rvm/log/ruby-2.0.0-p0/rubygems.install.log

然后我去打开日志文件,在底部它说

ERROR: While executing gem ... (NoMethodError) undefined method fu_stream_blksize for #<Gem::Commands::SetupCommand:0x007fa09b05d7a8> Installing RubyGems Installing gem executable

有什么想法我接下来可以做什么吗?

提前致谢。

4

4 回答 4

2

我在 OS X 10.8.3 和 XCode 4.6.1 上遇到了类似的问题。经过一番谷歌搜索后,我尝试使用类似的 RVM 命令进行安装,除了使用 XCode 版本的 clang(符号链接到 /usr/bin/cc)。尝试这个:

\curl -#L https://get.rvm.io | bash -s stable    #just get rvm

source ~/.rvm/scripts/rvm

rvm get head  # update to latest rvm

CC=/usr/bin/cc rvm install ruby

安装 ruby​​gems-2.0.3 应该有同样的失败,但重新安装 ruby​​gems 应该可以工作:

CC=/usr/bin/cc rvm install rubygems latest  # substitute "2.0.3" for "latest" if you like.

看来这是 ruby​​gems 中的一个错误,计划在 2.0.4 中修复。

希望有帮助!

于 2013-03-28T20:05:16.537 回答
2

我认为这个错误来自FileUtils。要修复它,您需要从 rvm 更改 ruby​​gems 脚本:nano .rvm/scripts/rubygems 在 nano 中查找单词ctrl+w setup.rb并删除--verbose选项。在此之后,您需要ctrl+o保存文件并ctrl+x关闭 nano。

现在您可以重新安装 ruby​​gems:

rvm rubygems remove
rvm rubygems latest

对不起,我的英语不好。希望这对您有所帮助。

于 2013-03-30T06:26:12.533 回答
1

除了 Valery 的回答之外,您可能必须在删除和重新安装之前执行以下操作:

echo ${LANG:-empty}
export LANG=en_US.utf-8

问题和解决方法的链接:

  1. https://github.com/rubygems/rubygems/issues/516
  2. https://github.com/wayneeseguin/rvm/issues/1689
于 2013-04-11T03:52:48.547 回答
0

这个问题是无害的,rubygems 已经安装并且将按预期工作,这是由https://bugs.ruby-lang.org/issues/7992触发的- 带有--verboseruby​​gems 安装标志 - 如果没有,您的 ruby​​ 完全可用安装过程中的其他错误。


附带说明一下,RVM 会检测您传递的所有选项/标志,并且不需要手动传递它们,运行就足够了:

rvm install ruby-1.9.3-p194


运行的 RVM 安装程序--autolibs=3相当于运行它而不使用它并手动设置它:

rvm autolibs 3

要获取有关autolibs和可用模式的更多信息,请运行:

rvm help autolibs
于 2013-04-11T06:59:06.877 回答