rpm包的制作

rpm包的制作
构建RPM包的五个步骤:
a.Tarall:获得包含源的tar文件,rombuild假定存档的顶级目录命名为Packagename-Version,该文件放置在~/rpmbuild/SOURCES/
b.Spec文件:创建spec文件并填写所需字段。将该文件放置在~/rpmbuild/SPECS/目录中
c.rpmbuild:使用rpmbuild命令构建软件包。
        rpmbuild -ba demo.spec
d.签署:使用GPG密钥签署RPM软件包。可以使用rpmbuild -ba -sign demo.spec一步完成构建和签署软件包。使用rpm --resign demo-1.0.x86_64.rpm添加或更改GPG签名
e.测试
1.vim foo.spec                        //编辑spec文件  
    Group:          helloing
    License:        GPL
    URL:            www.example.com/test
    Source0:
    BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

    BuildRequires:    /bin/rm,/bin/mkdir,/bin/cp
    Requires:    /bin/bash,/bin/hello
    BuildRequires:     %install  中要是用的命令

    %configure
    make %{?_smp_mflags}


    %install
    rm -rf $RPM_BUILD_ROOT
    make install DESTDIR=$RPM_BUILD_ROOT
如果安装中没有使用到源码安装,那么configure,make,make install都要注释掉,并且要先去掉%,否则注释无效。
    %install
    rm -rf $RPM_BUILD_ROOT
    #make install DESTDIR=$RPM_BUILD_ROOT
    mkdir -p $RPM_BUILD_ROOT/usr/local/bin
    cp hello $RPM_BUILD_ROOT/usr/local/bin

    %clean
    rm -rf $RPM_BUILD_ROOT

    %attr(0755,root,root)/usr/local/bin/hello          //添加文件文件的权限
2.yum install rpm-build -y
  rpmbuild foo.spec
  此时可定会报错error: File /root/rpmbuild/SOURCES/hello-1.0.tar.gz: No such file or directory。根据错误提示,建立文件!
  mkdir -p /root/rpmbuild/SOURCES/
  然后建立源文件放到目录中 
    mv hello-1.0.tar.gz ./rpmbuild/SOURCES/
       cp foo.spec ./rpmbuild/SPECS/
3.准备GPG签名密钥
    gpg --gen-key              //按提示完成即可 
       gpg --fingerprint           //查看公钥ID,后面要用到
    gpg -a -o ./RPM-GPG-KEY-hello --export 32EA9B70   //导出公钥
    echo '%_gpg_name 32EA9B70'> ./.rpmmacros   //RPM 将用您
在上面创建的密钥签署软件包
4.rpmbuild --sign -ba foo.spec           //构建和部署
5.
[root@server48 ~]# cd ~/rpmbuild/RPMS/x86_64/
[root@server48 x86_64]# ls
hello-1.0-1.el6.x86_64.rpm

 

你可能感兴趣的:(rpmbuild)