Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby在Yosemite安装后失败_Ruby_Macos_Vagrant_Osx Yosemite - Fatal编程技术网

Ruby在Yosemite安装后失败

Ruby在Yosemite安装后失败,ruby,macos,vagrant,osx-yosemite,Ruby,Macos,Vagrant,Osx Yosemite,自从去年秋天升级到约塞米蒂之后,我就没有使用过ruby、vagrant或rvm。但是我现在需要为一个项目使用Vagrant,所以我运行了最新的软件包安装程序并尝试运行它。我从ruby那里得到一个错误。我不确定在OSX升级过程中rvm或其他东西是否损坏,所以首先我尝试从rvm安装最新的ruby,但这也不能解决我运行Vagrant的问题,所以我卸载了rvm和它知道的所有ruby。我应该回到纯香草OSX ruby。然后我试着测试ruby,看看会发生什么: $> which ruby /usr/l

自从去年秋天升级到约塞米蒂之后,我就没有使用过ruby、vagrant或rvm。但是我现在需要为一个项目使用Vagrant,所以我运行了最新的软件包安装程序并尝试运行它。我从ruby那里得到一个错误。我不确定在OSX升级过程中rvm或其他东西是否损坏,所以首先我尝试从rvm安装最新的ruby,但这也不能解决我运行Vagrant的问题,所以我卸载了rvm和它知道的所有ruby。我应该回到纯香草OSX ruby。然后我试着测试ruby,看看会发生什么:

$> which ruby
/usr/local/bin/ruby

$> ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.i386-darwin14]
dyld: lazy symbol binding failed: Symbol not found: _ruby_run
  Referenced from: /usr/local/bin/ruby
  Expected in: /usr/lib/libruby.dylib

dyld: Symbol not found: _ruby_run
  Referenced from: /usr/local/bin/ruby
  Expected in: /usr/lib/libruby.dylib

Trace/BPT trap: 5
我尝试运行Vagrant的问题似乎是它在/usr/local/bin/ruby中查找ruby,因此没有找到任何rvm ruby,而是使用了系统ruby。动态库引用是关于什么的?几年前,我安装了MacPorts来获取postresql,但这也没有在升级后幸存下来,至少port命令消失了,我已经按照他们网站上的建议将所有旧文件移到一边作为卸载。我希望这不会影响事情

关于此类故障,这里还有一些类似的问题,但都指向安装rvm或MacPorts或HomeBrew或其他第三方软件包的解决方案。我想要的是OSX安装的ruby能够在我妻子(非开发者)的mac上运行。我不是一个ruby开发人员,所以我不想跟上ruby和朋友的步伐,我只希望这台机器的默认ruby能够正常工作。如果需要,我可以在以后安装rvm或类似产品

你知道这到底是怎么搞砸的吗?更重要的是,我如何回到工作状态以便ruby运行?事实上,是否有一个资源描述了这些东西是如何安排和配置的,因为我怀疑,无论这是什么乱七八糟的事情,都可能出现在其他领域。

ruby系统位于

/usr/bin/ruby

您正在使用的可能是由自制软件安装的。检查系统ruby是否在
/usr/bin/
中,并删除
/usr/local/bin
中的一个。在
/usr/bin
之前,您的路径中可能有
/usr/local/bin

啊,我把ruby移到了/usr/local/bin,现在我的系统ruby运行了。奇怪的是,它的日期是2009年,所以我不知道这是从哪里来的。我回显了.bashrc顶部的路径,得到了“/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin”,所以它被设置在其他地方了?我删除了vagrant并重新安装了它,但它仍然以#开头/usr/local/bin/ruby,现在由于没有ruby而失败。任何一个流浪汉都知道它为什么会这样做吗?哦,看起来这一定是ruby gems的问题。吼叫声我去兔子洞。流浪汉可能有一个配置文件。你的路径没有设置在其他地方,它在那里写着“/usr/local/bin:/…”这就是为什么它首先在/usr/local/bin中查找,然后在那里找到了一个ruby。是的,我自己很困惑,以为你的意思是它应该先有/usr/bin!:-)我想根本的问题是我的宝石都弄乱了。我手动删除了gem命令,重新安装了它。从它报告安装的地方运行它,移除所有我能移除的宝石,然后当我重新获得外壳时,它神奇地开始工作。我怀疑我有一堆坏了的ruby命令不起作用,但我可以稍后将它们根除。Vagrant现在运行时没有ruby错误,所以我可以很好地解决实际问题,谢谢!很高兴知道。我使用Rubymine和
rvm
。非常适合管理一切。