2013-08-19 165 views
4

我对Ruby on Rails比较陌生。Ruby on Rails中的Gem路径错误

我尝试运行应用程序时遇到问题。我得到以下errror:

* ERROR *:无法执行/usr/local/rvm/wrappers/[email protected]/ruby:没有这样的文件或目录(2)

这是真的;没有这样的目录。有一个名为 /usr/local/rvm/wrappers/[email protected]/ruby的文件 - 这正是我想要使用的gem文件。

据我所知,.rvmrc文件指定了gem文件的目录。在这种情况下,然而,.rvmrc有以下几点:

rvm --create use "[email protected]" 

此外,rvm info雕像是/usr/local/rvm/gems/[email protected]实际上是在创业板路径。

那么,它为什么认为它应该寻找这条不存在的路径?

由于提前, 添

+0

输出结果是什么:'rvm','rvm current'和'rvm gemset list'? – cortex

回答

1

运行一个rvm current看到红宝石的版本和您所使用的宝石。然后运行rvm gemset list以查看您创建的哪些宝石集。如果未列出soda,则请执行rvm gemset create soda以创建此gemset。
删除此.rvmrc文件,然后创建另一个文件。 (这不会破坏你项目中的任何内容,只会删除ruby和gems的项目引用)。
你可以阅读这个答案可以帮助您更好地了解如何RVM的作品,有一个环节有:

How to make rvmrc file in project root folder?

0

我遇到同样的问题,而与Nginx的&乘客设立轨生产机器。以下是我解决问题的方法。

  1. 确保乘客宝石安装,然后cd到项目目录,并运行以下命令
passenger-config build-native-support --help 

,这将给你输出类似以下内容:

用法:passenger-config build-native-support [选项]

Phusion Passenger使用Ruby原生扩展名为 native_support来改进Ruby性能。扩展 取决于Phusion Passenger版本和Ruby版本。 正常情况下,每次运行Phusion Passenger版本时,都会遇到以前没有遇到过的Ruby 版本,它会重建该版本的 native_support库。通过运行这个 命令,您可以强制为当前的Ruby解释器构建native_support以构建 。

目前Ruby解释是:

Path: /home/deploy/.rvm/gems/[email protected]/wrappers/ruby 
Version: 2.1.5 

选项: -h,--help显示此帮助

  • 现在复制从路径输出并粘贴到nginx配置文件中。在我的情况下,它是位于/etc/nginx/nginx.conf

    passenger_ruby /home/deploy/.rvm/gems/[email protected]/wrappers/ruby

  • 最后重新启动服务器或运行你的部署脚本。