とりあえずシステムがらみのアップデートはyumで完了したものの、PHPのアップデートはPHP7.3のyumで行われていなかったため、改めてremi-php73リポジトリを有効にしてPHPのアップデートを行うことにしました。
# yum update –enablerepo=remi-php73
そうしたら、なんと。
エラー: パッケージ: php-mbstring-7.3.20-1.el6.remi.x86_64 (remi-php73)
要求: libonig.so.105()(64bit)
問題を回避するために –skip-broken を用いることができません
これらを試行できます: rpm -Va –nofiles –nodigest
・・・まじか!?
ということは前回のエラーも単純にremi-safeリポジトリが有効になっていたからというような話ではないみたいです。
そこでさっそく調べてみました。そもそもlibonig.so.105とは何者なのかを。
参照先の情報によると、「正規表現ライブラリの「鬼車(おにぐるま)」のバージョン 5 に対象の libonig.so.5 が含まれている」んだそう。そしてこのoniguruma(だからlibonig、なんですね!)のパッケージはremiリポジトリにあるそうなのでremiリポジトリを有効にしてonigurumaをyum installすれば必要なパッケージのインストールがされるそうです。
# yum –enablerepo=remi install oniguruma
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
base: ftp.iij.ad.jp
epel: nrt.edge.kernel.org
extras: ftp.iij.ad.jp
remi: ftp.riken.jp
updates: ftp.iij.ad.jp
依存性の解決をしています
–> トランザクションの確認を実行しています。
—> Package oniguruma.x86_64 0:5.9.1-3.1.el6 will be インストール
–> 依存性解決を終了しました。
依存性を解決しました
=============================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
インストールしています:
oniguruma x86_64 5.9.1-3.1.el6 base 123 k
トランザクションの要約
インストール 1 パッケージ
総ダウンロード容量: 123 k
インストール済み容量: 546 k
これでいいですか? [y/N]
※参照先ではインストールパッケージがOniguruma5になっていましたが、バージョンである「5」までパッケージ名に含めてしまうとインストールパッケージが見つからずインストールが始まりませんでした。そこでバージョンナンバーを外してインストールを試みています。
表示されているバージョンが5.9.1-3.1なので多分指定されているバージョン5なのでしょう・・・(^ ^;;
と信じてインストールの完了を待ちます。
待つことしばし。無事にインストールが完了しました。これでPHP73のアップデートが行えるはず。
だったのですが・・・。
結果は変わらず。前と同じエラーメッセージが出されてアップデートが始まりませんでした。
やっぱりoniguruma5という指定でパッケージが入ってないとだめなのかな?
そこでさらに情報を探ると、どうやらoniguruma5パッケージの名称が変更されたことがこのエラーの原因であるらしいことが分かりました。そしてその対処法としては、oniguruma5パッケージを削除し、それからphp-mbstringを再インストールという手順でいいらしいのですが・・・。
この辺から少しずつ危険な香りがプンプンし始めます。動いているシステムから何かを削除する、というのは実は一番危険なパターン。本来ならこの段階でPHP7.3のアップデートは諦めて、現行のままのシステム構成で行った方がいいに決まっているのですが・・・。
# yum erase oniguruma5
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
削除処理の設定をしています
依存性の解決をしています
–> トランザクションの確認を実行しています。
—> Package oniguruma5.x86_64 0:6.9.5+rev1-1.el6.remi will be 削除
–> 依存性の処理をしています: libonig.so.5()(64bit) のパッケージ: php-mbstring-7.3.15-1.el6.remi.x86_64
–> トランザクションの確認を実行しています。
—> Package php-mbstring.x86_64 0:7.3.15-1.el6.remi will be 削除
–> 依存性解決を終了しました。
依存性を解決しました
====================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
削除:
oniguruma5 x86_64 6.9.5+rev1-1.el6.remi @remi-safe 729 k
依存性関連での削除をします。:
php-mbstring x86_64 7.3.15-1.el6.remi @remi-php73 2.0 M
トランザクションの要約
削除 2 パッケージ
インストール済み容量: 2.7 M
これでいいですか? [y/N]
・・・やっちまった・・・(^ ^;;
oniguruma5のパッケージをアンインストールする過程で一緒にphp-mbstringも削除されるようでした。どのみちどちらのパッケージも削除しなければならないので一括で消去できるのは(依存性の観点から見ても)むしろありがたいですよね。
でやってみた結果ですが。
結論から言うと、この後に「yum –enablerepo=remi-php73 install php-mbstring」でPHP7.3のリポジトリからphp-mbstringをインストールすることはできませんでした。どうしても同じエラーが出てしまい、パッケージの更新が進まないのです。
あ~、なんか嫌な予感しかしない・・・。
とはいえもう後には引けませんから、さらに情報を探ってみます。
すると、一度remi-php73がらみのパッケージを全て削除し、その後remi-php73リポジトリのみを有効にしてphpがらみのパッケージをインストールするといけるらしいという情報を得ました。
藁にもすがる思いでレッツトライ!
# yum remove php-*
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
削除処理の設定をしています
依存性の解決をしています
–> トランザクションの確認を実行しています。
—> Package php.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-cli.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-common.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-fedora-autoloader.noarch 0:1.0.1-2.el6.remi will be 削除
—> Package php-gd.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-json.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-mysqlnd.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-pdo.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-pear.noarch 1:1.10.10-4.el6.remi will be 削除
—> Package php-process.x86_64 0:7.3.15-1.el6.remi will be 削除
—> Package php-xml.x86_64 0:7.3.15-1.el6.remi will be 削除
–> 依存性解決を終了しました。
依存性を解決しました
====================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
削除:
php x86_64 7.3.15-1.el6.remi @remi-php73 9.4 M
php-cli x86_64 7.3.15-1.el6.remi @remi-php73 12 M
php-common x86_64 7.3.15-1.el6.remi @remi-php73 12 M
php-fedora-autoloader noarch 1.0.1-2.el6.remi @remi 15 k
php-gd x86_64 7.3.15-1.el6.remi @remi-php73 201 k
php-json x86_64 7.3.15-1.el6.remi @remi-php73 82 k
php-mysqlnd x86_64 7.3.15-1.el6.remi @remi-php73 807 k
php-pdo x86_64 7.3.15-1.el6.remi @remi-php73 355 k
php-pear noarch 1:1.10.10-4.el6.remi @remi 2.1 M
php-process x86_64 7.3.15-1.el6.remi @remi-php73 153 k
php-xml x86_64 7.3.15-1.el6.remi @remi-php73 767 k
トランザクションの要約
削除 11 パッケージ
インストール済み容量: 39 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
削除中 : 1:php-pear-1.10.10-4.el6.remi.noarch 1/11
削除中 : php-7.3.15-1.el6.remi.x86_64 2/11
削除中 : php-cli-7.3.15-1.el6.remi.x86_64 3/11
削除中 : php-fedora-autoloader-1.0.1-2.el6.remi.noarch 4/11
削除中 : php-process-7.3.15-1.el6.remi.x86_64 5/11
削除中 : php-xml-7.3.15-1.el6.remi.x86_64 6/11
削除中 : php-gd-7.3.15-1.el6.remi.x86_64 7/11
削除中 : php-mysqlnd-7.3.15-1.el6.remi.x86_64 8/11
削除中 : php-pdo-7.3.15-1.el6.remi.x86_64 9/11
削除中 : php-json-7.3.15-1.el6.remi.x86_64 10/11
削除中 : php-common-7.3.15-1.el6.remi.x86_64 11/11
警告: /etc/php.ini は /etc/php.ini.rpmsave として保存されました。
Verifying : php-cli-7.3.15-1.el6.remi.x86_64 1/11
Verifying : php-mysqlnd-7.3.15-1.el6.remi.x86_64 2/11
Verifying : php-gd-7.3.15-1.el6.remi.x86_64 3/11
Verifying : php-pdo-7.3.15-1.el6.remi.x86_64 4/11
Verifying : php-fedora-autoloader-1.0.1-2.el6.remi.noarch 5/11
Verifying : php-7.3.15-1.el6.remi.x86_64 6/11
Verifying : php-process-7.3.15-1.el6.remi.x86_64 7/11
Verifying : 1:php-pear-1.10.10-4.el6.remi.noarch 8/11
Verifying : php-xml-7.3.15-1.el6.remi.x86_64 9/11
Verifying : php-common-7.3.15-1.el6.remi.x86_64 10/11
Verifying : php-json-7.3.15-1.el6.remi.x86_64 11/11
削除しました:
php.x86_64 0:7.3.15-1.el6.remi php-cli.x86_64 0:7.3.15-1.el6.remi php-common.x86_64 0:7.3.15-1.el6.remi
php-fedora-autoloader.noarch 0:1.0.1-2.el6.remi php-gd.x86_64 0:7.3.15-1.el6.remi php-json.x86_64 0:7.3.15-1.el6.remi
php-mysqlnd.x86_64 0:7.3.15-1.el6.remi php-pdo.x86_64 0:7.3.15-1.el6.remi php-pear.noarch 1:1.10.10-4.el6.remi
php-process.x86_64 0:7.3.15-1.el6.remi php-xml.x86_64 0:7.3.15-1.el6.remi
完了しました!
これでPHP7.3がらみのパッケージは全て削除されたはず。
このあと横着して「yum –disablerepo=* enablerepo=remi,remi-php73 php*」したらパッケージの依存関係エラーが多発してインストールできませんでしたので、自分のBLOGの過去情報を参照して必要になるはずのパッケージのみを決め打ちでインストールします。
# yum install –disablerepo=* –enablerepo=remi,remi-safe,remi-php73 php-cli php-common php-gd php-mbstring php-mysql php-pdo php-pear php-xml
===================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
インストールしています:
php-cli x86_64 7.3.20-1.el6.remi remi-php73 4.4 M
php-common x86_64 7.3.20-1.el6.remi remi-php73 1.1 M
php-gd x86_64 7.3.20-1.el6.remi remi-php73 77 k
php-mbstring x86_64 7.3.20-1.el6.remi remi-php73 862 k
php-mysqlnd x86_64 7.3.20-1.el6.remi remi-php73 214 k
php-pdo x86_64 7.3.20-1.el6.remi remi-php73 116 k
php-pear noarch 1:1.10.12-1.el6.remi remi 375 k
php-xml x86_64 7.3.20-1.el6.remi remi-php73 179 k
依存性関連でのインストールをします。:
oniguruma5php x86_64 6.9.5+rev1-2.el6.remi remi 196 k
php-fedora-autoloader noarch 1.0.1-2.el6.remi remi 9.1 k
php-json x86_64 7.3.20-1.el6.remi remi-php73 65 k
php-process x86_64 7.3.20-1.el6.remi remi-php73 73 k
インストール:
php-cli.x86_64 0:7.3.20-1.el6.remi php-common.x86_64 0:7.3.20-1.el6.remi php-gd.x86_64 0:7.3.20-1.el6.remi
php-mbstring.x86_64 0:7.3.20-1.el6.remi php-mysqlnd.x86_64 0:7.3.20-1.el6.remi php-pdo.x86_64 0:7.3.20-1.el6.remi
php-pear.noarch 1:1.10.12-1.el6.remi php-xml.x86_64 0:7.3.20-1.el6.remi
依存性関連をインストールしました:
oniguruma5php.x86_64 0:6.9.5+rev1-2.el6.remi php-fedora-autoloader.noarch 0:1.0.1-2.el6.remi php-json.x86_64 0:7.3.20-1.el6.remi
php-process.x86_64 0:7.3.20-1.el6.remi
完了しました!
と、無事にパッケージのインストールが完了しました。
パッケージリストを見ると、oniguruma5も入っていますし、これで問題なくなったはず!
と思ったのもつかの間・・・。このあととんでもない事態に陥ることに・・・(T_T)