构造Linux的图形化安装程序(4)(转)
  rpm包管理和安装盘定制   本文是构造Linux的图形化安装程序系列文章的第四部分,内容主要包括RPM基本命令介绍,RPM包的定制过程,RPM SPEC文件的主要内容,RPM函数库简单参考和安装程序中关于RPM包管理部分源码的简单介绍。通过这部分的介绍,希望读者能对Linux系统下RPM包的定制过程和RPM包的系统安装过程有一个基本的了解。   在安装程序进行了磁盘分区工作之后,安装程序就可以进行RPM系统包的安装了。这是整个安装过程中很重要的一步。在这一环节,安装程序要读出所有rpm包的描述信息并根据包之间的依赖关系,构造出正确的包安装顺序。这种构造的机制主要是对包依赖关系的树形结构进行深度搜索,对于最基本的系统包(比如Glibc和Bash)一定要最先安装。为了保证在安装了所有的系统包之后,RPM数据库运行良好,还要在安装过程中构造正确的RPM数据库。最后为了调试的方便,也便于用户检查安装的系统包,还需要对包的安装过程建立日志。   1 RPM包的基本概念   RPM(Redhat Package Management)是由RedHat开发的,Linux系统下的系统包管理工具。它的目标是:使包的安装和卸载过程更容易,能够证实一个包是否已经正确安装了,简化包的建立过程,可以从源代码建立整个包,使它能用于不同的体系结构。RPM系统已经成为现在Linux系统下包管理工具事实上的标准,并且它也移植到很多商业的unix系统之下。   RPM包由包标签标识,它包含这样几个部分,软件名,软件版本,包的发行版本。在包的内部还包含如下信息:包的建立时间,包的内容描述,安装包的所有文件的大小,数字签名以证实包的完整性。RMP包还包含包内的文件信息,其中包括:每个文件的文件名,每个文件的权限,文件的属组和拥有者,每个文件的md5校验和,文件的内容。   RPM的包管理系统提供了下列功能:安装新的包,除去旧的包,将一个旧包升级为新的包,获得已经安装包的信息。   常用的RPM命令:   rpm -i   使用此命令可以安装一个rpm包。在安装的过程中,此命令依次要进行包依赖性检测,包冲突检测,完成安装前必须执行的任务,处理相应的配置文件,解开包中的文件并将其拷贝到正确的位置,完成安装后必须执行的任务,对包进行的处理进行跟踪记录。   例如:   rpm -i bzip2-1.0.1-3.i586.rpm   //安装bzip2包。   rpm -ivh bzip2-1.0.1-3.i586.rpm   //安装bzip2包的同时,显示更多的文本提示信息,以及在屏幕上显示连续的#号来表示的安装进度。   有时在安装一个新包时,根据依赖性检查的结果,需要首先安装其他的包。但可能这时系统中并没有安装所需要包的合适版本,这样rpm会终止包的安装。为了直接安装这个包,您需要加入--nodeps选项。下例表示在安装bzip2包时,不进行依赖性检测。   rpm -ivh bzip2-1.0.1-3.i586.rpm --nodeps   rpm -ivh bzip2-1.0.1-3.i586.rpm --force   //强制安装rpm包。这条命令实际上等价于   rpm -ivh bzip2-1.0.1-3.i586.rpm --replacepkgs --replacefiles   rpm -e   使用此命令可以删除一个rpm包。删除rpm包时,此命令要完成如下工作:   检查rpm数据库确保没有其他包依赖将要删除的包。   如果包存在卸载前脚本,执行此脚本。   检测安装包时是否对包配置文件进行了修改。如果进行了修改,则保存备份。   查找rpm数据库中此RPM包所包含的文件。如果这些文件不属于任何其它的包,则删除它。   如果包存在卸载后脚本,执行此脚本。   从rpm数据库除去所有包跟踪记录。   例如:   rpm -e bzip2   //从系统中除去bzip2包。添加--nodeps选项可以在删除包时,禁止包的依赖性检查。   rpm -U   这条命令完成rpm包的升级。它执行的操作包括安装合意的包,删除所有存在的老版本的包。例如:   rpm -U bzip2   //升级包bzip2。   rpm -q   这条命令可以获得rpm包的信息。通过这条命令可以查询包的文件列表,包的版本,包的描述性信息。同样的,你也可以通过这条命令查得一个文件属于哪个rpm包。例如:   rpm -qf `which fdisk`   //检查fdisk文件属于哪个系统包。   rpm -qi bzip2   //获得已安装包bzip2的描述性信息。   rpm -ql bzip2   //获得安装包bzip2的文件列表。   rpm -qa   //获得系统安装的所有rpm包的列表。这条命令和grep命令一起使用,可以快速找到系统中包含的某个rpm包,例如:   rpm -qa | grep bzip2   2 RPM包建立过程   为了完成RPM包的建立过程,需要执行以下步骤:   执行Spec文件prep节的命令和宏。   检查文件列表的内容。   执行Spec文件build节的命令和宏。   执行Spec文件install节的命令和宏,同时也执行文件列表中的宏。   创建二进制包文件。   创建源码包。   为了执行打包的工作,RPM需要一系列目录完成建立的工作。正常的目录结构通常由一个顶级目录和五个子目录构成。这五个子目录分别是:   SOURCES------包含原始的源文件、补丁和像标文件。   SPECS--------包含控制建立过程的spec文件。   BUILD--------包含源码解包和软件建立的目录。   RPMS---------包含建立过程创建的二进制包文件。   SRPMS--------包含建立过程创建的源码包文件。   除了上述这五个主要的目录外,在RPMS或SRPMS目录下通常还会有关于包目标平台的目录。例如,i386、i586、i686等代表与Intel兼容cpu的平台,noarch目录下的包代表可以在任何平台下执行。   2.1 SPEC文件   Spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件。Spec文件包含建立一个rpm包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下。这个文件一般分为如下的几节:   Preamle(序言)   序言包含用户请求包的信息时所显示的内容。它可以包含包的功能描述,包的软件版本,版权信息,所属的包组等。   Prep节 Prep节进行实际的打包准备工作,它是使用节前缀%prep表示的。一般而言,这一节的主要工作是检查标签语法是否正确,删除旧的软件源程序,对包含源程序的tar文件进行解码。如果包含补丁(patch)文件,将补丁文件应用到解开的源码中。它一般包含%setup与%patch两个命令。%setup用于将软件包打开,执行%patch可将补丁文件加入解开的源程序中。   %setup   -n newdir---------将压缩的软件源程序在newdir目录下解开。   -c ---------------在解开源程序之前先创建目录。   -b num------------在包含多个源程序时,将第num个源程序解压缩。   -T----------------不使用缺省的解压缩操作。   例如:   %setup -T -b 0   //解开第一个源程序文件。   %setup -c -n newdir   //创建目录newdir,并在此目录之下解开源程序。   %patch   %patchN----------这里N是数字,表示使用第N个补丁文件,等价于%patch -P N   -p0--------------指定使用第一个补丁文件,-p1指定使用第二个补丁文件。   -s---------------在使用补丁时,不显示任何信息。   -b name----------在加入补丁文件之前,将源文件名上加入name。若为指定此参数,则缺省源文件加入.orig。   -T---------------将所有打补丁时产生的输出文件删除。   Build节   这一节主要用于编译源码,它是使用节前缀%build表示的。这一节一般由多个make命令组成。   Install节   这一节主要用于完成实际安装软件必须执行的命令,它是使用节前缀%install表示的。这一节一般是由make install指令构成,但是有时也会包含cp、mv、install等指令。   这一节还能指定在用户安装的系统上,包安装时运行的脚本。这样的脚本称为安装(卸载)脚本。它可以指定包安装前、包安装后、包除去前、包除去后的系统必须运行的外壳程序段。在用户安装的系统上,为了验证一个包是否已经成功安装的验证脚本也可由这一节指定。   Clean节   这一节所描述的内容表示在完成包建立的工作之后,自动执行此节下的脚本进行附加的清除工作,它是使用节前缀%clean表示的。一般而言,这一节的内容是简单地使用rm -rf $RPM_BUILD_ROOT命令,不需要指定此节的其它内容。   文件列表   这一节指定构成包的文件的列表,它是使用节前缀%files表示的。此外,它还包含一系列宏控制安装后的文件属性和配置信息。   改动日志   这一节主要描述软件的开发记录,它是使用节前缀%changlog表示的。这个段的内容是为了开发人员能详细的了解该软件的开发过程,对于包的维护极有好处。   2.2 建立rpm包   有时您可能只有一个tar.gz格式的源程序包,为了生成正确的rpm包,您可以使用autospec自动创建spec文件。   举例来说,您有一个源程序文件some.tar.gz。为了定制rpm包,您要进行如下操作:   解压缩源程序包   tar xvzf some.tar.gz   手动编译和安装此源程序包   make; make install   自动生成spec文件   make -n install | autospec -i > some.spec   编译生成rpm包   rpm -ba some.spec   在创建spec文件之前,必须成功编译源程序包。否则au    本文来自:http://www.linuxpk.com/40326.html --&gtlinux电子图书免费下载和技术讨论基地 ·上一篇: 在RedHatLinux上安装WebSphereApplicationServer ·下一篇: 构造Linux的图形化安装程序(3)

 
     最新更新
