PEARのアップグレード(upgrade)に失敗したが、なんとか解決した記録。
契約していたサーバーにインストールしてあったPEARパッケージが1.4.9と古かったので、最新版にしようと試みます。
卵が先か、ニワトリが先か
PEARをアップグレードしようとして、まさにそんなシチュエーションに遭遇しました。
PEARをアップグレードしようとすると…
# pear upgrade PEAR 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.3, but may be compatible, use --force to install No valid packages found upgrade failed
なるほど、「Archive_Tar」のバージョンが古いせいでPEARパッケージのアップグレードが失敗したようです。
Archive_Tarをアップグレードしようとすると…
# pear upgrade Archive_Tar pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9 No valid packages found upgrade failed
あれ?今度はPEARのパッケージが古いせいでArchive_Tarのアップグレードが失敗しましたよ? 一旦Archive_Tarをアンインストールしてみましょう。
アンインストールも失敗
# pear uninstall Archive_Tar pear/Archive_Tar (recommended version 1.3.1) is required by installed package "pear/pear" pear/Archive_Tar cannot be uninstalled, other installed packages depend on this package
「他のパッケージが『Archive_Tar』に依存してるので削除できませんでした。」とのこと。 おそらく、その依存しているパッケージこそ『PEAR』であると想像できます。
強制的にPEARをアップグレードさせて解決!
ここで最初にPEARをアップグレードさせて失敗したところにあった「『–force』オプションを付加する」というのを思い出しました。
# pear upgrade --force PEAR warning: pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9 downloading PEAR-1.8.1.tgz ... Starting to download PEAR-1.8.1.tgz (290,382 bytes) ............................................................done: 290,382 bytes downloading Archive_Tar-1.3.3.tgz ... Starting to download Archive_Tar-1.3.3.tgz (18,119 bytes) ...done: 18,119 bytes upgrade ok: channel://pear.php.net/Archive_Tar-1.3.3 upgrade ok: channel://pear.php.net/PEAR-1.8.1 PEAR: Optional feature webinstaller available (PEAR's web-based installer) PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer) PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer) To install use "pear install pear/PEAR#featurename"
無事に成功! Archive_Tarパッケージも同時に最新版になってくれました。
2009-08-25