永发信息网

如何在Linux中创建RPM包

答案:1  悬赏:50  手机版
解决时间 2021-11-08 13:51
如何在Linux中创建RPM包
最佳答案
我用的linux版本是红帽企业的5.5。这个版本创建的RPM包默认是在/usr/src/RedHat/目录中,所以在这个目录测试。RPM包包含两个文件:一个shell脚本以及一个README文件,README文件描述了如何使用该shell脚本。如果你能创建有两个文件的软件包,那么你也可以创建更大的软件包。
创建简单RPM包的过程
1.创建一个目录结构,把RPM包所需要的文件包含进去。这个结构的名字通常以RPM包的名字命名,包括它的版本号。。我们把这个目录命名为test-1.0。下面的命令告诉你如何创建并命名这个目录,已经如何把所需要的文件放在里面:
$ cd /usr/src/redhat
$ mkdir test-1.0
$ cd test-1.0
$ echo echo this is a test > test.sh
$ chmod +x test.sh
$ echo just launch the script > README
2.现在,RPM包所需要的全部文件都在这里了。下一步就是创建一个包含RPM文件的.tar.gz文件。这个 目录还让创建档案文件更加简单。该.tar.gz文件需要位于名为rpmbuild/SOURCES的目录下。你还需要一个.specs文件,这个文件包含所有建立RPM包的规范说明。该.specs文件是RPM包的核心组件,里面包括全部文件的 指示,RPM包中的文件按照这些指示进行安装。该.specs文件应该放置在一个SPECS目录下。
第一个cd命令确保rpmbuild目录位于当前用户的home目录下。请以普通用户身份执行以下命令:
$ cd
$ mkdir -p rpmbuild/SOURCES
$ mkdir -p rpmbuild/SPECS
$ tar -cvzf rpmbuild/SOURCES/test-1.0.tar.gz test-1.0
3.现在文件都各就各位,请以普通用户身份创建一个说明文件。Rpmbuild 命令将会找到所有需要的指示来创建该文件。在最近的Red Hat和衍生版本中,创建说明文件很容易:只需要用vim编辑器创建一个包含所有内容的文件,扩展名设为.spec即可。下面是test-1.0rpm包 中该文件的样子(模板改变的地方已用粗体标出):
Name:test
Version:1.0
Release:1%{?dist}
Summary:A test package
Group:Test Packages
License:GPL

Source0:%{name}-%{version}.tar.gz
BuildRoot:%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: /bin/rm, /bin/mkdir, /bin/cp
Requires: /bin/bash, /bin/date
%description
部署单一文件包的演示
%prerp
%setup –q
%build
#configure
#make %{? _smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
#make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
cp /usr/src/redhat/test-1.0/test.sh  $RPM_BUILD_ROOT/usr/local/bin
%clean
rm -rf $RPM_BUILD_ROOT
%files
#%defattr(-root,root,-)
#%doc
%attr(0755,root,root)/usr/local/bin/test.sh
#%changelog
#* Today
#- Creation of initial RPM
现在.spec文件创建完成,是时候完成最终的工作了。请使用根目录用户身份安装rpmbuild命令。在Red Hat中,请用yum install rpm-build完成这项工作。接下来,请确保所有的文件都呆在正确的地方。Tar存档文件必须位于创建软件包的当前用户帐户的~/rpmbuild /SOURCES 目录下,demo.spec文件必须位于~/rpmbuild/SPECS目录下。现在你可以用rpmbuild -ba test.spec命令来创建软件包了。这会在/usr/src/redhat/RPMS目录下创建你的RPM文件。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DM800怎么上传台标
mysql根据时间段查询按小时统计
Mac Pro 桌面出现这样的小图怎么删掉
E+E是什么牌子的牛仔裤?后面还有JEANS 下面还
坚持锻炼的好处有哪些 三大益处你要知晓
西峰大队车管所科目二考场地址在哪,我要去那
驻马店正阳县距离夏庄镇几公里
求一首最近抖音听的歌曲
天津服装五厂历史谁知道?
什么时候以前退休的算中人
OPPO的充电线坏了,需要去OPPO的什么店买,还
鄞州失业金在什么地方领!
京洗(魏公村店)地址在什么地方,我要处理点事
川大网院的学士学位证书上 印是“四川大学网
“一起一伏如蛇走,七通八达一路顺”是什么意
推荐资讯
电喷柴油机怎么排空气,没有手泵的。
青海万华金鹰汽车销售服务有限公司地址有知道
新疆建设银行机动车便民服务站地址有知道的么
烤8寸的蛋糕需要多大的烤箱
我也是的28号提的现,到现在还没有到账
将截断字符串或二进制数据.语句已终止.该怎么
酸辣三丝的做法,酸辣三丝怎么做好吃,酸辣三
姊这个是姐姐的意思那妹妹是什么?
除夕说明文600
滨来高速苗山段限速多少
立刷pos 机是合法的吗,需要注意有什么风险
求英文歌曲《生性寡情》的中文翻译。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?