背景
一套CentOS6环境需要安装xtrabackup,但安装时遇到依赖问题,本文讲解如何优雅地解决依赖问题。
#下载xtrabackup rpm安装包
[root@localhost ~]# wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.14/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.14-1.el6.x86_64.rpm
#安装时发现缺少依赖
[root@localhost ~]# rpm -ivh percona-xtrabackup-24-2.4.14-1.el6.x86_64.rpm
warning: percona-xtrabackup-24-2.4.14-1.el6.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by percona-xtrabackup-24-2.4.14-1.el6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by percona-xtrabackup-24-2.4.14-1.el6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by percona-xtrabackup-24-2.4.14-1.el6.x86_64
libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.14-1.el6.x86_64
perl(DBD::mysql) is needed by percona-xtrabackup-24-2.4.14-1.el6.x86_64
perl(Digest::MD5) is needed by percona-xtrabackup-24-2.4.14-1.el6.x86_64
过去
在过去,我会一个一个解决依赖,例如:
yum search perl |grep -i MD5 |grep -i Digest
#此时可以找到可用的依赖包perl-Digest-Perl-MD5.noarch
yum install perl-Digest-Perl-MD5.noarch
但一个一个解决依赖很痛苦,并且libev.so.4()这类包依赖问题很头痛,不知道如何找到依赖包,只能百度
现在
我找到一个更优雅的解决办法,如下:
yum localinstall percona-xtrabackup-24-2.4.14-1.el6.x86_64.rpm -y
这种办法可以自动解决依赖问题。
新的问题
如果我的环境是内网环境,不能自由地使用yum怎么办?
建议方法:
- 找一台可以yum的服务器
- 修改yum配置文件,使yum安装后保留rpm包
vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
#将 keepcache=0 修改为 keepcache=1
#保留的rpm安装包在 /var/cache/yum
- 默认rpm包保留在/var/cache/yum下,找出来并拷贝到需要安装的服务器上。
- 用以下命令安装
# 因为部分rpm包互相依赖,只能用此方法安装。
rpm -ivh *.rpm --nodeps --force