RPM软件包的制作

    RPM软件包的制作要用到Tarballs源代码包。先回顾一下Tarballs软件包的制作方法:
    tar cvf:打成.tar包(可再用gzip压缩成.tar.gz包)。
    tar xvf:从.tar包中解包(对.tar.gz包可先用gunzip或gzip -d解压)。

    注意:对于.tar.bz2型的包,使用bzip2(-d),bunzip2。
    tar zcvf:直接打包压缩成.tar.gz包。
    tar zxvf:直接从.tar.gz包解压。

    注意:对于.tar.bz2型的包,把z选项换成j选项。
    tar tvf:列出包中的内容
    tar rvf:向包中追加指定文件
    tar dvf:从包中删除指定文件
    tar uvf:只追加比包中的原来文件更新的文件
    Linux下软件包的命名格式:name-version-release.architecture.deb(.rpm等)
    Tarballs软件包的命名格式:name-version.tar.gz或name-version.tgz
    要制作RPM软件包,先要安装RPM软件包管理器,在RedHat/Fedora系列中一般会自带,在Ubuntu中则要自己要安装(sudo apt-get install rpm,或在新立得软件包管理器中安装)。基本的RPM命令如下:
    查看软件包:rpm -qpi
    安装软件包:rpm -ivh
    升级软件包:rpm -Uvh
    查询软件包是否已安装:rpm -qa
    RPM软件包构建目录:一般为/usr/src/redhat或/usr/src/rpm(Ubuntu下)。这下面有五个目录BUILD,RPMS(里面有面向不同CPU架构的子目录athlon,i386,i486,i586, i686,noarch), SOURCES,SPECS, SRPMS
    创建RPM软件包的过程:收集软件包的源文件、Makefile文件、帮助文件等放在一个name-version目录中,打成一个name-version.tar.gz源文件包,放在SOURCES目录下;创建spec文件放在SPECS目录下(也可不放在这);用rpmbuild命令建立软件包
    spec文件格式:
    先定义描述信息(导言):Vendor,Distribution,Name,Version,Release,Packager,License, Group。最重要的是Name、Version和Release三个,他们的值在后面一般要用到。
    Vendor:发行厂商
    Distribution:发行方式
    Name:软件包名
    Version:版本号
    Release:发行版本号
    Packager:一般为开发者的Email地址
    Licence:版权信息
    Group:应用程序分类信息,用于帮助图形化安装程序来对程序分类
    定义构建信息:
    Provides:定义软件的功能
    Requires:定义依赖的其他软件包
    Buildroot:定义安装时的测试目录
    Source:定义所需源文件包名,一般为%{name}-%{version}.tar.gz
    Summary:定义软件的摘要
    %description:定义软件的描述信息
    下一步定义如何建立软件包:
    %prep:定义准备工作,一般运行%setup -q设置为安静模式(即编译时不会打印编译过程的信息)
    %build:定义构建过程。一般直接用make命令,以便用源文件包的Makefile来进行构建
    %install:定义安装过程。一般直接用%makeinstall宏,表示运行Makefile中的install目标
    %clean:定义清除所有由rpmbuild命令创建的文件
    %file:指定要安装的文件,一般有可执行程序、库文件、使用手册
    %post:指定安装后要执行的命令
    spec文件的常用内置宏:%{name},%{version},$RPM_BUILD_ROOT为Buildroot指定的目录,%{_tmppath}一般为/var/tmp,%{_bindir}一般为/usr/bin,%{_mandir}一般为/usr/share/man
    下面是一个spec文件的例子,原型来自于<<Linux程序设计(第3版)>>。先要把myapp程序相关的源文件(a.h,b.h,c.h,2.c,3.c,foo.c,main.c)、Makefile文件、帮助文件(myapp.1)等放在目录myapp-1.0中,打成myapp-1.0.tar.gz源文件包,放在SOURCES目录下。

    然后用rpmbuild -ba myapp.spec来建立RPM软件包。执行完后,在RPMS目录中就有二进制软件包myapp-1.0-1.i386.rpm,在SRPMS目录下就有源代码软件包myapp-1.0-1.src.rpm。
    rpmbuild命令的一些选项:
    -ba:同时建立二进制包和源代码包
    -bb:只建立二进制包
    -bc:只编译程序,不制作完整的RPM包
    -bp:为建立一个二进制软件作好准备
    -bi:创建二进制RPM软件包并且安装它
    -bl:检查RPM软件包中的文件列表
    -bs:只建立源代码软件包

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值