命令 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的主要内容,如果未能解决你的问题,请参考以下文章

Linux CentOS 8(计划任务_Cron)

Linux CentOS 8(计划任务_Cron)

Linux CentOS 8(计划任务_Cron)

Cpanel Cron Job Php 全局变量

Ubuntu命令的学习_crontab计划任务_详细用法

008_Linux驱动之_IO口的配置