事情起因

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

[root@test ~]# rpm -qa | grep mysql
mysql-5.1.-.el6_6.x86_64
mysql-devel-5.1.-.el6_6.x86_64
mysql-lib-5.1.-.el6_6.x86_64

在安装新版本mysql前卸载旧版本

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

[root@test ~/Downloads/V137788-]# rpm -Uvh mysql-commercial-libs-5.7.-1.1.el6.x86_64.rpm
warning: mysql-commercial-client-5.7.-1.1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-commercial-common(x86-) = 5.7.-1.1.el6 is needed by mysql-commercial-libs-5.7.-1.1.el6.x86_64
libmysqlclient.so.()(64bit) is needed by (installed) postfix-:2.6.-.el6_5.x86_64
libmysqlclient.so.(libmysqlclient_16)(64bit) is needed by (installed) postfix-:2.6.-.el6_5.x86_64

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

[root@test ~/Downloads/V137788-]# rpm -U mysql-commercial-libs-5.7.-1.1.el6.x86_64.rpm mysql-commercial-common-5.7.-1.1.el6.x86_64.rpm
warning: mysql-commercial-libs-5.7.-1.1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libmysqlclient.so.()(64bit) is needed by (installed) postfix-:2.6.-.el6_5.x86_64
libmysqlclient.so.(libmysqlclient_16)(64bit) is needed by (installed) postfix-:2.6.-.el6_5.x86_64

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

安装createrepo包

[root@test ~/Downloads/V137788-]# yum install -y createrepo

[root@test ~/Downloads/V137788-]# mkdir /opt/soft; cd /opt/soft/
将mysql的rpm包文件移动到这个目录下
[root@test /opt/soft]# mv ~/Downloads/V137788-/mysql* ./
=================================================================================
查看
[root@test /opt/soft]# ls
libmcrypt-2.5.-4.3.x86_64.rpm
libmcrypt-devel-2.5.-4.3.x86_64.rpm
mysql-commercial-client-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-common-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-devel-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-embedded-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-embedded-devel-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-libs-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-libs-compat-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-server-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-test-5.7.-1.1.el6.x86_64.rpm
nginx-1.9.-.el6.icefox.x86_64.rpm

使用createrepo创建本地yum源

这时会在本地yum源目录中多出一个repodata目录(存放有本地yum源的rpm包的文件信息)

[root@test /]# createrepo -v /opt/soft/

[root@test /opt/soft]# ls
libmcrypt-2.5.-4.3.x86_64.rpm
libmcrypt-devel-2.5.-4.3.x86_64.rpm
mysql-commercial-client-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-common-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-devel-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-embedded-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-embedded-devel-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-libs-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-libs-compat-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-server-5.7.-1.1.el6.x86_64.rpm
mysql-commercial-test-5.7.-1.1.el6.x86_64.rpm
nginx-1.9.-.el6.icefox.x86_64.rpm
repodata 编辑repo文件
[root@test /]# vim /etc/yum.repos.d/local.repo
[LC]
name=local-rpm
baseurl=file:///opt/soft
enabled=
gpgcheck=

安装新版mysql

[root@test /]# yum install mysql-commercial-libs mysql-commercial-server mysql-commercial-client mysql-commercial-devel
...
Installed:
mysql-commercial-client.x86_64 :5.7.-1.1.el6
mysql-commercial-devel.x86_64 :5.7.-1.1.el6
mysql-commercial-libs.x86_64 :5.7.-1.1.el6
mysql-commercial-libs-compat.x86_64 :5.7.-1.1.el6
mysql-commercial-server.x86_64 :5.7.-1.1.el6 Dependency Installed:
mysql-commercial-common.x86_64 :5.7.-1.1.el6 Replaced:
mysql-libs.x86_64 :5.1.-.el6_5 Complete!

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

