我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

 平台:centos6.5

首先是搭建环境:

代码如下:

[cpp] view plaincopyprint?
</p><p>    [root@localhost binbin]#yum install -y rpm-build</span>  </p><p>[cpp] view plaincopyprint?
</p><p>    [root@localhost binbin]#yum install redhat-rpm-config

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

代码如下:

[cpp] view plaincopyprint?
</p><p>    [root@localhost rpmbuild]# pwd  
   /root/rpmbuild</span>

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

代码如下:

[html] view plaincopyprint?
</p><p>    [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?
</p><p>    [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?
</p><p>    [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?
</p><p>    [root@localhost SOURCES]#cd ../SPECS  
   [root@localhost SPECS]#touch login.spec  
   [root@localhost SPECS]#ls  
   login.spec  
   [root@localhost SPECS]#vim login.spec  </p><p>
[html] view plaincopyprint?
</p><p>    #名字  
   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?
</p><p>    [root@localhost SPECS]#rpmbuild -ba login.spec</span>


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

代码如下:

[html] view plaincopyprint?
</p><p>    [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?
</p><p>    [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”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍“CentOS下怎么将软件源码打包为RPM”,在日常操作中,相信很多人在CentOS下怎么将软件源码打包为RPM问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS下怎么将软件源码打包为
2023-06-10

Linux系统下怎么将源码包制作为rpm包

这篇文章主要讲解了“Linux系统下怎么将源码包制作为rpm包”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下怎么将源码包制作为rpm包”吧!1.要使用rpmbuild 这个命
2023-06-13

Linux下RPM软件包怎么安装与卸载

本篇内容主要讲解“Linux下RPM软件包怎么安装与卸载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下RPM软件包怎么安装与卸载”吧!在 Linux 操作系统下,几乎所有的软件均通过
2023-06-13

怎么将AndroidStudio工程打包为aab文件

本篇文章为大家展示了怎么将AndroidStudio工程打包为aab文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android Studio打包AAB文件 1、打开Android Studio
2023-06-20

怎么用pkg将Node.js项目打包为可执行文件

这篇“怎么用pkg将Node.js项目打包为可执行文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用pkg将Node.
2023-07-04

在Linux下怎么打包tar文件时添加密码

本篇内容主要讲解“在Linux下怎么打包tar文件时添加密码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux下怎么打包tar文件时添加密码”吧!在当前目录下有一个pma目录的文件夹:1
2023-06-13

mac系统提示无法打开因为apple无法检查其是否包含恶意软件怎么办?

在MAC系统中安装自己下载的软件,经常会提示“无法打开,因为apple无法检查其是否包含恶意软件”直接点击好按钮也无法使用,下面我们就来学习一下怎么编程客栈解决这个问题。 打开安装完成的app,弹出提示窗,点击【编程
2023-05-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录