·安装配置技巧:如何实现自动Logoff·MandrakeLinux安装(4)·MandrakeLinux安装(2)·Linux基本设置技巧:如何限制只有0组的用户可以su成root·Linux基本设置技巧:如何在console顶部显示当前时间·Linux基本设置技巧:如何限制用户的最小密码长度·安装配置技巧:如何使特定用户具有smbmount上的目录的写权限·安装配置技巧:tcsh如何用当前路径作提示符·安装配置技巧:如何在consol下定义快捷·如何修改grub的安装位置·Linux基本设置技巧:如何使非root用户都不能远程登录·Linux基本设置技巧:如何用lilo引导不同的运行级别·Samba的安装·新手入门之——Linux学习基础·Linux下中文字体的安装·Fedora软件包管理器system-config-packages·Linux查看磁盘分区等命令和相关工具介绍·Linux如何编译安装源码包软件·华硕A2C笔记本安装SUSE9.3pro小结·Linux发行版制作过程中的各个步骤·FedoraCore5安装后的快速配置·Fedora4.0中用VMware安装和使用Windows·安装配置-安装SuseLinux10·VMware虚拟安装FedoraCore4.0手册·SlackwareLinux的安装之关於Linux的硬体drivers·如何在硬碟建置Linux系统之指定安装目的分割区·如何在硬碟建置Linux系统之指定安装来源(Source)·RedHatLinux新手入门教程(5)·RedHatLinux新手入门教程(4)·RedHatLinux新手入门教程(1)