总结

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

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

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

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

  1. CentOS7创建本地YUM源的三种方法

    这篇文章主要介绍了CentOS7创建本地YUM源的三种方法,本文讲解了使用CentOS光盘作为本地yum源.如何为CentOS创建公共镜像.创建完全自定义的本地源等内容,需要的朋友可以参考下     ...

  2. 本地yum源及更新

    创建本地yumrepo源 概述 在生产环境中,由于网络环境隔离,很多内网机器,无法直接通过网络下载安装相关软件包,所以这个时候就需要在内网搭建一个yum源,然后通过下载将需要的软件包rpm下载下来,然 ...

  3. CentOS 7更改yum源与更新系统

    在CentOS 7下更改yum源与更新系统. [1] 首先备份/etc/yum.repos.d/CentOS-Base.repo cp /etc/yum.repos.d/CentOS-Base.rep ...

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

    在CentOS 7下更改yum源与更新系统. [1] 首先备份/etc/yum.repos.d/CentOS-Base.repo cp /etc/yum.repos.d/CentOS-Base.rep ...

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

    如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...

  6. [转载]CentOS 7 创建本地YUM源

    本文中的"本地YUM源"包括三种类型:一是直接使用CentOS光盘作为本地yum源,优点是简单便捷,缺点是光盘软件包可能不完整(centos 7 Everything 总共才6.5 ...

  7. 创建本地yum源仓库

    更新本地yum源 yum仓库服务端配置如下 : 1. 创建yum仓库目录 mkdir -p /data/yum_data/ cd /data/yum_data/ #可以上传rpm包到此目录,此目录下面 ...

  8. 创建本地repo源

    1,保留rpm包 yum 安装时保留包至指定目录 编辑/etc/yum.conf 将keepcache的值设置为1: 2,使用插件 1,yum-plugin-downloadonly插件 sudo y ...

  9. LINUX创建本地yum源

    .创建一个文件夹,把光盘中所有的RPM安装包都拷贝进来 # mkdir /rpms_yum .把光盘上的RPM包全部复制到rpms_yum中 # cd /mnt/cdrom/Packages/ # c ...

随机推荐

  1. iOS 开发者计划申请 2014 年最新心得[转]

    iOS 开发者计划申请 2014 年最新心得 http://myfairland.net/ios-developer-program/

  2. 由点击页面其它地方隐藏div所想到的jQuery的delegate

    对于这个问题一般有两种思路,这两种思路都会利用事件冒泡这一原理,想要详细了解Javascript事件机制可以看看JavaScript与HTML交互——事件,这不是本文重点,所以这里只是简单介绍一下事件 ...

  3. MVC系统过滤器、自定义过滤器

    一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...

  4. ASP.NET MVC3细嚼慢咽---(3)Razor视图语法

    MVC3.0中新增加了Razor视图,Razor视图的语法以@符号为核心,貌似在这个时代离不开@了,微博,邮箱都用这个. 1.输出变量和文本 @DateTime.Now @for (int i = 0 ...

  5. [Raobin] Ext.net在多重子父窗体中找到当前窗体的父窗体,并关闭IFrame父窗体

    var closeParentWindow = function () { var currentWin = window; while (top != currentWin) { var prent ...

  6. 【原】本地win7,远程服务器XP系统,两台机器间不能拖动文件

    (1)网上大部分说是rdpclip.exe(存放在c:/windows/system32)的问题,试了好几次,没有解决 (2)通过第二种方式解决,详细步骤如下所示: 1.点击进入远程连接. 2.选择本 ...

  7. 关于sharepoint事件接收器中properties.AfterProperties[""].Tostring()取值的问题。

    这个这个属性是不能获取到中文的意思,他是获取AfterProperties的集合的值. string name=properties.AfterProperties["登录人"]. ...

  8. HW4.12

    public class Solution { public static void main(String[] args) { int n = 0; while(n * n < 12000) ...

  9. HW2.18

    public class Solution { public static void main(String[] args) { System.out.println("a" + ...

  10. hdu3681--Prison Break(TSP+二分)

    好难的一道题. 题意:一个机器人要逃出监狱,每走一步消耗一点电量,初始时电量是满的.给一个n*m(n,m<=15)的字符数组代表监狱,F代表起始点,G代表补充满电量,每个G只能补充一次,Y代表开 ...