7

PEAR パッケージを使用するプロジェクトに取り組んでいます。ホスティング プロバイダーにインストールされる PEAR パッケージのバージョンがわからないため (特に、いずれかのパッケージにパッチを適用する必要があるため)、プロジェクトの PEAR ソースを次の場所に配置したいと思います。 SVN であるため、他の開発者はすぐに依存関係を持つことができます。

しかし、PEAR に関連するものはすべて絶対ディレクトリを持っているようです! 「pear config-create . pear.conf」を実行して新しい PEAR ディレクトリをセットアップすると、次のエラー メッセージが表示されて失敗します。

ルート ディレクトリは絶対パスである必要があります

他のいくつかのサーバーで pear 構成ファイルをチェックアウトしましたが、それらにも絶対パスがあるようです。

開発者がこれを自分のマシンにチェックアウトするか、すべてをサーバーにエクスポートするときはいつでも、絶対パスがどうなるかわかりません。

これを設定する方法はありますか?

4

3 に答える 3

3

ホスティング プロバイダーに、必要な PEAR ライブラリをインストールしてもらうことができませんでした。PEAR をソース ツリーの一部にする方法を次に示します。

1.remote.conf ファイルを作成する

remote.conf の作成は、マニュアルとは少し異なります。vendor/PEARプロジェクトの中にPEAR をインストールしたいとしましょう。次のようにします。

#from the root of the project
$ cd vendor ; mkdir PEAR ; cd PEAR
$ pear config-create <absolute path to project>/vendor/PEAR/ remote.conf 

2.チャンネルを更新する

$ pear -c remote.conf channel-update pear.php.net

3. PEAR をインストールする

$ pear -c remote.conf install --alldeps pear

4. 他のライブラリをインストールします

$ pear -c remote.conf install --alldeps <libname>

出来上がり... PEAR はソースツリーの一部です。

キャッチ:

  • のパスremote.confは絶対パスですが、ライブラリ自体は引き続き機能します。どこからも機能しないのは更新だけです。作成元と同じパスから更新する必要があります。上記の場合はvendor/PEAR.
  • 一部のライブラリはパスの外にあることを好まないため、パスに追加vendor/PEARする必要がある場合があります (コードがあります。必要な場合はお尋ねください)。
于 2009-06-29T09:28:41.003 に答える
2

PHP 5.3.1 を使用している場合は、PEAR2 インストーラーである Pyrus を使用します。pyrus が管理するインストールは、好きな場所に移動できます。

ピルスをダウンロード -

$> wget http://pear2.php.net/pyrus.phar

pyrus でインストールしたパッケージを保存するディレクトリを作成します。

$> mkdir mylibs

パッケージのインストール -

$> php pyrus.phar mylibs install pear/Net_URL

インストールされたパッケージは現在mylibs/php/Net/URL.php

インストール先のディレクトリを示すために mylibs ディレクトリを渡したことに注意してください。また、チャネル名 'pear' (pyrus のデフォルトは pear2.php.net) も指定しています。便宜上、chmod +x を実行すると、cli から pyrus.phar ファイルを実行できます。

mylibsディレクトリは好きな場所に移動できます。リポジトリにコミットすることもできます。

PEAR Web サイトに多数のドキュメントがあります。

于 2009-12-02T14:41:05.600 に答える