Oct 25, 2011

Migration from CentOS4 to 5

CentOS4からCentOS5へのアップグレードの手順を、メモしておく。

# 参考サイト
# ref http://wiki.centos.org/HowTos/MigrationGuide/ServerCD_4.4_to_5

# 多くの方がクリーンインストールを推奨しているが、
# やむにやまれず、ネットワーク越しにアップグレードすることもあるだろう。
# 上記サイトの情報が役立った。
# 私の体験を交えて ご紹介します。内容は保証しませんので、ご了承ください。

---------------------------------------------------
# まずはデータのバックアップ。言われるまでもなく、基本中の基本。

# Start the upgrade process
  mkdir /tmp/Upgrades
  cd /tmp

# Check for centos-yumconf
#  rpm -qi centos-yumconf
# * もし centos-yumconf が存在したら、 remove する。
# * NOTE this seems to be only installed if you installed from the x86_64
#   version of the ServerCD 4.4 ISO.
# なのだそうだ
#  rpm -e centos-yumconf
#
# 以上は 紹介されていた情報だが、私の環境には当てはまらなかったので、実行しなかった。

# 必要な RPMS を手動でインストール

  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/centos-release-5-7.el5.centos.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/centos-release-notes-5.7-0.i386.rpm


  rpm -Uvh centos-release-5-7.el5.centos.i386.rpm
  centos-release-notes-5.7-0.i386.rpm

# Make sure you disable all other repos and only have CentOS Base and
# Updates repositories enabled.
# とあるが、内容を知らず、特に何もしなかった。
# CentOS 5 GPG Keyをインストール
  rpm --import http://mirrors.kernel.org/centos/RPM-GPG-KEY-CentOS-5

  cd /tmp/Upgrades

# 次のRPMSをダウンロード。新yum/rpmのため。

  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/rpm-libs-4.4.2.3-22.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/rpm-4.4.2.3-22.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/yum-3.2.22-37.el5.centos.noarch.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/rpm-python-4.4.2.3-22.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/popt-1.10.2.3-22.el5.i386.rpm


  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/glibc-2.5-65.i686.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/glibc-common-2.5-65.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/beecrypt-4.1.2-10.1.1.i386.rpm


  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/glibc-headers-2.5-65.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/glibc-devel-2.5-65.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/binutils-2.17.50.0.6-14.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/elfutils-libelf-0.137-3.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/elfutils-0.137-3.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/elfutils-libs-0.137-3.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/beecrypt-python-4.1.2-10.1.1.i386.rpm


  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/python-2.4.3-44.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/python-devel-2.4.3-44.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/python-urlgrabber-3.1.0-6.el5.noarch.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/neon-0.25.5-10.el5_4.1.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/libxml2-2.6.26-2.1.12.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/libxml2-python-2.6.26-2.1.12.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/db4-4.3.29-10.el5_5.2.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/libselinux-1.33.4-5.7.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/libsepol-1.15.2-3.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/mcstrans-0.2.11-3.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/m2crypto-0.16-8.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/krb5-libs-1.6.1-62.el5.i386.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/openssl-0.9.8e-20.el5.i686.rpm
  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/readline-5.1-3.el5.i386.rpm

# 上記 RPMSをインストール
  rpm -Uvh *.rpm --nodeps

# rpmdbをCentoS 5用にクリーン、リビルド

  rm -f /var/lib/rpm/__*
  rpm --rebuilddb

# yum ファイルをクリーン

  yum clean all

# deps/outdated パッケージをremove
# Note: You can run yum upgrade to help find deps that you need to remove.

  rpm -e VFlib2 caching-nameserver autofs kudzu pcmcia-cs xorg-x11 newt-perl hal crypto-utils --nodeps

# 新しいCentOS 5 kernelをインストール
#
# もしwgetで 新kernelを入手したなら、次をまず実施

  yum upgrade wget

  wget  http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/kernel-2.6.18-274.el5.i686.rpm

  rpm -ivh kernel-2.6.18-8.el5.x86_64.rpm --nodeps

# 古いCentOS 4 kernelをremove

  rpm -qa | grep kernel

# remove 2.6.9 bits

  rpm -e kernel-2.6.9-101.EL kernel-devel-2.6.9-101.EL kernel-doc-2.6.9-42.EL
  rpm -e kernel-2.6.9-67.EL  kernel-devel-2.6.9-67.EL

# アップグレードして、CentOS 5に。

  yum upgrade

# Install removed packages that were not reinstalled

  yum install caching-nameserver autofs

  cd /tmp

# システム上のRPMSリストを生成し、アップグレード後に、どんな古いRPMSがあるか
# 見れるようにしておく

  rpm -qa >Upgrade_RPM_List

# Reboot system
  reboot

# Login して、CentOS 5であることを確認する。

  uname -a

# 例  Linux localhost.localdomain 2.6.18-8.1.1.el5 #1 SMP Mon
#         Apr 9 09:43:24 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

# さらに、ここから3rdパーティRPMSのアップグレード

---------------------------------------------------------
# 最後に、yumに関係する、python-sqlite をCentOS 5用にアップグレードすること。
# バージョン番号が競合するようで、リプレイスするまで yumが動かなかった。

  rpm -Uvh --replacepkgs python-sqlite-1.1.7-1.2.1.i386.rpm

# これをやらないと、次のエラーになる。
# 特に、ネットワーク越しにRHEL4からCentOS4、CentOS5とアップグレードしてきた
# 場合には古いものが残っていることがあるようだ。念のため、上記実施したほうが確実そうだ。
#
#  Could not find any working storages
#または
#  There was a problem importing one of the Python modules
#  required to run yum. The error leading to this problem was:
#
#     No module named sqlite
#
#  Please install a package which provides this module, or
#  verify that the module is installed correctly.
#
#  It's possible that the above module doesn't match the
#  current version of Python, which is:
#  2.4.3 (#1, Mar  5 2011, 21:25:56)
#  [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)]
#
#  If you cannot solve this problem yourself, please go to
#  the yum faq at:
#    http://wiki.linux.duke.edu/YumFaq
#

//

No comments: