page_adsence

ラベル PEAR の投稿を表示しています。 すべての投稿を表示
ラベル PEAR の投稿を表示しています。 すべての投稿を表示

2011年4月12日火曜日

pear upgradeでのエラーその2

pearでupgradeしようと思ったら再びエラーが。

WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user

pearのチャンネルが古いらしい。

# pear channel-update pear.php.net

と実行する。

pear/PEAR dependency package "pear/Console_Getopt" downloaded version 1.3.1 is not the recommended version 1.2.3, but may be compatible, use --force to install
pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9
pear/Console_Getopt requires PEAR Installer (version >= 1.8.0), installed version is 1.4.9
No valid packages found
upgrade failed

PEARとArchive_Tar及びConsole_Getoptとのバージョンの兼ね合いで、upgradeできないみたい。

なので、Archive_TarとConsole_Getoptを強制的にアップデートする。

# pear upgrade --force Archive_Tar
# pear upgrade --force Console_Getopt

で、完了後に

# pear upgrade pear

あと、pearでインストール時にパーミッションが足りないと下記のようなメッセージがでるんだ。
初めて知った。
ぶっちゃけわかりずらい…。
PHP Fatal error:  Call to undefined method PEAR::raiseerro() in /usr/share/pear/PEAR/REST.php on line 165

2010年6月12日土曜日

pear経由でsymfonyのインストール手順

まずpearがインストールされているかを確認。

$ which pear
/usr/bin/pear

pearがインストールされていることを確認。

でpearコマンドを使ってsymfonyをインストールする。

環境依存を極力なくすためにライブラリはすべてプロジェクトディレクトリ内にインストールすることが好ましい。

なので今回は以下のようなvendorディレクトリを作成し、その下にsymfonyをインストールする。

$ mkdir project_dir/vendor
$ cd vendor

$ pear config-create /path/to/project_dir/vendor .pearrc
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels auto_discover
Default Channel default_channel pear.php.net
HTTP Proxy Server Address http_proxy
PEAR server [DEPRECATED] master_server
Default Channel Mirror preferred_mirror
Remote Configuration File remote_config
PEAR executables directory bin_dir /path/to/project_dir/vendor/pear
PEAR documentation directory doc_dir /path/to/project_dir/vendor/pear/docs
PHP extension directory ext_dir /path/to/project_dir/vendor/pear/ext
PEAR directory php_dir /path/to/project_dir/vendor/pear/php
PEAR Installer cache directory cache_dir /path/to/project_dir/vendor/pear/cache
PEAR data directory data_dir /path/to/project_dir/vendor/pear/data
PHP CLI/CGI binary php_bin
PEAR test directory test_dir /path/to/project_dir/vendor/pear/tests
Cache TimeToLive cache_ttl
Preferred Package State preferred_state
Unix file mask umask
Debug Log Level verbose
PEAR password (for password
maintainers)
Signature Handling Program sig_bin
Signature Key Directory sig_keydir
Signature Key Id sig_keyid
Package Signature Type sig_type
PEAR username (for username
maintainers)
User Configuration File Filename /path/to/project_dir/vendor/.pearrc
System Configuration File Filename #no#system#config#
Successfully created default configuration file "/path/to/project_dir/vendor/.pearrc"

pearコマンドを使ってsymfonyのpearチャンネルを登録し、バージョンを指定してインストールを行う

$ pear -c .pearrc channel-discover pear.symfony-project.com
Adding Channel "pear.symfony-project.com" succeeded
Discovery of channel "pear.symfony-project.com" succeeded

symfonyの1.4.5をインストール

$ pear -c .pearrc install -a symfony/symfony-1.4.5
symfony/symfony requires PHP extension "dom"
No valid packages found
install failed

今度はdomがないのでrootユーザーになってyumでインストール
# yum install php-dom

もう一度symfonyをインストール
$ pear -c .pearrc install -a symfony/symfony-1.4.5
downloading symfony-1.4.5.tgz ...
Starting to download symfony-1.4.5.tgz (3,171,881 bytes)
.............done: 3,171,881 bytes
install ok: channel://pear.symfony-project.com/symfony-1.4.5

あとはvendorディレクトリから、プロジェクトルートディレクトリに戻り、インストールしたsymfonyパッケージからプロジェクトの初期化を行う

$ vendor/pear/symfony generate:project example

これでインストールは完了。

Subversionを使用している場合にはプロジェクトディレクトリ内をsvn addしてからsvn ciする

PEAR MDB2をインストール

PEARのMDB2をインストールしようとしたら

pear install MDB2

こっちは問題なく成功。

pear install MDB2_Driver_mysql

としたら

pear/MDB2_Driver_mysql requires PHP extension "mysql"
No valid packages found
install failed

というエラーが。
PHPのモジュールの中にmysqlがないよって話。
ということでphp-mysqlをインストール

yum install php-mysql

完了したら、再び

pear install MDB2_Driver_mysql

無事インストールが完了しました。

pear upgradeに関して

久々にpearをインストールして見た。
といってもyumからインストールしたので、たいした作業ではないはずだった。
スーパーユーザーになってから

yum install php-pear

で、インストール完了。
インストール後に気がついた。
バージョン指定してない・・・。
なのでupdateする。

pear upgrade php-pear

とすると

WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9
pear/PEAR dependency package "pear/Archive_Tar" installed version 1.3.1 is not the recommended version 1.3.7, but may be compatible, use --force to install
No valid packages found
upgrade failed

なんか依存関係があってうまくupdateしてくれない。
調べたらバージョン指定してupdateすればOKとのことだったので、最新版の1.9.1を指定してupdateしてみた。

pear upgrade PEAR-1.9.1

と打ったら

pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9
pear/PEAR dependency package "pear/Archive_Tar" installed version 1.3.1 is not the recommended version 1.3.7, but may be compatible, use --force to install
No valid packages found
upgrade failed

同じエラー・・・。
なんだこれ。
とりあえず1.5.4を指定してupgradeしてみた。

pear upgrade PEAR-1.5.4

そしたら無事にupgradeができました。
んで、こっからさらに最新版である1.9.1にupgrade。
先程と同様に、バージョンを指定。

pear upgrade PEAR-1.9.1

無事完了しました。