0

我在使用 Puppet 和存储配置时遇到了一个错误,可以通过将 activerecord 降级到 3.0.11 来解决该错误。由于我在同一台服务器上运行了一些其他 Rails 站点,因此我安装了 3.0.11 版本,现在安装了 3 个版本。

actionmailer (3.2.1, 2.3.14)
actionpack (3.2.1, 2.3.14)
activemodel (3.2.1, 3.0.11)
activerecord (3.2.1, 3.0.11, 2.3.14)
activeresource (3.2.1, 2.3.14)
activesupport (3.2.1, 3.0.11, 2.3.14)
acts-as-taggable-on (2.1.0)
arel (3.0.0, 2.0.10)
builder (3.0.0, 2.1.2)
bundler (1.0.21)
coderay (1.0.6, 0.9.8)
daemon_controller (0.2.6)
erubis (2.7.0)
facter (1.6.5)
fastercsv (1.5.4)
fastthread (1.0.7)
hiera (0.3.0)
hiera-puppet (0.3.0)
hike (1.2.1)
i18n (0.6.0, 0.5.0, 0.4.2)
journey (1.0.1)
json (1.6.5, 1.4.3)
liquid (2.3.0)
mail (2.4.1)
mime-types (1.16)
multi_json (1.0.4)
mysql (2.8.1)
mysql2 (0.2.18)
net-ldap (0.2.2)
net-scp (1.0.4)
net-sftp (2.0.5)
net-ssh (2.3.0)
passenger (3.0.11)
pg (0.9.0)
polyglot (0.3.3)
puppet (2.7.6)
puppet-lint (0.1.13)
rack (1.4.1, 1.1.3)
rack-cache (1.1)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.1, 2.3.14)
railties (3.2.1)
rake (0.9.2.2, 0.8.7)
rdoc (3.12)
rest-client (1.6.1)
rmagick (2.13.1)
ruby-openid (2.1.8)
rubytree (0.5.3)
sprockets (2.1.2)
sqlite3-ruby (1.2.5, 1.2.4)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.33, 0.3.31)

根据错误报告,我需要做的就是添加gem 'activerecord', '=2.2.2' require 'activerecord'到我的 config.ru 文件以强制 puppet 使用这个版本的 activerecord。

我不确定要将这一行添加到哪个 config.ru 文件,所以我在路径中尝试了三个带有 puppet 和 rails 的文件,但没有一个起作用,即我继续收到相同的错误(“堆栈级别太深”)

$ locate config.ru
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/test/stub/rack/config.ru
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/test/stub/rails_apps/3.0/empty/config.ru
/usr/lib/ruby/gems/1.8/gems/puppet-2.7.6/ext/rack/files/config.ru
/usr/lib/ruby/gems/1.8/gems/rack-1.4.1/test/rackup/config.ru
/usr/lib/ruby/gems/1.8/gems/rack-test-0.6.1/spec/fixtures/config.ru
/usr/lib/ruby/gems/1.8/gems/rails-2.3.14/dispatches/config.ru
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/guides/code/getting_started/config.ru
/usr/lib/ruby/gems/1.8/gems/railties-3.2.1/lib/rails/generators/rails/app/templates/config.ru
/usr/share/puppet/ext/rack/files/config.ru

关于我现在可以做些什么来强制 puppet 使用 activerecord v.3.0.11 而不必卸载任何其他版本的任何想法?

4

1 回答 1

0

usr/lib/ruby/site_ruby/1.8/puppet/feature/rails.rb答案是修改

Puppet.features.add(:rails) do
   begin
   +    # http://projects.puppetlabs.com/issues/9290
   +    gem 'activerecord', '=3.0.11'
   require 'active_record'
   require 'active_record/version'
于 2012-07-18T06:34:43.340 回答