0520rpmtarball.htm

来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 956 行 · 第 1/5 页

HTM
956
字号
<ul><li><font color="#000099">套件名称</font>:当然就是每一个套件的名称了!</li></ul> <ul><li><font color="#000099">版本信息</font>:每一次更新版本就需要有一个版本的信息,否则如何知道这一版是新是旧?这里通常又分为主版本跟次版本,反正版本很多啦!</li></ul> <ul><li><font color="#000099">释出版本次数</font>:也就是编译的次数啦!那么为何需要重复的编译呢?这是由于同一版的套件中,可能由于有某些bug 或者是安全上的顾虑,所以必须要重新设定当初打包时候的设定参数,设定完成之后重新编译并打包成RPM 档案!因此就有不同的打包数出现了!</li></ul> <ul><li><font color="#000099">操作硬件平台</font>:这是个很好玩的地方,由于 RPM可以适用在不同的操作平台上,但是由于不同的平台设定的参数还是有所差异性!所以就有所谓的i386, i586, i686 与 noarch 等的文件名称出现了!</li><ul><li><font color="#000099">i386</font>:几乎适用于所有的 x86 平台,不论是旧的pentum 或者是新的 pentum-IV 与 K7 系列的 CPU等等,都可以正常的工作!那个i 指的是 Intel 兼容的 CPU 的意思,至于 386 不用说,就是 CPU 的等级啦!</li><li><font color="#000099">i586</font>:就是 586 等级的计算机,那是哪些呢?包括pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU ( socket 7 插脚 ) 等等的CPU 都算是这个等级;</li><li><font color="#000099">i686</font>:在 pentun II 以后的 Intel 系列 CPU ,及K7 以后等级的 CPU 都属于这个 686 等级!</li><li><font color="#000099">noarch</font>:就是没有任何硬件等级上的限制。</li></ul>需要额外说明的是, i386 的档案可以在任何的机器上面安装,不论是 586 或者是686 的机器,但是 i386 则不一定可以使用于 586 或者是 686 的硬件上面,另外,在686 的机器上使用 i686 的档案会比使用 i386 的档案在执行上,效能可能比较好一些!无论如何,使用i386 应该就是比较没有问题的啦!另外,由于不同的 distirbution 会有不同的环境与函式库,所以在i386 之后也有可能会额外再加上该套件的简写!<br>&nbsp;</ul>好了!接下来我们来谈一谈安装的时候所需要使用到的目录!<br> <br><hr width="100%"><li><a name="directory"></a><font size="+1" color="#000099">SRPM 与 RPM工作时候所需要的安装目录</font></li><br><b><font color="#000099">SRPM 的编译过程:</font></b><br><font color="#000000">刚刚提到 SRPM 里头含有的是未经编译的原始码,所以我们需要将SRPM 进行编译打包的动作!那么编译是在哪里进行呢?由于编译的时候会将原始码解压缩出来,并且将附有的参数控制选项也同时的解开,所以就有一些数据会出现了,那么这些数据放在哪里呢?你可以到你的/usr/src 这个目录里面去查看一下,通常每个 distribution 提供的目录都不太相同,以Mandrake 9.0 为例,他是以 /usr/src/RPM 为工作目录, Red Hat 是以 /usr/src/redhat为工作目录, Openlinux 则是以 /usr/src/openlinux 为工作目录!无论如何,反正就是在/usr/src 这个目录下就对了!好了,既然我们是在 Mandrake 9.0 ,所以就到 /usr/src/RPM里头去看一看呦:</font><br><font color="#000000"> </font><ul><li><font face="SimSun"><font color="#000099">/usr/src/RPM/SPEC:</font><font color="#000000">这个目录当中放置的是该套件的设定档,例如这个套件的信息参数、设定项目等等都放置在这里;</font></font></li><li><font face="SimSun"><font color="#000099">/usr/src/RPM/SOURCE:</font><font color="#000000">这个目录当中放置的是该套件的原始档(*.tar.gz的档案)以及config 这个设定档;</font></font></li><li><font face="SimSun"><font color="#000099">/usr/src/RPM/BUILD:</font><font color="#000000">在编译的过程中,有些暂存的数据都会放置在这个目录当中;</font></font></li><li><font face="SimSun"><font color="#000099">/usr/src/RPM/RPMS:</font><font color="#000000">经过编译之后,并且顺利的编译成功之后,将打包完成的档案放置在这个目录当中。里头有包含了i386, i586, i686, noarch.... 等等的次目录。</font></font></li></ul> <br>此外,在编译的过程当中,可能会发生不明的错误,或者是设定的错误,这个时候就会在/tmp 底下产生一个相对应的错误档,您可以根据该错误档进行除错的工作呢!等到所有的问题都解决之后,也编译成功了,那么刚刚解压缩之后的档案,就是在/usr/src/RPM/SPEC, SOURCE, BUILD 等等的档案都会被杀掉,而只剩下放置在 /usr/src/RPM/RPMS底下的档案了!<br><b><font color="#000099"> </font></b><br><b><font color="#000099">RPM 的安装过程:</font></b><br>RPM 在安装的时候,会先去读取 套件 内的设定参数内容,就是刚刚我们在/usr/src/RPM/SPEC 的相关信息啦!然后将该数据用来比对 Linux 系统的环境,这些环境包括了这个欲安装的套件的前驱套件,例如目前postfix 这个 e-mail 套件当中,大都支持了cyrus-sasl 这个套件的身份认证功能,所以,要安装postfix 就必需先安装 cyrus-sasl 这个套件,否则 postfix 就不让你安装了!还有类似版本的信息等等,这些都是RPM 环境的要求,如果环境相符就予以安装,如果不符就会显示出不符合的内容所在!等到安装完毕之后,rpm 就会将套件的信息写入:/var/lib/rpm 这个目录中去!所以,往后您在进行查询的时候或者是预计要升级的时候,相关的信息就会由/var/lib/rpm 这个目录的内容数据来提供啰!此外,在安装 RPM 的套件时,这些套件通常会使用到底下的目录:<br> <ul><li><font color="#000066" face="SimSun">&#160; /etc&#160;&#160;&#160;一些设定文件放置的目录,例如 /etc/samba</font></li><li><font color="#000066" face="SimSun">&#160; /usr/bin&#160;&#160; 一些可执行档案</font></li><li><font color="#000066" face="SimSun">&#160; /usr/lib&#160;&#160; 一些程序使用的动态函式库</font></li><li><font color="#000066" face="SimSun">&#160; /usr/share/doc&#160; 一些基本的软件使用手册与说明文件</font></li><li><font color="#000066" face="SimSun">&#160; /usr/share/man&#160; 一些man page 档案</font></li></ul> <br>底下我们先针对 RPM 的相关指令来进行说明啰!<p></p><hr width="100%"><li><a name="usingRPM"></a><font size="+1" color="#000099">RPM 的指令使用:<a href="#install">安装</a>、<a href="#upgrade">升级与更新</a>、<a href="#quary">查询</a>、<a href="#vir">验证</a>、<a href="#uninstall">反安装与重建数据库</a></font></li><br>RPM 提供了『安装』、『升级与更新』、『查询』、『验证』、『反安装与重建数据库』等功能,底下我们一个一个来说明吧!</ul><ul><ul><hr width="100%"><li><a name="install"></a><font color="#000099">安装:</font></li><br>从无到有就是安装啦!那么安装的方式为何呢?若是 RPM 则使用 ivh 啦!如果是SRPM 就使用 rebuild 或是 recompiler 啰!<br> <table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm --rebuild&#160;&#160; rp-pppoe-2.6-5.src.rpm&#160;</font><font color="#ffff00">&lt;==SRPM</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm --recompile rp-pppoe-2.6-5.src.rpm&#160; </font><font color="#ffff00">&lt;==SRPM</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -ivh&#160;&#160;&#160;&#160;&#160;&#160;&#160; rp-pppoe-2.6-5.i386.rpm</font><font color="#ffff00">&lt;==RPM</font></font></td></tr></tbody></table>&nbsp;</ul><ul><ul><li><font face="SimSun"><font color="#000066">--rebuild</font><font color="#000000">:这个参数会将后面的SRPM 进行『编译』与『打包』的动作,但是并没有安装,当您使用 --rebuild 的时候,最后通常会发现一行字体:</font></font></li><br><font color="#000000" face="SimSun"> </font><ul><b><font color="#000066" face="SimSun">Wrote: /usr/src/RPM/RPMS/i386/rp-pppoe-2.6-5.i386.rpm</font></b></ul><font color="#000000" face="SimSun"> </font><br><font color="#000000" face="SimSun">这个就是编译完成的 RPM 档案啰!那么这个档案就可以用来安装啦!安装的时候请加绝对路径来安装即可!</font></ul><font color="#000000" face="SimSun"> </font><ul><li><font face="SimSun"><font color="#000066">--recompile</font><font color="#000000">:这个动作会直接的『编译』『打包』并且『安装』啰!请注意,rebuild 仅『编译并打包』而已,而 recompile 不但进行编译跟打包,还同时进行『安装』了!</font></font></li></ul><font color="#000000" face="SimSun"> </font><ul><li><font face="SimSun"><font color="#000066">-ivh</font><font color="#000000">:就是用来安装RPM 的参数而在这个参数之下,由于会有一些『相依属性』的问题,或者是曾经安装过的档案的问题,所以您可以再加以下的参数来『强制』安装:</font></font></li><ul><li><font color="#000000" face="SimSun">--nodeps:不考虑相依属性的关系,给他强制的安装下去;</font></li><li><font color="#000000" face="SimSun">--replacepkgs:如果这个套件之前安装过,您想要覆盖这个套件,那么不需要反安装后再安装,可以直接加上--replacepkgs 强制覆盖;</font></li></ul><font color="#000000" face="SimSun"> </font><li><font face="SimSun"><font color="#000066">--replacefiles</font><font color="#000000">:那么如果这个套件安装完毕之后,曾经被你修改过档案呢?就是安装过程中会出现『confilctingfiles 』的话,那么直接以 --replacefiles 覆盖掉这种档案吧!</font></font></li><br> <table bgcolor="#000000" border="1" cols="1" width="750"><tbody><tr><td><font size="-1" color="#ffffff" face="SimSun">[root @test/root]# rpm -ivh rp-pppoe-2.6-5.i386.rpm</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -ivh --nodeps&#160;&#160;&#160;&#160;&#160;&#160; rp-pppoe-2.6-5.i386.rpm</font><font color="#ffff00">&lt;==不考虑相依模块</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -ivh --replacepkgs&#160; rp-pppoe-2.6-5.i386.rpm </font><font color="#ffff00">&lt;==直接覆盖掉曾安装过的套件</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -ivh --replacefiles rp-pppoe-2.6-5.i386.rpm </font><font color="#ffff00">&lt;==直接覆盖掉被修改过的问题档案</font></font></td></tr>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?