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安装工具.
我该怎么做呢?
您无法直接执行此操作,无法在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软件包之前下载并安装所需的依赖项.