构建rpm spec文件以携带一个文件并执行一个命令

时间:2013-11-24 11:21:19

标签: rpm rpmbuild

我正在尝试构建包含

的rpm文件
1 file /usr/local/stats.sh

rpm会做一件事

echo -e "*/5 * * * * /usr/bin/sh  /usr/local/stats.sh"  >> /var/spool/cron/root

我已经开始

Name:           stats
Version:        0.1
Release:        el%{redhat_releasever}%{redhat_releasever_minor}.1
Summary:        stats
Source0:        %{svn_url_Systems}/%{name}.spec
BuildArch:      noarch
Group:          %{repo_name_Systems}
License:        stat
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)


%description
Script 


%prep

%setup -cT


%build

%{__mkdir} -p %{buildroot}/%{_sysconfdir}/

echo -e "*/5 * * * * /usr/bin/sh /usr/local/stats.sh "  >> /var/spool/cron/root

%changelog

使这个rpm规范文件正确并正常工作的任何提示!

1 个答案:

答案 0 :(得分:6)

更容易不操作'/ var / spool / cron / root'中的crontab。请改用/etc/cron.d目录。创建一个包含crontab行的文件。在此目录中安装此文件。 优点是卸载rpm-package时将自动卸载此文件。

因此,您只需构建一个将安装两个文件的rpm文件。

%build宏不是你需要的东西。您需要根据主机上的目标目录安排打包。

%install
mkdir -p %{buildroot}/usr/local
mkdir -p %{buildroot}/etc/cron.d

cp ...mysource/stats.sh              %{buildroot}/usr/local
cp ...mysource/mystatstiming.cron    %{buildroot}/etc/cron.d

然后你需要定义文件标志设置:

%files
%defattr(755,root,root)
/usr/local/stat.sh

%defattr(644,root,root)
/etc/cron.d/mystatstiming.cron