在创建RPM包时,如何自动安装依赖项

xma*_*urn 0 rpm rpmbuild rpm-spec

我的程序基本上是一个基于C的MySQL服务器,它需要gcc,mysql-server,mysql-devel才能成功运行.

现在我必须将程序打包到RPM包中,它应该能够自动安装依赖项,以便RPM包可以安装在干净的RHEL机器上,程序可以在安装后立即运行.

问题是如果我在SPEC文件%pre部分写下面的脚本,它会在"事务"期间卡住.

sudo yum groupinstall "Development Tools" -y
sudo yum install mysql-server mysql-client -y
Run Code Online (Sandbox Code Playgroud)

看来你不能在SPEC文件中使用另一个rpm安装工具.

我该怎么做呢?

nos*_*nos 5

您无法直接执行此操作,无法在RPM规范文件中安装其他RPM.

您应遵循的常规方法是使RPM取决于所需的其他RPM,例如将其添加到.spec文件中:

 Requires:  gcc, mysql-server, mysql-devel
Run Code Online (Sandbox Code Playgroud)

然后,当您尝试使用rpm命令安装rpm时:

rpm -ivh yourrpm-1.0.0.rpm
Run Code Online (Sandbox Code Playgroud)

它会失败并告诉你要安装哪些软件包,你必须先手动安装这些软件包.

或者您可以使用yum来安装rpm文件:

 yum install ./yourrpm.1.0.0.rpm
Run Code Online (Sandbox Code Playgroud)

并且yum将在安装RPM软件包之前下载并安装所需的依赖项.