RHEL6.8にアップグレード時にphp-mbstring依存エラーがでる時の対処
1.はじめに
オンプレ環境で、RHEL6.7のサーバを6.8にアップグレードしました。
isoイメージを使ってアップグレードしたのですが、依存関係の問題でアップグレードが失敗しました。
〇注意点
今回のオンプレ環境は富士通製サーバです。RHELの更新はサポート提供のツールを利用している為、isoのメディアを使用した更新手順となっています。
(その他の更新選択肢がない)
2.アップデート失敗した
アップデート時に依存関係の確認でphp-commonにエラーが出て更新ができないようです。
どうやらphp-mbstring-5.3.3-47のrpmがメディアに収容されていないようでした。
Error: Package: php-mbstring-5.3.3-40.el6_6.x86_64 (installed)
Requires: php-common(x86-64) = 5.3.3-40.el6_6
Removing: php-common-5.3.3-40.el6_6.x86_64 (installed)
php-common(x86-64) = 5.3.3-40.el6_6
Updated By: php-common-5.3.3-47.el6.x86_64 (updates-server)
php-common(x86-64) = 5.3.3-47.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
※5.3.3-47にアップデートしたいが、php-mbstring-5.3.3-47がインストールできない為インストール失敗している。
3.原因の調査
yumでphp-mbstringのrpmバージョンを調べてみたら、5.3.3-40までした存在しませんでした。
# yum list php-mbstring
読み込んだプラグイン:product-id, refresh-packagekit, security, subscription-manager
インストール済みパッケージ
php-mbstring.x86_64
どうやらphp-mbstringは、rhel-6-server-optional-rpmsというオプションリポジトリの管理
になっているとの事。
参照するリポジトリを追加する必要がありました。
4.対応方法
その1
RHNからダウンロードする。
rpmを検索すると出てくるので、対象バージョンとOSに該当するものをdownloadする。
その2
yumを使ってインストールする
redhat.repoを編集してrhel-6-server-optional-rpmsリポジトリを有効(enabled = 1)にする
vi /etc/yum.repos.d/redhat.repo
[rhel-6-server-optional-rpms]
metadata_expire = 86400
sslclientcert = /etc/pki/entitlement/288980885924363250.pem
baseurl = https://cdn.redhat.com/content/dist/rhel/server/6/$releasever/$basearch/optional/os
ui_repoid_vars = releasever basearch
sslverify = 1
name = Red Hat Enterprise Linux 6 Server - Optional (RPMs)
sslclientkey = /etc/pki/entitlement/288980885924363250-key.pem
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
gpgcheck = 1
入手可能なphp-mbstringのバージョンを確認してみる
# yum --showduplicate list php-mbstring
読み込んだプラグイン:product-id, refresh-packagekit, security, subscription-manager
インストール済みパッケージ
php-mbstring.x86_64 5.3.3-40.el6_6 installed
利用可能なパッケージ
php-mbstring.x86_64 5.3.2-6.el6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.2-6.el6_0.1 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-3.el6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-3.el6_1.3 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-3.el6_2.5 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-3.el6_2.6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-3.el6_2.8 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-14.el6_3 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-22.el6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-23.el6_4 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-26.el6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-27.el6_5 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-27.el6_5.1 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-27.el6_5.2 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-38.el6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-40.el6_6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-46.el6_6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-46.el6_7.1 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-47.el6 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-48.el6_8 rhel-6-server-optional-rpms
php-mbstring.x86_64 5.3.3-49.el6 rhel-6-server-optional-rpms
期待通り、5.3.3-47.el6の入手も可能となりました。
5.OSアップグレード前の事前作業
サーバがインターネット接続可能な環境で、yumが使えるのであれば、
# yum install php php-common
を行って、phpだけ先にアップグレードしておく。
その後にOSアップグレードを実施する。
インターネット環境が無い場合は、phpのrpmファイルをダウンロードしておき、転送する。
rpmコマンドでインストールした後にOSアップグレードを実施する。
# rpm -Uvh php*rpm
今回は、閉域の環境でしたのでダウンロードしたrpmファイルを転送してインストールしました。
6.最後に
RHEL6.6→6.7の時はphpの更新が無かった為、気付きませんでした。
データセンタでの作業の場合、後日仕切り直しとなるので辛い記憶が残りました。
作業が終わったら、enabled = 0 に戻すのを忘れずに!
- 参考にしたサイト
Author And Source
この問題について(RHEL6.8にアップグレード時にphp-mbstring依存エラーがでる時の対処), 我々は、より多くの情報をここで見つけました https://qiita.com/miyahang55/items/6685bf4291998c6bb4b9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .