この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
Linuxサーバーでyumアップデートしようとしたところ、依存関係エラーが表示されました。
–> 依存性の処理をしています: libonig.so.2()(64bit) のパッケージ: kusanagi-hhvm-3.19.1-1.noarch
–> 依存性解決を終了しました。
エラー: パッケージ: kusanagi-hhvm-3.19.1-1.noarch (@kusanagi)
要求: libonig.so.2()(64bit)
削除中: oniguruma-5.9.5-3.el7.x86_64 (@epel)
libonig.so.2()(64bit)
次のものにより更新された: : oniguruma-6.8.2-1.el7.x86_64 (epel)
~libonig.so.5()(64bit)
問題を回避するために –skip-broken を用いることができます。
これらを試行できます: rpm -Va –nofiles –nodigest
「–skip-broken」オプションで依存関係を無視し、無理矢理パッケージアップデートしても良いのですが、それは根本的な解決方法ではありません。yum updateで依存関係エラーが出た場合はどういった対応をすれば良いのでしょうか。
yum updateで依存関係エラーが出た時にアップデートする3つの方法
yum updateで依存関係エラーが出た場合にアップデートする方法は下記の3つの方法が考えられます。
- 依存関係エラーのパッケージを除外
- 依存関係が解消されるのを待つ
- 依存関係を無視してインストール
それぞれの手順を見ていきます。
依存関係エラーのパッケージを除外
今回の場合、「oniguruma」というパッケージがアップデートされたのが原因な模様。
なので、アップデートが必要な場合は、「—exclude」オプションでonigurumaパッケージを除外してアップデートすれば良いです。
yum update –exclude=oniguruma -y
onigurumaに依存してエラーが出るパッケージがあったら、それもカンマ区切りでexcludeに追加することでアップデート出来ます。
依存関係エラーが解消されるのを待つ
今回の場合、「oniguruma」パッケージが依存関係エラーとなっていたのですが、数日経つと依存関係エラーが解消されてました。パッケージアップデートを急がないのであれば、数日待ってみるのも良いかも知れません。
ithinkit
削除しました:
kernel.x86_64 0:3.10.0-1062.1.2.el7 kernel-devel.x86_64 0:3.10.0-1062.1.2.el7
インストール:
kernel.x86_64 0:3.10.0-1127.10.1.el7
kernel-devel.x86_64 0:3.10.0-1127.10.1.el7
依存性関連をインストールしました:
kusanagi-oniguruma.x86_64 0:5.9.6-1.el7
更新:
bind-export-libs.x86_64 32:9.11.4-16.P2.el7_8.6
bind-libs.x86_64 32:9.11.4-16.P2.el7_8.6
bind-libs-lite.x86_64 32:9.11.4-16.P2.el7_8.6
依存関係を無視してインストール
パッケージの依存関係を無視してyum updateするには「-skip-broken」オプションを付与してコマンド実行します。
yum update -skip-broken -y
冒頭でも書きましたが、「依存関係を無視してインストール」してしまうと、パッケージ依存関係に不整合が出る可能性があり、将来的に困ることが目に見えているのでおすすめは出来ません。経験上、一度でも依存関係を無視してインストールしてしまうと、ずっと「–skip-broken」オプションを付与して無理矢理アップデートしないといけなくなる可能性大です。
パッケージ除外するか、解消されるのを待つか、「–skip-broken」で依存関係エラーを無視するか。解消されるまで待つのがベストですが、依存関係エラーとなるパッケージを除外してアップデートするのもアリですね。
繰り返しになりますが、依存関係を無視(–skip-broken )してyumアップデートしてしまうと、将来的に不具合が出る可能性があるのでおすすめは出来ません。
ithinkit
以上、あいしんくいっとでした。