简单RPM包制作教程

2018-03-23 10:09:29 2629

做一个最简单rpm,仅仅就是做一个测试所以没有添加需要编译的文件,而是只使用了一个shell文件来输出Hello World。


1. 下载安装rpm包制作工具

$ sudo yum install -y rpm-build rpmdevtools 2. 运行 rpmdev-setuptree 来生成一个 rpm 包的骨架目录
$ rpmdev-setuptree

rpmdev-setuptree命令默认将再当前用户的根目录下创建一个RPM构建根目录结构 ~/rpmbuild/  


3. 生成源代码包

mkdir -p ~/rpmbuild/SOURCES/helloworld-1.0.0  
touch ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld  
chmod 755 ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld  
echo '#!/bin/sh' >> ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld  
echo 'echo Hello World!' >> ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld  
cd ~/rpmbuild/SOURCES; tar zcvf helloworld-1.0.0.tar.gz helloworld-1.0.0

4. 在 ~/rpmbuild/SPECS 目录下用 rpmdev-newspec 来生成一个 spec 骨架文件

$ rpmdev-newspec  helloworld.spec  

编辑 helloworld.spec 文件,内容如下:

Name:           helloworld  
Version:        1.0.0  
Release:        1%{?dist}  
Summary:        helloworld  
  
Group:          Development/Tools  
License:        GPL  
#URL:              
Source0:        %{name}-%{version}.tar.gz  
  
#BuildRequires:    
#Requires:           
  
%description  
  
%prep  
%setup -q    
  
%build  
mkdir -p $RPM_BUILD_ROOT/usr/bin  
cp $RPM_BUILD_DIR/%{name}-%{version}/helloworld $RPM_BUILD_ROOT/usr/bin/   
  
%install  
  
%clean  
rm -rf $RPM_BUILD_ROOT  
%files  
%defattr(-,root,root,-)  
%doc  
/usr/bin/helloworld  
  
%changelog

5. 打包

rpmbuild -ba SPECS/helloworld.spec

6. 测试

安装测试

sudo yum install ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el6.x86_64.rpm 6.2 升级测试

修改 helloworld.spec 文件,将其中 Release 修改为

Release:        2%{?dist}

然后运行 "rpmbuild -ba SPECS/helloworld.spec" 打包

最后运行使用下面的命令来升级 rpm 包:

sudo yum update ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-2.el6.x86_64.rpm

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: