命令 cron_01_set_leader 输出:bash: /usr/local/bin/bundle: No such file or directory
Posted
技术标签:
【中文标题】命令 cron_01_set_leader 输出:bash: /usr/local/bin/bundle: No such file or directory【英文标题】:Command cron_01_set_leader output: bash: /usr/local/bin/bundle: No such file or directory 【发布时间】:2014-12-16 11:45:04 【问题描述】:在安装/配置everyone-elasticbeanstalk gem 之后,我在从本地存储库运行 git aws.push 后在我的 EC2 实例上的 /var/log/cfn-init.log 中看到以下错误。 我正在使用带有rails 4的aws elastic benastalk。
2014-10-21 08:08:37,602 [DEBUG] Running test for command cron_01_set_leader
2014-10-21 08:08:37,744 [DEBUG] Test command output:
2014-10-21 08:08:37,745 [DEBUG] Test for command cron_01_set_leader passed
2014-10-21 08:08:38,085 [ERROR] Command cron_01_set_leader (su -c "/usr/local/bin/bundle exec create_cron_leader --no-update" $EB_CONFIG_APP_USER) failed
2014-10-21 08:08:38,086 [DEBUG] Command cron_01_set_leader output: bash: /usr/local/bin/bundle: No such file or directory
Traceback(最近一次调用最后一次):
我已经添加了every-elasticbeanstalk 以下是我的 cron.config 文件内容.. 任何想法...我做错了什么?
files:
# Reload the on deployment
/opt/elasticbeanstalk/hooks/appdeploy/post/10_reload_cron.sh:
mode: "00700"
owner: root
group: root
content: |
#!/usr/bin/env bash
. /opt/elasticbeanstalk/containerfiles/envvars
cd $EB_CONFIG_APP_CURRENT
su -c "/usr/local/bin/bundle exec setup_cron" $EB_CONFIG_APP_USER
# Add Bundle to the PATH
"/etc/profile.d/bundle.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
export PATH=$PATH:/usr/local/bin
encoding: plain
container_commands:
cron_01_set_leader:
test: test ! -f /opt/elasticbeanstalk/containerfiles/.cron-setup-complete
leader_only: true
cwd: /var/app/ondeck
command: su -c "/usr/local/bin/bundle exec create_cron_leader --no-update" $EB_CONFIG_APP_USER
cron_02_write_cron_setup_complete_file:
cwd: /opt/elasticbeanstalk/containerfiles
command: touch .cron-setup-complete
【问题讨论】:
问题也在github提出。 【参考方案1】:您使用的是哪个解决方案堆栈?您能否给出确切的名称,例如“运行 Ruby 2.1 (Puma) 的 64 位 Amazon Linux 2014.03 v1.0.9”。
我认为您需要将“/usr/local/bin/bundle”替换为用于解决方案堆栈的包的实际版本。
您可以尝试使用“bundle”代替“/usr/local/bin/bundle”吗?
【讨论】:
++ this 此外,bundle 尚未添加到本地环境变量中,因此是 bundle 的完整路径。话虽如此,我们需要更多信息。 我正在使用 64 位 Amazon Linux 2014.03 v1.0.4 运行 Ruby 2.0(独立乘客)。我确实使用了“捆绑包”,但它没有用! 您是否可以使用最新的“运行 Ruby 2.0 (Passenger Standalone) 的 64 位 Amazon Linux 2014.03 v1.0.9”以及“捆绑”...而不是“/usr/local”进行测试/bin/bundle'? 你能按照上面的要求做吗? v1.0.4 似乎不可用 - “2.0 (Passenger Standalone) on 64bit Amazon Linux 2014.03”是我能看到的最接近的。 对,在检查了上述内容后,AWS EB 的这种旧实例类型似乎不遵循后来的 AWS EB 实例的约定。您需要将对“/usr/local/bin/bundle”的任何引用更改为“/usr/bin/bundle”。它们存在于两个主要位置:# ./.ebextensions/cron.config # ./config/schedule.rb以上是关于命令 cron_01_set_leader 输出:bash: /usr/local/bin/bundle: No such file or directory的主要内容,如果未能解决你的问题,请参考以下文章