2015-08-26 3 views
0

Я пытаюсь установить PHP 5.6 на свою машину Vagrant CentOS 6.5, но прошло два дня, и я не могу заставить Puppet установить эту версию PHP. Я действительно искал SO и googled, но не смог найти решение, которое сработало. Вот мои эксперименты до сих порVagrant provisioning - Puppet install php 5.6

yumrepo { 
     "webtatic": 
      descr   => "webtatic", 
     baseurl   => "https://mirror.webtatic.com/yum/el6/webtatic-release.rpm", 
      failovermethod => "priority", 
      gpgcheck  => "0", 
      enabled  => "1"; 
      } 



yumrepo { 
     "webtatic": 
      descr   => "epel-release", 
     baseurl   => "https://mirror.webtatic.com/yum/el6/epel-release.rpm", 
      failovermethod => "priority", 
      gpgcheck  => "0", 
      enabled  => "1"; 
      } 



package { 'php56w' : 
    ensure => 'present' 
} 

На протяжении моих экспериментов я получаю различные сообщения об ошибках при инициализации:

==> default: Error: /Stage[main]/Main/Package[php56w]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install php56w' returned 1: Error: Nothing to do 

или

==> default: Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install php56w' returned 1: Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel-release. Please verify its path and try again 

Я также попытался использовать example42/php модуль

class { 'php': 
    version => '5.6.10', 
} 

дает мне

==> default: Error: /Stage[main]/Php/Package[php]/ensure: change from absent to 5.6.10 failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install php-5.6.10' returned 1: Error: Nothing to do 
==> default: 
==> default: Notice: /Stage[main]/Php/File[php.conf]: Dependency Package[php] has failures: true 

Что такое правильный способ установить определенную версию PHP?

ответ

1

РЕДАКТИРОВАТЬ: Придавая другой взгляд, кажется, что репо неверно.

  1. он использует зеркало репо с оборотов в минуту полной ссылки, это не нужно, я не yum эксперт никак, но я рассматриваю мой файл репо, и они не имеют ссылку на файл оборотов в минуту, так что у меня есть изменено на uk.repo.webtatic.com

  2. просто, чтобы быть безопасными, сделать требуется на установке ня репо при запуске установки РНР, так что вы будете уверены, что он будет тянуть из дополнительного репо

m у кукольный файл выглядит

class repo { 
    yumrepo { "webtatic": 
    descr   => "epel-release", 
    baseurl  => "https://uk.repo.webtatic.com/yum/el6/$architecture", 
    failovermethod => "priority", 
    gpgcheck  => "0", 
    enabled  => "1"; 
    } 
} 

class php { 
    package { "php56w": 
    ensure => installed, 
    require => Yumrepo["webtatic"] } 
} 

include repo 
include php 

и PHP 5.6.12 получить установлен в этом случае:

[email protected]:/Volumes/WORK/project/phpbox$ vagrant ssh 
Last login: Thu Aug 27 08:18:26 2015 from 172.16.42.1 
Welcome to your Packer-built virtual machine. 
[[email protected] ~]$ php -version 
PHP 5.6.12 (cli) (built: Aug 9 2015 11:16:17) 
Copyright (c) 1997-2015 The PHP Group 
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies 

OLD ОТВЕТ: почему не использовать существующий модуль?

Для моего случая я использую https://forge.puppetlabs.com/example42/php/readme модуль, он позволяет указать версию PHP:

class { 'php': 
    version => '5.6.10', 
} 

он должен работать

+0

Я также попробовал и, к сожалению, она не работает. Я обновил свой вопрос с сообщениями об ошибках. Я полагаю, он предполагает, что у вас есть правильное репо в диспетчере пакетов, и он добавляет версию в «php-». Так что требование 5.6 сделало бы yum install php-5.6 –

+0

, сделав обновление ответа, так как кажется, что использование репо было неправильным, предлагая другое, работает для меня –

+0

Отлично, спасибо за ответ! Работает как шарм, и мне очень нравится require => Yumrepo ["webtatic"] бит :-) –

Смежные вопросы