创建本地RPM源之更新系统旧版软件

事情起因:

系统版本为Centos6.6 ,因为之前同事没有采用最小化选择性安装,所以系统安装好后自带有mysql5.1的三个安装包:

[[email protected] ~]# rpm -qa | grep mysql
mysql-5.1.73-3.el6_6.x86_64
mysql-devel-5.1.73-3.el6_6.x86_64
mysql-lib-5.1.73-3.el6_6.x86_64

在安装新版本mysql前,只卸载掉了 mysql 和 mysql-devel,但没能成功卸载 mysql-libs,因为存在着依赖关系,所以打算采用rpm更新操作来将其更替:

[[email protected] ~/Downloads/V137788-01]# rpm -Uvh mysql-commercial-libs-5.7.12-1.1.el6.x86_64.rpm
warning: mysql-commercial-client-5.7.12-1.1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
    mysql-commercial-common(x86-64) = 5.7.12-1.1.el6 is needed by mysql-commercial-libs-5.7.12-1.1.el6.x86_64
    libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64
    libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64

看来还需要添加上:mysql-commercial-common

[[email protected] ~/Downloads/V137788-01]# rpm -U mysql-commercial-libs-5.7.12-1.1.el6.x86_64.rpm mysql-commercial-common-5.7.12-1.1.el6.x86_64.rpm
warning: mysql-commercial-libs-5.7.12-1.1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
    libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64
    libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64

但是这样还是没能解决,而且卸载postfix会引发更多的rpm包卸载,这样的实施成本就提高了,不是愿意看到的,所以又想到创建本地yum源来更新软件:

安装createrepo
[[email protected] ~/Downloads/V137788-01]# yum install -y createrepo

创建本地yum源目录
[[email protected] ~/Downloads/V137788-01]# mkdir /opt/soft; cd /opt/soft/
并将mysql的rpm包文件移动到这个目录下
#[[email protected] /opt/soft]# mv ~/Downloads/V137788-01/mysql* ./
=================================================================================查看
[[email protected] /opt/soft]# ls
libmcrypt-2.5.8-4.3.x86_64.rpm
libmcrypt-devel-2.5.8-4.3.x86_64.rpm
mysql-commercial-client-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-common-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-devel-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-embedded-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-embedded-devel-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-libs-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-libs-compat-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-server-5.7.12-1.1.el6.x86_64.rpm
mysql-commercial-test-5.7.12-1.1.el6.x86_64.rpm
nginx-1.9.15-1.el6.icefox.x86_64.rpm

使用createrepo创建本地yum源信息
[[email protected] /]# createrepo -v /opt/soft/
这时会在本地yum源目录中多出一个目录(存放有本地yum源的rpm包的文件信息)[[email protected] /opt/soft]# lslibmcrypt-2.5.8-4.3.x86_64.rpmlibmcrypt-devel-2.5.8-4.3.x86_64.rpmmysql-commercial-client-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-common-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-devel-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-embedded-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-embedded-devel-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-libs-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-libs-compat-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-server-5.7.12-1.1.el6.x86_64.rpmmysql-commercial-test-5.7.12-1.1.el6.x86_64.rpmnginx-1.9.15-1.el6.icefox.x86_64.rpmrepodata=================================================================================编辑repo文件
[[email protected] /]# vim /etc/yum.repos.d/local.repo
[LC]
name=local-rpm
baseurl=file:///opt/soft
enabled=1
gpgcheck=0

安装新版mysql
[[email protected] /]# yum install mysql-commercial-libs mysql-commercial-server mysql-commercial-client mysql-commercial-devel...Installed:  mysql-commercial-client.x86_64 0:5.7.12-1.1.el6                                 mysql-commercial-devel.x86_64 0:5.7.12-1.1.el6                                  mysql-commercial-libs.x86_64 0:5.7.12-1.1.el6                                   mysql-commercial-libs-compat.x86_64 0:5.7.12-1.1.el6                            mysql-commercial-server.x86_64 0:5.7.12-1.1.el6                               

