系统版本为Centos6.6 ,由于以前同事没有采用最小化选择性安装,因此系统安装好后自带有mysql5.1的三个安装包:mysql
[root@test ~]# 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-devel,但没能成功卸载 mysql-libs,由于存在着依赖关系,因此打算采用rpm更新操做来将其更替:nginx
[root@test ~/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-commonsql
[root@test ~/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源来更新软件。vim
[root@test ~/Downloads/V137788-01]# yum install -y createrepo [root@test ~/Downloads/V137788-01]# mkdir /opt/soft; cd /opt/soft/ 将mysql的rpm包文件移动到这个目录下
[root@test /opt/soft]# mv ~/Downloads/V137788-01/mysql* ./
=================================================================================
查看 [root@test /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
这时会在本地yum源目录中多出一个repodata目录(存放有本地yum源的rpm包的文件信息)post
[root@test /]# createrepo -v /opt/soft/ [root@test /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 repodata 编辑repo文件 [root@test /]# vim /etc/yum.repos.d/local.repo [LC] name=local-rpm baseurl=file:///opt/soft enabled=1 gpgcheck=0
[root@test /]# 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并将旧版移除。url
1) 在使用createrepo命令建立本地rpm源信息时,要使用绝对路径而非相对路径;spa
2) 若是有新的软件包须要放在本地yum源中,须要再次执行createrepo更新本地rpm源信息;code
3) 本地yum源能很好解决旧版软件间的依赖关系,再也不须要手动一步步解决。server