Projects/CentOS6 から 7 へのアップグレード

提供: fukudat.net
ナビゲーションに移動検索に移動

以前は公式にアップグレードツールが用意されていたが、配布中止になってしまっているようで、あきらめかけていたアップグレードだが、 CentOS6からCentOS7へアップグレードでdev.centos.orgがリンク切れになっていた という記事を見つけて、ダメ元で試してみる。

pre-upgrade assistant のインストール

# rpm -ihv https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-1.0.2-36.0.1.el6.centos.x86_64.rpm
# rpm -ihv https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-contents-0.5.14-1.el6.centos.noarch.rpm
# rpm -ihv https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-ui-1.0.2-36.0.1.el6.centos.x86_64.rpm
# rpm -ihv https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/redhat-upgrade-tool-0.7.22-3.el6.centos.noarch.rpm

途中で↓のようなエラーが出たら、足りないパッケージをインストール。

エラー: 依存性の欠如:
	pkgconfig(libxml-2.0) は preupgrade-assistant-1.0.2-36.0.1.el6.centos.x86_64 に必要とされています
	pkgconfig(libxslt) は preupgrade-assistant-1.0.2-36.0.1.el6.centos.x86_64 に必要とされています
        openscap(x86-64) >= 0:0.9.3-1 は preupgrade-assistant-1.0.2-36.0.1.el6.centos.x86_64 に必要とされています
	pkgconfig(libpcre) は preupgrade-assistant-1.0.2-36.0.1.el6.centos.x86_64 に必要とされています
        mod_wsgi は preupgrade-assistant-ui-1.0.2-36.0.1.el6.centos.x86_64 に必要とされています

この場合、libxml-2.0, libxslt, openscap, pcre, mod_wsgi が足りないので、

# yum install libxml2-devel libxslt-devel openscap, pcre-devel mod_wsgi

などとする。

アップグレード前準備

# preupg
Preupg tool doesn't do the actual upgrade.
Please ensure you have backed up your system and/or data in the event of a failed upgrade
 that would require a full re-install of the system from installation media.
Do you want to continue? y/n
y
Gathering logs used by preupgrade assistant:
All installed packages : 01/11 ...finished (time 00:00s)
...

アップグレード実行

# redhat-upgrade-tool-cli --network 7 --cleanup-post --instrepo=http://vault.centos.org/centos/7.2.1511/os/x86_64/ --addrepo=CentOS7=http://mirror.centos.org/centos/7/os/x86_64/
setting up repos...
...
Continue with the upgrade [Y/N]? y
(296/298): zlib-1.2.7-18.el7.i686.rpm                                                                                                                                 |  91 kB     00:00     
(297/298): zlib-1.2.7-18.el7.x86_64.rpm                                                                                                                               |  90 kB     00:00     
(298/298): zlib-devel-1.2.7-18.el7.x86_64.rpm                                                                                                                         |  50 kB     00:00     
testing upgrade transaction
rpm transaction 100% [===============]
rpm install 100% [================]
setting up system for upgrade
Finished. Reboot to start upgrade.

なんか成功したっぽい。

リブート。

# reboot

アップグレード後の設定

sshd が止まっているので、ssh では入れない。コンソールからログイン。

sshd を起動。

# systemctl start sshd.service
# systemctl enable sshd.service

動いたようだが、

# systemctl status ssh.service
...
 X月 YY hh:mm:dd fukudat sudo[11118]: PAM unable to dlopen(/usr/lib64/security/pam_fprintd.so): /usr/lib64/security/pam_fprintd.so: 共有オブジェクトファイ…ありません
 X月 YY hh:mm:dd fukudat sudo[11118]: PAM adding faulty module: /usr/lib64/security/pam_fprintd.so
...

pam_fprintd.so がないとお怒られる。指紋認証は不要なので、

# authconfig --disablefingerprint --update

調子の悪いコマンドがある。

# grep
grep: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

symlinkを作成。

# ln -s /lib64/libpcre.so /lib64/libpcre.so.0

yum でアップデート。

# yum update
...
GPG 鍵の取得に失敗しました: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6"

以前/etc/yum.repos.d/CentOS-Base.repoに変更を加えていたので、自動でアップデートされなかったのだ。

# cd /etc/yum.repos.d
# cp -p CentOS-Base.repo.rpmnew CentOS-Base.repo

改めてアップデート。

# yum update

バージョン番号の確認:

$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)

うまくいった様だ。

参考文献