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