pirumを使ってPEARチャネルサーバーを構築
動かしてるシステムとかのPHPパッケージをPEAR経由でインストール出来るようにしたいとか。pirumっていうのを使えば簡単に構築できるらしいのでやってみた
pirumのインストール
http://pirum.sensiolabs.org に書いてる通りにインストールする。やるとpirumってコマンドが使えるようになる模様
でそのPEARチャネルなファイル郡を生成するディレクトリを作っておく
pirum.xmlを作成
/var/www/pear/pirum.xmlを作成
<?xml version="1.0" encoding="UTF-8" ?>
<server>
<name>pear.localhost</name>
<summary>localhost PEAR Server</summary>
<alias>local</alias>
<url>http://pear.localhost/</url>
</server>
でコマンドを実行してファイルを生成する
pirum build /var/www/pear
PEARチャネルに登録するPHPパッケージのpackage.xmlを作成
http://pear.php.net/manual/ja/guide.developers.package2.intro.php を参考にしつつ作成
<?xml version="1.0" ?>
<package
packagerversion="1.4.10"
version="2.0"
xmlns="http://pear.php.net/dtd/package-2.0"
xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
http://pear.php.net/dtd/tasks-1.0.xsd
http://pear.php.net/dtd/package-2.0
http://pear.php.net/dtd/package-2.0.xsd">
<name>phest</name>
<channel>pear.localhost</channel>
<summary>PHP Simple Testing</summary>
<description>PHP Simple Testing Unit Framework</description>
<lead>
<name>kinjouj</name>
<user>kinjouj</user>
<email>kinjouj@gmail.com</email>
<active>yes</active>
</lead>
<date>2013-04-06</date>
<version>
<release>0.0.1</release>
<api>0.0.1</api>
</version>
<stability>
<release>devel</release>
<api>devel</api>
</stability>
<license>PHP License</license>
<notes>http://github.com/kinjouj/php-phest/blob/development/README.md</notes>
<contents>
<dir name="/" beseinstalldir="Phest">
<file role="php" name="Phest.php" />
<file role="script" name="phest" />
<dir name="Phest">
<file role="php" name="Assert.php" />
<file role="php" name="Context.php" />
<file role="php" name="Exception.php" />
<file role="php" name="Matcher.php" />
<file role="php" name="Report.php" />
<file role="php" name="Subtest.php" />
<dir name="Assert">
<file role="php" name="Plan.php" />
<file role="php" name="That.php" />
</dir>
<dir name="Report">
<file role="php" name="Console.php" />
</dir>
<dir name="Runner">
<file role="php" name="Console.php" />
</dir>
</dir>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>5.4.13</min>
</php>
<pearinstaller>
<min>1.9.4</min>
</pearinstaller>
<package>
<name>Console_Color2</name>
<channel>pear.php.net</channel>
<min>0.1.2</min>
</package>
<package>
<name>Console_CommandLine</name>
<channel>pear.php.net</channel>
<min>1.2.0</min>
</package>
</required>
</dependencies>
<phprelease>
<filelist>
<install as="phest" name="phest" />
</filelist>
</phprelease>
</package>
作ったらコマンド実行してパッケージング
pear package
終わったらtgzなファイルが出来る
PEARチャネルにパッケージを登録
pirum add /var/www/pear /path/to/package-versio.tgz
な感じで登録。これで終わり、Webサーバーにディレクトリな参照を設定してアクセスしてみると
という感じで表示される。んまぁSymfonyなプロジェクトとかもこういうの使ってるんじゃないのかなと
であとは通常通り作ったPEARチャネルをchannel-discoverしつつ、pirum.xmlで指定したエイリアスでパッケージをインストールしたり出来る
追記
https://github.com/mwillbanks/Pirum にある版を使うとclone-packageっていうコマンドが使える模様。恐らくは外部なPHPパッケージを自分のPEARチャネルにぶち込める物なんじゃないかと予想