Ruby on Rails中的Gem路径错误

时间:2013-08-19 15:20:30

标签: ruby-on-rails ruby rubygems

我对Ruby on Rails相对较新。

我尝试运行应用时遇到问题。我得到以下错误:

  

*错误* :无法执行/usr/local/rvm/wrappers/ruby-1.8.7-p174@soda/ruby:没有此类文件或目录(2)

这是真的;没有这样的目录。有一个名为的文件 /usr/local/rvm/wrappers/ruby-1.8.7-p174@DACE/ruby - 这正是我想要使用的gem文件。

据我了解,.rvmrc文件指定了gem文件的目录。但是,在这种情况下,.rvmrc具有以下内容:

rvm --create use  "ruby-1.8.7-p174@DACE"

此外,rvm info /usr/local/rvm/gems/ruby-1.8.7-p174@DACE的雕像实际上是宝石路径。

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

提前致谢, 添

2 个答案:

答案 0 :(得分:1)

运行rvm current以查看您使用的ruby版本和gemset。然后运行rvm gemset list以查看您创建的gemsets。如果未列出soda,请执行rvm gemset create soda创建此gemset 删除此.rvmrc文件,然后再创建一个文件。 (这不会破坏项目中的任何内容,只会删除ruby和gem的项目引用) 您可以阅读此答案,以帮助您更好地了解rvm的工作原理,其中有一个链接:

How to make rvmrc file in project root folder?

答案 1 :(得分:0)

我在使用Nginx& amp;设置轨道生产机器时遇到了同样的问题。乘客。我在这里解决了这个问题。

  1. 确保安装了乘客gem,然后cd进入项目目录并运行以下命令
  2. passenger-config build-native-support --help
    

    这将为您提供类似于以下的输出:

      

    用法:passenger-config build-native-support [OPTIONS]

         

    Phusion Passenger使用名为的Ruby原生扩展   native_support,用于提高Ruby性能。扩展名   取决于Phusion Passenger版本和Ruby版本。   通常,每次使用Ruby运行Phusion Passenger版本   它之前没有遇到的版本,它将重建   该Ruby版本的native_support库。通过运行这个   命令,您可以强制为其构建native_support   当前的Ruby解释器。

         

    目前的Ruby解释器是:

    Path: /home/deploy/.rvm/gems/ruby-x.x.x@gemset/wrappers/ruby
    Version: 2.1.5
    
         

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

    1. 现在从输出中复制Path并将其粘贴到nginx配置文件中。就我而言,它位于/etc/nginx/nginx.conf

      passenger_ruby /home/deploy/.rvm/gems/ruby-x.x.x@gemset/wrappers/ruby

    2. 最后重启服务器或运行部署脚本。