【发布时间】:2015-04-04 18:42:44
【问题描述】:
首先,我是一个编程新手,甚至是最近的 Ruby/Rails 新手。我有一个要上传的网站 (http://suzyogi.com)。大多数页面只是 HTML 和 CSS 加上一点 jQuery,但我想包含一个博客,所以我在 Rails 4.2.0 中构建了它。我正在使用 DreamHost 托管我的网站,他们对 Rails 应用程序的说明告诉我在 Web 选项下检查此选项:Passenger(仅限 Ruby/Python 应用程序)。在我的本地环境中一切正常,但是当我尝试在互联网上查看该站点时,我从 Phusion Passenger 收到此错误:
compile error
/home/nictob3/suzyogi.com/Gemfile:24: syntax error, unexpected ':', expecting $end
gem 'sdoc', '~> 0.4.0', group: :doc
^ (SyntaxError)
/home/nictob3/suzyogi.com/Gemfile:24:in `evaluate'
/usr/lib/ruby/vendor_ruby/bundler/definition.rb:17:in `build'
/usr/lib/ruby/vendor_ruby/bundler.rb:136:in `definition'
/usr/lib/ruby/vendor_ruby/bundler.rb:124:in `load'
/usr/lib/ruby/vendor_ruby/bundler.rb:107:in `setup'
/usr/lib/ruby/vendor_ruby/bundler/setup.rb:17
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/dh/passenger/lib/phusion_passenger/loader_shared_helpers.rb:263:in `run_load_path_setup_code'
/dh/passenger/lib/phusion_passenger/loader_shared_helpers.rb:366:in `running_bundler'
/dh/passenger/lib/phusion_passenger/loader_shared_helpers.rb:261:in `run_load_path_setup_code'
/dh/passenger/helper-scripts/rack-preloader.rb:100:in `preload_app'
/dh/passenger/helper-scripts/rack-preloader.rb:158
我四处寻找解决方法,发现了这个可能的答案,将 Gemfile 编辑为如下所示:
group :doc do
gem 'sdoc', '~> 0.4.0'
end
现在我收到一个新错误:
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 4.2.0) depends on
bundler (< 2.0, >= 1.3.0)
Current Bundler version:
bundler (1.0.15)
(Bundler::VersionConflict)
/usr/lib/ruby/vendor_ruby/bundler/resolver.rb:129:in `resolve'
/usr/lib/ruby/vendor_ruby/bundler/resolver.rb:127:in `catch'
/usr/lib/ruby/vendor_ruby/bundler/resolver.rb:127:in `resolve'
/usr/lib/ruby/vendor_ruby/bundler/definition.rb:151:in `resolve'
/usr/lib/ruby/vendor_ruby/bundler/definition.rb:90:in `specs'
/usr/lib/ruby/vendor_ruby/bundler/definition.rb:135:in `specs_for'
/usr/lib/ruby/vendor_ruby/bundler/definition.rb:124:in `requested_specs'
/usr/lib/ruby/vendor_ruby/bundler/environment.rb:23:in `requested_specs'
/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:11:in `setup'
/usr/lib/ruby/vendor_ruby/bundler.rb:107:in `setup'
/usr/lib/ruby/vendor_ruby/bundler/setup.rb:17
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/dh/passenger/lib/phusion_passenger/loader_shared_helpers.rb:263:in `run_load_path_setup_code'
/dh/passenger/lib/phusion_passenger/loader_shared_helpers.rb:366:in `running_bundler'
/dh/passenger/lib/phusion_passenger/loader_shared_helpers.rb:261:in `run_load_path_setup_code'
/dh/passenger/helper-scripts/rack-preloader.rb:100:in `preload_app'
/dh/passenger/helper-scripts/rack-preloader.rb:158
但是,当我在终端中运行命令 bundler -v 时,它会返回 Bundler version 1.7.12。
那么我如何让Passenger 认识到我有这个更新的Bundler?
感谢您的帮助。
我的宝石文件:
source 'https://rubygems.org'
gem 'rails', '4.2.0'
gem 'sqlite3'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
group :doc do
gem 'sdoc', '~> 0.4.0'
end
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 2.0'
gem 'spring'
end
【问题讨论】:
-
看起来它使用的 Ruby 版本与您预期的不同。您使用的是 DreamHost 共享主机还是 VPS?
-
@TimMoore 我正在使用共享主机。 DreamHost 是否仅支持某些版本的 Ruby/Rails?
标签: ruby-on-rails ruby passenger bundler gemfile