关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 网址大全 | 友情链接 | 免费注册

Copyright © 2004 - 2007 All Rights Reserved

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-117150/,如需转载,请注明出处,否则将追究法律责任。

0
0
分享到:

上一篇: 安装配置:Redhat配置文件(转)
下一篇: 在RedHatLinux上安装WebSphereApplicationServer(转)

请登录后发表评论 登录

全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>

<%for(var j=0;j

<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%>: <%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>

还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看

<%}%>

<%}%> <%}%>

ilg

注册时间:2002-06-18

  • 博文量

    1715

  • 访问量
    1297601

最新文章

  • Solaris 图形窗口配置(转)
  • WPSOffice双面文档打印边距设置(转)
  • OfficeWord2007图片编辑功能使用教程(转)
  • IE技巧两则(转)
  • 用Iproute2配置隧道(转)
  • 用FAQGenie迅速制作“常见问答”网页(转)
  • openoffice2.0输出带多级书签的PDF文档(转)
  • WordXP巧画禁烟标志(转)
  • Linux中防御垃圾邮件的方法(转)
  • Excel:轻松查看数据记录(转)

支持我们 作者招募 用户协议 FAQ Contact Us

北京盛拓优讯信息技术有限公司. 版权所有  京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510

广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员

转载于:http://blog.itpub.net/14102/viewspace-117150/

