rpm包安装技巧

背景

一套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怎么办?

建议方法:

  1. 找一台可以yum的服务器
  2. 修改yum配置文件,使yum安装后保留rpm包
vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1

#将 keepcache=0 修改为 keepcache=1
#保留的rpm安装包在 /var/cache/yum
  1. 默认rpm包保留在/var/cache/yum下,找出来并拷贝到需要安装的服务器上。
  2. 用以下命令安装
# 因为部分rpm包互相依赖,只能用此方法安装。
rpm -ivh *.rpm --nodeps --force

posted on 2019-06-20 15:06 fanderchan 阅读(...) 评论(...) 编辑 收藏

导航