我正试图按照EC2的说明启动一个Amazon实例。
Rails项目配置如下。.ruby-version文件:
ruby-1.9.3下面是Gemfile:
source 'http://rubygems.org'
ruby '1.9.3'
gem 'rails', '~> 3.2.13'
gem 'rb-readline', '~> 0.5.0'
gem 'counter_culture', '~> 0.1.12'
gem 'jquery-rails', '~> 3.0.2'
gem 'therubyracer', '~> 0.11.4', require: 'v8'
gem 'attribute_normalizer', '~> 1.1.0'
group :assets do
gem 'sass-rails', '~> 3.2.5'
gem 'coffee-rails', '~> 3.2.2'
gem 'uglifier', '~> 2.1.1'
end
group :development do
gem 'debugger', '~> 1.6.0'
end
group :development, :test do
gem 'sqlite3', '~> 1.3.7'
end
group :production do
gem 'pg', '~> 0.15.1'
end
gem 'rubber', '~> 2.5.2'
gem 'open4'
gem 'gelf'
gem 'graylog2_exceptions', :git => 'git://github.com/wr0ngway/graylog2_exceptions.git'
gem 'graylog2-resque'我运行以下橡胶命令:
$ rubber vulcanize complete_passenger_postgresql除了其他文件外,生成rubber-ruby.yml的方式如下(注释已删除):
# config/rubber/rubber-ruby.yml
packages: [build-essential, git-core, subversion, curl, autoconf, bison, ruby, zlib1g-dev, libssl-dev, libreadline6-dev, libxml2-dev, libyaml-dev]
ruby_build_version: 20130501
ruby_version: 1.9.3
ruby_path: "/usr/local/rubies/#{ruby_version}"在与ruby_version: 1.9.3聊天之后,我已经将ruby_version: 1.9.3-p448改为了ruby_version: 1.9.3-p448,并尝试了一下。但也有同样的错误。
我粘贴到教程中,只配置了强制设置:
# config/rubber/rubber.yml
app_name: ...
domain: ...
access_key: ...
secret_access_key: ...
account: ...
key_name: ...在本教程之后,我将测试运行的设置:
$ cap rubber:create_staging脚本运行了一段时间,安装和重新启动实例,但过了一段时间它就停止了:
...
** [out :: production.foobar.com] Identified as a _site plugin, moving to _site structure ...
** [out :: production.foobar.com] Installed head
command finished in 5005ms
* 2013-07-11 01:02:20 executing `rubber:graylog:server:install'
servers: ["production.foobar.com"]
** sftp upload #<StringIO:0x007f2d89221718> -> /tmp/install_graylog_server
[production.foobar.com] /tmp/install_graylog_server
[production.foobar.com] done
* sftp upload complete
* executing "sudo -p 'sudo password: ' bash -l /tmp/install_graylog_server"
servers: ["production.foobar.com"]
[production.foobar.com] executing command
command finished in 2320ms
* 2013-07-11 01:02:23 executing `rubber:graylog:web:install'
servers: ["production.foobar.com"]
** sftp upload #<StringIO:0x007f2d817c2a58> -> /tmp/install_graylog_web
[production.foobar.com] /tmp/install_graylog_web
[production.foobar.com] done
* sftp upload complete
* executing "sudo -p 'sudo password: ' bash -l /tmp/install_graylog_web"
servers: ["production.foobar.com"]
[production.foobar.com] executing command
command finished in 945ms
* 2013-07-11 01:02:24 executing `rubber:apache:install'
servers: ["production.foobar.com"]
** sftp upload #<StringIO:0x007f2d81911800> -> /tmp/install_apache
[production.foobar.com] /tmp/install_apache
[production.foobar.com] done
* sftp upload complete
* executing "sudo -p 'sudo password: ' bash -l /tmp/install_apache"
servers: ["production.foobar.com"]
[production.foobar.com] executing command
** [out :: production.foobar.com] Site default disabled.
** [out :: production.foobar.com] To activate the new configuration, you need to run:
** [out :: production.foobar.com] service apache2 reload
command finished in 636ms
* 2013-07-11 01:02:25 executing `rubber:setup_volumes'
* 2013-07-11 01:02:25 executing `rubber:setup_gem_sources'
triggering before callbacks for `rubber:setup_gem_sources'
* 2013-07-11 01:02:25 executing `rubber:base:install_ruby_build'
servers: ["production.foobar.com"]
** sftp upload #<StringIO:0x007f2d81a7f750> -> /tmp/install_ruby_build
[production.foobar.com] /tmp/install_ruby_build
[production.foobar.com] done
* sftp upload complete
* executing "sudo -p 'sudo password: ' bash -l /tmp/install_ruby_build"
servers: ["production.foobar.com"]
[production.foobar.com] executing command
** [out :: production.foobar.com] Installing ruby-build v20130501
** [out :: production.foobar.com] Installed ruby-build at /usr/local
command finished in 1475ms
triggering after callbacks for `rubber:base:install_ruby_build'
* 2013-07-11 01:02:27 executing `rubber:base:install_ruby'
servers: ["production.foobar.com"]
** sftp upload #<StringIO:0x007f2d81aca638> -> /tmp/install_ruby
[production.foobar.com] /tmp/install_ruby
[production.foobar.com] done
* sftp upload complete
* executing "sudo -p 'sudo password: ' bash -l /tmp/install_ruby"
servers: ["production.foobar.com"]
[production.foobar.com] executing command
** [out :: production.foobar.com] Compiling and installing ruby 1.9.3. This may take a while ...
command finished in 1603ms
triggering after callbacks for `rubber:base:install_ruby'
* 2013-07-11 01:02:29 executing `rubber:install_gems'
servers: ["production.foobar.com"]
** sftp upload #<StringIO:0x000000033d5920> -> /tmp/gem_helper
[production.foobar.com] /tmp/gem_helper
[production.foobar.com] done
* sftp upload complete
* executing "sudo -p 'sudo password: ' bash -l -c 'ruby /tmp/gem_helper install $CAPISTRANO:VAR$'"
servers: ["production.foobar.com"]
[production.foobar.com] executing command
** ruby: no such file to load -- ubygems (LoadError)
command finished in 851ms
failed: "/bin/bash -l -c 'sudo -p '\\''sudo password: '\\'' bash -l -c '\\'' \
ruby /tmp/gem_helper install open4 aws-s3 bundler rubber:2.5.2 \
gelf graylog2_exceptions graylog2-resque pg fastthread rack \
passenger:3.0.19 puma'\\'''" on production.foobar.com通过服务器上的ssh检查/usr/local/rubies中的Ruby安装,会发现它没有安装,没有安装。
这篇文章发表在freenode IRC #rubberec2 2中,作为对我的问题的评论:
但是,我不知道如何将此应用于橡胶配置。
发布于 2013-07-11 23:54:00
正如问题中所述,我生成了包括rubber-ruby.yml在内的橡胶配置文件。
# config/rubber/rubber-ruby.yml
...
ruby_build_version: 20130501
ruby_version: 1.9.3
...我用相同版本的there重复了整个过程(我只是将版本修正为2.5.2,因为同时也有更新)。这一次,我注意到ruby_version设置为1.9.3-p392,您可以看到这里。似乎我不小心修改了这个设置,?!
恢复此更改后,部署实际上可以像预期的那样工作。
如前所述,橡胶2.5.3已经出版,其中包含更新的设置:
# config/rubber/rubber-ruby.yml
...
ruby_build_version: 20130628
ruby_version: 1.9.3-p448
...我也为那些好奇的人尝试了新的版本。它也能用。
非常感谢凯文·梅纳德和马特·康威,他们坚持不懈地在IRC频道回答我的问题。
https://stackoverflow.com/questions/17582580
复制相似问题