glibcのパッケージ依存に1日半ほど費やし、2度のクリーンインストールをするハメになるとは…
とりあえず無駄になった1日半でわかったことをまとめておいて、次回同じミスを繰り返さないようにしようと思う。
■構築環境
OS: CentOS6.5(64bit)
→minimalのインストールメディアからインストール
導入済み主要パッケージ:Apache, Zabbix, Tripwire, system-config-firewall-tuiなど
■経緯
もともとはIcecastのクライアントであるIcesを導入しようとした時のこと。
Icesはyumで配布されていないのでソースからビルドする必要があった。
で、こんふぃぐあー
# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
Cコンパイラがないよと怒られたので、gccをyumからインストール
# yum -y install gcc
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
1575 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-4.el6 will be installed
~省略~
--> Finished Dependency Resolution
Error: Package: glibc-2.12-1.132.el6.i686 (base)
Requires: glibc-common = 2.12-1.132.el6
Installed: glibc-common-2.12-1.132.el6_5.4.x86_64 (@updates)
glibc-common = 2.12-1.132.el6_5.4
Available: glibc-common-2.12-1.132.el6.x86_64 (base)
glibc-common = 2.12-1.132.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
インストールされてるglibc-commonのバージョンが違うからglibcインストール出来ないよ。と。
しかも32bit版のglibc入れようとしてる…
あとで調べてわかったことなのだが、glibcは64bitOSでも32bit版を使うのだそう。何じゃそりゃって感じだけども。
で、とにかくglibc-commonのバージョンをどうにかしないといかんな~と思い、どうにか出来ないかと試行錯誤。
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
1575 packages excluded due to repository priority protections
Setting up Install Process
Package matching glibc-common-2.12-1.132.el6.x86_64 already installed. Checking for update.
Nothing to do
64bit版が入ってるので32bit版を入れてみる
# yum -y install glibc-common-2.12-1.132.el6.i686
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
1575 packages excluded due to repository priority protections
Setting up Install Process
No package glibc-common-2.12-1.132.el6.i686 available.
Error: Nothing to do
32bit版が…ない…
まぁ、ここらへんで積んだわけですが。
とりあえずglibcだけでも入らないかと試行錯誤
# yum -y install glibc.i686
Loaded plugins: fastestmirror, priorities
~省略~
--> Finished Dependency Resolution
Error: Package: glibc-2.12-1.132.el6.i686 (base)
Requires: glibc-common = 2.12-1.132.el6
Installed: glibc-common-2.12-1.132.el6_5.4.x86_64 (@updates)
glibc-common = 2.12-1.132.el6_5.4
Available: glibc-common-2.12-1.132.el6.x86_64 (base)
glibc-common = 2.12-1.132.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
まぁそりゃ入れられないわけで。
だったら一旦glibc-common消したらどうかと。
# yum erase glibc-common
~省略~
--> Finished Dependency Resolution
Error: Trying to remove "yum", which is protected
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
今度はyumがプロテクトかかってるから駄目だと。
依存関係無視してglibc-common削除してしまっても良いのかもしれないけど、そうすると他のパッケージにどう影響出るかもわからないので、クリーンインストールをする前にglibc-commonだけ消して試してみた。
# rpm --nodeps -e glibc-common
# yum -y install glibc
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
1575 packages excluded due to repository priority protections
Setting up Install Process
Package matching glibc-2.12-1.132.el6.x86_64 already installed. Checking for update.
Nothing to do
ん?glibcの64bit版は入ってる? 32bit版は?
# yum -y install glibc.i686
~省略~
Protected multilib versions: glibc-2.12-1.132.el6.i686 != glibc-2.12-1.132.el6_5.4.x86_64
Error: Protected multilib versions: nss-softokn-freebl-3.14.3-9.el6.i686 != nss-softokn-freebl-3.14.3-12.el6_5.x86_64
You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
MAKEDEV-3.24-6.el6.x86_64 has missing requires of /usr/bin/getent
glibc-2.12-1.132.el6_5.4.x86_64 has missing requires of glibc-common = ('0', '2.12', '1.132.el6_5.4')
udev-147-2.51.el6.x86_64 has missing requires of /usr/bin/getent
入ってるし…64bit版と重複してるし…
というかglibc-commonがないって怒られたし…
やっぱglibc-common消したら駄目ですね。
■結論→64bit版CentOSをインストールしたらgccをまずインストールすること
minimalでなければgcc入れられるし問題ないのだけれども。。。
というか、CentOS64bit版て大丈夫なのか? まだ32bit版使ってたほうが絶対安心だろ。
デスクトップ向けOSはもう64bit版のほうが主流になっている昨今で、未だにサーバは32bit使ってるのどうなんだろうかと思って今回こちらにしたのだけど、アダになったのかもしれない。
0 件のコメント:
コメントを投稿