spec文件:%systemd_post()

刺骨的言语ヽ痛彻心扉 2023-01-08 02:16 290阅读 0赞

%systemd_post() 的使用是在spec文件中的%post部分:

  1. %systemd_post xxx.service

%systemd_post() 定义为:

  1. %systemd_post() \
  2. if [ $1 -eq 1 ] ; then \
  3. # Initial installation \
  4. systemctl --no-reload preset %{ ?*} &>/dev/null || : \
  5. fi \
  6. %{ nil}

其中的if判断,$1为当前执行的操作,

参考链接:https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/

在这里插入图片描述

根据上述表格,在%post中调用%systemd_post() 时:

  • 只有在安装软件包(系统还没有这个包)时才会执行预设的操作。
  • 如果系统中已经安装了软件包,reinstall 或者 update 是不会执行 预设操作的。

如果想在update时,也执行预设操作,可以在spec的%post部分中添加:

  1. if [ $1 -eq 2 ] ; then
  2. # Upgrade installation
  3. systemctl --no-reload preset xxx.service &>/dev/null || :
  4. fi

  1. 等于: -eq
  2. 不等于: -ne
  3. 大于: -gt
  4. 小于: -lt
  5. 大于等于: -ge
  6. 小于等于: -le

参考链接:https://blog.csdn.net/xiaofei125145/article/details/40187031

发表评论

表情:
评论列表 (有 0 条评论,290人围观)

还没有评论,来说两句吧...

相关阅读