为什么CentOS 7.2无法安装最新版本的rsync?

Why couldn't the latest version of rsync be installed on CentOS 7.2?

我使用的是 CentOS 7.2。

我想安装最新版本的 rsync - rsync-3.1.2,
rsync-3.0.9 在系统上,在使用 yum

安装 mariadb 时安装
# rpm -qa |grep rsync
rsync-3.0.9-17.el7.x86_64

先删除 rsync-3.0.9

# yum remove rsync

rsync 和 mariadb 一起被删除,
那么,
从源代码安装 rsync-3.1.2

# wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
# tar -zxvf rsync-3.1.2.tar.gz
# cd rsync-3.1.2
# ./configure
# make
# make install 

那么,
再次使用 yum 安装 mariadb,
rsync-3.0.9 仍会安装。

我该如何解决这个问题?

您要么需要使用软件包安装所有软件,要么从源代码安装所有软件。尝试混合搭配会导致您在这里遇到的问题:mariadb 包依赖于 rsync,但包管理器对您的文件一无所知已从源安装。

解决此问题的正确方法是构建您自己的 rsync 包,然后可以使用 yum 安装该包。您可以从您的发行版的源代码包开始,然后针对 3.1.2 对其进行修改。您可以使用更新的软件包(例如,来自 Fedora)并为您的系统重建它。

您可以找到 rsync-3.0.9 here, and there is some documentation that will hopefully help you get started here.

的源 RPM

您可以从 Fedora 24 .rpm 包安装 rsync 3.1.2:

wget http://dl.fedoraproject.org/pub/fedora/linux/releases/24/Everything/x86_64/os/Packages/r/rsync-3.1.2-2.fc24.x86_64.rpm
rpm -Uvh rsync-3.1.2-2.fc24.x86_64.rpm

(但那个问题并不真的属于Whosebug)

您可以从 gf-plus 存储库安装 rsync 3.1.2。只需按照以下步骤操作:

  1. 安装 gf-release 包。

    sudo rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/el/7/gf/x86_64/gf-release-7-10.gf.el7.noarch.rpm
    
  2. gf-plus 仓库升级 rsync 包。

    sudo yum install -y --enablerepo=gf-plus rsync
    
  3. 检查 rsync 版本。

    hash -r; rsync --version | awk 'NR==1 {print }'
    

    如果打印3.1.2,则rsync已升级。

默认情况下,仅启用 gf 存储库,声称它 "won't overwrite core distro packages"。您可以禁用它:

sudo yum-config-manager --disable gf

(对于 command not found 错误,运行 sudo yum install -y yum-utils 再试一次。)

或者通过删除 gf-release 包来删除所有 gf* 存储库:

sudo yum remove -y gf-release