Elastic beanstalk: необработанное исключение во время сборки: [Errno 2] Нет такого файла или каталога

Я получаю эту ошибку при развертывании приложения Django на EB:

2014-02-10 11:04:51,037 [ERROR] Unhandled exception during build: [Errno 2] No such file or directory
Traceback (most recent call last):
  File "/opt/aws/bin/cfn-init", line 122, in <module>
    worklog.build(detail.metadata, configSets)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 117, in build
    Contractor(metadata).build(configSets, self)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 502, in build
    self.run_config(config, worklog)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 511, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 216, in build
    changes['packages'][manager] = CloudFormationCarpenter._packageTools[manager]().apply(packages, self._auth_config)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/apt_tool.py", line 48, in apply
    cache_result = ProcessHelper(['apt-cache', '-q', 'gencaches']).call()
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/util.py", line 406, in call
    shell=isinstance(self._cmd, basestring), env=self._env, cwd=self._cwd)
  File "/usr/lib64/python2.6/subprocess.py", line 639, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1228, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

… И я понятия не имею, почему и какой файл или каталог он ищет! Любая идея?

пс. Я использую Django 1.6.2 с Python 2.7

Это мой app.config внутри .ebextensions:

packages:
  yum:
    python-devel: []
    libpcap: []
    libpcap-devel: []
    libnet: []
    libnet-devel: []
    pcre: []
    pcre-devel: []
    gcc: []
    gcc-c++: []
    automake: []
    autoconf: []
    libtool: []
    make: []
    libyaml: []
    libyaml-devel: []
    libxml2: []
    libxml2-devel: []
    zlib: []
    zlib-devel: []
    file-devel: []
    postgresql: []
    postgresql-devel: []
    geoip: []
    geoip-devel: []
    graphviz: []
    graphviz-devel: []
  apt:
    binutils: []
    libproj-dev: []
    gdal-bin: []
    python-gdal: []

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "mysettings"
  "aws:elasticbeanstalk:container:python":
    NumProcesses: 10
    NumThreads: 1
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "static/"

ОБНОВЛЕНИЕ:

Проблема заключалась в том, что пакеты apt были объявлены в файле конфигурации, несмотря на то, что в своей документации Amazon заявляет, что поддерживает apt, это неправда, или, по крайней мере, не для стандартного Linux AMI 64, но для Python 2.7! Этот AMI работает под управлением Linux Red Hat, который не предоставляет apt, поэтому мне приходится полагаться только на yum. Теперь моя проблема состоит в том, чтобы выяснить, как установить мои зависимости другим способом, поскольку в репозиториях yum в этом дистрибутиве нет нужных мне библиотек.


person daveoncode    schedule 10.02.2014    source источник


Ответы (1)


Похоже, что он пытается развернуть систему на Ubuntu, и, возможно, развертываемая коробка не Ubuntu? (Обычно Elastic Beanstalk развертывается в образах Amazon Linux)

В сообщении об ошибке можно увидеть, что он пытается запустить команду apt-cache, доступную только в Ubuntu:

File "/usr/lib/python2.6/site-packages/cfnbootstrap/apt_tool.py", line 48, in apply
cache_result = ProcessHelper(['apt-cache', '-q', 'gencaches']).call()
person Rico    schedule 10.02.2014
comment
ОС это не ubuntu, это AMI Amazon Linux по умолчанию для python 2.7 64bit, на самом деле команда apt не установлена ​​(я пробовал, подключившись через SSH к созданному экземпляру EC2)… Я потерялся :( - person daveoncode; 10.02.2014
comment
Я тоже видел твой другой вопрос. Может быть, у вас apt в вашем app.config? - person Rico; 10.02.2014
comment
Я определил какой-то подходящий пакет для загрузки (согласно документам это должно быть правильное определение)… проверьте мои изменения в вопросе. Спасибо ;) - person daveoncode; 10.02.2014
comment
Да, я тоже это видел. Я не знаю, почему это написано в документации. Вы пытались удалить определения apt? - person Rico; 10.02.2014
comment
Я попытался использовать yum для некоторых пакетов, которые мне нужны, но я получаю сообщение об ошибке, говорящее, что они недоступны, вместо этого я не получаю ошибки, используя apt (по крайней мере, на этапе проверки настроек) ps: Я удалю другой вопрос, так как в 2-х местах болтать становится сложно;) - person daveoncode; 10.02.2014
comment
Тот факт, что у вас нет ошибок, не означает, что он действительно выполняется :) - person Rico; 10.02.2014
comment
Тогда это было исправлено? - person Rico; 11.02.2014