gpt4 book ai didi

fedora - 编写可移植的 RPM 规范文件

转载 作者:行者123 更新时间:2023-12-02 02:06:56 24 4
gpt4 key购买 nike

我开始为我们的软件创建 RPM 包,但我不确定我是否按预期使用该系统。我想创建一个 RPM 规范/源包,我可以在不同的 RPM 系统上构建,例如fedora、centos 和 opensuse(我喜欢 rpm)。

但是,我开始意识到,例如,许多脚本%pre%post 取决于分布。例如,我的预脚本停止 Apache:

service httpd stop

但是,此命令不适用于 OpenSUSE。这只是一个例子,我的脚本中还有许多其他不同发行版的不同之处。

那么通常的做法是什么?我应该为每个发行版创建单独的 .spec 文件吗?还是有一些技巧可以让东西变得便携?

最佳答案

在执行命令的规范文件顶部添加一个 shell 脚本,如下所示:

%define distribution %(sh -c "[ -f/etc/redhat-release ] && cat/etc/redhat-release | awk '{print $1}' || [ -f/etc/SuSE -release ] && head -n1/etc/SuSE-release | awk '{print $1}' || echo 'Unknown'")

在你的 %pre%post 等脚本中你可以做的更进一步:

distribution=${distribution}
case $distribution in
"Fedora")
# do fedora stuff
;;
"openSUSE")
# do suse stuff
;;
*)
# handle error condition
exit 1
;;
esac

并添加您需要的分发字符串及其相关脚本。

关于fedora - 编写可移植的 RPM 规范文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com