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コマンドで直接でもどちらでもよし。
わたしはダウンロードしたパッケージがあったのでカレントディレクトリに配置して実行しました。
# 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
yumのオプション「whatprovides」でファイル名からパッケージを探す
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
例の如くチキンなわたしはこのサイトからダウンロード。
rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/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」が依存関係で満たされていないため別途パッケージをインストールする必要がある様子。
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
同じくテストをしましたがエラーは出なかったので確認準備完了です!
Zabbixに必要なパッケージをインストール
Zabbixインストール時に依存関係を満たすために必要なパッケージ一覧。
・unixODBC-2.3.1-11.el7.x86_64.rpm
・libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
※パッケージはリンクよりダウンロード可能。もしくは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%]
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%]
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抽出で確認します。
zabbix-agent-3.0.1-1.el7.x86_64
あとがき
今回はZabbixで例えを出しましたが、よく使うことになりそうだなと感じたであります。
その他パッケージインストール時にもエラーが出たときは「yum whatprovides」で解決していこうかと心の片隅に。
AWSのCloudWatchとかもZabbixと連携してうまいこと出来ないかなぁ。
そんなことを考えている駆け出しインフラエンジニアますのでした。