文章目录

  • 项目场景:
  • 详细的步骤:
    • 下载镜像
    • 配置Linux本地yum源
      • 挂在iso文件
      • 备份系统repo文件
      • 编辑本地源repo文件
    • 更新yum缓存
    • 更新系统
  • 报错的处理
    • 升级为Centos 7.9的话会存在GCC报错
  • 解决方案
  • 如果是配置网络镜像的话

项目场景:

因为业主购买了两套设备,具体的产品我就不提了哈。反正是大厂。
产品有点问题,需要解决两件事;

  • 第一:操作系统由CentOS7.3升级到CentOS7.6。
  • 第二:需要安装一个软件zip。

这里要说一下,该款产品买了两套,一套在A,一套在B;A的需要升级系统才能升级为https;B主要是缺少了zip这个软件,导致客户端无法下载服务器文件。
说一下我的环境吧:两台虚拟化均无法连接互联网的,所以是需要进行离线升级。


详细的步骤:

提示:这里描述项目中操作的详细步骤:

下载镜像

这里只要能下载到标准版(DVD标识的)或者完整版(EVERYTHING标识的)即可。
附一个CentOS7.6的下载地址,需要用迅雷下载,速度才快,不然一天都不知道能不能下载回来。
https://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/

要下载国内的其实也可以,镜像地址:http://mirrors.sohu.com/(希望会快点)

配置Linux本地yum源

挂在iso文件

mkdir /mnt/cdrom
mount ./CentOS-7-x86_64-DVD-1810.iso /mnt/cdrom

备份系统repo文件

mv /etc/yum.repos.d/* .

mv是剪切,cp才是复制。看实际情况吧

编辑本地源repo文件

以下这段代码是网上的摘录的。我当时也没用这段代码。

cat << EOF > /etc/yum.repos.d/CentOS-Media.repo
[Media]
name=CentOS Media
baseurl=file:///mnt/cdrom
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
EOF

我使用的是直接vim编辑/etc/yum.repos.d/CentOS-Media.repo文件
ps:关于yum.repos.d这个目录,其实网上并没有太多说明,我也懒得找相关资料了。建议是保证只有一个文件,就是xxx.repo文件(文件的具体名字貌似是随意的)。
第二种情况就是,该目录里面的确有很多相关的xxx.repo文件,里面也有相关的配置。但貌似只要自己本地源的配置是正确的,那还是不影响使用(当时生产环境里就有很多xxx.repo)。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7,该配置务必不要填错,因为更新的时候是会验证这个key的。

为了说明详细,我再附上网上的一个该xxx.repo文件的配置说明。如下:

[root@localhost ~]# vim /etc/yum.repos.d/henry.repo
[henry_repo]
name = mylocalrepo
baseurl = file:///henry_repo/Packages/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
/*说明
第一行:[henry_repo] yum仓库名字,任意。
第二行:name 名字任意。
第三行:baseurl 配置路径,由于是本地yum所以是file://(在线形式http://和ftp://等),这个路径要对应你挂载的目录如mount ./CentOS-7-x86_64-DVD-1810.iso /mnt/cdrom,就要填写baseurl=file:///mnt/cdrom。
第四行:gpgcheck 关闭rpm包的校验功能。个人环境建议关闭0,生产环境建议启用1。
第五行:如果gpgcheck开启了,那就要有这个key的位置配置。不然无法提取安装包。
说一下格式,xxx=aaa    和   xxx = aaa  ,都一样的。
*/ 

如果key的配置错误,会有以下报错信息:

更新yum缓存

yum clean all
yum makecache

PS:这里要说一下,如果提示软件包错误会出现如下图错误。其实没关系调整配置文件后再重新执行上面两条命令即可。

更新系统

yum update

这里是全部软件都更新或者升级,还没找到直接更新内核的命令。


报错的处理

提示:yum update之后肯定会报错的:
例如:Error: Package: glibc-2.17-157.el7.i686 (installed)
Requires: glibc-common = 2.17-157.el7
Removing: glibc-common-2.17-157.el7.x86_64 (@anaconda)
glibc-common = 2.17-157.el7
Updated By: glibc-common-2.17-260.el7.x86_64 (local)
glibc-common = 2.17-260.el7
Error: libX11 conflicts with libxcb-1.7-1.el6.i686
Error: Package: mod_session-2.4.6-88.el7.centos.x86_64 (local)
Requires: httpd = 2.4.6-88.el7.centos
Installed: httpd-2.4.6-93.el7.centos.x86_64 (@local)
httpd = 2.4.6-93.el7.centos
Available: httpd-2.4.6-88.el7.centos.x86_64 (local)
httpd = 2.4.6-88.el7.centos
Error: gtk-update-icon-cache conflicts with gtk2-2.24.22-5.el7_0.1.i686

遇到以上类似的报错,一般是因为一些旧版本的包冲突错误,或者是旧版本的包不支持。
但是会有提示命令让你按照他的命令去填写然后就可以更新系统的了。
具体命令我也忘记了,在自己搭建的虚拟机中测试有这个问题,但是在生产环境上却不存在。


升级为Centos 7.9的话会存在GCC报错

具体报错原因我忘记截图了。但如果报错是说libGCC之类的,具体是说你系统装了两个gcc版本。
解决办法就是这个命令:yum update --skip-broken --setopt=protected_multilib=false
大概意思是忽略报错。
参考了文章:解决 yum时 Error: Protected multilib versions报错

