PEAR パッケージの作り方
すごいいまさらなんだけど、やったらすごい簡単だったのでメモ。
(昔やろうとしてめんどくさくて投げ出した気がする)
■ (1) PEAR_PackageFileManager をインストール
$ sudo pear install PEAR_PackageFileManager : install ok: channel://pear.php.net/PEAR_PackageFileManager-1.6.1
■ (2) テスト用に適当にパッケージしたいファイルを作る
$ mkdir ~/work/pear_services_hoge $ cd ~/work/pear_services_hoge$ vi Hoge.php
<?php
class Services_Hoge
{
function Services_Hoge()
{
echo "Hoge!¥n";
}
}
■ (3) package.xml を作るためのスクリプトを作成
パッケージを定義するxmlを生成するためのスクリプトを書くという、なんとも言えぬ作業。 (XMLを手で書けばこの作業はいらないんだろうけど...) $ vi generatePackage.xml.php
<?php
require_once 'PEAR/PackageFileManager.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$pm = new PEAR_PackageFileManager();
$pm->setOptions(array(
'package' => 'Services_Hoge',
'summary' => '**summary**',
'description' => '**desc**',
'baseinstalldir' => 'Services',
'version' => '0.0.1',
'packagedirectory' => dirname(__FILE__),
'state' => 'alpha',
'filelistgenerator' => 'file',
'notes' => '** release note **',
'ignore' => array('package.xml', basename(__FILE__))
));
$pm->addDependency('PEAR', '1.1');
$pm->addDependency('XML_Serializer', '0.10.0');
$pm->addMaintainer('**nickname**', 'lead', '**Your Name**', '**you@example.com**');
$pm->writePackageFile();
■ (4) package.xml を生成
さっきのスクリプトを実行してxmlを生成する。$ php generatePackage.xml.php $ ls Hoge.php generatePackage.xml.php package.xml
■ (5) package作成
pearコマンドをつかってパッケージを生成。$ pear package Analyzing Hoge.php Package Services_Hoge-0.0.1.tgz doneServices_Hoge-0.0.1.tgz とかいうファイルがでけた。
$ ls Hoge.php Services_Hoge-0.0.1.tgz generatePackage.xml.php package.xml
■ (6) インストールしてみる
$ sudo pear install Services_Hoge-0.0.1.tgz install ok: channel://pear.php.net/Services_Hoge-0.0.1
$ ls -l /usr/local/lib/php/Services/Hoge.php -rw-r--r-- 1 root admin 95 10 1 22:38 /usr/local/lib/php/Services/Hoge.phpインストールできた。 ところで、PEAR_PackageFileManager2 ってどこにあるんだ? pear.php.net を探したけど、みつからず。
コメントする