みなさんこんにちは。サーバの構築業務を担当している川合です。
今回は、CentOS8系でperl-Net-SNMPをインストールするお話になります。
単にパッケージをインストールするだけのお話ですが、私自身も実際に作業をする中で
詰まってしまい、対処方法を色々調べたので同様の内容でお困りの方の参考になれば幸いです。
概要
pel-Net-SNMP自体は、epelのリポジトリに格納されています。その為、先にepel-releaseをインストールしてepelのリポジトリを利用できるようにします。
dnf install epel-release
インストールが完了したら普段は使わないのでリポジトリを無効化します。
dnf config-manager --disable epel
その後、インストールしたepelリポジトリを一時的に有効化してperl-Net-SNMPをインストールします。
dnf install --enablerepo=epel perl-Net-SNMP
メタデータの期限切れの最終確認: 0:00:31 時間前の 2020年06月16日 11時23分29秒 に実施しました。
エラー:
問題: conflicting requests
- nothing provides perl(Digest::SHA1) >= 1.02 needed by perl-Net-SNMP-6.0.1-25.el8.1.noarch
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
ところが、perl-Net-SNMPのインストールが上記の内容で失敗してしまいます。
ちなみにCentOS7の環境で同様の手順を実行すると、以下の様になります。
yum install --enablerepo=epel perl-Net-SNMP
=====================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
=====================================================================================================================
インストール中:
perl-Net-SNMP noarch 6.0.1-7.el7 epel 103 k
依存性関連でのインストールをします:
perl-Crypt-DES x86_64 2.05-20.el7 base 20 k
perl-Digest-HMAC noarch 1.03-5.el7 base 16 k
perl-Digest-SHA1 x86_64 2.13-9.el7 base 50 k
perl-Socket6 x86_64 0.23-15.el7 base 27 k
トランザクションの要約
=====================================================================================================================
インストール 1 パッケージ (+4 個の依存関係のパッケージ)
問題なくインストールを進めることができる状態である事が確認できます。
対処方法
perl-Net-SNMPをインストールする際に、依存性関連で合わせてインストールされる【perl-Digest-SHA1】がPowerToolsというリポジトリに格納されており、インストールに失敗した形になります。
PowerToolsというリポジトリは、インストール自体は実施されていますがデフォルトで無効化されていて利用できない状態です。
その為、依存性を解決しようにもリポジトリが利用できないためパッケージをインストールすることができずperl-Net-SNMPのインストールが失敗していました。
※エラー内容では、【- nothing provides perl(Digest::SHA1) >= 1.02 needed by perl-Net-SNMP-6.0.1-25.el8.1.noarch】の部分に相当します
ただこのエラーを見て【perl-Digest-SHA1】のみが、まさか別のリポジトリに含まれているとは思わないので解決に苦労しました
解決方法
まず無効化されているPowerToolsのリポジトリを有効化します。
デフォルトだと以下の状態です。無効化されている事が確認できます。
dnf repolist PowerTools
repo id repo の名前 状態
PowerTools CentOS-8 - PowerTools 無効化
リポジトリを有効化します
dnf config-manager --enable PowerTools
有効化された事が確認できます。
dnf repolist PowerTools
repo id repo の名前 状態
PowerTools CentOS-8 - PowerTools 有効化
あとは、再度dnfコマンドでインストールすれば完了です。
dnf install --enablerepo=epel perl-Net-SNMP
=============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================
インストール中:
perl-Net-SNMP noarch 6.0.1-25.el8.1 epel 107 k
依存関係のインストール中:
・・・記載省略
・・・
perl-Digest-SHA1 x86_64 2.13-23.el8 PowerTools 57 k
まとめ
CentOS8からパッケージ構成が大きく変わり、今まで特に意識せずに使えていたものが
異なるリポジトリに格納されたりして、少し戸惑う部分があったりします。
今回のように一部のパッケージのみ別のリポジトリに格納されていたりするので注意が必要です。
CentOS6系の保守切れも年末に控えている中、CentOS8系へのアップデートを検討されている場合には注意いただければと思います。
プロフィール
サーバ構築周り全般を対応しております。
LINK
クラウドベリージャム:プロフィールページ