linux系统升级
这是个小篇章,不用长篇赘述。
linux系统升级可以理解为两种升级,一种是升级到本系列的最高版本,一种是升级到系统的最高版本。
博文来自:www.51niux.com
一、 Centos 6的版本升级到6.8最新版本。
这里主要是用到了yum功能,直接平滑升级系统不需要重装系统。
[root@localhost ~]# cat /etc/redhat-release #升级前查看系统版本为6.4
CentOS release 6.4 (Final)
[root@localhost ~]# yum -y update #进行yum更新所有软件命令
[root@localhost ~]# cat /etc/redhat-release #yum完之后再看我们的系统变成了6.8
CentOS release 6.8 (Final)
下面是yum的一些常见用法:
命令 | 功能 |
---|---|
yum check-update | 检查可更新的所有软件包 |
yum update | 下载更新系统已安装的所有软件包 |
yum upgrade | 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级 |
yum install <packages> | 安装新软件包 |
yum update <packages> | 更新指定的软件包 |
yum remove <packages> | 卸载指定的软件包 |
yum groupinstall <groupnames> | 安装指定软件组中的软件包 |
yum groupupdate <groupnames> | 更新指定软件组中的软件包 |
yum groupremove <groupnames> | 卸载指定软件组中的软件包 |
yum grouplist | 查看系统中已经安装的和可用的软件组 |
yum list | 列出资源库中所有可以安装或更新以及已经安装的rpm包 |
yum list <regex> | 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包 |
yum list available | 列出资源库中所有可以安装的rpm包 |
yum list available <regex> | 列出资源库中与正则表达式匹配的所有可以安装的rpm包 |
yum list updates | 列出资源库中所有可以更新的rpm包 |
yum list updates <regex> | 列出资源库中与正则表达式匹配的所有可以更新的rpm包 |
yum list installed | 列出资源库中所有已经安装的rpm包 |
yum list installed <regex> | 列出资源库中与正则表达式匹配的所有已经安装的rpm包 |
yum list extras | 列出已经安装的但是不包含在资源库中的rpm包 |
yum list extras <regex> | 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包 |
yum list recent | 列出最近被添加到资源库中的软件包 |
yum search <regex> | 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值 |
yum provides <regex> | 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值 |
yum clean headers | 清除缓存中的rpm头文件 |
yum clean packages | 清除缓存中rpm包文件 |
yum clean all | 清除缓存中的rpm头文件和包文件 |
yum deplist <packages> | 显示软件包的依赖信息 |
博文来自:www.51niux.com
二、Centos6升级到Centos的最新版本7.2
这种就比较麻烦了,而非一条yum update能搞定了。
安装升级仓库
[root@localhost ~]# vi /etc/yum.repos.d/upgradtool.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
2. 安装升级需要的工具
[root@localhost ~]# yum install redhat-upgrade-tool preupgrade-assistant-contents -y #yum安装redhat提供了一个redhat-upgrade-tool的升级工具,Preupgrade Assistant帮助分析在更新的时候会出现什么问题。[root@localhost ~]# preupg -l #下面的显示结果标示升级可行。
CentOS6_7
3. 检测升级潜在问题
[root@localhost ~]# preupg -s CentOS6_7 #运行模拟升级工具,来检测一下升级过程中可能潜在的问题。
可能会遇到下面的问题:
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'
原因:https://centos.org/forums/viewtopic.php?f=13&t=59763#p252751 #有个帖子提到了此问题
解决办法:
# yum erase openscap #把openscap软件包降级之后,重新再安装此工具及其预升级助手 # yum install http://dev.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm # yum install redhat-upgrade-tool preupgrade-assistant-contents
4. 开始升级
[root@localhost ~]# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 #安装升级用的Centos7的rpm Key
[root@localhost ~]# centos-upgrade-tool-cli --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64/ #运行升级工具,但是一般这样是执行不下去的,一般会提示你又风险,让你谨慎。如下面:
No upgrade available for the following repos: base extras updates
.treeinfo | 1.1 kB 00:00
preupgrade-assistant risk check found EXTREME risks for this upgrade.
Run preupg --riskcheck --verbose to view these risks.
Continuing with this upgrade is not recommended.
然后就没有进行升级,如何任性的来升级一把呢?
[root@localhost ~]# centos-upgrade-tool-cli --force --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64/ #如果要屏蔽这些错误的时候,--force强制执行,如果有包没装成功再执行一遍这个语句。
可能会遇到下面的问题:
upg | 1.9 kB 00:00 upg/primary_db | 14 kB 00:00 No upgrade available for the following repos: base extras updates .treeinfo | 946 B 00:00 getting boot images... vmlinuz-redhat-upgrade-tool | 5.1 MB 01:19 Downloading failed: invalid data in .treeinfo: No option 'upgrade' in section: 'images-x86_64'
原因:.treeinfo 文件中没有upgrade选项
# wget http://vault.centos.org/7.2.1511/os/x86_64/.treeinfo
# wget http://mirror.centos.org/centos/7.3.1611/os/x86_64/.treeinfo
# cat .treeinfo|grep upgrade #你会发现7.3过滤不出来内容,而7.2可以过滤出内容
upgrade = images/pxeboot/upgrade.img upgrade = images/pxeboot/upgrade.img images/pxeboot/upgrade.img = sha256:fa54ce9a3aedad9d7de59507410af3eec51ac7e65b45b7ac9a14c971f33e45cf
解决办法:
更换yum源:# centos-upgrade-tool-cli --force --network 7 --instrepo=http://vault.centos.org/7.2.1511/os/x86_64 #vault.centos.org是官网备份源
可能还会遇到问题:
Downloading failed: 下载软件包时出错。 openscap-1.2.10-2.el7.x86_64: failure: Packages/openscap-1.2.10-2.el7.x86_64.rpm from cmdline-instrepo: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
解决办法:#yum install openscap-scanner -y #这一步是很关键的。不管报不报错都要执行 #官网地址:https://www.open-scap.org
# centos-upgrade-tool-cli --force --network 7 --instrepo=http://vault.centos.org/7.2.1511/os/x86_64 #再次执行
5. 重启操作系统
[root@localhost ~]# reboot #重启很重要,系统需要重新安装一遍新的软件包来达到系统升级的目的。
#再次启动已经变成了最新版的7.3了,这里有点没搞懂,以前升级成7.2的时候还能搞明白,现在yum源指向的是备份源的7.2,结果升级完后是7.3.
注:这种升级方式,还是有很大的风险性的,最好不要再线上的生产服务器使用,再一些测试机之类的机器上面操作还是可以的,出了问题影响也不大。
博文来自:www.51niux.com