0520rpmtarball.htm

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

HTM
956
字号
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <title>鸟哥的 Linux 私房菜 -- RPM 与 Tarball 套件管理员</title><!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body nosave="" background="0520rpmtarball_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0520rpmtarball_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0520rpmtarball_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0520rpmtarball_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0520rpmtarball_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0520rpmtarball_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0520rpmtarball_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org//linux_basic/0520rpmtarball.php" target="_self"><font face="Times New Roman,Times">RPM</font><font face="SimSun">与</font><font face="Times New Roman,Times">Tarball </font><font face="SimSun">套件管理员</font></a></font></center><font size="+1" color="#000099">本文已经经过大幅度修改,请分别参考:(这个网页内容将不再继续维护)</font><br><font size="+1" color="#000099"><a href="http://linux.vbird.org//linux_basic/0520source_code_and_tarball.php" target="_self">原始码与Tarball 套件管理员</a></font><br><font size="+1" color="#000099"><a href="http://linux.vbird.org//linux_basic/0520rpm_and_srpm.php">RPM套件管理员</a></font><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/02/11</font></div><hr width="100%"><font size="+1" color="#000099"><a href="#whyupgrad">为何需要升级套件</a>?</font><br><font size="+1" color="#000099"><a href="#rpm_packager">RPM 套件管理程序</a></font><br><font size="+1" color="#000099">  <a href="#RPMandSRPM">什么是RPM 、 SRPM</a> ?</font><br><font size="+1" color="#000099">  <a href="#i386586686noarch">什么是i386, i586, i686, noarch</a> ?</font><br><font size="+1" color="#000099">  <a href="#directory">SRPM 与RPM 所需要的安装目录</a></font><br><font size="+1" color="#000099">  <a href="#usingRPM">RPM 的指令使用</a>:</font><br><font size="+1" color="#000099">    <a href="#install">安装</a></font><br><font size="+1" color="#000099">    <a href="#upgrade">升级与更新</a></font><br><font size="+1" color="#000099">    <a href="#quary">查询</a></font><br><font size="+1" color="#000099">    <a href="#vir">验证</a></font><br><font size="+1" color="#000099">    <a href="#uninstall">反安装与重建数据库</a></font><br><font size="+1" color="#000099"><a href="#tarball_packager">Tarball管理方法</a></font><br><font size="+1" color="#000099">  <a href="#tarball">什么是 Tarball( source code )</a></font><br><font size="+1" color="#000099">  <a href="#tarball_need">Tarball需要的基础套件</a></font><br><font size="+1" color="#000099">  <a href="#tarball_install_step">Tarball安装的基本步骤</a></font><br><font size="+1" color="#000099">  <a href="#tarball_upinstall">Tarball的移除与升级</a></font><br><font size="+1" color="#000099"><a href="#rpmortarball">要选择RPM 还是 Tarball</a>?</font><br><font color="#000099"><font size="+1"><a href="#libarary">函式库资料</a></font>:<a href="#ldconfig">ldconfig</a>,<a href="#ldd">ldd</a>,</font><br><font color="#000099"><font size="+1"><a href="#md5">检验软件正确性</a></font>:<a href="#md5sum">md5sum</a></font><br><font size="+1" color="#000099"><a href="#network">网络资源</a></font><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="whyupgrad"></a><font size="+1" color="#000099">为何需要升级套件</font><blockquote>这真是一个很有趣的课题,为何需要升级套件?如果我的机器运作的好好的,那么我干嘛需要升级?通常我们升级的原因主要有三个:<ul><li><font color="#000066">需要新的功能,但旧有主机并没有,所以需要安装新的套件;</font></li><li><font color="#000066">旧版本的套件上面可能有安全上的顾虑,所以需要更新到新版的套件;</font></li><li><font color="#000066">旧版的套件执行效能不彰,或者执行的能力不能让管理者满足。</font></li></ul>在上面的需求当中,尤其需要注意的是第二点,当一个套件有安全上的顾虑时,千万不要怀疑,赶紧更新套件吧!否则造成网络危机,那可不是闹着玩的?那么更新的方法有哪些呢?其实,目前在Linux 里面有相当多的不同的更新套件的方式,<font color="#000066">包括了Red Hat 发展的 RPM 与 up2date 的在线更新模式; Debian 这个 distribution里头使用的 dpkg 方法;Sun Unix 上面使用的 pkg 升级方式;目前越来越流行的apt 在线更新模式;还有原始码里头最常使用的 Tarball 编译方法等等</font>,如果要一个一个说明的话那也太累人了?所以,这里我们以目前在Mandrake, Red Hat, OpenLinux 等 Linux distributions 内常见的 RPM 与 Tarball的套件升级方式来进行说明:<ul><li><b><font color="#000099">RPM</font></b></li><br>目前使用最广泛的套件管理程序之一,利用数据库管理的方式来进行套件的安装,具有相当容易的操作接口,而且套件查询验证的功能相当强大,不过麻烦的地方在于他的属性相依的问题;</ul><ul><li><b><font color="#000099">Tarball</font></b></li><br>直接以原始码( source code )经过编译后,进行安装。在安装上面具有较大的灵活度,可以随时更改使用者喜好的参数。但是需要其它的套件协助,例如gcc compiler, kernel-header, make 套件等等,并且在反安装上面具有一定程度的困难度;</ul>这两种方法是各有优缺点啦,我们这里想要来谈一谈 RPM 与 Tarball 的安装方式了!</blockquote><hr width="100%"><a name="rpm_packager"></a><font size="+1" color="#000099">RPM套件管理员:</font><ul>接下来我们先谈论一下广为流传与使用的 RPM 套件管理员的相关使用方法喔!<br> <br><hr width="100%"><li><a name="RPMandSRPM"></a><font size="+1" color="#000099">什么是 RPM、 SRPM ?</font></li><br>RPM 全名是『<font color="#000099"> RedHat Package Manager </font>』简称则为RPM 啦!顾名思义,当初这个套件管理的程序是由 Red Hat 这家公司发展出来的,但其实在很多的其它套件也有相类似的套件管理程序。不过由于RPM 使用上很方便,所以就成了目前最热门的套件管理程序啦!那么什么是 RPM呢?说的简单一点, RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序。他最大的特点就是将您要安装的套件先包装好了,透过包装好的套件里头预设的数据库记录,记录这个套件要安装的时候必须要的相依属性模块(就是你的Linux 主机需要先存在的几个必须的套件),当安装在你的 Linux 主机时, RPM会先依照套件里头的纪录数据查询 Linux 主机的相依属性套件是否满足,若满足则予以安装,若不满足则不予安装。那么安装的时候就将该套件的信息整个写入RPM 的数据库中,以便未来的查询、验证与反安装!这样一来的优点是:<br> <ol><li><font color="#000066">由于已经编译完成并且打包完毕,所以安装上很方便;</font></li><li><font color="#000066">由于套件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装;</font></li></ol> <br>但是这也造成很大的困扰,由于 RPM 程序是已经包装好的数据,也就是说,里面的数据已经都『编译完成』了!所以,安装的时候一定需要当初安装时的主机环境才能安装,也就是说,当初建立这个套件的安装环境必须也要在你的主机上面出现才行!例如rp-pppoe 这个 ADSL 拨接套件,他必须要在 ppp 这个套件存在的环境下才能进行安装!如果你的主机并没有ppp 这个套件,那么很抱歉,除非您先安装 ppp 否则 rp-pppoe 就是不让你安装的(当然您可以强制安装,但是通常都会有点问题发生就是了!)。所以,通常不同的distribution 所释出的 RPM 档案,并不能用在其它的 distribution 里面,举例来说,Red Hat 释出的 RPM 档案,通常无法直接在 Mandrake 上面进行安装的,更有甚者,不同版本之间也无法互通,例如Mandrake 9.0 的 RPM 档案就无法直接套用在 8.2 上面!因此,这样可以发现他的缺点是:<br> <ol><li><font color="#000066">安装的环境必须与打包时的环境需求一致或相当;</font></li><li><font color="#000066">需要满足套件的相依属性需求;</font></li><li><font color="#000066">反安装时需要特别小心,最底层的套件不可先移除,否则可能造成整个系统的问题!</font></li></ol> <br>那怎么办?呵呵!还好,还有 SRPM 这个东西! SRPM 是什么呢?他也是一种RPM 啦!但是由于里面连同当初编译之前的原始码都在里头,所以可以进行重新编译的动作。<font color="#000066">通常SRPM 的附檔名是 ****.src.rpm 这一种档案格式</font>。由于 SRPM 包含了原始码及参数设定档案,所以在安装之前则必须重新的编译建立起包装的信息档案套件才行!当然啰,如果在编译的过程中发生了问题,也可以藉由里头的原始码更动来修正问题的所在呢!所以说,RPM 与 SRPM 最大的差异就是在于有没有包含原始码的程序啦!<br> <br><hr width="100%"><li><a name="i386586686noarch"></a><font size="+1" color="#000099">什么是i386, i586, i686, noarch</font></li><br>好啦!现在我们已经知道 RPM 与 SRPM 的格式了,分别为:<br> <table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">xxxxxxxxx.rpm </font><font color="#ffff00">&lt;==RPM 的格式,已经包装完成的 rpm 档案;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">xxxxx.src.rpm </font><font color="#ffff00">&lt;==SRPM的格式,包含为编译的原始码信息。</font></font></td></tr></tbody></table> <br>OK!那么 rpm 档案有没有什么版本或者是套件名称的称呼呢?有的,你可以这样来看待一个rpm 的档案,例如 <font color="#000066" face="SimSun">rp-pppoe-2.6-5.i386.rpm</font><br> <table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" color="#ffffff" face="SimSun">rp-pppoe&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&#160;&#160;&#160;&#160;&#160; 2.6&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&#160;&#160;&#160;&#160;&#160;&#160; 5&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;&#160;&#160;&#160;&#160; i386&#160;&#160;&#160;&#160;&#160;&#160;&#160;.rpm</font><br><font size="-1" color="#ffff00" face="SimSun">第一个部分是套件名称这是套件的版本信息 这是释出版本的次数 这是适合的硬件平台 附文件名而已&#160;</font></td></tr></tbody></table> <br>这样子可以很清楚的发现该套件的名称、版本信息、打包次数与操作的硬件平台!好了,来谈一谈每个不同的地方吧:<br> 

⌨️ 快捷键说明

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