[CentOS] yumでhttp-develをインストール失敗と解決方法

失敗の経緯

tomcatとapacheの連携をしようと思って、mod_jkをインストールしようとしたら、その過程で、apacheのapxsというツールが必要になった。

ところが、このapxsが見つからない!!

というわけで、「apxs 見つからない」で解決策を探したところ、これはhttpdのディベロッパー用のパッケージ(httpd-devel)をインストールすればいいことがわかった。

その時の話は以下に書いてある。
[apache] モジュール追加でapxsが見つからない時の解決方法

エラーの症状

今回のメインの話は、このhttpd-develをyumでインストールしようとした時に起こったトラブルの話である。
ちょっと長いが、実際にyum installコマンドを打った結果を以下に記載。

で、最初は何がいけないのか全くわかりませんでした。ただ、調べるうちに、パッケージの依存関係で問題が起きているということはなんとなく理解。

原因解説

結論から言うと、yum updateを利用してアップデートしたパッケージの幾つかが問題だった。http-develをインストールするには最新過ぎた、という感じ。

さっき貼り付けたログの最後の方の一部にこのような記載がある。

この記述の意味するところは、以下である。

「httpd-devel-2.2.15-26.el6.centos.x86_64」というパッケージをインストールする過程でエラーが発生した。
このパッケージのインストールには「httpd」というパッケージの「2.2.15-26.el6.centos」というバージョンが必要となるが、いまインストールされているパッケージは「httpd-2.2.15-29.el6.centos.x86_64」である。つまり、「httpd」の「2.2.15-29.el6.centos」というバージョンだ。
この問題を解決するには「httpd-2.2.15-26.el6.centos.x86_64」というパッケージが利用できる。このパッケージに含まれる「httpd」のバージョンは「2.2.15-26.el6.centos」だ。

こういうの文章で書いてくれないとわからないですよね(笑)

というわけで、パッケージを交換したらOK。
よく見てみると、しかも同じパッケージの古いバージョン。削除して古いのをインストールしたらいいかな、と。

ところが、ここでさらに問題発生。

エラーの2つ目の「glibc-common」というパッケージはどうもカーネルに近いコアなライブラリのようで、削除できない。。
「これはもう詰んだかなーサーバー潰して立てなおしかなー」と考えていたところ、素敵なコマンドに出会いました。

解決策はダウングレード

落ち着いて考えてみれば、こういう状態って他にもなる人いるはずだし、想定されててもいいもんですよね。
ということで、きちんと想定されており、yumにはダウングレードというバージョンを古いものに入れ替えるコマンドがありました。

これでダウングレード可能でした。
ただし、ダウングレードも依存関係があるとうまくできない場合があって、そういう時は全部まとめてダウングレードする必要がありました。

のような感じです。すべての問題が解決するまでひたすらダウングレードを続けたところ、最後にはhttpd-develが無事にインストールできました!!

おしまい

よもや詰んだかと思いましたが、結果的にとても勉強になりました。あっぱれ。

  • ■ システムの科学
    システム創成学科のシミュレーションコース的にはバイブル的存在であったと認識しております(笑)社会システムや人工物をどのように設計していくかについて俯瞰的に書かれているので、自分の思考のフレームができます。
PAGE TOP ↑