CentOS 5をOracle Linux 5にアップデート

  Linux

CentOSのパッチリリースが遅れるようになったのでOracle Linuxに移行する。でもわざわざOSを再インストールはしたくないのでup2dateとyumを使ってパッケージを上書きする。CentOS 5 → Oracle Linux 5
iptablesに穴を開ける。

/sbin/iptables -I OUTPUT -d linux-update.oracle.com -j ACCEPT
/sbin/iptables -I OUTPUT -d public-yum.oracle.com -j ACCEPT

up2dateの依存関係にあるパッケージをインストールする。

yum install -y libxml2-python pyOpenSSL
rpm -ivh http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/i386/rhnlib-2.5.22-7.el5.noarch.rpm

up2date(ULN版)をインストールする。

rpm -ivh --force http://linux-update.oracle.com/rpms/up2date-5.10.1-40.8.el5.i386.rpm

up2date(ULN版)とcentos-release-5-8.el5.centosは競合するため–forceオプションで強制的にインストールする必要がある。

ファイル /etc/sysconfig/rhn/sources (パッケージ up2date-5.10.1-40.8.el5.i386 から) は、パッケージ centos-release-5-8.el5.centos.i386 からのファイルと競合しています。

ULN向けの穴を開ける。/etc/sysconfig/iptablesに次の設定を追加する。

# ORACLE-FI
-A OUTPUT -d 141.146.0.0/16 -j ACCEPT

ULNに登録する。ライセンスが必要。

rpm --import /usr/share/rhn/RPM-GPG-KEY
/usr/sbin/up2date --register

up2date自体をアップデートから除外する。up2dateを一緒にアップデートしたり、いきなりyumするとエラーになってしまう。

cp -a /etc/sysconfig/rhn/up2date /etc/sysconfig/rhn/up2date.orig
sed -i -e '/^pkgSkipList=/s/$/up2date;/' /etc/sysconfig/rhn/up2date

up2dateを実行してCentOSからOracle Linuxのパッケージにアップデートする。

/usr/sbin/up2date -u

up2date自体とkernelもアップデートする。

/usr/sbin/up2date -u -f

up2dateだけでなくyumも使えるようにする。

/usr/sbin/up2date --install yum-rhn-plugin

yumの邪魔な古い設定を消す。

yum erase -y centos-release centos-release-notes
for fn in $( ls /etc/yum.repos.d/*.repo ) ; do mv ${fn} ${fn}.$( date +%Y%m%d%H%M%S ) ; done

Switching from Red Hat Network to Unbreakable Linux Network (ULN)
https://linux.oracle.com/switch.html
On Yum support for Unbreakable Linux Network (ULN)
https://blogs.oracle.com/linux/entry/turning_on_yum_support_for_unbreakable_linux_network_uln
up2dateで特定のパッケージを更新対象から除外する方法
http://www.lovebug.jp/index.php?up2date/%C6%C3%C4%EA%A4%CE%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%A4%F2%B9%B9%BF%B7%C2%D0%BE%DD%A4%AB%A4%E9%BD%FC%B3%B0%A4%B9%A4%EB%CA%FD%CB%A1