PEARパッケージの作り方

MoonyをPEARのパッケージにしてみるテスト。
まず、PEAR::PEAR_PackageFileManagerを利用してpackage.xmlを作成する。
まだalphaバージョンの1.6.0a6をインストール。

$ pear config-set preferred-state alpha
$ pear install --alldeps PEAR/PEAR_PackageFileManager

PEAR_PackageFileManager2を利用してpackage.xmlを作成するスクリプト(gen_package.xml.php):

<?php
require_once 'PEAR/PackageFileManager2.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE);

$pkg = new PEAR_PackageFileManager2;

$opts = array(
    'baseinstalldir' => 'Moony',
    'packagedirectory' => '/path/to/Moony/',
    'filelistgenerator' => 'file',
    'exceptions' => array('CHANGELOG' => 'doc', 'LICENSE' => 'doc')
);

$pkg->setOptions($opts);
$pkg->setPackage('Moony');
$pkg->setSummary('The web application framework');
$pkg->setDescription('The web application framework (using Smarty for the template engine)');
$pkg->setLicense('The BSD License', 'http://www.opensource.org/licenses/bsd-license.php');
$pkg->setReleaseVersion('0.7.0');
$pkg->setAPIVersion('0.7.0');
$pkg->setReleaseStability('beta');
$pkg->setAPIStability('beta');
$pkg->setPackageType('php');
$pkg->setPhpDep('4.3.0');
$pkg->setPearinstallerDep('1.3.5');
$pkg->setUri('http://moony.sourceforge.jp/');

$pkg->addIgnore('*CVS*');
$pkg->addMaintainer('lead', 'hiro_y', 'YAMAOKA Hiroyuki', 'yamaoka@catwalker.jp');

$pkg->addRelease();
$pkg->setNotes('Moony');

$pkg->generateContents();

if (isset($argv[1]) && $argv[1] == 'make') {
    $pkg->writePackageFile();
} else {
    $pkg->debugPackageFile();
}
?>

以下のようにスクリプトを実行すると、packagedirectoryに指定したディレクトリにpackage.xmlが作成される。

$ php /path/to/gen_package.xml.php make

あとは作成されたpackage.xmlとpackagedirectoryのディレクトリをまとめてtar.gzに固めてしまえばOK。例えば、Moony-0.7.0.tar.gzというファイル名にした場合、以下のコマンドでインストールできる。

$ pear install /path/to/Moony-0.7.0.tar.gz

アンインストールする場合は以下のコマンドを実行。

$ pear uninstall __uri/Moony