0520rpmtarball.htm

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

HTM
956
字号
</tbody></table><font color="#3333ff" face="SimSun"> </font></ul></ul></ul><ul><ul><hr width="100%"><li><a name="upgrade"></a><font face="SimSun"><font color="#000099">升级</font><font color="#000000">:</font></font></li><br><font color="#000000" face="SimSun">使用 RPM 来升级真是太简单了!就以Uvh 来升级即可!但是在比较大量的升级版本中,使用 Fvh 则是比较好的作法。但是需要注意的是,如果您使用的是Fvh ,偏偏您的机器上尚无这一个套件,那么很抱歉,该套件并不会被安装在您的Linux 主机上面,所以请重新以 ivh 来安装吧!</font><br> <table bgcolor="#000000" border="1" cols="1" width="700"><tbody><tr><td><font size="-1" color="#ffffff" face="SimSun">[root @test/root]# rpm -Uvh rp-pppoe-2.6-5.i386.rpm&#160;</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -Fvh *.rpm&#160;&#160;&#160;&#160;&#160;&#160; </font><font color="#ffff00">&lt;==所有在你Linux 主机上面安装过的套件才升级</font></font></td></tr></tbody></table><font color="#000000" face="SimSun"> </font><br><font color="#000000" face="SimSun">注意的是, Uvh 是升级您所写入的套件,至于Fvh 则是『仅升级在您的系统里面存在的套件』,所以有的朋友在大量的进行套件版本修补的时候,他们都是这样做的:</font><br><font color="#000000" face="SimSun"> </font><ol><li><font color="#000066" face="SimSun">先到各发展商的&#160; errata 网站上捉下来最新的i386 档案;</font></li><li><font color="#000066" face="SimSun">使用 -Fvh 来将您的系统内曾安装过的套件进行修补与升级!(真是方便呀!)</font></li></ol><font color="#000000" face="SimSun"> </font><br><hr width="100%"><li><a name="quary"></a><font color="#000099">查询</font>:</li><br>查询也是 RPM 的重要功能之一,因为他提供了这个套件的版本、用途等信息,是相当有用的!那么如何查询呢?底下列出只要的查询参数:<br> <table bgcolor="#000000" border="1" cols="1" width="700"><tbody><tr><td><font size="-1" color="#ffff00" face="SimSun">1. 从系统查询(由/var/lib/rpm 数据库取得的数据)</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -q rp-pppoe&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font color="#ffff00">&#160;&#160;&lt;==仅列出 rp-pppoe 这个套件的版本;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -qa&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font color="#ffff00">&lt;==列出所有安装过的套件与版本;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -qi rp-pppoe&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font color="#ffff00">&lt;==列出 rp-pppoe 这个套件的详细信息</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -ql rp-pppoe&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font color="#ffff00">&lt;==列出 rp-pppoe 这个套件安装的档案与路径;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -qf /etc/rc.d/init.d/pppoe&#160; </font><font color="#ffff00">&lt;==查询pppoe 这个档案属于哪一个套件?</font></font><p><font size="-1" color="#ffff00" face="SimSun">2. 由档案查询档案的内容</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -qpi rp-pppoe-2.6-5.src.rpm&#160; </font><font color="#ffff00">&lt;==查询这个套件的详细信息;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -qpl rp-pppoe-2.6-5.src.rpm&#160; </font><font color="#ffff00">&lt;==查询这个套件里面有多少的档案内容存在</font></font></p></td></tr></tbody></table>&nbsp;</ul><ul><ul><li><font face="SimSun"><font color="#000099">查询套件</font>:查询安装过的套件可以使用-q 即可知道他的套件版本,但是如果忘记套件的全名,那么可以使用</font></li><br><font face="SimSun"><font color="#3333ff">rpm -qa | grep pakagename</font><font color="#000000">来选择出适当的套件!</font></font><br><font color="#000000" face="SimSun">若使用 -qi 则可以了解这个套件的主要信息!</font><li><font face="SimSun"><font color="#000099">寻找套件档案</font>:常常我们忘记一个套件内容含有的档案时,可以使用-ql 来查询该套件,会列出相当多的档案呦!</font></li><li><font face="SimSun"><font color="#000099">由档案寻找套件</font>:这是最长发生的问题,就是您『<font color="#3333ff">误砍</font>』了某个档案,偏偏不知道他是哪一个套件的,呵呵!那么你可以请跟你同样系统的朋友,使用-qf 来查询该档案所属的套件,然后重新安装该套件就可以就回来啦!</font></li></ul><font face="SimSun"> </font><br><hr width="100%"><li><a name="vir"></a><font color="#000099">验证</font>:</li><br>验证的功能主要在于提供系统管理员一个有用的管理机制!作用的方式是『<font color="#3333ff">使用/var/lib/rpm 底下的数据库内容来比对目前 Linux 系统的环境下的所有套件档案</font>』也就是说,当您有数据不小心遗失,或者是因为您误杀了某个套件的档案,或者是不小心不知道修改到某一个套件的档案内容,就用这个简单的方法来验证一下原本的档案系统吧!好让您了解这一阵子到底是修改到哪些档案数据了!<br> <table bgcolor="#000000" border="1" cols="1" width="800"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -V rp-pppoe&#160;&#160; </font><font color="#ffff00">&lt;==单纯检查rp-pppoe 这个已安装套件的档案内容与原先是否相同</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm -Va&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font><font color="#ffff00">&lt;==检查所有的 /var/lib/rpm 底下的数据库与 Linux 系统下是否相同的档案!</font></font><p><font size="-1" color="#ffff00" face="SimSun">范例:</font><br><font size="-1" color="#ffffff" face="SimSun">[root @test/root]# rpm -V xinet</font><br><font size="-1" color="#ffffff" face="SimSun">S.5....T c/etc/xinetd.d/echo</font><br><font size="-1" color="#ffffff" face="SimSun">S.5....T c/etc/xinetd.d/echo-udp</font><br><font size="-1" color="#ffffff" face="SimSun">S.5....T c/etc/xinetd.d/time</font><br><font size="-1" color="#ffffff" face="SimSun">S.5....T c/etc/xinetd.d/time-udp</font></p><p><font size="-1" color="#ffff00" face="SimSun">在文件名称前面的参数说明</font><br><font size="-1" face="SimSun"><font color="#ffff00">S :file Sizediffers(</font><font color="#ffffff">档案的容量大小已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">M :Mode differs(includes permissions and file type)(</font><font color="#ffffff">档案的类型或档案的属性,如是否可执行等参数已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">5 :MD5 sumdiffers(</font><font color="#ffffff">MD5 这一种加密防骇的属性已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">D :Devicemajor/minor number mis-match(</font><font color="#ffffff">装置名称已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">L :readLink(2)path mis-match(</font><font color="#ffffff">Link 属性已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">U :User ownershipdiffers(</font><font color="#ffffff">档案的所属人已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">G :Group ownershipdiffers(</font><font color="#ffffff">档案的所属群组已被改变</font><font color="#ffff00">)</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">T :mTime differs(</font><font color="#ffffff">档案的建立时间已被改变</font><font color="#ffff00">)</font></font></p><p><font size="-1" color="#ffffff" face="SimSun">[root@test RPM]#rpm -ql crontabs&#160;&#160; &lt;==查询 crontabs 有哪些档案?</font><br><font size="-1" color="#ffffff" face="SimSun">/etc/cron.daily</font><br><font size="-1" color="#ffffff" face="SimSun">/etc/cron.hourly</font><br><font size="-1" color="#ffffff" face="SimSun">/etc/cron.monthly</font><br><font size="-1" color="#ffffff" face="SimSun">/etc/cron.weekly</font><br><font size="-1" color="#ffffff" face="SimSun">/etc/crontab</font><br><font size="-1" color="#ffffff" face="SimSun">[root@testRPM]# rpm -V crontabs&#160;&#160;&#160; &lt;==这些档案有哪些已经被修改了?</font><br><font size="-1" color="#ffffff" face="SimSun">S.5....T c/etc/crontab</font></p></td></tr></tbody></table> <br>例如上面的范例中,我们知道了 crontabs 有五个档案或目录,其中,如果验证一下的话,就会发现/etc/crotab 已经被改过了?那么如果该档案的变更是『预期中的』,那么就没有什么大问题,但是如果该档案是『非预期的』,那么是否被入侵了呢?呵呵!得注意注意啰!<br> <br><hr width="100%"><li><a name="uninstall"></a><font color="#000099">反安装与重建数据库:</font></li><br>反安装就是将套件解除安装啦!要注意的是,『解安装的过程一定要由最上层往下解除』,以rp-pppoe 为例,这一个套件主要是依据 ppp 这个套件来安装的,所以当您要解除ppp 的时候,就必须要先解除 rp-pppoe 才行!否则就会发生结构上的问题啦!这个可以由建筑物来说明,如果你要拆除五、六楼,那么当然要由六楼拆起,否则拆了第五楼,那么上面的楼层难道会悬空?<br> <br>那么重建数据库呢?由于我们会一直在修改一些档案内容,例如 /etc/xinetd.d里头的参数档案,加上可能自系统操作的过程中新增、移除等等的动作,导致系统的数据库有点乱,这个时候可以使用--rebuilddb 来重建一下 rpm 的数据库!这两个方法的参数如下啰<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 -e re-pppoe&#160; </font><font color="#ffff00">&lt;==解安装rp-pppoe&#160;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# rpm --rebuilddb&#160; </font><font color="#ffff00">&lt;==重建数据库</font></font></td></tr></tbody></table></ul></ul><hr width="100%"><a name="tarball_packager"></a><font size="+1" color="#000099">Tarball套件管理员:</font><ul>还记得我们使用过的打包指令 <a href="http://linux.vbird.org//linux_basic/0240tarcompress.php#tar">tar</a>吗?使用 tar 并且以 <a href="http://linux.vbird.org//linux_basic/0240tarcompress.php#gzip">gzip</a> 进行压缩的档案,就称为Tarball 啦!这个是最原始的原始码档案喔!底下谈一谈他啰!<br> <br><hr width="100%"><li><a name="tarball"></a><font size="+1" color="#000099">什么是 Tarball( source code )</font></li><br>其实 tarball 就是以 *.tar.gz 压缩之后的 binary 原始档啦!还记得 <a href="http://linux.vbird.org//linux_basic/0240tarcompress.php#tar">tar</a>怎么使用吗?记得回去第二篇瞧一瞧去!由于软件开发商为了适应各种工作平台,所以通常他们都会将整个软件以较庞大的源文件创建下来,里头除了<font color="#000066">(1)最重要的原始码</font>之外,另外包含了<font color="#000066">(2)针对各个不同的平台编译与操作参数而订定的侦测与参数设定档</font>,然后将这些东西以tar 这个汇整压缩软件将整个软件下的目录压缩成一个档案,由于是经过类似打包压缩的动作,嘿嘿!那就是所谓的

⌨️ 快捷键说明

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