首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建规范文件( RPM)

问如何创建规范文件( RPM)
EN

Stack Overflow用户
提问于 2013-02-24 19:45:42
回答 2查看 17.3K关注 0票数 3

我有两个包含要执行的shell命令的文件,还有一个包含需要安装链的iptables-save

如何将规范文件写入:

  1. 将我的2个shell文件复制到/etc/
  2. 执行iptables-restore < /home/iptables-save

记者:我经历了这件事。不幸的是,我是新手,我找不到解决办法。

EN

回答 2

Stack Overflow用户

发布于 2013-02-24 20:55:13

昨天才这么做的。

以普通用户的身份在您的家庭中创建构建目录--不要使用root,只需要这样做就可以了。

代码语言:javascript
复制
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的内容应该包含以下内容

代码语言:javascript
复制
%packager Chris Hinshaw
%_topdir /home/chinshaw/rpmbuild
%_tmppath /home/chinshaw/rpmbuild/tmp

接下来,创建在~/rpmbuild/SPECS/中找到的rpm规范。这个示例规范文件将处理一个名为演示脚本的脚本,它是进入etc的配置文件,以及第三个cron脚本,它将安排脚本每小时运行一次。

~/rpmbuild/SPECS/demoproject.spec

代码语言:javascript
复制
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目录应该如下所示。

代码语言:javascript
复制
$ 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 rpms和srpms,并将它们放置在~/rpmbuild/RPMS和~/rpmbuild/SRPMS目录中。

票数 6
EN

Stack Overflow用户

发布于 2013-02-24 20:41:03

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15055841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档