CentOS6-x到CentOS7-x的線上升級(成功!)
阿新 • • 發佈:2018-12-11
CentOS6-x到CentOS7-x的線上升級
緣起
相比Debian系的Linux釋出版(如Debian、Ubuntu),都能很好地支援線上大版本升級,RedHat系的Linux釋出版(如RedHat、CentOS),其大版本升級一直是為人所詬病的問題。
這種情況到了CentOS7,終於有了改觀:RedHat放出了UpgradeTool,同樣,CentOS自然也有了。
注意:如果已經是CentOS6.7以後的版本了,線上升級到CentOS7可能會有問題,因為CentOS6.7以後版本有些軟體的版本已經比CentOS7還高了,升級可能會出問題。
具體步驟
安裝軟體
cat <<EOF >/etc/yum.repos.d/upgradetool.repo [upg] name=CentOS-$releasever - Upgrade Tool baseurl=http://dev.centos.org/centos/6/upg/x86_64/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 EOF yum -y install redhat-upgrade-tool \ preupgrade-assistant-contents;
升級前可行性分析
preupg -l; # 列出預升級的可用內容,多半是"CentOS6_7"
preupg -s CentOS6_7; # 這裡的"CentOS6_7"是上個命令的輸出
# 上面這個命令生成的報告需要看看,主要是關於升級的風險的
# 個人經驗就是升級前儘量將非官方的rpm安裝的軟體都刪掉
# 安裝的第三方的rpm包越少,升級的風險越小
問題:
I/O warning : failed to load external entity "/usr/share/openscap/xsl/security-guide.xsl" compilation error: file /usr/share/preupgrade/xsl/preup.xsl line 40 element import xsl:import : unable to load /usr/share/openscap/xsl/security-guide.xsl I/O warning : failed to load external entity "/usr/share/openscap/xsl/oval-report.xsl" compilation error: file /usr/share/preupgrade/xsl/preup.xsl line 41 element import xsl:import : unable to load /usr/share/openscap/xsl/oval-report.xsl I/O warning : failed to load external entity "/usr/share/openscap/xsl/sce-report.xsl" compilation error: file /usr/share/preupgrade/xsl/preup.xsl line 42 element import xsl:import : unable to load /usr/share/openscap/xsl/sce-report.xsl OpenSCAP Error:: Could not parse XSLT file '/usr/share/preupgrade/xsl/preup.xsl' [oscapxml.c:416] Unable to open file /root/preupgrade/result.html Usage: preupg [options] preupg: error: [Errno 2] No such file or directory: '/root/preupgrade/result.html'
遇到問題那麼就找原因和解決方法,通過搜尋引擎搜尋,找到 CentOS 官方論壇的一篇帖子,帖子中有一回復如下:
Erase the existing version of openscap (I had openscap 1.2) and install openscap-1.0.8-1.0.1 from http://dev.centos.org/centos/6/upg and redo the upgrade.
根據他的方法,把 openscap 軟體包的版本降低之後,重新再安裝此工具及其預升級助手:
[[email protected] ~]# yum erase openscap
[ [email protected] ~]# yum install http://dev.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm
[[email protected] ~]# yum install redhat-upgrade-tool preupgrade-assistant-contents
重新執行 preupg -s CentOS6_7 命令: OK!
[[email protected] ~]# preupg -s CentOS6_7
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/10 ...finished (time 00:00s)
All changed files : 02/10 ...finished (time 00:48s)
Changed config files : 03/10 ...finished (time 00:00s)
All users : 04/10 ...finished (time 00:00s)
...
042/100 ...done (samba shared directories selinux)
043/100 ...done (CUPS Browsing/BrowsePoll configuration)
044/100 ...done (CVS Package Split)
...
|samba shared directories selinux |notapplicable |
|CUPS Browsing/BrowsePoll configuration |notapplicable |
|CVS Package Split |notapplicable |
...
---------------------
本文來自 五月七日茴香 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/you227/article/details/79140913?utm_source=copy
開始升級
rpm --import \
http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7;
centos-upgrade-tool-cli --network 7 \
--instrepo=http://vault.centos.org/centos/7.2.1511/os/x86_64/;
# 上面這個命令的--instrepo引數用的是官方的repo,
# 如果自己搭建的有repo映象(一般都有吧),用自己的就好
# 需要注意的是,這個映象目錄下需要有檔案.treeinfo
# 沒有的話就去官方的位置拷貝一個下來,記得版本號要一致喲
reboot; # 最後,重啟機器即可
收尾工作
機器起來後,登上伺服器,需要做一些擦屁股的工作,比如,看還有沒有CentOS6的軟體殘餘,用命令:
rpm -qa | grep -i el6;
有的話要麼想辦法刪掉,要麼想辦法將其升級到el7的相應的軟體包。