2013-02-24 115 views
2

IVE 2个文件,其中包括shell命令是执行,,并且Ive 1 iptables-save命令,其中包括链需要安装创建规范文件(RPM)

我怎样才能规范文件写到:

-1copy我2个外壳文件到/ etc/

-2执行的iptables-恢复< /家庭/ iptables-save命令

感谢您的时间。

P.S:我经历了这个方法。不幸的是,我是新手,我找不到解决方案。

回答

0

使用%post%preun部分在安装之后和卸载之前运行操作,并将shell命令放在那里。

6

不得不在昨天这样做。

在普通用户不使用root的情况下在你的家中创建你的build目录,就这样聪明。

mkdir -p ~/rpmbuild/BUILD 
mkdir -p ~/rpmbuild/BUILDROOT 
mkdir -p ~/rpmbuild/RPMS 
mkdir -p ~/rpmbuild/SOURCES 
mkdir -p ~/rpmbuild/SPECS 
mkdir -p ~/rpmbuild/SRPMCS 
mkdir -p ~/rpmbuild/tmp 

下一页创建rpmmacros,这样的rpmbuild知道在哪里建,〜/ .rpmmacros的内容应该 包含以下

%packager Chris Hinshaw 
%_topdir /home/chinshaw/rpmbuild 
%_tmppath /home/chinshaw/rpmbuild/tmp 

接下来,创建在〜/的rpmbuild/SPECS /发现转速规格。这个示例spec文件将处理一个名为demo脚本的脚本,它是一个配置文件,放在etc中,还有一个第三个cron脚本,用来安排脚本每小时运行一次。

〜/的rpmbuild/SPECS/demoproject.spec

Name: demoproject  
Version: 0.1 
Release: 1%{?dist} 
Summary: Demo script for doing something cool 

Group: DemoGroup 
License: GPL 
Source0: demoproject-0.1.tar.gz 
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) 


%description 
Demo project that does something interesting 

%prep 
%setup -q 


%build 


%install 
install --directory $RPM_BUILD_ROOT/usr/sbin 
install --directory $RPM_BUILD_ROOT/etc 
install --directory $RPM_BUILD_ROOT/etc/cron.d/ 

install -m 0755 demoscript $RPM_BUILD_ROOT/usr/sbin 
install -m 0744 demoscript.conf $RPM_BUILD_ROOT/etc 
install -m 0744 cron/democronscript $RPM_BUILD_ROOT/etc/cron.d/ 

%clean 
rm -rf $RPM_BUILD_ROOT 


%files 
/usr/sbin/demoscript 
/etc/demoscript.conf 
/etc/cron.d/democronscript 


%changelog 

我发现了,我真的需要焦油了我的3个源文件中,似乎是一个好主意,反正一个压缩包,唯一的怪癖。

内容或rpmbuild/SOURCES目录应该如下所示。

$ cd ~/rpmbuild/SOURCES 
$ ls 
demoproject-0.1.tar.gz 
$ tar -tvzf demoproject-0.1.tar.gz 
demoproject-0.1/ 
demoproject-0.1/demoscript.conf 
demoproject-0.1/demoscript 
demoproject-0.1/cron/ 
demoproject-0.1/cron/democronscript 

那么所有你需要做的是建立它 的rpmbuild -ba〜/的rpmbuild/SPECS/demoproject.spec

这将创建拱RPM和SRPMS并在〜/的rpmbuild/RPMS他们上岸和〜/ rpmbuild/SRPMS目录。

+1

如果只有3个文件,您可以将3个文件命名为源,并在需要时将其手动复制。对于30个文件,spec文件会有点混乱和脏... – glglgl 2013-03-02 17:47:26