1
0

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 3 years have passed since last update.

【Linux】実際の職場でyumやrpmのパッケージ依存関係エラーを解決する場合の方法とは?

Posted at

はじめに

職場にてyumやrpmにてパッケージをインストールする際に、依存関係エラーと格闘するシーンがよくありました。
(例えば、LinuxサーバにGNOMEデスクトップをインストールする場合等です。)
今回は、実際の職場でやっている依存関係エラーの対処方法についてアウトプットしていきたいと思います。

パッケージ依存関係エラーとは?

下記のようなエラーになります。

[root]# rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm
警告: compat-libstdc++-33-3.2.3-69.el6.i686.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
エラー: 依存性の欠如:
        libc.so.6 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.0) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.1) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.1.3) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.2) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.3) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1(GCC_3.0) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1(GCC_3.3) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1(GLIBC_2.0) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libm.so.6 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています

実際の職場での環境

項目 内容
OS RHEL/CentOS
リポジトリ先 社内のローカルリポジトリ/ISOファイル

実際にやっていた対処方法

1.マイナーバージョンが上のローカルリポジトリ/ISOファイルをマウント

現場で一番最初に考えたトラブルシューティング方法になります。

例えば、パッケージインストールの際に依存関係エラーが表示されるとします。

①RHEL7.3(お客様の既存マシン)にRHEL7.3のISOを用いて、yumにてGNOMEデスクトップをインストールする
②依存関係エラーが表示され、インストール不可

このような依存関係エラーの対応の際に、実際にやっていたことはこちらになります。

①マイナーバージョンが上のISOをセッティング(例:RHEL7.6等)
②リポジトリ設定/キャッシュクリア/リポジトリ読み込み
③再度、yumにてGNOMEデスクトップをインストール

**このように、マイナーバージョンが上のISOファイル(ローカルリポジトリ)をセッティングした場合、インストールができる場合があります。**

※依存関係で必要とされているパッケージが1つだけ存在しない場合、別のマイナーバージョンのISOファイルに存在する可能性があります。

2.複数のリポジトリを利用してパッケージインストール

「1.マイナーバージョンが1つ上のローカルリポジトリ/ISOファイルをマウント」を実施しても、依存関係エラーが表示されてしまった場合の解決方法になります。

対応方法としては、このような形になります。

①複数のリポジトリ先にアクセスできるように設定(リポジトリの設定等)
②再度、yumにてインストール作業実施

例えば、社内でローカルリポジトリを持っている企業さんの場合は、 ローカルリポジトリを1つだけではなく、複数にアクセスできるように設定してやってみる形になります。
**このように、複数のリポジトリを設定する形でやってみても、インストールができる場合があります。**

3.どうしても依存関係エラーでインストールができない場合(最終手段)

依存関係エラーで検知されているパッケージをアンインストールします。

yum remove <原因のパッケージ>

こちらは、お客様の既存サーバ等では非推奨になります。

なぜなら、サービスに影響が出てしまう可能性があるからです。

パッケージ削除以外の方法を探る方が無難です。

※もしこちらの方法を実施する場合、削除しても問題ないパッケージかどうか必ず調査しましょう!

まとめ

依存関係エラーが出た場合の対処方法

1.マイナーバージョンが上のローカルリポジトリ/ISOファイルをマウント
2.複数のリポジトリを利用してパッケージインストール
3.どうしても依存関係エラーでインストールができない場合(最終手段)

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?