CentOS系统下软件包的制作方法和过程详解

https://www.518cn.com   发布时间:2025-03-18 09:09   作者:网络
摘要:今天小编将为大家带来的是CentOS系统下软件包的制作方法和过程详解;希望对大家会有帮助,有需要的朋友一起去看看吧

总的情况下Linux下软件安装主要有三种方式:

一种是源码安装,需要用户自己手动编译

另一种是RPM包(RedHat Linux Packet Manager),通过RPM命令就可以实现安装

还有一种为*.bin文件,安装方法与Windows下的安装过程类似

通常情况下Linux 安装软件主要通过以下两种方式

①   文件名形如xxx.i386.rpm ,软件包以二进制形式发布.

②   文件名形如xxx.tar.gz ,软件包多以源码的形式发布.

Linux软件包管理可以分为三类:二进制包的管理,源代码包的管理,脚本安装

另外值得注意的是目前存在各种Linux的发行版获取和安装软件的方式也有很多例如

【】redhat/centos的yum安装(有专门的镜像源)

【】Ubuntu/Fedora/Debian的sudo apt-get适用于deb包进行管理安装

【】也有的软件是通过刻盘加密的形式然后进行安装的(例如cnyunwei)

【】在系统运维管理人员方面也有通过ssh、C/C 语言或者py执行的一些软件命令进行自动化管理的应用,这里就不做详细介绍了。

下面有一张图可以清晰地表示linux软件应用的架构关系:

在Linux启动的时候。首先会启动内核(kernel),内核是一段计算机程序,这个程序直接管理管理硬件,包括CPU、内存空间、硬盘接口、网络接口等等。所有的计算机操作都要通过内核传递给硬件。我们可以看到,Linux利用kernel实现软硬件的对话。通过系统调用的这个重要的接口,Linux将上层的应用与下层的kernel完全分离开,为程序员隐藏了底层的复杂性(相应的,也提高了上层应用的可移植性)。当我们在升级kernel的时候,也可以保持系统调用的语句不变,从而让上层应用不感受到下层的改变。库函数利用系统调用创造出模块化的功能,而shell则提供了一个用户界面,并让我们可以利用shell的语法编写脚本,以整合程序。有了这些思想我们可以快速地了解linux的软件应用的安装和工作原理,也因此为了方便和获取更多企业应用我们需要在linux系统上开发并且通过源码编译的方式制作各种软件包从而为信息化时代服务。

本文主要介绍源码安装与RPM包的安装

源码包和商业软件包根据各个公司或作者的实际情况出发(可以是tar等格式的压缩包,也可以是bin的源程序,可以是已经编译好了的直接拿来运行的文件,也可以是光盘虚拟化文件等其他介质来制作发布的iso文件等)封装成一种特定的格式发布从而进行相应的软件服务。其实通过yum或者make install命令安装的软件在系统都会自动生成rpm包(只是参数和功能模块差异和严谨的)

简介:

RPM(RedHat Package Manager,红帽子软件包管理器)用于软件包的安装、查询、升级、校验、卸载,以及生成.rpm格式的软件包   RPM的使用前

挂载linux系统(centos4为例)的安装光盘,当然也可在网上下载免费的RPM包.

# mount/dev/cdrom           ---挂载光盘

# cd/media/cdrom/CentOS/RPMS ---进入光盘中RPM包的目录(可以通过#mount命令来查看光盘的挂载点一般会在最后一行显示)

# ls

一、源码包安装

1、*.src.rpm形式的源代码软件包

用法:

安装:   rpm –rebuild *.src.rpm

cd /usr/src/dist/RPMS

            Rpm –ivh *.rpm

卸载:   rpm –e packagename

2、.tar.gz,*.tgz,*.bz2形式软件包的安装

首先进行解压,命令如下

     tar zxvf   *.tar.gz

     tar xvfz   *.tgz

     tar xvfj    *.tar.bz2

解压之后进入解压目录,然后进行以下操作(一般情况,具体看软件包的文件名)

配置:./configure

编译:make

安装:make install

卸载:make uninstall

源码安装有一定的难度,不同的软件可能有不同的安装,一般在解压之后应该先阅读说明文档,按照说明进行安装,上面说的只是一般情况。

二、RPM包安装

     RPM安装包格式是由Redhat公司提出的,大大的简化了Linux下软件的安装,首先介绍一下通用选项。

     -v:显示附加信息

     -vv:显示调试信息

     --root directory:让RPM以directory作为根目录,这样预安装程序和后安装程序都会安装到这个目录下。

     1、安装:rpm –i<options> file.rpm

     Options:

    h:安装时输出hash记号

     test:只对安装进行测试,不真正安装

     --persent:以百分比形式显示安装进度

     --excludedocs:不安装软件包中的文档

     --replacepkgs:强制重新安装

     --replacefiles:替换属于其它软件包的文件

     --force:忽略软件包及文档冲突

     --ignorearch:不校验软件包结构

     --ignoreos:不检查软件包运行的操作系统

     --nodeps:不检查依赖性关系

--noscripts:不运行预安装和后安装脚本程序

     2、删除 rpm –e<option> pkgname

Option:

--test:只做删除测试,不真正删除

--noscripts:不运行预安装和后安装脚本程序

--nodeps:不检查依赖性

注意:pkgname是软件包的名字,不是rpm包名字,而是安装后软件包的名字,可以用查询命令来查询软件包名。

3、升级 rpm–U(或者—upgrade)<option>file.rpm

Option:

基本与安装时的option一样,有几个特殊的:

--oldpackage:允许一个旧版本

4、查询 rpm –q(或者--query)<option>

Option:

-p PACKAGE_FILE:查询软件包的文件

-f FIEL:查询FILE属于哪个软件包

-a:查询所有安装的软件包

-g group:查询属于group组的软件包

--whatproVidesCAPABILITY:查询提供了CAPABILITY功能的软件包

--whatrequiresCAPABILITY:查询所有需要CAPABILITY功能的软件包

-i:显示软件包的概要信息

-l:显示软件包中的文件列表

-c:显示配置文件列表

-s:显示文件列表

-scripts:显示安装、卸载,校验脚本

--qf:以用户指定的方式查询

--dump:显示每个文件的校验信息

--proVides:显示软件包提供的功能

-R:显示软件包需要的功能

5、校验已经安装的软件包 rpm –V(or –verify,or –y)<option>

Option选项与其它命令的类似

6、校验软件包中的文件 rpm –K(or –checksig)<option> file.rpm

Option:

-v:显示版本信息

-vv:显示调试信息

--rcfile FILELIST:设置rpmrc 文件为FILELIST

7、其它RPM选项

--rebuilddb:重建RPM资料库

--initdb:创建一个新的RPM资料库

--quiet:尽可能地减少输出

--help:显示帮助文件

--version:显示RPM当前版本

上面只是对常用选项的总结,具体还有什么问题,可以用man rpm命令进行查看,官方文件永远最好的老师。

三、*.bin格式安装文件的安装

只需双击或单击*.bin文件就可以根据提示安装了,不再敷述。

要想制作一个RPM格式的软件包,需要编写软件包描述文件。其标准命名格式为:软件名-版本号-释出号.spec(现在大多情况下都是直接用:软件名.spec),这个文件,详细描述了有关该软件包的诸多信息,如软件名,版本,类别,说明摘要,创建时要执行什么指令,安装时要执行什么操作,以及软件 包所要包含的文件等等。有了这个文件,RPM就可以制作出相应的包裹文件来。当然现在也有例如Source rpm这样开源的包制作辅助工具只要一个程序源即可通过向导下一步即可制作。

简单的一个制作例子:

其实最好的办法是做个软件包。我记得 rpm 和 debian 都有快速打包的开源软件可以直接拿来使用即可。

eg>>将nginx的tar包制作为RPM包

1.      下载nginx的源码包

2.      将文件放到/usr/src/redhat/SOURCES/目录下

3.      编写SPEC文件

[root@mail SPECS]# vinginx-0.8.35.spec

Summary:the first rpmpackage

Name:nginx

Version:0.8

Release:35

Vendor:chenwei01@corp.the9.com

License:Share

Group:Applications/Text

Source0:nginx-0.8.35.tar.gz

您可能感兴趣的文章:

    相关文章

    最新评论