gpt4 book ai didi

ruby - Gem 不加载 config.ru

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

我有自己的 gem “RocketRuby”。我将它加载到 irb 中,它可以加载它。在较早的版本中,我的 config.ru 中也有它并且有效。

现在我又编译了一遍,又安装了一遍。然后(它仍然通过将其加载到 irb 中来工作)乘客崩溃并告诉我:

cannot load such file -- rocketruby (LoadError)
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
config.ru:1:in `block in <main>'
/var/lib/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
/var/lib/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
config.ru:1:in `new'
config.ru:1:in `<main>'
/var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:82:in `eval'
/var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:82:in `preload_app'
/var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:127:in `<module:App>'
/var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:6:in `<module:PhusionPassenger>'
/var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:5:in `<main>'

config.ru 看起来像这样:

require "rocketruby"
require "./shop_of_one.rb"

ShopOfOne.instance

run RocketRuby::RackApplication.new

非常奇怪的是,当这个错误出现时,在 irb 中 require "rocketruby" 仍然有效。

有什么帮助吗?

最佳答案

Passenger 以它自己的用户身份运行,并且不共享环境,即使是加载它的 apache 用户也是如此。这意味着您的 gem 可能在尝试运行时未安装。

使用 bundler 可以解决这个问题,我相信还有其他方法,但是添加一个 Gemfile,运行 bundle install --deployment 并添加:

require 'rubygems'
require 'bundler'

Bundler.require

到您的机架应用程序的顶部将解决这个问题。

关于ruby - Gem 不加载 config.ru,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16187050/

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