0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RHEL6.8にアップグレード時にphp-mbstring依存エラーがでる時の対処

Posted at

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からダウンロードする。

2017-03-29_184143.png

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 に戻すのを忘れずに!

  • 参考にしたサイト

Red Hat 6にphp-mbstringをインストール

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?