Linux 下制作rpm软件包demo

1.说明:
rpm软件包主要用在Linux 的reddat系列的发行版中,因此rpm软件包只适用于redhat系系.

2.编写测试代码:

1.创建一个目录
mkdir test
2.进入到上一步创建的目录下编辑文件

编辑 test.c
内容如下:
#include <stdio.h>
int main()
{
        printf("hello world!\n");
        return 0;
}

编辑Makefile
BIN_FILE = test-hello
BIN_PATH = /usr/local/bin

all:
    gcc test_hello.c -o $(BIN_FILE)

install:all
    test -d $(RPM_BUILD_ROOT)$(BIN_PATH) || mkdir -p $(RPM_BUILD_ROOT)$(BIN_PATH)
    install -m 755 $(BIN_FILE) $(RPM_BUILD_ROOT)$(BIN_PATH)

unstall:
    rm $(RPM_BUILD_ROOT)$(BIN_PATH)/$(BIN_FILE)

    clean:
        rm $(BIN_FILE) -rf

3.make ;make install 看是否有错误,是否安装到指定路径下,测试没问题则开始制作rpm软件包。

4.编写spec文件

1.编辑spec文件
Name:       test
Version:    1.0
Summary:    test
Release:    00%{?dist}
Group:      Applications/Text
Source:     %{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
URL:        www.test.com.cn
License:    GPL

%description
test rpm package
%prep
%setup
%build  
make
%install
make install
%clean
%files
/usr/local/bin/test-hello
%pre
%post
%preun
%postun

2.spce文件介绍
    spce文件可以理解为制作rpm软件包的规则,及按照什么样的规则生成怎样的软件包。
    spac文件的选项有很多,在这里只介绍常用的几个选项,另外spce文件也没有必要完全重头开始编辑,可以从其他软件包中获取,保留需要的选型,有哪些选项不懂可以单独查找资料,没有必要全部记住,当然这也不太现实。
    下面针对一些常用的参数做一个简单的说明:
    1.与软件包相关的设置
    Name:       test  #软件包的名称
    Version:    1.0   #软件包的版本
    Summary:    test  #软件摘要
    Release:    00%{?dist}   #软件包发布的号
    Group:      Applications/Text   #软件分类,属于那个类别
    Source:     %{name}-%{version}.tar.gz   #源码tar包名称
    BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root    #用于测试安装的目录 注意该路径可以用变量     RPM_BUILD_ROOT来引用,因此在上面的Makefile中我们用到了此变量,注意该变量只有在打包(rpmbuild)时才会有值。
    URL:        www.test.com.cn    #软件网站url 无关紧要,可以随便修改
    License:    GPL    #软件版权 无关紧要,可以随便修改

    2.建立软件包:
    %prep    #用于编译之前的准备工作,比如自动生成Makefile 打patch等工作,一般情况下用%setup
    %setup   #默认的编译前的准备工作(将源码解压到BUILD目录下) -q 参数 安静模式即没有输出
    %build   #用于生成应用程序 一般直接使用make 即rpmbuild会调到源码中的Makefile
    %install #应用程序的安装 如果在Makefile 中已经考虑到临时测试的安装目录(RPM_BUILD_ROOT)则可以直接 make install
 如果Makefile中没有考录RPM_BUILD_ROOT则在此处install时必须手动install,调Makefile的install是不会将文件打到包中的,推荐在Makefile中考虑到RPM_BUILD_ROOT变量,在install时直接install即可。
    %clean   #清理所有由rpmbuild创建的文件

    3.定义所有需要安装的文件
    %file   #定义所有需要安装的文件

    4.安装前后运行的脚本
    %pre    #安装前执行的脚本
    %post   #安装后执行的脚本
    %preun  #卸载前执行的脚本
    %postun #卸载后执行的脚本

5.制作rpm软件包

1.将test目录重命名为test-1.0   打成tar包        
    tar zcvf test-1.0.tar.gz test-1.0
2.将tar包拷贝到/root/rpmbuid/SOURCE/下,如果该路劲不存在先创建
    cp test-1.0.tar.gz  /root/rpmbuid/SOURCE/
3.将test.spec拷贝至/root/rpmbuid/SPECS/下,如果该路劲不存在先创建
    cp test.spec /root/rpmbuid/SPECS/
4.rpm安装包生成
    cd /root/rpmbuid/SPECS/ 
    rpmbuild -ba test.spec 或 rpmbuild -bb test.spec
    -ba 会生成source包(即包含源码),-bb只生成二进制包
5.生成的rpm包在/root/rpmbuid/RPMS/下,生成的带远吗的src.rpm包在/root/rpmbuid/SRPMS/下。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值