RVM和Ruby的$ PATH问题

时间:2014-02-08 01:19:59

标签: ruby-on-rails ruby bash rvm gemset

这里有一个恼人的问题。我的$ PATH如下:

/Users/sherwyn/.rvm/gems/ruby-2.0.0-p353/bin:

/Users/sherwyn/.rvm/gems/ruby-2.0.0-p353@global/bin:

/Users/sherwyn/.rvm/rubies/ruby-2.0.0-p353/bin:

/Users/sherwyn/.rvm/bin:/usr/bin:/bin:

/usr/sbin:/sbin:

/usr/local/bin:/opt/X11/bin:

/Users/sherwyn/.rvm/bin:

运行which ruby给了我这个:

/Users/sherwyn/.rvm/rubies/ruby-2.0.0-p353/bin/ruby

当我运行$ PATH时,我收到错误no such file or directory

rvm list

没有错误

我也无法运行rails -v,因为它给了我错误:

ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.

不确定该尝试什么,非常感谢任何帮助

修改

我认为我的系统运行rails版本0.9.5有一些奇怪的原因。

/Users/sherwyn/.rvm/gems/ruby-2.0.0-p353/gems/rails-0.9.5/Rakefile:3:in `<top (required)>'
/Users/sherwyn/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/Users/sherwyn/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'

我一直在使用rails 4.0.2,不知道这里发生了什么......

修改

-bash: cd: /Users/sherwyn/Users/sherwyn/.rvm/gems/ruby-2.0.0-p353/bin: No such file or directory

我卸载了旧版本的rails

gem uninstall rails '0.9.5'

允许我执行rails -v并使用4.0.2。

当我说“run $ PATH”时,我的意思是我在控制台中键入“$ PATH”。

修改

vendor/bundle/ruby/2.0.0/gems/daemons-1.1.9/Rakefile:require 'rake/rdoctask'
vendor/bundle/ruby/2.0.0/gems/formatador-0.2.4/Rakefile:require 'rake/rdoctask'
vendor/bundle/ruby/2.0.0/gems/mailcatcher-0.2.4/Rakefile:require 'rake/rdoctask'
vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/doc/release_notes/rake-10.0.0.rdoc:* The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/doc/release_notes/rake-10.0.1.rdoc:* The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/doc/release_notes/rake-10.0.2.rdoc:* The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/doc/release_notes/rake-10.0.3.rdoc:* The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/rdoctask.rb:fail "ERROR: 'rake/rdoctask' is obsolete and no longer supported. " +
vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/Rakefile:    'lib/rake/rdoctask.rb',
vendor/bundle/ruby/2.0.0/gems/rdoc-4.1.1/History.rdoc:  * Added rdoc/task.rb containing a replacement for rake/rdoctask.rb.  Use
vendor/bundle/ruby/2.0.0/gems/tzinfo-0.3.38/Rakefile:require 'rake/rdoctask'

1 个答案:

答案 0 :(得分:1)

注意所有使用rdoctask的宝石,可能需要更新。您可以通过输入项目文件夹并发出grep rdoctask * -r来为其制作shure。

如果你的某些宝石使用vendor/bundle/文件夹,你应该通过[tag; bundler]将其移动到控件,因为文件夹vendor/已被弃用于插件,如果您使用非开源或易于安装的宝石,例如具有封闭属性的宝石或特定于应用程序的宝石,则可以仅用于宝石。

使用 / 环境来保持gemsets的最新状态,并远离项目。因为分割各种应用的保留区域是有用的,所以您将避免遇到类似的问题,使用环境或其他服务器来接近实际工作。

如果您发出bundle show rails并获得不通往/usr/local的路径,则表示您使用了的捆绑版本,可以使用bundle exec正确加载您的应用。所以,使用bundle exec你使用了非系统ruby,你可以避免这些问题。我建议在系统之前的{strong> 变量中放置路径。

当您使用 / 时,如果您已经使用操作,请设置该文件夹的相应权限:

sudo chown -R sherwyn /Users/sherwyn/.rvm

为您使用的每个应用正确设置 .ruby-version .ruby-gemset

echo ruby-2.0.0 > .ruby-version
echo itagora > .ruby-gemset

然后重新进入app文件夹:

cd ..
cd app_folder

关于the answer安装的通知,请查看