柴少的官方网站 技术在学习中进步,水平在分享中升华

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能搞定了。

  1. 安装升级仓库

[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   #再次执行

图片.png

5. 重启操作系统

[root@localhost ~]# reboot #重启很重要,系统需要重新安装一遍新的软件包来达到系统升级的目的。

图片.png

图片.png#再次启动已经变成了最新版的7.3了,这里有点没搞懂,以前升级成7.2的时候还能搞明白,现在yum源指向的是备份源的7.2,结果升级完后是7.3.

注:这种升级方式,还是有很大的风险性的,最好不要再线上的生产服务器使用,再一些测试机之类的机器上面操作还是可以的,出了问题影响也不大。

博文来自:www.51niux.com

作者:忙碌的柴少 分类:运维工具使用 浏览:7153 评论:0
留言列表
发表评论
来宾的头像