Nij*_*shy 6 ruby ruby-on-rails amazon-web-services bundler aws-opsworks
我有一个在 AWS Opsworks 上运行的项目,它在Ruby 2.2.2上具有当前的捆绑程序版本1.5.3。
我想将捆绑版本升级到1.17.3
但是当我尝试这样做时,我收到此错误
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of /usr/local/bin/gem install bundler -q --no-rdoc --no-ri -v "1.11.2" ----
STDOUT:
STDERR: ERROR: Error installing bundler:
"bundle" from bundler conflicts with /usr/local/bin/bundle
---- End output of /usr/local/bin/gem install bundler -q --no-rdoc --no-ri -v "1.11.2" ----
Ran /usr/local/bin/gem install bundler -q --no-rdoc --no-ri -v "1.11.2" returned 1
Resource Declaration:
---------------------
# In /var/lib/aws/opsworks/cache.stage2/cookbooks/opsworks_bundler/recipes/default.rb
2: gem_package "Installing Bundler #{node[:opsworks_bundler][:version]}" do
3: gem_binary node[:dependencies][:gem_binary]
4: retries 2
5: package_name "bundler"
6: action :install
7: version node[:opsworks_bundler][:version]
8: if Gem::Version.new(node[:opsworks_rubygems][:version]) > Gem::Version.new("2.6.14")
9: options "--force"
10: end
11: end
Compiled Resource:
------------------
# Declared in /var/lib/aws/opsworks/cache.stage2/cookbooks/opsworks_bundler/recipes/default.rb:2:in `from_file'
gem_package("Installing Bundler 1.11.2") do
provider Chef::Provider::Package::Rubygems
action [:install]
retries 0
retry_delay 2
package_name "bundler"
version "1.11.2"
cookbook_name "opsworks_bundler"
recipe_name "default"
gem_binary "/usr/local/bin/gem"
end
[2019-12-04T04:42:03+00:00] INFO: Running queued delayed notifications before re-raising exception
[2019-12-04T04:42:03+00:00] ERROR: Running exception handlers
[2019-12-04T04:42:03+00:00] ERROR: Exception handlers complete
[2019-12-04T04:42:03+00:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2019-12-04T04:42:03+00:00] ERROR: gem_package[Installing Bundler 1.11.2] (opsworks_bundler::default line 2) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /usr/local/bin/gem install bundler -q --no-rdoc --no-ri -v "1.11.2" ----
STDOUT:
STDERR: ERROR: Error installing bundler:
"bundle" from bundler conflicts with /usr/local/bin/bundle
---- End output of /usr/local/bin/gem install bundler -q --no-rdoc --no-ri -v "1.11.2" ----
Ran /usr/local/bin/gem install bundler -q --no-rdoc --no-ri -v "1.11.2" returned 1
[2019-12-04T04:42:03+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Run Code Online (Sandbox Code Playgroud)
当我bundle -v在服务器上运行时,我得到的捆绑版本为1.5.3。无论我做什么,我都无法更改捆绑版本。
root@hades:/srv/www/app_unicorn/current# which gem
/usr/local/bin/gem
root@hades:/srv/www/app_unicorn/current# which ruby
/usr/local/bin/ruby
root@hades:/srv/www/app_unicorn/current# which bundle
/usr/local/bin/bundle
root@hades:/srv/www/app_unicorn/current# gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.9 (2016-03-30 patchlevel 490) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/lib/ruby/gems/2.1.0
- /root/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
root@hades:/srv/www/app_unicorn/current# bundle env
Bundler 1.5.3
Ruby 2.1.9 (2016-03-30 patchlevel 490) [x86_64-linux]
Rubygems 2.2.2
GEM_HOME
Bundler settings
path
Set for your local app (/srv/www/app_unicorn/releases/20061825/.bundle/config): "/home/deploy/.bundler/app_unicorn"
without
Set for your local app (/srv/www/app_unicorn/releases/20061825/.bundle/config): "test:development"
disable_shared_gems
Set for your local app (/srv/www/app_unicorn/releases/20061825/.bundle/config): "1"
Run Code Online (Sandbox Code Playgroud)
有人让我研究这个问题。但我不知道如何处理这个https://github.com/chef/chef-dk/issues/536
如何在厨师食谱或其他任何地方添加配置以更新捆绑版本?
我的食谱:- https://gist.github.com/nijeeshjoshy/90ef2dfc693c869205bad589ef1b0e23
我有 ssh 访问权限,我可以手动重新安装 bunder,没有任何问题。但我必须通过厨师来做。如果我每次都手动执行它违背了使用 opsworks 的目的
我强烈建议您不要使用 Ruby 2.2.2,因为它具有安全性、兼容性、性能、支持、更快的错误修复以及与其他框架/库的更好兼容性。使用像 2.2 这样的过时版本,您将与软件开发的所有这些领域作斗争。
Ruby 3+ 拥有最新的稳定版本和长期支持 (LTS),可能适合您现有的设置。尝试一下。
至少使用 Bundler 2.4 升级到 Ruby 2.7。这将解决你的问题。
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |