Linux rpm安装源代码打包

运维 系统运维
spec文件规范能熟练掌握以上命令以及部分参数含义,管理日常的Linux rpm软件包就不成问题了。然而随着Linux风靡全球,越来越多的开发者喜欢采用Linux rpm格式来发布自己的软件包。那么Linux rpm软件包是怎样制作的呢?对大多数Linux开发工程师来说是比较陌生的。

Linux rpm更新了很多版本更新,我本人认为Linux rpm很好使的文件系统,在此向大家推荐。如今技术不断更新,各种使用文件都已经淘汰。我认为还是有很不错的如Linux rpm值得大家来运用。

一、安装Linux rpmbuild

// for fedora linux yum install Linux rpmbuild -y
// for ubuntu apt-get install Linux rpmbuild

二、Linux rpm specification file

spec文件规范能熟练掌握以上命令以及部分参数含义,管理日常的Linux rpm软件包就不成问题了。然而随着Linux风靡全球,越来越多的开发者喜欢采用Linux rpm格式来发布自己的软件包。那么Linux rpm软件包是怎样制作的呢?对大多数Linux开发工程师来说是比较陌生的。

其实,制作Linux rpm软件包并不是一件复杂的工作,其中的关键在于编写SPEC软件包描述文件。要想制作一个Linux rpm软件包就必须写一个软件包描述文件 (SPEC)。这个文件中包含了软件包的诸多信息,如软件包的名字、版本、类别、说明摘要、创建时要执行什么指令、安装时要执行什么操作、以及软件包所要 包含的文件列表等等。描述文件说明如下:

(1) 文件头

一般的spec文件头包含以下几个域:Summary:用一句话概括该软件包尽量多的信息。Name:软件包的名字,最终Linux rpm软件包是用该名字与版本号,释出号及体系号来命名软件包的。Version:软件版本号。仅当软件包比以前有较大改变时才增加版本号。

Release:软件包释出号。一般我们对该软件包做了一些小的补丁的时候就应该把释出号加1。Vendor:软件开发者的名字。Copyright:软件包所采用的版权规则。具体有:GPL(自由软件),BSD,MIT,Public Domain(公共域),Distributable(贡献),commercial(商业),Share(共享)等,一般的开发都写GPL。

  1. Group: 软件包所属类别,具体类别有:  
  2. Amusements/Games (娱乐/游戏)  
  3. Amusements/Graphics(娱乐/图形)  
  4. Applications/Archiving (应用/文档)  
  5. Applications/Communications(应用/通讯)  
  6. Applications/Databases (应用/数据库)  
  7. Applications/Editors (应用/编辑器)  
  8. Applications/Emulators (应用/仿真器)  
  9. Applications/Engineering (应用/工程)  
  10. Applications/File (应用/文件)  
  11. Applications/Internet (应用/因特网)  
  12. Applications/Multimedia(应用/多媒体)  
  13. Applications/Productivity (应用/产品)  
  14. Applications/Publishing(应用/印刷)  
  15. Applications/System(应用/系统)  
  16. Applications/Text (应用/文本)  
  17. Development/Debuggers (开发/调试器)  
  18. Development/Languages (开发/语言)  
  19. Development/Libraries (开发/函数库)  
  20. Development/System (开发/系统)  
  21. Development/Tools (开发/工具)  
  22. Documentation (文档)  
  23. System Environment/Base(系统环境/基础)  
  24. System Environment/Daemons (系统环境/守护)  
  25. System Environment/Kernel (系统环境/内核)  
  26. System Environment/Libraries (系统环境/函数库)  
  27. System Environment/Shells (系统环境/接口)  
  28. User Interface/Desktops(用户界面/桌面)  
  29. User Interface/X (用户界面/X窗口)  
  30. User Interface/X Hardware Support (用户界面/X硬件支持) 

Source:源程序软件包的名字。如 stardict-2.0.tar.gz。%description:软件包详细说明,可写在多个行上。

(2)%prep段

这个段是预处理段,通常用来执行一些解开源程序包的命令,为下一步的编译安装作准备。%prep和下面的%build,%install段一样,除 了可以执行Linux rpm所定义的宏命令(以%开头)以外,还可以执行SHELL命令,命令可以有很多行,如我们常写的tar解包命令。

(3)build段

本段是建立段,所要执行的命令为生成软件包服务,如make 命令。

(4)%install段

本段是安装段,其中的命令在安装软件包时将执行,如make install命令。

(5)%files段

本段是文件段,用于定义软件包所包含的文件,分为三类--说明文档(doc),配置文件(config)及执行程序,还可定义文件存取权限,拥有者及组别。

(6)%changelog段

本段是修改日志段。你可以将软件的每次修改记录到这里,保存到发布的软件包中,以便查询之用。每一个修改日志都有这样一种格式:***行是:* 星期 月 日 年 修改人 电子信箱。其中:星期、月份均用英文形式的前3个字母,用中文会报错。接下来的行写的是修改了什么地方,可写多行。一般以减号开始,便于后续的查阅。

三、源代码打包

将源代码打包,如 stardict-2.0.tar.gz,并将文件放到spec文件Source段所描述的路径下,通常为/usr/src/redhat/SOURCES/目录下(不同的Linux发布版本略有不同,如OpenSUSE为 /usr/src/packages/SOURCES/)

四、Linux rpm打包

Linux rpmbuild -ba ‘spec文件路径’(Linux rpmbuild常用参数: -bb 只编译二进制Linux rpm包 -bs 只编译源码Linux rpm包 -ba 同时编译二进制和源码Linux rpm包)build完后,可以在/usr/src/redhat/Linux rpmS/下找到二进制Linux rpm包,Linux rpm包按照其对应的cpu体系结构分类,通常在/usr/src/redhat/Linux rpmS/i386目录下/usr/src/redhat/SLinux rpmS/下找到源码Linux rpm包,此时由于是源代码,所以无须按体系结构分类。

【编辑推荐】

  1. Linux rpm包的更新和安装与删除
  2. SELinux服务器不关闭配置 samba的方法
  3. Linux进程状态解析之R、S、D
  4. Linux tomcat安装步骤测试JDK是否安装成功
  5. 简单概述Linux进程操作命令
责任编辑:佚名 来源: CSDN
相关推荐

2010-01-11 10:23:14

linuxrpm包

2015-08-28 09:38:51

Linux源代码分析工具

2010-03-17 15:09:31

Linux软件

2010-03-17 14:58:23

Linux软件

2015-08-26 17:38:47

Linux源代码

2010-06-03 10:15:35

2018-07-19 09:20:47

LinuxArchLinuxRPM包

2020-12-28 06:44:45

FedoraLinux RPM文件

2013-10-31 14:15:10

2010-03-01 15:55:00

Fedora Eva

2013-12-18 16:18:23

CentOShttpd源代码

2011-08-23 15:30:49

2011-01-10 11:29:01

linuxRPM

2010-02-04 14:06:01

Linux rpm包

2010-03-04 14:34:50

Linux操作系统

2011-01-21 09:00:21

sendmail

2010-06-22 16:05:40

Autoconf rp

2010-06-22 15:31:22

autoconf安装

2010-05-17 09:45:00

subversion源

2010-04-21 13:30:24

Linux rpm命令
点赞
收藏

51CTO技术栈公众号