Назад | Перейти на главную страницу

Как установить APC на бродячем компьютере под управлением Ubuntu 12.04 с PHP 5.4?

В моем «бродячем» файле есть такая строка:

chef.add_recipe("php::module_apc")

Но это дает мне эту ошибку:

[2013-01-11T22:14:53+00:00] INFO: Processing package[php-apc] action install (php::module_apc line 34)
================================================================================
Error executing action `install` on resource 'package[php-apc]'
================================================================================
Chef::Exceptions::Exec
----------------------
apt-get -q -y install php-apc=3.1.7-1 returned 100, expected 0

Resource Declaration:
---------------------
# In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/php/recipes/module_apc.rb

 33: when "debian"
 34:   package "php-apc" do
 35:     action :install
 36:   end
 37: end

Compiled Resource:
------------------
# Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/php/recipes/module_apc.rb:34:in `from_file'

package("php-apc") do
  retry_delay 2
  retries 0
  recipe_name "module_apc"
  action [:install]
  cookbook_name :php
  package_name "php-apc"
end
[2013-01-11T22:14:53+00:00] ERROR: Running exception handlers
[2013-01-11T22:14:53+00:00] ERROR: Exception handlers complete
[2013-01-11T22:14:53+00:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out
[2013-01-11T22:14:53+00:00] FATAL: Chef::Exceptions::Exec: package[php-apc] (php::module_apc line 34) had an error: Chef::Exceptions::Exec: apt-get -q -y install php-apc=3.1.7-1 returned 100, expected 0
Chef never successfully completed! Any errors should be visible in the output above. Please fix your recipes so that they properly complete.

Я также использовал это раньше:

chef.add_recipe("apt")

Но это тоже не поможет.

Любые идеи, как это исправить? Большое спасибо!

Кстати, я использую все кулинарные книги из OpsCode: https://github.com/opscode-cookbooks/

APC интегрирован в пакет PHP-5.4 + как стандартный модуль и не требует установки как отдельный пакет, как PHP-5.3 и более ранние версии. Поэтому при попытке установить модуль, который уже существует в системе, выдается ошибка.

Я могу ошибаться, но похоже, что ошибка не связана с несоответствием версии.

Войдите в ящик и запустите sudo apt-get update. Выйдите из системы и посмотрите, сможете ли вы подготовить vagrant provision. Иногда обновление не завершается должным образом, и его нужно просто перезапустить.

Если это не сработает, войдите в систему и попробуйте sudo apt-get install php-apc=3.1.7-1 чтобы узнать, в чем ошибка apt.

Я только что прошел следующий тест:

Список запуска Vagrantfile:

chef.run_list = [
  "recipe[apt]",
  "recipe[php::module_apc]"
]

Использование Ubuntu 12.04, Chef 10.14.2 и следующих версий поваренной книги:

  • apt (1.4.8)
  • php (1.1.0)
  • build-essential (1.3.2) (зависимость)
  • xml (1.0.4) (зависимость)
  • mysql (2.1.0) (зависимость)
  • openssl (1.0.0) (зависимость)

Он проходит полностью и заканчивается:

vagrant@apctest:~$ dpkg -l | grep php
ii  php-apc                         3.1.7-1                    APC (Alternative PHP Cache) module for PHP 5
ii  php5-common                     5.3.10-1ubuntu3.4          Common files for packages built from the php5 source
ii  php5-fpm                        5.3.10-1ubuntu3.4          server-side, HTML-embedded scripting language (FPM-CGI binary)

Так:

Я бы посоветовал использовать последние выпущенные кулинарные книги из Сайт сообщества вместо исходного кода с GitHub - выпущенные версии являются «стабильными» по сравнению с репозиториями, которые находятся в постоянной разработке.