Linux 如何创建等级库文件(RPM)
我有两个文件,其中包括要执行的shell命令,还有一个Linux 如何创建等级库文件(RPM),linux,shell,rpm,Linux,Shell,Rpm,我有两个文件,其中包括要执行的shell命令,还有一个iptables save,其中包括需要安装的chain 如何将等级库文件写入: 将我的2个shell文件复制到/etc/ 执行iptables还原
iptables save
,其中包括需要安装的chain
如何将等级库文件写入:
iptables还原
使用
%post
和%preun
部分在安装后和卸载前运行操作,只需将shell命令放在那里。昨天就必须这样做
作为普通用户在家中创建构建目录,不要使用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
接下来创建rpmmacros,以便rpmbuild知道在哪里构建~/.rpmmacros的内容
包含以下内容
%packager Chris Hinshaw
%_topdir /home/chinshaw/rpmbuild
%_tmppath /home/chinshaw/rpmbuild/tmp
接下来创建~/rpmbuild/SPECS/中的rpm规范。这个示例规范文件将处理一个名为demo script的脚本,它的配置文件放在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
我发现的唯一怪癖是,我真的需要在一个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
那么你所要做的就是建造它
rpmbuild-ba~/rpmbuild/SPECS/demoproject.spec
这将创建arch RPM和SRPM,并将它们放在~/rpmbuild/rpms和~/rpmbuild/srpms目录中。如果只有3个文件,您可以将3个文件命名为源文件,并在需要时手动复制它们。对于30个文件,规范文件会变得有点混乱和肮脏。。。