懂视

Linux系统下软件包的制作方法和过程1

2024-12-25 01:14:23

系统大全为您提供 总的情况下Linux下软件安装主要有三种方式:一种是源码安装,需要用户自己手动编译另一种是RPM包(RedHatLinuxPacketManager),通过RPM命令就可以实现安装还有一种为*.bin文件,安装方法与Windows下的安装过程类似  通常情况下Linux安装软件主要通过以下两种方式①文件名形如xxx.i386.rpm,软件包以二进制形式发布.②文件名形如xxx.tar.gz,软件包多以源码的形式发布.Linux软件包管理可以分为三类:二进制包的管理,源代码包的管理,脚本安装 另外值得注意的是目前存在各种Linux的发行版获取和安装软件的方式也有很多例如【】redhat/centos的yum安装(有专门的镜像源)【】Ubuntu/Fedora/Debian的sudoapt-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/devrom ---挂载光盘# cd/mediarom/CentOS/RPMS ---进入光盘中RPM包的目录(可以通过#mount命令来查看光盘的挂载点一般会在最后一行显示)# ls一、源码包安装1、*.用法:安装: rpm –rebuild *.cd /usrc/dist/RPMSRpm –ivh *.rpm卸载: rpm –e packagename2、.tar.gz,*.tgz,*.bz2形式软件包的安装首先进行解压,命令如下tar zxvf *.tar.gztar xvfz *.tgztar xvfj *.tar.bz2解压之后进入解压目录,然后进行以下操作(一般情况,具体看软件包的文件名)配置:./configure编译:make安装:make install卸载:make uninstall源码安装有一定的难度,不同的软件可能有不同的安装,一般在解压之后应该先阅读说明文档,按照说明进行安装,上面说的只是一般情况。二、RPM包安装RPM安装包格式是由Redhat公司提出的,大大的简化了Linux下软件的安装,首先介绍一下通用选项。-v:显示附加信息-vv:显示调试信息--root directory:让RPM以directory作为根目录,这样预安装程序和后安装程序都会安装到这个目录下。1、安装:rpm –i file.rpmOptions:h:安装时输出hash记号test:只对安装进行测试,不真正安装--persent:以百分比形式显示安装进度--excludedocs:不安装软件包中的文档--replacepkgs:强制重新安装--replacefiles:替换属于其它软件包的文件--force:忽略软件包及文档冲突--ignorearch:不校验软件包结构--ignoreos:不检查软件包运行的操作系统--nodeps:不检查依赖性关系--noscripts:不运行预安装和后安装脚本程序2、删除rpm –e pkgnameOption:--test:只做删除测试,不真正删除--noscripts:不运行预安装和后安装脚本程序--nodeps:不检查依赖性注意:pkgname是软件包的名字,不是rpm包名字,而是安装后软件包的名字,可以用查询命令来查询软件包名。3、升级rpm–U(或者—upgrade)file.rpmOption:基本与安装时的option一样,有几个特殊的:--oldpackage:允许一个旧版本4、查询rpm –q(或者--query)Option:-p PACKAGE_FILE:查询软件包的文件-f FIEL:查询FILE属于哪个软件包-a:查询所有安装的软件包-ggroup:查询属于group组的软件包--whatproVidesCAPABILITY:查询提供了CAPABILITY功能的软件包--whatrequiresCAPABILITY:查询所有需要CAPABILITY功能的软件包-i:显示软件包的概要信息-l:显示软件包中的文件列表-c:显示配置文件列表-s:显示文件列表-scripts:显示安装、卸载,校验脚本--qf:以用户指定的方式查询--dump:显示每个文件的校验信息--proVides:显示软件包提供的功能-R:显示软件包需要的功能5、校验已经安装的软件包 rpm –V(or –verify,or –y)Option选项与其它命令的类似6、校验软件包中的文件 rpm –K(or –checksig) file.rpmOption:-v:显示版本信息-vv:显示调试信息--rcfileFILELIST:设置rpmrc 文件为FILELIST7、其它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. 将文件放到/usrc/redhat/SOURCES/目录下3. 编写SPEC文件[root@mail Specs]# viNginx-0.8.35.specSummary:the first rpmpackageName:NginxVersion:0.8Release:35vendor:chenwei01@corp.the9.comLicense:ShareGroup:Applications/TextSource0:Nginx-0.8.35.tar.gz%descriptionmy test Nginx%preptar -zxvf $RPM_SOURCES_DIRinx-0.8.35.tar.gz%buildcd$RPM_BUILD_DIRinx-0.8.35./configuremake%installcd$RPM_BUILD_DIRinx-0.8.35make install%cleanrm -rf$RPM_BUILD_DIRinx-0.8.35%files%defattr(-,root,root)/usr/localinx/sbininx%doc $RPM_BUILD_DIRinx-0.8.35/README4. 制作RPM包[root@mail Specs]#rpmbuild -ba Nginx-0.8.35.spec若运行没有错误,则产生/usrc/redhat/RPMS/i386inx-0.8-35.i386.rpm和/usrc/redhat/SRPMSinx-0.8-35.   以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。  本文来自系统大全http:///如需转载请注明!推荐:win7纯净版