2012年1月25日水曜日

Linuxでopensslが同じバージョンでかぶってる(重複)

CentOSでupdateしようとしてはまったので、共有

# yum update
して「yes」してみたら、

Transaction Check Error:
  file /usr/share/man/man1/ca.1ssl.gz from install of openssl-0.9.8e-20.el5_7.1.x86_64 conflicts with file from package openssl-0.9.8e-20.el5.i686
  file /usr/share/man/man1/req.1ssl.gz from install of openssl-0.9.8e-20.el5_7.1.x86_64 conflicts with file from package openssl-0.9.8e-20.el5.i686
  file /usr/share/man/man1/x509.1ssl.gz from install of openssl-0.9.8e-20.el5_7.1.x86_64 conflicts with file from package openssl-0.9.8e-20.el5.i686
なんじゃ、これ??と思いパッケージ情報を見たら
# rpm -qa openssl
openssl-0.9.8e-20.el5
openssl-0.9.8e-20.el5
同じバージョンのopensslが2つ入ってるし・・・。
なにそれ~><

ということでいろいろ調べてみましたが、以下の手順を取りました。

  • yumdownloaderでパッケージを取ってくる
  • 「rpm -Uvh --replacepkgs --force」 で強制インストール
  • 残った古いバージョンを削除
yumdownloaderでパッケージを取ってくる
yumdownloader openssl
で最新版が以下にダウンロードされる
/var/cache/yum/updates/packages/
「rpm -Uvh --replacepkgs --force」 で強制インストール
# rpm -Uvh --replacepkgs --force /var/cache/yum/updates/packages/openssl-0.9.8e-20.el5_7.1.x86_64.rpm
 # rpm -q openssl
openssl-0.9.8e-20.el5
openssl-0.9.8e-20.el5_7.1
 残った古いバージョンを削除
# yum remove openssl-0.9.8e-20.el5
これで、とりあえずOK。
(追記)古いバージョンたぶん消さなくてよさそうです。
CentOSのリポジトリの問題だと思うので・・・。気持ち悪い人は消すということで。

書いている途中で気が付いたけど、これって

  • x86_64 
  • i686
のパッケージがそれぞれ入っていたんで、Arch指定して削除なりすりゃよかったんじゃない?ってことでしたけど・・・。
↑検証したけど、たぶんこれもそう。
# yum remove openssl-0.9.8e-20.el5.i686
とかやればいい。
って、この一連のエントリ。この一行で終わりなんじゃないかと・・・。

Zenback