解决方案

在实践过程中,我只遇到三个问题。
1、配置写错了key的路径。
2、的确有一些软件不兼容,怎么也无法更新系统,但按照系统报错的提示输入提示的命令能解决。
3、镜像源挂载后需要先执行清除缓存,重新建立缓存,才能正常更新系统或安装(更新)软件。

如果是配置网络镜像的话

参考如下配置:

[root@host-172-16-135-159 ~]# cat /etc/yum.repos.d/
bek/            CentOS7.3.repo  epel.repo
[root@host-172-16-135-159 ~]# cat /etc/yum.repos.d/CentOS7.3.repo
[CentOS7.3]
name=CentOS7.3
baseurl=http://10.2.92.133/standard/centos/7.3/x86_64
enabled=1
gpgcheck=0

CentOS7系列离线安装指定软件及升级系统相关推荐

  1. Docker 验证 Centos7.2 离线安装 Docker 环境

    序 题记:搞定了就是故事,搞不定就是事故. 条件有限,开局只有一台开发机,要跑5套子系统组成的项目群.还要有一些辅助和验证的系统要跑在这上面.从配置来看,要想顺畅开心地完成项目群基础环境支撑,考虑引入 ...

  2. CentOS7.9 离线安装FTP服务器

    离线安装vsftpd 1.查看自己服务器有没有安装vsftpd rpm -qa |grep vsftpd 上图是有安装ftp服务器,若没有则什么都不显示. 2.下载vsftpd的RPM包并安装 cen ...

  3. Centos7.6离线安装显卡驱动

    Centos7.6离线安装显卡驱动 背景:今天要给客户的机器远程装一个需要GPU才能跑的服务,客户是台干干净净刚虚拟化过的服务器,没有网路的单机环境. 1.查看显卡有关的信息 lshw -numeri ...

  4. 软件自动升级系统:支持exe程序覆盖更新、目录结构、更新更新程序自身、更新sql、执行bat批处理...

    软件自动升级系统说明 目录 一.         自动升级需要需要实现些什么?... 1 二.         服务器安装... 2 三.         客户端配置... 4 四.         ...

  5. centos7 samba 离线安装_CentOS 7安装配置Samba服务器(挂载共享文件夹)

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  6. 实用系列-离线安装deb

    前言: linux的包真的是方便了开发,苦了运维.可能学习Linux不是很深入的都知道yum可以通过下面的命令安装本地指定的RPM包并在线获取其依赖 yum localinstall ${rpm} 那 ...

  7. centos7.8离线安装gcc

    检查服务器上是否存在gcc-c++的环境指令 gcc -v 如果没有则不显示 四丶安装gcc环境# 1.离线安装 1.1获取相关rpm包,将其存放到服务器上某一路径 (网址: http://mirro ...

  8. Zabbix5.0在Centos7实现离线安装

    目录 前言 一.本地虚拟环境进行安装准备 1.关闭防火墙和selinux. 2.安装zabbix的rpm源 3.下载zabbix service和agent包 4.下载 Software Collec ...

  9. brew安装指定版本mysql,Mac 系统为 Valet 开发环境安装指定版本 MySQL

    Mac 系统为 Valet 开发环境安装指定版本 MySQL 由 学院君 创建于1年前, 最后更新于 5个月前 版本号 #3 1547 views 1 likes 0 collects 在 Mac 系 ...

最新文章

  1. deploy service on swarm
  2. Python爬虫--抓取糗事百科段子
  3. S5PV210开发 -- 驱动开发相关硬件简介
  4. 教学思路C#之入门一 认识简单的C#结构
  5. CreateThread和_beginthreadex的区别
  6. python处理pdf 层_Python处理PDF及生成多层PDF实例代码
  7. 创建设计模式 - 工厂设计模式
  8. Zookeeper Curator API 使用
  9. 如何在Exchange中处理不能发送的信息
  10. SpringMVC上传文件的三种方式
  11. 精通MVC3摘译(9)-过滤器
  12. jquery值ajaxForm
  13. pcl 使用gpu计算法向量_PCL点云特征描述与提取(1)
  14. python 类属性排序_Python 使用多属性来进行排序
  15. USB和串口的区别是什么?
  16. Linux下使用dos2unix修改目录中文件格式
  17. 素数筛 python
  18. office2020与2016版的不同_Office 2016 各版本之间不同(要使用Access 2016必须安装Office 2016专业版)...
  19. iphone-使用TextField及关闭键盘(useing TextField for inputs、using the keyboard)
  20. 什么是IDC ,可以用来做什么

热门文章

  1. Python使用pandas读取Excel文件数据和预处理小案例
  2. 几行Python代码模拟轮盘抽奖游戏
  3. 力扣90. 子集 II(JavaScript)
  4. 策略模式应用场景_朱迪 | 混合研究方法的方法论、研究策略及应用:以消费模式研究为例...
  5. php中文字怎么上下居中,CSS怎么设置垂直居中?
  6. python单行动态刷新不了_python 解决tqdm模块不能单行显示的问题
  7. python笔记之单行json数据组成的json文件按行解析:read_json()
  8. windows server 2008 安装linux,使用WSL在Windows Server 2019上运行Linux的方法
  9. 关于C语言数据类型的PPT,C语言基本的数据类型.ppt
  10. php ajax 长轮询 表单,Thinkphp结合AJAX长轮询实现PC与APP推送详解