Linux 如何创建等级库文件(RPM)

Linux 如何创建等级库文件(RPM),linux,shell,rpm,Linux,Shell,Rpm,我有两个文件,其中包括要执行的shell命令,还有一个iptables save,其中包括需要安装的chain 如何将等级库文件写入: 将我的2个shell文件复制到/etc/ 执行iptables还原

我有两个文件,其中包括要执行的shell命令,还有一个
iptables save
,其中包括需要安装的chain

如何将等级库文件写入:

  • 将我的2个shell文件复制到/etc/
  • 执行
    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个文件,规范文件会变得有点混乱和肮脏。。。