0

我正在尝试学习如何使用Passenger 和Nginx 将Ruby/Sinatra 应用程序部署到野外。不幸的是,当我尝试运行我的代码时,我遇到了以下错误:

cannot load such file -- rack/showexceptions (LoadError)
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/sinatra-base-1.0/lib/sinatra/showexceptions.rb:1:in `require'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/sinatra-base-1.0/lib/sinatra/showexceptions.rb:1:in `<top (required)>'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/sinatra-base-1.0/lib/sinatra/base.rb:6:in `require'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/sinatra-base-1.0/lib/sinatra/base.rb:6:in `<top (required)>'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/sinatra-base-1.0/lib/sinatra.rb:4:in `require'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/sinatra-base-1.0/lib/sinatra.rb:4:in `<top (required)>'
/home/kwonda/ITC/ITC.rb:1:in `require'
/home/kwonda/ITC/ITC.rb:1:in `<top (required)>'
config.ru:1:in `require'
config.ru:1:in `block in <main>'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/rack-2.0.5/lib/rack/builder.rb:55:in `instance_eval'
/home/kwonda/.rvm/gems/ruby-2.5.1/gems/rack-2.0.5/lib/rack/builder.rb:55:in `initialize'
config.ru:1:in `new'
config.ru:1:in `<main>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:101:in `eval'
/usr/share/passenger/helper-scripts/rack-preloader.rb:101:in `preload_app'
/usr/share/passenger/helper-scripts/rack-preloader.rb:189:in `block in <module:App>'
/usr/share/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:380:in `run_block_and_record_step_progress'
/usr/share/passenger/helper-scripts/rack-preloader.rb:188:in `<module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'

我需要以下宝石:

require 'sinatra'
require 'sinatra/base'
require 'sinatra/reloader'
require 'docx'

宝石文件

source 'https://rubygems.org/'

gem 'sinatra'
gem 'sinatra-base'
gem 'sinatra-reloader'
gem 'docx'

# Use Passenger as app server:
# gem 'passenger'

我找不到任何有类似问题的线程。我的猜测是与 Rack 和 Sinatra 存在某种不兼容,但我所有的 gem 都已更新。我在公司代理后面运行 Centos 7。任何帮助都会很棒!

4

1 回答 1

0

Skydan 的问题为我指明了正确的方向。我是手动安装每个 gem 而不是使用:

$ bundle install

后记我的错误日志终于开始改变,但我仍在使用 Sintara-Base 1.0。一旦我更新了$bundle update我的应用程序最终加载。

于 2018-05-21T05:00:32.907 回答