パッケージ依存関係エラーの確認と解決方法【yumコマンド】

  • 2019年7月31日
  • 2019年7月31日
  • Linux

rpmコマンドでZabbixエージェントをインストールしようとしたところ、よく分からぬエラーに引っかかるの巻。

こんにちは。ますのです。
最近AWSのAmazonLinux2やCentOS7の構築が増えてきており、yumやrpmコマンドでパッケージインストール機会が増えております。

その際にパッケージ依存関係?を満たしていないのかエラーが発生する機会があったので確認方法と対応方法についてメモです。
ちなみに今回はAmazonLinux2のパターンです。

急いでいる方向けに作業概要だけペタリ

  • yum whatprovides (不足依存ファイル名)を実行する
  • yumコマンドで表示されたパッケージをrpmコマンドでインストールする
  • Zabbixの場合は「unixODBC-2.3.1-11」と「libtool-ltdl-2.4.2-22.2」をインストールで解消

Zabbixのエージェントのインストール時にエラーを確認

Zabbixのサイトからダウンロードしてサーバ上に配置してからでも、rpmコマンドで直接でもどちらでもよし。

わたしはダウンロードしたパッケージがあったのでカレントディレクトリに配置して実行しました。

//「–test」コマンドをつけてエラーが出るか確認する
# rpm –test -ivh zabbix-agent-3.0.28-1.el7.x86_64.rpm

warning: zabbix-agent-3.0.28-1.el7.x86_64.rpm : Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
error: Failed dependencies:
libodbc.so.2()(64bit) is needed by zabbix-agent-3.0.1-2.el6.x86_64
どうやらZabbixをインストールする際は「libodbc.so.2」が入っていないとだめな様子。

yumのオプション「whatprovides」でファイル名からパッケージを探す

# yum whatprovides libodbc.so.2
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
26 packages excluded due to repository priority protections
unixODBC-2.3.1-11.amzn2.0.1.i686 : A complete ODBC driver manager for Linux
Repo        : amzn2-core
Matched from:
Provides    : libodbc.so.2
「libodbc.so.2」が含まれているパッケージは「unixODBC-2.3.1-11」のようです。
それでは「unixODBC-2.3.1-11」をrpmでインストールしましょう。
例の如くチキンなわたしはこのサイトからダウンロード。
※多分スマートなやり方はこれかなと参考までに。
rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/unixODBC-2.3.1-11.el7.x86_64.rpm
# rpm –test -ivh unixODBC-2.3.1-11.el7.x86_64.rpm
warning: unixODBC-2.3.1-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

error: Failed dependencies:
        libltdl.so.7()(64bit) is needed by unixODBC-2.3.1-11.el7.x86_64
わーお。再びエラー。
Zabbixに不足している依存関係を入れるための「unixODBC-2.3.1-11.el7.x86_64.rpm」をインストールするには、「libltdl.so.7」が依存関係で満たされていないため別途パッケージをインストールする必要がある様子。
では再度「libltdl.so.7」のファイル名からパッケージを検索します。
# yum whatprovides libltdl.so.7
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
26 packages excluded due to repository priority protections
libtool-ltdl-2.4.2-22.2.amzn2.0.1.i686 : Runtime libraries for GNU Libtool
                                       : Dynamic Module Loader
Repo        : amzn2-core
Matched from:
Provides    : libltdl.so.7
続いて必要なパッケージは「libtool-ltdl-2.4.2-22.2」のようですね。
同じくテストをしましたがエラーは出なかったので確認準備完了です!

Zabbixに必要なパッケージをインストール

Zabbixインストール時に依存関係を満たすために必要なパッケージ一覧。
unixODBC-2.3.1-11.el7.x86_64.rpm
libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm

※パッケージはリンクよりダウンロード可能。もしくはrpmコマンドで直接サーバにインストールをする。

# rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
warning: libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing…                          ################################# [100%]
Updating / installing…
   1:libtool-ltdl-2.4.2-22.el7_3      ################################# [100%] 
# rpm -ivh unixODBC-2.3.1-11.el7.x86_64.rpm
warning: unixODBC-2.3.1-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing…                          ################################# [100%]
Updating / installing…
   1:unixODBC-2.3.1-11.el7            ################################# [100%]
# rpm -ivh zabbix-agent-3.0.1-1.el7.x86_64.rpm
warning: zabbix-agent-3.0.1-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing…                          ################################# [100%]
Updating / installing…
   1:zabbix-agent-3.0.1-1.el7         ################################# [100%]

Zabbixエージェントがインストールされたか確認する

コマンド確認は「rpm -qa」で確認。インストール済のパッケージ名を表示するよ!
そこからパイプ渡しのgrep抽出で確認します。

# rpm -qa | grep zabbix
zabbix-agent-3.0.1-1.el7.x86_64
はい!表示されました!rpm -qaで地道に探すも良しです。表示されればパッケージインストール成功しているので完了ですね!

あとがき

今回はZabbixで例えを出しましたが、よく使うことになりそうだなと感じたであります。
その他パッケージインストール時にもエラーが出たときは「yum whatprovidesで解決していこうかと心の片隅に。

AWSのCloudWatchとかもZabbixと連携してうまいこと出来ないかなぁ。
そんなことを考えている駆け出しインフラエンジニアますのでした。

 

最新情報をチェックしよう!