繁体   English   中英

Ruby on Rails中的Gem路径错误

[英]Gem path error in Ruby on Rails

我对Ruby on Rails比较陌生。

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

* ERROR * :无法执行/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实际上是宝石路径。

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

蒂姆,提前谢谢

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

如何在项目根文件夹中创建rvmrc文件?

我在使用Nginx和Passenger设置rails生产机器时遇到了同样的问题。 这就是我解决问题的方法。

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

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

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

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

目前的Ruby解释器是:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM