gpt4 book ai didi

ruby-on-rails - Elastic Beanstalk Ruby/Rails 需要安装 git 所以 bundle install 可以工作..但不是

转载 作者:数据小太阳 更新时间:2023-10-29 06:23:05 26 4
gpt4 key购买 nike

我在部署我们的 Rails 应用程序时遇到问题。我创建了一个类似于 AWS 博客 howto 上示例的 Hook http://ruby.awsblog.com/post/Tx2AK2MFX0QHRIO/Deploying-Ruby-Applications-to-AWS-Elastic-Beanstalk-with-Git喜欢:

packages:
yum:
git: []

甚至我运行一个 bundle 来创建 vendor/cache 以将所有 gems 都放在那里......并且仍然得到:git://github.com/refinery/refinerycms-search.git(在 2-0-stable)未 checkout 。请运行 bundle install (Bundler::GitError)

任何帮助都会很好,我们正在努力将我们所有的应用程序转移到 EB。但看到 git 没有安装或正在发生某些事情。我需要在它创建的 EB ec2 实例上使用 git。

堆栈跟踪:

Error message:
git://github.com/refinery/refinerycms-search.git (at 2-0-stable) is not checked out. Please run `bundle install` (Bundler::GitError)
Exception class:
PhusionPassenger::UnknownError
Application root:
/var/app/current
Backtrace:
# File Line Location
0 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 801 in `rescue in load_spec_files'
1 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 799 in `load_spec_files'
2 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 381 in `local_specs'
3 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 774 in `specs'
4 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 174 in `block in resolve'
5 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 172 in `each'
6 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 172 in `resolve'
7 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 113 in `specs'
8 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 158 in `specs_for'
9 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 147 in `requested_specs'
10 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/environment.rb 23 in `requested_specs'
11 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb 11 in `setup'
12 /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler.rb 116 in `setup'
13 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/utils.rb 326 in `prepare_app_process'
14 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/rack/application_spawner.rb 156 in `block in initialize_server'
15 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/utils.rb 563 in `report_app_init_status'
16 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/rack/application_spawner.rb 154 in `initialize_server'
17 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6- 1002/support/lib/phusion_passenger/abstract_server.rb 204 in `start_synchronously'
18 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server.rb 180 in `start'
19 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/rack/application_spawner.rb 129 in `start'
20 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb 253 in `block (2 levels) in spawn_rack_application'
21 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server_collection.rb 132 in `lookup_or_add'
22 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb 246 in `block in spawn_rack_application'
23 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server_collection.rb 82 in `block in synchronize'
24 prelude> 10:in `synchronize'
25 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server_collection.rb 79 in `synchronize'
26 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb 244 in `spawn_rack_application'
27 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb 137 in `spawn_application'
28 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager.rb 16 in `spawn_application_with_env'
29 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb 275 in `handle_spawn_application'
30 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server.rb 357 in `server_main_loop'
31 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server.rb 206 in `start_synchronously'
32 /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/helper-scripts/passenger-spawn-server

更新更多信息:我决定使用 ec2-user 登录实例并注意到git 已安装到目前为止,我所看到的我需要的 gem 已经安装好了。当我执行捆绑列表时,它们甚至都显示了错误所提示的那个。我确实注意到,当我执行一般 gem 列表时然后它不会出现...但它应该使用 bundle 。

最佳答案

(请注意,仅当您必须使用 Git 源作为依赖项时,才应使用以下解决方法。如果可以避免,建议不要从外部 Git 存储库安装依赖项。请参阅下面详细介绍了为什么会这样。)

在带有 Passenger 的 Gemfile 中使用 Git 支持的库时,您必须在安装中禁用共享 gem(除了在上面列出的 Hook 中安装 Git 之外)。您可以通过在现有 .ebextensions/ruby.config 文件中设置 BUNDLE_DISABLE_SHARED_GEMS Bundler 环境变量来执行此操作,如下所示:

option_settings:
- option_name: BUNDLE_DISABLE_SHARED_GEMS
value: "1"
- option_name: BUNDLE_PATH
value: "vendor/bundle"

packages:
yum:
git: []

禁用共享 gem 将强制所有依赖项按照 BUNDLE_PATH 变量的指定在 vendor/bundle 中供应到您的应用程序中。

请注意,只要有可能,您应该避免在您的应用程序中安装来自 Git 源的公共(public)库。将 Git 用于库位置会为部署安装引入另一个故障点,因为 Git 存储库可能暂时不可用甚至永久移动。另请记住,在部署中强制安装供应商将导致您的 Elastic Beanstalk 部署在后续部署具有相同依赖项的应用程序时速度要慢得多。这是因为库将在每次部署时重新安装,而不是利用 Elastic Beanstalk 让 Bundler 默认执行的系统范围安装。

简而言之,如果有问题库的官方 RubyGem 版本,您应该改用那个版本;如果没有,您应该向库作者建议提供官方 RubyGem 版本。

仅供引用,之前有人问过一个关于常规 Passenger/Rails 部署的 Git 问题的类似问题:Rails 3: Passenger can't find git gems installed by bundler

关于ruby-on-rails - Elastic Beanstalk Ruby/Rails 需要安装 git 所以 bundle install 可以工作..但不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13642171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com