無効なパッケージ プロバイダー 'pear'

無効なパッケージ プロバイダー 'pear'

CentOS 6 マシンに LAMP をインストールするためのマニフェストを作成しています。一部の pear モジュールのインストールを除いてすべて動作します。発行すると、puppet /etc/puppet/modules/webserver/manifests/init.pp次のメッセージが表示されます。

/etc/puppet/modules/webserver/manifests/init.pp:111 のパッケージ プロバイダー 'pear' が無効です

以下はマニフェストの関連部分です。下部の include の順序も含まれています。

class php {

  package {'php':
    ensure => present,  
    before => File['/etc/php.ini'],
  }

  file {'/etc/php.ini':
    ensure => file,
  }

  $packagelist = [
    "php-cli",
    "php-common",
    "php-devel",
    "php-gd",
    "php-ldap",
    "php-mbstring",
    "php-mssql",
    "php-mysql",
    "php-pear",
    "php-pecl-ssh2",
    "php-xml"
  ]

  package { $packagelist:
    ensure => installed,
    require => Package['php'],
    notify => Service['httpd'],
  }

class pear {
  package {
     "pear":
        ensure => installed,
        provider => 'pear';
     "pecl/zip":
        ensure => installed,
        provider => 'pear';
  }
}

include php
include pear

一番下の行をコメントアウトするinclude pearと、残りの部分は問題なくインストールされます。 rpm -qa | grep php-pearは、パッケージ php-pear が正常にインストールされたことを示しています。pearプロンプトで発行すると、期待どおりの pear ヘルプ メニューが返されます。

init.pp ファイルに戻り、コメントを解除しinclude pearて再実行するとpuppet /etc/puppet/modules/webserver/manifests/init.pp、同じエラーが表示されます。

何が起こったのですか?

答え1

Puppet 2.27 にアップグレードし、puppet-pear モジュールを使用することで解決しました。

https://rubygems.org/gems/puppet/versions/2.7.23

https://github.com/rafaelfelix/puppet-pear

関連情報