构造Linux的图形化安装程序(4)(转)相关推荐

  1. 构造Linux的图形化安装程序(1)(转)

    构造Linux的图形化安装程序(1)(转) 作者:于辰涛 这是一个向用户介绍如何构造Linux的图形化安装程序的专栏.介绍的内容包括:安装环境的定制,图形化启动,本地化支持,分区功能,如何支持reis ...

  2. 构造Linux的图形化安装程序(3)(转)

    构造Linux的图形化安装程序(3)(转) 分区功能和RAID.LVM支持 本文是构造Linux的图形化安装程序系列文章的第三部分,作者将从基本的分区表结构开始,介绍分区功能的实现和如何支持RAID. ...

  3. 巧用 XQuartz 实现在 macOS 下显示 Linux X11 图形化程序

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 在 Windows 中相信大家已经很熟悉使用 Xmanager(Xshell), MobaXterm, Secur ...

  4. linux图形化应用程序快捷方式制作方法

    linux图形化应用程序快捷方式制作方法 准备 一个Linux系统[传统Unity桌面环境,应用程序启动器的容器--Launcher] 说明 linux的.desktop文件是一种菜单和快捷方式的描述 ...

  5. oracle linux 图形化,Linux7图形化安装Oracle11g教程,亲测实用有效!

    linux图形化安装Oracle11g和静默安装Oracle11g前面步骤是一样的,可以参考Linux7静默安装Oracle11g教程,亲测实用有效!的前11步骤,接下来: 12.开始安装 切换到or ...

  6. linux kvm图标需要安装的软件,KVM 图形化安装

    为了再后续查看方便,我还是完整的记录KVM图形化安装. 介于网络环境的原因,我选择NAT. 2,安装kvm前的准备工作 2.1 关闭防火墙  setenforce 0    vi /etc/sysco ...

  7. **阿里云ECS Linux服务器图形化界面安装方法 Ubuntu**

    阿里云ECS Linux服务器图形化界面安装方法 Ubuntu 一.远程连接 二.登录后进入终端界面 三.更新服务器,安装图形化界面 apt-get update apt-get upgrade -y ...

  8. 手把手一起 图形化安装 k8s 集群

    作者 | 小碗汤 来源 | 我的小碗汤 今天接着上一节,使用 KuboardSpray 图形化安装kubernetes集群[1],记录了安装时可能遇到的问题.对此项目感兴趣的同学,不妨亲手实践一下~ ...

  9. GTK+图形化应用程序开发学习笔记(一)—概述

    GTK+图形化应用程序开发学习笔记(一)-概述 一.什么是GNOME. GNOME的意思是"GNU Network Object Model Environment"(GNU网络对 ...

最新文章

  1. 百变冰冰!手把手教你实现CVPR2021最新妆容迁移算法
  2. 《预训练周刊》第4期:智源「悟道1.0」发布、GPT-3对新一代APP的赋能路径
  3. 20165204 第十周课下作业补做
  4. android-x86 镜像iso下载_Windows 10(1909)最新12月更新版MSDN官方简体中文原版ISO镜像下载+激huo工ju...
  5. 中科院等发布《2019研究前沿》
  6. Python中的+=
  7. linux内存管理(十四)-内存OOM触发分析
  8. linux mysql端口启动失败怎么办,Linux下apache mysql等服务修改默认端口后无法正常启动解决办法...
  9. SU(Seismic Unix)之sgy格式与su格式相互转化
  10. 苹果电脑运行3dsmax的三种方法,你知道吗?
  11. CentOS通过Samba访问NAS共享目录
  12. 华硕笔记本电脑开机进入bios
  13. 2023 第一届“躺平杯”信息技术与网络安全入门赛
  14. 【技术邻】基于Ansys Icepak的散热器优化
  15. 复旦计院、工研院2019机试真题及答案详解
  16. jdk-8u231-macosx-x64.dmg
  17. 如何写个优秀的Github项目Readme文档?经典模版拿去不谢~
  18. BMS总结(未完待续)
  19. kill 掉服务器某个进程
  20. 从零开始完成Yolov5目标识别(一)准备工作

热门文章

  1. 一种获取公网ip地址并发送邮件至指定邮箱的实现方法
  2. java 根据ip获取mac地址,java服务器端根据ip获取客户端mac地址
  3. TC358774XBG/TC358775XBG替代方案|CS5518替代TC358774XBG/TC358775XBG设计DSI转LVSD设计资料
  4. 程序员需要了解的硬核知识之控制硬件
  5. win8.1 update1使用初体验
  6. php户型图识别,户型图上的那些标注都是啥?看不懂难怪被坑
  7. 2021年黄石二中高考成绩查询,黄石二中2019高考喜报成绩、一本二本上线人数情况...
  8. 吴恩达深度学习作业(week2)-(1)
  9. 沃通CA证书支持多所高校招投标文件电子签名
  10. 如何将fsdb波形转成csv等可读性文本格式