gpt4 book ai didi

ruby 乘客 : no such file to load bundler

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:21 27 4
gpt4 key购买 nike

我用 Nginx 安装了 Phusion Passenger,将 Nginx 配置为指向正确的目录,然后我运行 webapp 目录,这已经下载了 gemfile,但找不到 gem。

当我访问该网站时,我看到标准的 Passenger 错误页面,上面写着:

Error message:
no such file to load -- bundler

这是完整的错误:http://tinypic.com/view.php?pic=vpx36r&s=7

我做了一个 gem install bundler 所以我知道 bundler 已经安装了,但我认为它在错误的地方寻找 gem。

似乎 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/

根据我的阅读,这似乎是一个路径问题,但我不知道解决它的最佳行动方案是什么。

这是

的输出

哪个 ruby :

/opt/local/ree/bin/ruby

哪个包:

/opt/local/ree/bin/bundle

我在该目录中运行了 bundle install,它给了我:

Your bundle is complete! It was installed into ./vendor/bundle

最佳答案

看起来你有一些路径问题(正如你已经说过的)。尝试检查为什么您的 ruby​​ 安装有两个不同的路径。

我的意思是,根据你的 gem env 输出,你有一些安装

 /opt/local/ruby-enterprise-1.8.7-2010.01/

但是你下面还有ruby和bundlder

/opt/local/ree/

因此,从这里开始检查所有路径是否正确和/或您没有任何双重安装(好吧,这足以检查您的 ENV 是否连贯)。

另一个问题可能与你的 nginx.conf 有关,你应该有这样的东西:

[...]
http {
passenger_root /your/path/to/passenger/gem;
passenger_ruby /path/to/ruby;
[...]
}

更新(刚刚看到 nginx.conf 的附加评论):

如您所见,路径存在问题:您有两个用于安装 ruby​​ 和 gems 的路径:

/opt/local/ruby-enterprise....

/opt/local/ree

你应该删除后者(不是物理上的,只是检查 ENVs 指向第一个)

编辑:要更改您的环境,您可以将以下行附加到您的 /etc/bash.bashrc (或者默认情况下从您的 shell 加载的任何文件):

PATH="/opt/local/ruby-enterprise-1.8.7-2010.01/bin:$PATH"

然后注销并登录,或者为了快速测试,从 shell 启动此命令:

来源/etc/bash.bashrc

现在,重试查看默认情况下使用的二进制文件:

which ruby
which gem
which rake
gem env
...

一切都应该有 /opt/local/ruby-enterprise-1.8.7-2010.01/ 前缀(这是 nginx 和 passenger 配置中使用的)。

UPDATE2:根据评论,事实证明您至少安装了 3 个 ruby​​:

  • 来自/usr/lib/ruby/中包管理器的 ruby​​(您使用的是 ubuntu linux 吗?)
  • /opt/local/ree/中的 ruby
  • 在/opt/local/ruby-enterprise-.... 中的 ruby

此时,最好的办法是:

  • 卸载/opt/local/下的所有 ruby​​ 及其所有 gem
  • 卸载(清除)系统提供的 ruby​​ 包(您不需要它)

  • 安装和设置 RVM:https://rvm.io

  • 使用 RVM 重新安装 passenger:https://rvm.io/integration/passenger/
  • 修复 nginx.conf 以使用 passenger 路径和 ruby​​

关于 ruby 乘客 : no such file to load bundler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com