このセクションでは、PEAR チャネルサーバの REST インターフェイスの動作原理を説明します。 また、使用するファイルやそのフォーマットについても説明します。
REST チャネルサーバは、特定のディレクトリ構造で構成されています。
これらのファイルの内容は静的なもので、その場所は
channel.xml
の
baseurl
タグで指定した URL からの相対パスとなります。
すべてのファイルは静的なものです。つまり、サーバ上にスクリプト言語をインストールする 必要はありません。
次の表は、これらのファイルとその簡単な説明、 そして最初に登場したバージョンをまとめたものです。
レベル 0 | レベル 1 | レベル 2 | 説明 | REST のバージョン |
---|---|---|---|---|
c/ |
カテゴリ | 1.0 | ||
categories.xml |
全カテゴリの一覧 | 1.1 | ||
$CategoryName/ |
1.0 | |||
info.xml |
カテゴリについての情報 | 1.0 | ||
packages.xml |
そのカテゴリ内のパッケージの一覧 | 1.0 | ||
packagesinfo.xml |
すべてのパッケージについての情報 | 1.1 | ||
m/ |
メンテナ | 1.0 | ||
allmaintainers.xml |
全メンテナの一覧 | 1.1 | ||
$maintainernick/ |
1.0 | |||
info.xml |
メンテナについての情報 | 1.0 | ||
p/ |
パッケージ | 1.0 | ||
packages.xml |
全パッケージの一覧 | 1.0 | ||
$packagename/ |
1.0 | |||
info.xml |
全般的なパッケージ情報 | 1.0 | ||
maintainers.xml |
パッケージのメンテナ一覧 | 1.0 | ||
maintainers2.xml |
開発者とそのロールの一覧 | 1.2 | ||
r/ |
リリース | 1.0 | ||
$packagename/ |
1.0 | |||
allreleases.xml |
全リリースの一覧 | 1.0 | ||
allreleases2.xml |
必要な PHP の最低バージョンを含む全リリースの一覧 | 1.3 | ||
latest.txt |
最新のバージョン番号 | 1.0 | ||
stable.txt |
最新の安定板のバージョン番号 | 1.0 | ||
beta.txt |
最新のベータ版のバージョン番号 | 1.0 | ||
alpha.txt |
最新のアルファ版のバージョン番号 | 1.0 | ||
devel.txt |
最新の開発版のバージョン番号 | 1.0 | ||
0.1.2.xml |
バージョン 0.1.2 の簡単な説明 | 1.0 | ||
v2.0.1.2.xml |
package.xml バージョン 2 の短縮版 | 1.3 | ||
package.0.1.2.xml |
バージョン 0.1.2 用の package.xml | 1.0 | ||
deps.0.1.2.txt |
バージョン 0.1.2 用のシリアライズした依存性情報 | 1.0 | ||
ここでは、REST インターフェイスで使用するファイルフォーマットについて 詳細に説明します。
バージョン番号を含むファイル名については、例として
0.1.2
を使うことにします。
一般に、ファイルのサイズはできるだけ小さくすべきです。
そうすれば、ファイルを取得する際に余計な帯域を使わなくてすみます。
ということもあり、すべての xml ファイル
(元の package.xml
は除く)
で使用するタグの名前は 1 文字か 2 文字のものにしています。
pear list-all のようなコマンドを実行すると、
大量のファイルをダウンロードすることになるので、
些細なことですがこれはかなりの帯域の節約になります。
これは、そのチャネルで最も重要なファイルです。 このファイルがなければ何も動作しません。 チャネルを発見するときに、このファイルを取得します。 このファイルでは REST ディレクトリとそのミラーの場所を定義します。
チャネル名 <name>
は完全修飾形式のドメイン名で、たとえば
channel.xml
ファイルを更新する際の URL の一部として使用します。
PEAR では、チャネル名の短縮版となるエイリアスを提供しています。
これは日常の作業で用いられるものです。
<suggestedalias>
に、短くて書きやすい単語を指定します。たとえばエイリアスが
nice
であったとすると、
pear install pear.mynicelittlespaceon.example.org/package
とする代わりに
pear install nice/package
とタイプするだけでよくなります。
/channel.xml
そのドメインのルートディレクトリになければなりません。
その他のファイルはどこか特定のディレクトリ配下に置くこともできますが、
channel.xml
だけは /
になければならないのです。
<?xml version="1.0" encoding="utf-8"?> <channel version="1.0" xmlns="http://pear.php.net/channel-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/channel-1.0 http://pear.php.net/dtd/channel-1.0.xsd" > <name>pear.example.org</name><!-- URL, used to update channel.xml and such --> <suggestedalias>example</suggestedalias> <summary>Simple demo channel server</summary> <servers> <primary> <!-- you can ignore xmlrpc, it's deprecated anyway --> <xmlrpc> <function version="1.0">logintest</function> <function version="1.0">package.listLatestReleases</function> <function version="1.0">package.listAll</function> <function version="1.0">package.info</function> <function version="1.0">package.getDownloadURL</function> <function version="1.1">package.getDownloadURL</function> <function version="1.0">package.getDepDownloadURL</function> <function version="1.1">package.getDepDownloadURL</function> <function version="1.0">package.search</function> <function version="1.0">channel.listAll</function> </xmlrpc> <rest> <baseurl type="REST1.0">http://pear.example.org/rest/</baseurl> <baseurl type="REST1.1">http://pear.example.org/rest/</baseurl> <baseurl type="REST1.2">http://pear.example.org/rest/</baseurl> <baseurl type="REST1.3">http://pear.example.org/rest/</baseurl> </rest> </primary> <mirror host="us.pear.example.org"> <rest> <baseurl type="REST1.0">http://us.pear.example.org/rest/</baseurl> <baseurl type="REST1.1">http://us.pear.example.org/rest/</baseurl> <baseurl type="REST1.2">http://us.pear.example.org/rest/</baseurl> <baseurl type="REST1.3">http://us.pear.example.org/rest/</baseurl> </rest> </mirror> <mirror host="de.pear.example.org" ssl="yes" port="3452"> <rest> <baseurl type="REST1.0">https://de.pear.example.org:3452/rest/</baseurl> <baseurl type="REST1.1">https://de.pear.example.org:3452/rest/</baseurl> <baseurl type="REST1.2">https://de.pear.example.org:3452/rest/</baseurl> <baseurl type="REST1.3">https://de.pear.example.org:3452/rest/</baseurl> </rest> </mirror> </servers> </channel>
サーバ上の全カテゴリの名前とリンクを記述します。 リンクは URL エンコードします。
他のファイルとは異なり、チャネル名は
<c>
タグではなく<ch>
タグで囲まれます。
c/categories.xml
<?xml version="1.0" encoding="utf-8" ?> <a xmlns="http://pear.php.net/dtd/rest.allcategories" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.allcategories http://pear.php.net/dtd/rest.allcategories.xsd" > <ch>pear.example.org</ch> <c xlink:href="/rest/c/Tools/info.xml">Tools</c> <c xlink:href="/rest/c/Garbage%2Band%2BStuff/info.xml">Garbage and Stuff</c> </a>
ここで、カテゴリの詳細を説明します。このファイルにはカテゴリ名
(<n>
)、
チャネルサーバ (<c>
)、
エイリアス (<a>
)
そしてカテゴリについての長い説明 (<d>
)
を記述します。
c/${categoryname}/info.xml
カテゴリ名には空白や特殊文字が含まれる可能性があります。 したがって (x)links は URL エンコードする必要があります。
<?xml version="1.0" encoding="utf-8" ?> <c xmlns="http://pear.php.net/dtd/rest.category" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.category http://pear.php.net/dtd/rest.category.xsd" > <n>Tools</n> <c>pear.example.org</c> <a>Tools and Utilities</a> <d>This category holds all sorts of packages that might help you when trying to dominate the world.</d> </c>
このファイルには、そのカテゴリ内の各パッケージの 名前とリンクの一覧が含まれます。
c/${categoryname}/packages.xml
カテゴリ名には空白や特殊文字が含まれる可能性があります。 したがって (x)links は URL エンコードする必要があります。
<?xml version="1.0" encoding="utf-8" ?> <l xmlns="http://pear.php.net/dtd/rest.categorypackages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.categorypackages http://pear.php.net/dtd/rest.categorypackages.xsd" > <p xlink:href="/rest/p/earth">Earth</p> <p xlink:href="/rest/p/worlddominator">WorldDominator</p> </l>
packagesinfo.xml
は、
カテゴリ内のパッケージについての情報を集めたものです。
パッケージの
info.xml
の内容は
allreleases.xml
からのリリース情報、そして各バージョンの依存性情報などが含まれます。
すべてのパッケージ情報は、それぞれ <pi>
タグで囲みます。
c/${categoryname}/packagesinfo.xml
カテゴリ名には空白や特殊文字が含まれる可能性があります。 したがって (x)links は URL エンコードする必要があります。
list-all コマンドで表示される "サマリ" 情報を記述します。
<?xml version="1.0" encoding="utf-8" ?> <f xmlns="http://pear.php.net/dtd/rest.categorypackageinfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.categorypackageinfo http://pear.php.net/dtd/rest.categorypackageinfo.xsd" > <pi> <?xml version="1.0" encoding="UTF-8" ?> <p xmlns="http://pear.php.net/dtd/rest.package" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.package http://pear.php.net/dtd/rest.package.xsd" > <n>WorldDominator</n> <c>pear.example.org</c> <!-- Full contents of p/${packagename}/info.xml follow --> </p> <a> <r><v>1.1.2</v><s>stable</s></r> <r><v>0.1.2</v><s>beta</s></r> <r><v>0.0.1</v><s>devel</s></r> </a> <deps> <v>0.1.2</v> <d><!-- serialized dependency information like deps.0.1.2.txt --></d> </deps> <deps> <v>0.0.1</v> <d><!-- serialized dependency information like deps.0.1.2.txt --></d> </deps> </pi> </f>
サーバ上のパッケージの全開発者の名前とリンクを記述します。
FIXME: full names or just nicks? FIXME: lowercased nicks?
m/allmaintainers.xml
<?xml version="1.0" encoding="utf-8" ?> <m xmlns="http://pear.php.net/dtd/rest.allmaintainers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.allmaintainers http://pear.php.net/dtd/rest.allmaintainers.xsd" > <h xlink:href="/rest/m/pinky">pinky</h> <h xlink:href="/rest/m/thebrain">the brain</h> </m>
メンテナの情報、たとえばハンドル
(ニックネーム、<h>
)、
フルネーム (<n>
)
ホームページの URL (<u>
)
などを記述します。
m/${maintainernick}/info.xml
FIXME: lowercasednick?
<?xml version="1.0" encoding="utf-8" ?> <m xmlns="http://pear.php.net/dtd/rest.maintainer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.maintainer http://pear.php.net/dtd/rest.maintainer.xsd" > <h>thebrain</h> <n>The Brain</n> <u>http://pinkyandthebrain.example.org</u> </m>
このパッケージは、チャネル内のすべてのパッケージの一覧と チャネルサーバ名そのものを記述します。
パッケージ名に空白文字を含めることはできません。 空白文字を含めた場合、インストーラの挙動は未定義となります。
p/packages.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <a xmlns="http://pear.php.net/dtd/rest.allpackages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.allpackages http://pear.php.net/dtd/rest.allpackages.xsd" > <c>pear.example.org</c> <p>Earth</p> <p>WorldDominator</p> </a>
このファイルには、そのパッケージの バージョンに依存しない一般的な情報を記述します。 たとえばライセンス、カテゴリ、サマリ、説明、 リリースディレクトリへのリンクなどです。
r/${packagename}/info.xml
パッケージ名は小文字に変換されます。
remote-info は、このファイルを取得して情報を表示します。
<?xml version="1.0" encoding="utf-8" ?> <p xmlns="http://pear.php.net/dtd/rest.package" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.package http://pear.php.net/dtd/rest.package.xsd" > <n>WorldDomination</n> <c>pear.example.org</c> <ca xlink:href="/rest/c/Tools">Tools</ca> <l>Dictatoric License</l> <s>Tool to dominate the world</s> <d> Helps you dominating the world by fulfilling various tasks: - Feed the cats - Lock the doors after 23:42 </d> <r xlink:href="/rest/r/worlddomination"/> </p>
アクティブか否かにかかわらず、 すべての開発者をこのファイルに記述します。
各開発者のハンドル (<h>
) および活動状況
(<a>
、0
が非アクティブで 1
がアクティブ)
を記述します。
r/${packagename}/maintainers.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <m xmlns="http://pear.php.net/dtd/rest.packagemaintainers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.packagemaintainers http://pear.php.net/dtd/rest.packagemaintainers.xsd" > <p>WorldDominator</p> <c>pear.example.org</c> <m> <h>pinky</h> <a>1</a> </m> <m> <h>thebrain</h> <a>1</a> </m> <m> <h>deadcow</h> <a>0</a> </m> </m>
maintainers.xml
と同じですが、さらに開発者のロールも含まれています。
ロール名
として使用できるのは
lead
、developer
、
contributor
および helper
です。
r/${packagename}/maintainers2.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <m xmlns="http://pear.php.net/dtd/rest.packagemaintainers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.packagemaintainers http://pear.php.net/dtd/rest.packagemaintainers.xsd" > <p>WorldDominator</p> <c>pear.example.org</c> <m> <h>pinky</h> <a>1</a> <r>developer</r> </m> <m> <h>thebrain</h> <a>1</a> <r>lead</r> </m> <m> <h>deadcow</h> <a>0</a> <r>helper</r> </m> </m>
このファイルには全パッケージのバージョンと安定性が記述されています。
複数のリリースがある場合、このファイルでは最新のバージョンが先頭にくるようにします。
r/${packagename}/allreleases.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <a xmlns="http://pear.php.net/dtd/rest.allreleases" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.allreleases http://pear.php.net/dtd/rest.allreleases.xsd" > <p>WorldDominator</p> <c>pear.example.org</c> <r><v>0.8.1</v><s>beta</s></r> <r><v>0.0.2</v><s>alpha</s></r> </a>
allreleases.xml
と同じですが、
さらに、必要となる PHP の最小バージョンについての情報が追加されています。
r/${packagename}/allreleases2.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <a xmlns="http://pear.php.net/dtd/rest.allreleases2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.allreleases2 http://pear.php.net/dtd/rest.allreleases2.xsd" > <p>WorldDominator</p> <c>pear.example.org</c> <r><v>0.8.1</v><s>beta</s><m>4.4.2</m></r> <r><v>0.0.2</v><s>alpha</s><m>5.2.3</m></r> </a>
このファイルの唯一の中身は、 最新版のバージョン番号をプレーンテキストで書いたものです。 安定性は関係なしに、もっとも新しいバージョン番号をここに書きます。
r/${packagename}/latest.txt
パッケージ名は小文字に変換されます。
最新版がリリースされていない場合は、このファイルも存在しません。
このパッケージには安定版のバージョン 1.0.0
のほかに
0.9.8
と 1.0.9
のふたつのベータ版、
そして開発版の 1.0.1
が存在すると仮定しましょう。
最新のバージョン番号はこの場合 1.0.9
なので、これを latest.txt
に記述します。
1.0.9
このファイルの唯一の中身は、 最新の安定版のバージョン番号をプレーンテキストで書いたものです。
r/${packagename}/stable.txt
パッケージ名は小文字に変換されます。
安定版が存在しない場合は、このファイルも存在しません。
0.1.2
このファイルの唯一の中身は、 最新のベータ版のバージョン番号をプレーンテキストで書いたものです。
r/${packagename}/beta.txt
パッケージ名は小文字に変換されます。
ベータ版が存在しない場合は、このファイルも存在しません。
0.1.2
このファイルの唯一の中身は、 最新のアルファ版のバージョン番号をプレーンテキストで書いたものです。
r/${packagename}/alpha.txt
パッケージ名は小文字に変換されます。
アルファ版が存在しない場合は、このファイルも存在しません。
0.1.2
このファイルの唯一の中身は、 最新の開発版のバージョン番号をプレーンテキストで書いたものです。
r/${packagename}/devel.txt
パッケージ名は小文字に変換されます。
開発版が存在しない場合は、このファイルも存在しません。
0.1.2
このファイルは、完全版の package.xml
から必要最小限の情報に絞り込んでサイズを最適化したファイルです。
package.xml
と同様タグの順序が重要であり、
入れ替えてはいけません。
r/${packagename}/0.1.2.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <r xmlns="http://pear.php.net/dtd/rest.release" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.release http://pear.php.net/dtd/rest.release.xsd" > <p xlink:href="/rest/p/worlddominator">WorldDominator</p> <c>pear.example.org</c> <v>0.1.2</v> <st>beta</st> <l>Dictatoric License</l> <m>thebrain</m> <s>Tool to dominate the world</s> <d>Helps you dominating the world by fulfilling various tasks: - Feed the cats - Lock the doors after 23:42</d> <da>2007-12-24 23:42:00</da> <n>* Fix atomic X-mas bug [thebrain]</n> <f>19588</f> <g>http://pear.example/get/WorldDominator-0.1.2</g> <x xlink:href="package.0.1.2.xml"/> </r>
タグ名 | 説明 |
---|---|
<p> |
パッケージのディレクトリへの絶対パスを含めたパッケージ名 |
<c> |
チャネルサーバ名 |
<v> |
リリースバージョン |
<st> |
安定性
(stable 、beta など)
|
<l> |
ライセンス名 |
<m> |
リリース担当開発者のハンドル/ニックネーム |
<s> |
サマリ |
<d> |
複数行の説明 |
<da> |
リリース日時 |
<n> |
リリースノート |
<f> |
バイト単位の tgz のサイズ |
<g> |
リリースアーカイブへの完全な URL |
<x> |
そのバージョンの
package.xml
ファイルへのリンク
|
0.1.2.xml
と同じですが、追加の API と最小 PHP バージョンが増えています。
r/${packagename}/v2.0.1.2.xml
パッケージ名は小文字に変換されます。
<?xml version="1.0" encoding="utf-8" ?> <r xmlns="http://pear.php.net/dtd/rest.release2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://pear.php.net/dtd/rest.release2 http://pear.php.net/dtd/rest.release2.xsd" > <p xlink:href="/rest/p/worlddominator">WorldDominator</p> <c>pear.example.org</c> <v>0.1.2</v> <a>0.1.2</a> <mp>5.2.3</mp> <st>beta</st> <l>Dictatoric License</l> <m>thebrain</m> <s>Tool to dominate the world</s> <d>Helps you dominating the world by fulfilling various tasks: - Feed the cats - Lock the doors after 23:42</d> <da>2007-12-24 23:42:00</da> <n>* Fix atomic X-mas bug [thebrain]</n> <f>19588</f> <g>http://pear.example/get/WorldDominator-0.1.2</g> <x xlink:href="package.0.1.2.xml"/> </r>
0.1.2.xml
にはないタグをまとめます。
タグ名 | 説明 |
---|---|
<a> |
API バージョン |
<mp> |
最小の PHP バージョン |
このリリースの完全な package.xml
です。
バージョン 1 あるいはバージョン 2 の
package.xml
形式となります。
そのパッケージに両方が含まれている場合はバージョン 2 のほうを使用します。
r/${packagename}/package.0.1.2.xml
パッケージ名は小文字に変換されます。
このファイルには、依存性情報の配列を PHP の serialize() 関数でシリアライズしたものが保存されます。
r/${packagename}/deps.0.1.2.txt
パッケージ名は小文字に変換されます。
array(2) { ["required"]=> array(2) { ["php"]=> array(1) { ["min"]=> string(5) "5.2.3" } ["pearinstaller"]=> array(1) { ["min"]=> string(7) "1.7.1" } } ["optional"]=> array(1) { ["package"]=> array(2) { ["name"]=> string(4) "Toolbox" ["channel"]=> string(12) "pear.example.org" ["min"] => string(7) "1.3.0" } } }
<dependencies> <required> <php> <min>5.2.3</min> </php> <pearinstaller> <min>1.7.1</min> </pearinstaller> </required> <optional> <package> <name>Toolbox</name> <channel>pear.example.org</channel> <min>1.3.0</min> </package> </optional> </dependencies>
このページでは、これまでの REST のバージョンと そのバージョンでの変更点をまとめます。
これは REST インターフェイスをサポートした最初のバージョンです。
このバージョンでは、ディレクトリ表示機能が無効になっていても チャネルを探せるようになりました。そのために、次のファイルが追加されました。
このバージョンから、PHP のバージョンの非互換性を
リリースリストをダウンロードするだけで解決できるようになりました。
allreleases2.xml
に、
個々のパッケージのリリースで必要な PHP の最低バージョンがまとめられています。
これにより、必要とする PHP の最低バージョンが変わっても
パッケージ名を変更する必要はなくなりました。
このセクションでは、 チャネルサーバで行う一般的な作業について説明します。
このセクションの元ネタとなっているのは、 Jean-Lou Dupont のプレゼンテーション "PEAR Channel on Google Code" です。
チャネルサーバ上に新しいカテゴリを作成する際に必要な手順は 次のとおりです。
c/${CategoryName}
ディレクトリを作成する
以下のファイルを作成する
c/categories.xml
を更新する
新しいパッケージをサーバ上で公開する際の手順は、 次のとおりです。
そのパッケージの属するカテゴリが存在するかどうかを調べ、ない場合は 新しいカテゴリ を作成する
パッケージ用のディレクトリ p/${packagename}/
を作成する
以下のファイルを作成する
カテゴリのファイルを更新する
既存のパッケージの新バージョンをリリースする際の手順は次のとおりです。
そのリリースの package.xml
を
r/${packagename}/package.0.1.2.xml
という名前で作成する
バージョン固有のファイル
r/${packagename}/0.1.2.xml
を作成する
状態を表すファイル
r/${packagename}/latest.txt
、
stable.txt
、
beta.txt
、
alpha.txt
、
devel.txt
を適切に更新する
r/${packagename}/allreleases.xml
および
r/${packagename}/allreleases2.xml
を更新する
パッケージのアーカイブ (tar
および tgz
) を
r/${packagename}/0.1.2.xml
で指定した場所に配置する
While you can use this documentation to build you own channel server, it is possibly easier for you to either get your package into PEAR itself, or setup your own channel server. The reference implementation of a PEAR channel server is the PEAR website itself, but it should not be used for your own server.
If you seek for an easy-to-setup software, try Chiara_PEAR_Server which resides on its own channel http://pear.chiaraquartet.net.
Another project is SimpleChannelServer, which is available as a plugin for Pyrus, or a standalone phar pearscs.phar. View the online documentation, or the source in SVN.