我用Nginx安装了Phusion Passenger,配置Nginx指向正确的目录,然后我运行了webapp目录,这已下载了gemfiles,但是找不到宝石。
当我访问该网站时,我得到了标准的乘客错误页面,其中包含:
Error message:
no such file to load -- bundler
以下是完整错误:http://tinypic.com/view.php?pic=vpx36r&s=7
我做了gem install bundler
因此我知道已安装了bundler,但我认为它正在寻找宝石的错误位置。
似乎Passenger已经安装了ruby-enterprise-1.8.7,看起来1.8已经安装在此框中。
gem env给了我以下内容:
- RUBYGEMS VERSION: 1.4.2
- RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/ruby-enterprise-1.8.7-2010.01/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- /root/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
从我所看到的看来,它似乎是一个路径问题,但我不知道解决它的最佳方法是什么。
这是
的输出哪个红宝石:
/opt/local/ree/bin/ruby
哪个捆绑包:
/opt/local/ree/bin/bundle
我在该目录中运行了bundle install,它给了我:
Your bundle is complete! It was installed into ./vendor/bundle
答案 0 :(得分:8)
看起来你有一些路径问题(如你所说)。尝试检查为什么你有两个不同的ruby安装路径。
我的意思是,根据你的gem env输出,你有一些安装
/opt/local/ruby-enterprise-1.8.7-2010.01/
但你也有
下的ruby和bunlder/opt/local/ree/
所以,从这里开始检查所有路径是否正确和/或你没有任何双重安装(好吧,它足以检查你的ENV是否连贯)。
另一个问题可能与你的nginx.conf有关,你应该有这样的东西:
[...]
http {
passenger_root /your/path/to/passenger/gem;
passenger_ruby /path/to/ruby;
[...]
}
UPDATE (刚看到nginx.conf的其他评论):
正如您所看到的,路径存在问题:您有两个用于ruby和gems安装的路径:
/opt/local/ruby-enterprise....
和
/opt/local/ree
你应该删除后者(不是在phisically,只需检查ENVs指向第一个)
编辑: 要更改您的环境,您可以将以下行附加到 /etc/bash.bashrc (或默认情况下从您的shell加载whaterver文件):
PATH="/opt/local/ruby-enterprise-1.8.7-2010.01/bin:$PATH"
然后注销并登录,或者进行快速测试,从shell发出此命令:
source /etc/bash.bashrc
现在,重试以查看默认情况下使用的二进制文件:
which ruby
which gem
which rake
gem env
...
一切都应该有 /opt/local/ruby-enterprise-1.8.7-2010.01 / 前缀(这是从nginx和乘客配置中使用的)。
UPDATE2 :从评论中可以看出,您至少安装了3个ruby:
此时,最好的办法是:
卸载(清除)系统提供的ruby包(你不需要它)
安装并设置RVM:https://rvm.io