千家信息网

CentOS下怎么将软件源码打包为RPM

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"CentOS下怎么将软件源码打包为RPM",在日常操作中,相信很多人在CentOS下怎么将软件源码打包为RPM问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年12月02日CentOS下怎么将软件源码打包为RPM

这篇文章主要介绍"CentOS下怎么将软件源码打包为RPM",在日常操作中,相信很多人在CentOS下怎么将软件源码打包为RPM问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"CentOS下怎么将软件源码打包为RPM"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

平台:centos6.5

首先是搭建环境:

代码如下:

[cpp] view plaincopyprint?

[root@localhost binbin]#yum install -y rpm-build

[cpp] view plaincopyprint?

[root@localhost binbin]#yum install redhat-rpm-config

之后会在/root目录下有一个rpmbuild目录

代码如下:

[cpp] view plaincopyprint?

[root@localhost rpmbuild]# pwd
/root/rpmbuild


进入该目录,里面有五个文件夹分别是BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
刚开始时都是空的

代码如下:

[html] view plaincopyprint?

[root@localhost rpmbuild]# ls
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS


如果没有这几个目录可以手动添加创建


这六个目录的作用分别是:
BUILD :rpmbuild编译软件的目录
BUILDROOT :
RPMS :rpmbuild创建binary RPM 所存放的目录
SOURCES :存放源代码的目录
SPECS :存放spec文件的目录
SRPMS :rpmbuild创建souce RPM 所存放的目录

首先是将放置有源码的文件夹进行打包。此处我的文件夹起名为login-1.0

代码如下:

[cpp] view plaincopyprint?

[root@localhost binbin]#tar zcvf login-1.0.tar.gz login-1.0
[root@localhost binbin]#ls
login-1.0.tar.gz login-1.0


将login-1.0.tar.gz拷贝至rpmbuild/SOUCES目录下

代码如下:

[html] view plaincopyprint?

[root@localhost binbin]#cp login-1.0.tar.gz /root/rpmbuild/SOURCES
[root@localhost SOURCES]# ls
login-1.0.tar.gz

此时进入SPEC目录,编写SPEC文件(此步是打包rpm包的关键一步)

代码如下:

[html] view plaincopyprint?

[root@localhost SOURCES]#cd ../SPECS
[root@localhost SPECS]#touch login.spec
[root@localhost SPECS]#ls
login.spec
[root@localhost SPECS]#vim login.spec


[html] view plaincopyprint?

#名字
Name: login
#版本号
Version:1.0
#编译的次序
Release:1
#一句话介绍包 (不超过50个字符)
Summary: is test
Group: Applications/Communications
License: GPL
URL: www.ciis.com
#要安装的压缩包源文件
Source: login-1.0.tar.gz

BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
a test
#构建包前的处理
%prep


#-- 解压:这里主要是构建的时候解压缩源码到系统目录,这里是$RPM_BUILD_DIR
# setup -c 解压的时候会生成一个和压缩包同名的新目录 ; setup -n dirname 指定一个新的目录以解压缩 setup -q 直接解压,不产生新的目录
%setup -q


#-- 生成:这里主要是构建二进制包的的时候执行编译生成二进制文件
%build
make


#-- 安装:构建的时候把当前文件安装到系统目录$RPM_BUILD_ROOT/下,二进制安装的时候是安装文件到/根目录下
%install


#make install #使用makefile的install,方便
#没有makefile,自定义安装脚本
rm -rf $RPM_BUILD_ROOT/*
mkdir -p $RPM_BUILD_ROOT/usr/bin/
cp -r $RPM_BUILD_DIR/%{name}-%{version} $RPM_BUILD_ROOT/usr/bin/


#安装完成后续:二进制包安装后的处理脚本
%post
chmod +x /usr/bin/%{name}-%{version}/confAgent
chmod +x /usr/bin/%{name}-%{version}/check_confAgent.sh


#卸载完成后续:二进制包卸载完成后的处理脚本
%postun
rm -fr /usr/bin/%{name}-%{version}


#清理:构建包完成后处理
%clean
rm -rf $RPM_BUILD_ROOT


#文件列表:指示哪些文件应该被安装到系统中以及安装的目录;
#构建包时,文件列表的文件或目录必须和虚拟目录RPM_BUILD_ROOT中的文件或目录一致,否则构建时会
#提示找不到文件
%files
%defattr(-,root,root)
/usr/bin/%{name}-%{version}


%changelog

保存退出,执行打包命令

代码如下:

[html] view plaincopyprint?

[root@localhost SPECS]#rpmbuild -ba login.spec


之后会在RPMS/i686目录下有相应的rpm包,这里是login-1.0-1.i686.rpm

代码如下:

[html] view plaincopyprint?

[root@localhost SPECS]# cd ../RPMS/i686
[root@localhost i686]# pwd
/root/rpmbuild/RPMS/i686
[root@localhost i686]# ls
login-1.0-1.i686.rpm

测试安装

代码如下:

[html] view plaincopyprint?

[root@localhost binbin]#ls
login-1.0-1.i686.rpm
[root@localhost binbin]#rpm -ivh login-1.0-1.i686.rpm
[root@localhost binbin]#/usr/bin/login-1.0/demo

即可运行客户端

到此,关于"CentOS下怎么将软件源码打包为RPM"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

目录 文件 代码 源码 软件 二进制 时候 处理 学习 文件夹 系统 脚本 生成 编译 下有 更多 帮助 实用 一致 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 信用社 网络安全宣传 肖战网络安全湖南 网络安全课题分析报告 jvav软件开发代码 浙江正规软件开发如何收费 2019年世界网络技术排名 业务软件开发排名 普陀区节能软件开发服务不二之选 公共文化服务体系建设数据库 数据库中m_id是什么类型 ps4切换账号服务器连线被切断 异步服务器和客户端 bs软件系统怎么部署到服务器 cf哪个服务器有剑客模式 静安区推广软件开发销售价格 暴雪战网能换服务器吗 电信4g网络连接不上服务器 本地ip映射到服务器公网ip 6g网络技术创世纪愿景 中国上市公司专利数据库 服务器怎样屏蔽任务管理器 如何管理信息中心的服务器 为什么查找不到数据库 网络安全建一流的什么学院 软件开发用什么品牌笔记本 国际服什么服务器容易上战神 评论怎么保存 数据库 智能家庭软件开发部前景怎么样 网络安全红队行动 小孩子讲的网络安全的ppt
0