YUM/RPM - 如何指定未随 RPM 安装的需求

Posted

技术标签:

【中文标题】YUM/RPM - 如何指定未随 RPM 安装的需求【英文标题】:YUM/RPM - How to specify a requirement not installed with RPM 【发布时间】:2012-06-22 16:36:42 【问题描述】:

我有一个依赖于软件 Y 的包 X。Y 通常由用户手动编译和安装,但并非总是如此。

如果我在我的规范文件中添加了一个要求,例如“requires: Y”,YUM 将下载并安装包 Y。如果 Y 是由用户安装的,它会被简单地覆盖,这是不行的。

如果我不提出要求,那些没有 Y 的人最终会错过运行 X 的必要软件。

有一种方法可以通过检查某个位置是否存在二进制文件或通过检查环境变量来了解是否安装了 Y。

如何处理这种情况?

【问题讨论】:

在不使用包管理器的情况下安装到由包管理工具管理的文件系统树是问题所在。如果用户这样做,他们没有理由期望包管理器不会覆盖他们错误安装的软件。 【参考方案1】:

可以设置 RPM .spec 文件的 %pre 部分来检查二进制文件是否存在。

 %pre
    # Check if binary file exists . If not, exit with an error. 
    if [ -f /path/to/binary/file ]; then
        echo "Info: Pre-requisite exists: /path/to/binary/file"
    else
        echo "Error: Pre-requisite <name> not installed. Exiting..."
        exit 1
    fi

【讨论】:

以上是关于YUM/RPM - 如何指定未随 RPM 安装的需求的主要内容,如果未能解决你的问题,请参考以下文章

Mysql DBA高级运维学习笔记-Mysql数据库的多种安装方法

linux中系统的软件安装 yum/rpm

centos软件是有四种安装方式吗?yum,rpm,二进制和源代码?

rpm 规范文件的安装后脚本中的 yum/rpm install 命令

Linux软件安装卸载(yum+rpm)

MySQL官网下载安装yum/rpm步骤