背景
一套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