4

我对 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实际上是宝石之路。

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

在此先感谢,蒂姆

4

2 回答 2

1

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

如何在项目根文件夹中制作 rvmrc 文件?

于 2013-08-19T17:06:47.367 回答
0

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

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

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

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

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

当前的 Ruby 解释器是:

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

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

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

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

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

于 2015-11-21T03:34:48.830 回答