创建规范文件(RPM)

Leo*_*Sam 3 linux shell rpm

ive 2个文件,其中包括要执行的shell命令,以及ive 1 iptables-save,其中包括需要安装的链

如何将spec文件写入:

-1将我的2个shell文件复制到/ etc /

-2执行iptables-restore </ home/iptables-save

谢谢你的时间.

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

Chr*_*haw 6

不得不在昨天这样做.

在家中创建您的构建目录,因为普通用户不使用root,只需这样聪明.

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
Run Code Online (Sandbox Code Playgroud)

接下来创建rpmmacros以便rpmbuild知道构建的位置,〜/ .rpmmacros的内容应该包含以下内容

%packager Chris Hinshaw
%_topdir /home/chinshaw/rpmbuild
%_tmppath /home/chinshaw/rpmbuild/tmp
Run Code Online (Sandbox Code Playgroud)

接下来创建〜/ rpmbuild/SPECS /中的rpm规范.这个示例spec文件将处理一个名为demo脚本的脚本,它的配置文件等,以及第三个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
Run Code Online (Sandbox Code Playgroud)

我发现的唯一的怪癖是我真的需要在tarball中压缩我的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
Run Code Online (Sandbox Code Playgroud)

然后你所要做的就是建立它rpmbuild -ba~/rpmbuild/SPECS/demoproject.spec

这将创建arch rpms和srpms并将它们放在〜/ rpmbuild/RPMS和〜/ rpmbuild/SRPMS目录中.