以下代码位于我的rails app的根文件夹中,并且守护/运行myserver.rb
。
# myserver_control.rb
require 'rubygems'
require 'daemons' # causes 'no such file to load -- daemons' error since gem reinstall with rvm
@options = {
# options defined
}
Daemons.run('myserver.rb', @options)
在安装rvm之前它工作正常,现在它似乎无法找到守护进程的宝石。我有一种感觉,也许以上是在某个系统范围的文件夹中搜索守护进程的宝石?而不是能够使用rvm安装的守护进程gem?如何在可以找到它的系统级别安装守护进程gem?或者我如何才能找到rvm安装的宝石?
目前我甚至没有系统'宝石套装。在安装了rvm后,如何在系统级别安装gem?
答案 0 :(得分:1)
如果希望使用系统ruby和gem,您可以输入
rvm use system
这将允许使用系统安装ruby和gem,但我认为这有点失败了使用RVM的目的我会在RVM中安装默认ruby并安装任何宝石。要在安装后设置默认Ruby,请键入此
rvm --default use 1.9.2
修改强>
基于评论你的问题在于运行sudo,这会创建一个新的子shell和不同的rvm实例
答案 1 :(得分:0)
RVM使用gemsets的概念,它是您可以使用的唯一一组宝石,通常特定于ruby版本(尽管您可以使它们特定于应用程序或全局)。
RVM将在更改ruby版本时更改您的GEM_HOME,这将告知ru ygems您的gem的安装位置。因此,当您安装RVM时,您创建了一个新的空白gemset,并且RVM告诉rubygems使用它。
这是因为宝石在rubygems之间并不总是交叉兼容。
但是,如果您只是编写rails应用程序,则应暂时忽略上述内容并使用bundler。放置宝石"守护进程"'我是你的Gemfile并从你的app根目录运行bundle update。
Bundle可以帮助您在每个应用程序的基础上维护宝石,这意味着如果您在其他地方升级宝石,您的应用程序将不会中断。使用它并了解它是如何工作的最佳实践。祝好运。