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