无法在Mac OSX 10.8.3上运行ruby

时间:2013-03-26 19:07:40

标签: ruby macos macports

我一直试图让Ruby在我的Mac上运行几天,无论我做什么似乎都没有成功。我已经安装了MacPorts并在此处发布了帖子:Installing Ruby on Mac OS X 10.8.2

我运行了以下命令:

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已经是最新版本   DEBUG:将MacPorts源所有权设置为root   端口树已更新。要升级已安装的端口,您应该运行   端口升级过时了   i686-apple-darwin12-gcc-apple-4.2.1:没有输入文件   缺少必需的软件包: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安装rubygems-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 个答案:

答案 0 :(得分:2)

我在OS X 10.8.3和XCode 4.6.1中遇到了类似的问题。经过一些谷歌搜索,我尝试使用类似的RVM命令安装,除了使用clang的XCode版本(符号链接到/ 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

安装rubygems-2.0.3应该有同样的失败,但重新安装rubygems应该有效:

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

这似乎是bug in rubygems,计划在2.0.4中修复。

希望有所帮助!

答案 1 :(得分:2)

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

现在你可以重新安装rubygems:

rvm rubygems remove
rvm rubygems latest

抱歉我的英语不好。 希望这能帮助你。

答案 2 :(得分: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

答案 3 :(得分:0)

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

<小时/> 另请注意,RVM会检测您已经通过的所有选项/标记,并且不需要手动传递它们,只需运行即可:

rvm install ruby-1.9.3-p194

<小时/> 使用--autolibs=3运行的RVM安装程序相当于使用以下方式运行它并使用以下方式手动设置:

rvm autolibs 3

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

rvm help autolibs