gpt4 book ai didi

ruby-on-rails - 乘客 RVM 错误 : cannot load such file -- bundler/setup

转载 作者:行者123 更新时间:2023-12-04 18:11:37 28 4
gpt4 key购买 nike

我有一个 Debian 服务器,当我尝试运行Passenger 并导航到我的应用程序的根目录时:

错误:

cannot load such file -- bundler/setup

环境
deployment@currienet:/$ which ruby
/home/deployment/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
deployment@currienet:/$ ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
deployment@currienet:/$ which rails
/home/deployment/.rvm/gems/ruby-1.9.3-p194/bin/rails
deployment@currienet:/$ rails --version
Rails 3.2.8
deployment@currienet:/$ which bundle
/home/deployment/.rvm/gems/ruby-1.9.3-p194/bin/bundle
deployment@currienet:/$ gem list bundle
bundler (1.2.1)
deployment@currienet:/$ gem list passenger
passenger (3.0.17)
deployment@currienet:/$ which rvm
/home/deployment/.rvm/bin/rvm
deployment@currienet:/$ rvm --version
rvm 1.16.6 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

Apache的passenger.load文件
LoadModule passenger_module /home/deployment/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/deployment/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /usr/local/bin/ruby

Apache 的 httpd.conf
<VirtualHost *:80>
ServerName http://currienet
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/currienet/marketplace/current/public
<Directory /var/www/currienet/marketplace/current/public >
# This relaxes Apache security settings.
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>

bundle
deployment@currienet:/var/www/currienet/marketplace/current$ bundle show
Gems included by the bundle:
* actionmailer (3.2.8)
* actionpack (3.2.8)
* activemodel (3.2.8)
* activerecord (3.2.8)
* activeresource (3.2.8)
* activesupport (3.2.8)
* arel (3.0.2)
* bcrypt-ruby (3.0.1)
* builder (3.0.0)
* bundler (1.2.1)
* cocaine (0.2.1)
* coffee-rails (3.2.2)
* coffee-script (2.2.0)
* coffee-script-source (1.3.3)
* daemon_controller (1.0.0)
* devise (2.1.2)
* erubis (2.7.0)
* execjs (1.4.0)
* fastthread (1.0.7)
* haml (3.1.7)
* haml-rails (0.3.4)
* hike (1.2.1)
* i18n (0.6.1)
* journey (1.0.4)
* jquery-rails (2.1.1)
* json (1.7.5)
* mail (2.4.4)
* mime-types (1.19)
* multi_json (1.3.6)
* orm_adapter (0.4.0)
* paperclip (3.1.2)
* passenger (3.0.17)
* pg (0.14.0)
* polyglot (0.3.3)
* rack (1.4.1)
* rack-cache (1.2)
* rack-ssl (1.3.2)
* rack-test (0.6.1)
* rails (3.2.8)
* railties (3.2.8)
* rake (0.9.2.2)
* rdoc (3.12)
* sass (3.2.1)
* sass-rails (3.2.5)
* sprockets (2.1.3)
* thor (0.16.0)
* tilt (1.3.3)
* treetop (1.4.10)
* tzinfo (0.3.33)
* uglifier (1.2.7)
* warden (1.2.1)
* will_paginate (3.0.3)

账户

我在服务器上有两个帐户:root 和部署。

我的应用程序和 rvm 安装在部署下,但 Apache 安装在 root 下(能够绑定(bind)到端口 80) 通过运行 ps -fe 从进程列表判断乘客被 apache 调用并在 root 下运行:
root     16159 16155  0 02:08 ?        00:00:00 PassengerWatchdog
root 16165 16159 0 02:08 ? 00:00:00 PassengerHelperAgent
root 16167 16165 0 02:08 ? 00:00:00 Passenger spawn server
nobody 16172 16159 0 02:08 ? 00:00:00 PassengerLoggingAgent
www-data 16179 16155 0 02:08 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 16180 16155 0 02:08 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 16181 16155 0 02:08 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 16182 16155 0 02:08 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 16183 16155 0 02:08 ? 00:00:00 /usr/sbin/apache2 -k start

root 帐户无权访问 root 路径中的 rails 或 bundle。

.rvmrc & config/setup_load_paths.rb

我已尝试按照 The Path to Better RVM & Passenger Integration Blog 上的说明进行操作和 Using RVM rubies with Passenger :

使用以下命令在我的应用程序的根目录中创建一个 .rvmrc 文件:
rvm use 1.9.3 --rvmrc --create

生成文件.rvmrc:
if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
then
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
[[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
\. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
if [[ $- == *i* ]] # check for interactive shells
then echo "Using: $(tput setaf 2)$GEM_HOME$(tput sgr0)" # show the user the ruby and gemset they are using in green
else echo "Using: $GEM_HOME" # don't use colors in non-interactive shells
fi
else
# If the environment file has not yet been created, use the RVM CLI to select.
rvm --create use "$environment_id" || {
echo "Failed to create RVM environment '${environment_id}'."
return 1
}
fi

# If you use bundler, this might be useful to you:
if [[ -s Gemfile ]] && {
! builtin command -v bundle >/dev/null ||
builtin command -v bundle | GREP_OPTIONS= \grep $rvm_path/bin/bundle >/dev/null
}
then
printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
gem install bundler
fi
if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
then
bundle install | GREP_OPTIONS= \grep -vE '^Using|Your bundle is complete'
fi

并将以下内容添加到 config/setup_load_paths.rb
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
begin
rvm_path = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
rvm_lib_path = File.join(rvm_path, 'lib')
$LOAD_PATH.unshift rvm_lib_path
require 'rvm'
RVM.use_from_path! File.dirname(File.dirname(__FILE__))
rescue LoadError
# RVM is unavailable at this point.
raise "RVM ruby lib is currently unavailable."
end
end

# Select the correct item for which you use below.
# If you're not using bundler, remove it completely.

# If we're using a Bundler 1.0 beta
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'

并通过运行启动 apache
sudo /etc/init.d/apache2 restart

我仍然得到同样的错误。

无用

我发现以下相关问题没有帮助(但可能对其他人有用):

RVM and Passenger: No such file to load - bundler - 解决方案是 Apache 配置文件中旧虚拟主机的剩余配置。

最佳答案

你有

deployment@currienet:/$ which ruby
/home/deployment/.rvm/rubies/ruby-1.9.3-p194/bin/ruby


PassengerRuby /usr/local/bin/ruby

这不是你想要的。 rvm可以选择设置解释器以用作乘客的默认解释器。 https://rvm.io/integration/passenger/

此外(查看您的最后一次编辑)也许您需要在系统范围内安装 rvm,因为乘客将以 root 身份运行。

关于ruby-on-rails - 乘客 RVM 错误 : cannot load such file -- bundler/setup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12660763/

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