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
转载于:https://blog.51cto.com/fsxchen/971112