gpt4 book ai didi

linux - 如何将初始化脚本添加到我的 RPM

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:59 25 4
gpt4 key购买 nike

我想在我的 RPM 中添加一个初始化脚本,以便通过键入程序名称从终端运行程序,还有一件事让我感到困惑,那就是:-这些文件位于何处:pre、post、preun、postun,它们是否在添加一行 %pre 等后直接写入 spec 文件。

我已经通过以下链接找到了解决方案:-

https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd

https://fedoraproject.org/wiki/Packaging:Systemd?#Filesystem_locations

已更新============================================== =================我在 CentOS 6.8 上执行此操作,这是我目前创建的规范文件:-

# RPM package for xyz.
%define __spec_install_post %{nil}
%define debug_package %{nil}
%define __os_install_post %{_dbpath}/brp-compress

Summary: XYZ program.
Name: xyz
Version: 1.0
Release: 1
License: GPL+
Group: Development/Tools

SOURCE0 : %{name}-%{version}.tar.gz
URL: https://wwwDOTxyzDOTcom/

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%description
%{summary}
%prep
%setup -q
%build
# Empty section.

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
# in builddir
cp -a * %{buildroot}
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%{_bindir}/*

%changelog
* Mon Mar 6 2017 xyz <noemail@noemail.com> 1.0-1
- First Build
EOF

但仍然对如何通过键入程序名称从终端启动程序感到困惑。

最佳答案

你是说 SYSV 初始化文件?还是systemD单元文件?不同的逻辑,但没关系 - 最后它们都是文件。在不同的位置,但只是文件。

你必须做的:

%{?systemd_requires}
BuildRequires: systemd

%install
cp -a path/in/your/targz/SOMESERVICE.service %{buildroot}%{_unitdir}/

%post
%systemd_post SOMESERVICE.service

%preun
%systemd_preun SOMESERVICE.service

%postun
%systemd_postun_with_restart SOMESERVICE.service

%files
%{_unitdir}/SOMESERVICE.service

对于 SYSV,在 %post* 和 %preun 中会有一些不同的路径和不同的片段。

关于linux - 如何将初始化脚本添加到我的 RPM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42502855/

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