Dependency Installed:  mysql-commercial-common.x86_64 0:5.7.12-1.1.el6                               

Replaced:  mysql-libs.x86_64 0:5.1.73-3.el6_5                                            

Complete!

这里问题算是解决了,安装新版mysql并将旧版移除。

总结:

1) 在使用createrepo命令创建本地rpm源信息时,要使用绝对路径而非相对路径;

2) 如果有新的软件包需要放在本地yum源中,需要再次执行createrepo更新本地rpm源信息;

3) 本地yum源能很好解决旧版软件间的依赖关系,不再需要手动一步步解决。

时间: 05-15

创建本地RPM源之更新系统旧版软件的相关文章

centos7创建本地 yum源 epel源

centos7创建本地 yum源 epel源 1.安装httpd服务,提供网页浏览 yum-y install httpd systemctlstart httpd systemctlenable httpd 2.创建yum仓库目录和epel目录 mkdir/var/www/html/yum 3.安装创建仓库软件包:createrepo yum-y install createrepo 4.初始化仓库索引文件 createrepo-p -d -o /var/www/html/yum/ /var/

redhat linux 5上创建本地yum源

1.挂载光驱 [[email protected] ~]#mkdir -p /mnt/cdrom [[email protected] ~]#mount /dev/cdrom /mnt/cdrom 2.将redhat光盘内容复制至本地硬盘 因为创建yum源的目录,必须是可以写入的的目录,所以需要将光盘中的文件全部复制到本地目录,如果在/mnt/cdrom光驱挂载目录执行创建yum源,会报"Directory /mnt/cdrom must be writable."错误 [[email

在CentOS 7下更改yum源与更新系统

在CentOS 7下更改yum源与更新系统. [1] 首先备份/etc/yum.repos.d/CentOS-Base.repo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup [2] 进入yum源配置文件所在文件夹 cd /etc/yum.repos.d/ [3] 下载163的yum源配置文件,放入/etc/yum.repos.d/(操作前请做好相应备份) wget http://mir

linux 下载rpm包到本地,createrepo:创建本地YUM源

如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yum下面 2.或者使用yum-plugin-downloadonly插件, sudo yum install yum-plugin-downloadonly 用法:sudo yum install ceph-0.87.1-0.el7.centos.x86_64.rpm --downloadonly -

访问不了国外安装不了软件需要更改yum源与更新系统 (CentOS6为例)

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup    #备份原文件 cd /etc/yum.repos.d/                                                       #进入yum源配置文件所在文件夹 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo           #下载1

在CentOS 7.3中创建本地yum源

1.挂载系统光盘 1.1创建挂载文件 [[email protected] ~]# mkdir /mnt/cdrom                          #创建文件 1.2挂载光驱 [[email protected] ~]# mount /dev/cdrom /mnt/cdrom/              #挂载光驱  mount: /dev/sr0 is write-protected, mounting read-only      #挂载成功 [[email protec

CentOS更改yum源与更新系统

[1] 首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup [2] 进入yum源配置文件所在文件夹 [[email protected] yum.repos.d]# cd /etc/yum.repos.d/ [3] 下载163的yum源配置文件,放入/etc/yum.repos.d/(操作前请做好相应备份) [[ema

创建本地yum源

#mkdir /mnt/yum (挂载目录)        #mount /dev/cdrom /mnt/yum (挂载光驱)#mkdir /root/yumdate    (建立yum源目录)#cp /mnt/yum/Packages/* /root/yumdate (复制rpm包)#cd /root/yumdate                                                    (进入主目录)#rpm -ivh createrepo          

创建本地yum源-http方式

1. 挂在ISO文件 2. 安装yum软件包 rpm -ivh createrepo-0.9.9-17.el6.noarch.rpm deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm  3. 安装http服务 yum -y install httpd 4. 删除http首页默认配置 rm -f /etc/httpd/conf.d/welcome.conf /