千家信息网

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

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"CentOS下怎么将软件源码打包为RPM",在日常操作中,相信很多人在CentOS下怎么将软件源码打包为RPM问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年11月03日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安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 湖南永感互联网科技有限公司 国智互联网科技 互联网络科技有限公司 平安科技 互联网 上海挚品互联网科技 互联网 卓越科技 互联网科技小贷 互联网 的科技创新 互联网高科技股票 济南华为互联网科技产业总部基地 北京大学互联网科技怎么样 湖南诚度互联网科技有限公司 荆州市昕露互联网络科技有限公司 移动互联网年度科技创新 东莞新华互联网科技学校 互联网科技收购价值 中国互联网公司的科技投入 互联网的黑科技实验室 小牛互联网科技有限公司地址 广州万易互联网科技有限公司 金融科技创新监管互联网金融 互联网 新科技 太原新华互联网科技学校怎么样 央行互联网金融科技公司 互联网时代科技改变生活 福建科技产业互联网发展 洛阳共同富裕互联网科技有限公司 互联网风格科技公司名称 科技信息时代互联网发展
0