LoginSignup
2
0

More than 5 years have passed since last update.

PHP:PEARのchannel-discoverが通らない時の対処のメモ

Last updated at Posted at 2015-06-15

背景

最近propelをインストールしようとした際に、

$ pear channel-discover pear.propelorm.org

このコマンドがpear.propelorm.orgサーバーの無応答でどうにもならなかったことがあった。(この記事を書いている時点でも無応答)

多分、ver2がリリースされているのでver1世代のPEARはメンテされていないんだろう。

ソースコード自体はgithubにあるので、他のインストール方法で解決することもできるのだが、上記コマンドおよびその後に続くインストールコマンドはChefで実行しているので、なるべく同じ手順で対応したい。

ということで、偽pear.propelorm.orgを立ち上げた時の作業メモ。
他のPEARチャンネルでも、似たような手順で対応可能だと思う。
 # ローカル用なので雑な手順なのはご愛嬌・・・

目標

  • (サーバーが死亡した)PEARチャンネルをローカルネットワークに作る
  • インストールするホストでは、「pear」コマンドを変更せずに利用可能にする

手順

PEARパッケージを作る準備

httpdなどのWebサーバーが立ち上がっているホスト(PEARインストール対象のホストでも良い)を用意する。

そのホストで、Pirumをインストールする。

$ pear channel-discover pear.pirum-project.org
$ pear install pirum/Pirum

自前のPEARチャンネルを作る

以下の手順はpropelを対象にした例。

まずはソースコードのダウンロードと解凍。

$ cd /tmp
$ wget https://github.com/propelorm/Propel/archive/1.7.1.zip
$ mv 1.7.1 Propel-1.7.1.zip
$ unzip Propel-1.7.1.zip

解答したパッケージのトップにpirum.xmlを作成する。

$ cd Propel-1.7.1/
$ vim pirum.xml

ここでのポイントはオフィシャルのPEARインストール手順に合わせて namealias を書いておくこと。
オフィシャルではこんな感じなので、

$ pear channel-discover pear.propelorm.org
$ sudo pear install -a propel/propel_generator
$ sudo pear install -a propel/propel_runtime

channel-discoverのコマンドに合わせて name を、
installのコマンドの「 foo/bar 」の foo に合わせて alias を書く。

こんな感じ。

pirum.xml
<?xml version="1.0" encoding="UTF-8" ?>
<server>
    <name>pear.propelorm.org</name>
    <summary>Local Propelorm PEAR channel</summary>
    <alias>propel</alias>
    <url>http://pear.propelorm.org/</url>
</server>

この例ではURLをオフィシャルに合わせているが、URLを完全に自前のものに変えても良い。
「pear install」コマンドを打った時にアクセスするURLとなる。

XMLファイルができたら、PEARパッケージ化する。

$ pirum build .

チャンネルにパッケージを追加する

今は空のチャンネルになっているはず。phingでパッケージをビルドし、pirumコマンドで追加していく。
 # PropelはPEAR用XMLファイルがリポジトリに一緒に置いてあって良かった。
version=の部分は、パッケージのバージョンを入れる。

$ phing -Dversion=1.7.1 -f generator/pear/build-pear-package.xml
$ pirum add . generator/pear/build/propel_generator-1.7.1.tgz
$ phing -Dversion=1.7.1 -f runtime/pear/build-pear-package.xml
$ pirum add . runtime/pear/build/propel_runtime-1.7.1.tgz

確認

$ cat packages.json

Webサーバーに配置

Webサーバーの設定によって色々だと思うので、以下は例。とにかく、 pirum.xmlで書いたURLでアクセスできるように配置する。
配置の仕方がかなり雑なのはご愛嬌。

$ sudo cp -rp /tmp/Propel-1.7.1/* /var/www/html/

この例だと「1Webサーバー:1PEARチャンネル」になってしまうので、VirtualHostとかVirtualDocumentRootと組み合わせるのが良いと思う。ここでは割愛。

PEARインストールする対象ホストで確認

もし上記pirum.xmlのようにオフィシャルのURLに合わせているなら、hostsファイルを編集する。

WebサーバーのIPアドレス  pear.propelorm.org

そして、上記pirum.xmlで記載したURLでアクセスできることを確認。

$ curl <pirum.xmlに書いたURL>

PEAR Channelの情報が出てくれば成功。

インストールしてみる

オフィシャルのPEAR手順にしたがってコマンドを打ってみる。

$ pear channel-discover pear.propelorm.org

もしオリジナルなURL・・・例えば http://hoge/fuga/ を設定しているなら、以下のように入力。

$ pear channel-discover hoge/fuga

パッケージを入れてみる。

$ sudo pear install -a propel/propel_generator
$ sudo pear install -a propel/propel_runtime

OKだった。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0