gpt4 book ai didi

ruby-on-rails - 使用 Rails 3 的乘客 3 不会从 vendor/加载 gem

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:03 31 4
gpt4 key购买 nike

我已经使用 Ruby 1.9.2 和 Passenger 3 设置了一个新环境。使用 Capistrano 部署了一个 Rails 3 应用程序。 RAILS_ENV 设置为暂存。

尝试启动应用程序时,Passenger 提示缺少 gem。运行

bundle --deployment 

将 gems 安装到 RAILS_ROOT/vendor,但没有解决错误。

如果我将丢失的 gem 安装为系统 gem(例如,sudo gem install),错误消失,但现在 Gemfile 中的下一个 gem 被报告为丢失。

我可以通过将我的 gem 安装到系统来解决这个问题,但我想了解为什么将它们安装到 vendor 目录不起作用。我的理解是 bundler 的想法是避免必须将所有 gem 安装到系统中。

我将 RAILS_ROOT/.bundle/config 设置为:

BUNDLE_FROZEN: "1"
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: "1"

最佳答案

理想情况下,gem 应保持在一致的位置,以避免在每次部署时重新安装它们。因此,请尝试从您的配置中删除 BUNDLE_PATH(默认位置为 ~/.bundle)。

我不确定 bundle --deployment 做了什么(我在文档中看不到这一点)。我在我的部署脚本中使用了类似这样的命令:

after :'deploy:update_code' do
run "cd #{release_path} && bundle install --without test cucumber development"
end

关于ruby-on-rails - 使用 Rails 3 的乘客 3 不会从 vendor/加载 gem ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4459808/

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