⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0520rpm_and_srpm.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
bug 或者是安全上的顾虑,所以必须要重新设定当初打包时候的设定参数,设定完成之后重新编译并打包成RPM 档案!因此就有不同的打包数出现了!(<i><font color="#000066"> 注:这个时候原始码其实还是3.1 那个版本,只是下达编译时的参数不同而已! </font></i>)<br> <li><font color="#000099">操作硬件平台</font>:</li><br>这是个很好玩的地方,由于 RPM 可以适用在不同的操作平台上,但是由于不同的平台设定的参数还是有所差异性!并且,我们可以针对比较高阶的CPU 来进行最佳化参数的设定,所以就有所谓的 i386, i586, i686 与 noarch 等的文件名称出现了!<ul> <table border="0" cellpadding="3" cols="2" width="80%"><tbody><tr><td valign="top" width="50"><font color="#000099">i386</font></td><td>几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 pentum-IV 与K7 系列的 CPU等等,都可以正常的工作!那个 i 指的是 Intel 兼容的 CPU 的意思,至于386 不用说,就是 CPU 的等级啦!</td></tr><tr><td valign="top"><font color="#000099">i586</font></td><td>就是 586 等级的计算机,那是哪些呢?包括 pentum 第一代 MMX CPU, AMD 的K5, K6 系列 CPU ( socket 7 插脚 ) 等等的 CPU 都算是这个等级;</td></tr><tr><td valign="top"><font color="#000099">i686</font></td><td>在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等级的 CPU 都属于这个686 等级!</td></tr><tr><td valign="top"><font color="#000099">no</font><font color="#000066">arch</font></td><td>就是没有任何硬件等级上的限制。</td></tr></tbody></table>&nbsp;</ul>需要额外说明的是,<font color="#000066"> i386 的档案可以在任何的机器上面安装</font>,不论是586 或者是 686 的机器,但是 <font color="#000066">i686 则不一定可以使用于386 或者是 586 的硬件上面,这是因为 i686 的 RPM 档案在编译的时候,主要是针对686 硬件等级的 CPU 来进行最佳化编译,而 386/586 等级的硬件可能由于无法支持该最佳化参数,所以无法使用呢</font>!另外,在686 的机器上使用 i686 的档案会比使用 i386 的档案,效能可能比较好一些!无论如何,使用i386 应该就是比较没有问题的啦!另外,由于不同的 distirbution 会有不同的环境与函式库,所以在i386 之后也有可能会额外再加上该套件的简写!</ul></blockquote><hr width="100%"><a name="intro_advance"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">RPM的优点</font><blockquote>RPM 有以下的优点:<ul><li><font color="#000066">RPM 档案本身为已经编译过的 binary 档案,可以让 client端的使用者免除重新编译的困扰;</font></li><li><font color="#000066">RPM 档案在被安装之前,RPM 会先检查系统的硬盘容量、操作系统版本等,可避免档案被安装错误;</font></li><li><font color="#000066">RPM 档案本身提供套件版本信息、相依属性套件名称、套件用途说明、套件所含档案等信息,便于了解套件;</font></li><li><font color="#000066">RPM 管理的方式使用数据库记录 RPM 档案的相关参数,便于升级、移除、查询与验证。</font></li></ul>为什么 RPM 在使用上很方便呢?我们前面提过, RPM 这个套件管理员所处理的套件,是由套件提供者在特定的Linux 作业平台上面将该套件编译完成,并且打包好,那使用者只要拿到这个打包好的套件,然后将里头的档案放置到应该要摆放的目录,不就完成安装啰?!对啦!就是这样!但是有没有想过,我们在前一章<a href="http://linux.vbird.org//linux_basic/0520source_code_and_tarball.php">原始码与Tarball</a> 里面提过的,有些套件是有相关性的,例如要安装网络卡驱动程序,就得要有kernel source 与 gcc 及 make 等套件。那么我们的 RPM 套件是否一定可以安装完成呢?!如果该套件安装之后,却找不到他相关的前驱套件,那不是挺麻烦的吗?因为安装好的套件也无法使用啊!<br> <br>为了解决这种具有相关性套件之间的问题,就是所谓的套件相依属性,RPM 就在提供套件打包的档案时,同时加入一些讯息登录的功能,这些讯息包括套件的版本、打包套件者、相依属性的套件、套件的功能说明、该套件的所有档案与目录纪录、等等,然后在Linux 系统上面亦建立一个 RPM 套件数据库( database ),如此一来,当您要安装某个以RPM 型态提供的套件时,在安装的过程中, RPM 会去检验一下数据库里面是否已经存在相关的套件了,如果数据库显示不存在,那么这个RPM 档案『预设』就不能安装( <i><font color="#000066">会显示一些错误讯息</font></i>)。呵呵!没有错,这个就是 RPM 类型的档案最为人所诟病的『<b><font color="#000066">套件的属性相依</font></b>』问题啦!</blockquote><hr width="100%"><a name="intro_solution"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">RPM属性相依的克服方式</font><blockquote>虽然 RPM 有套件属性相依的问题,但是 RPM 的优点实在是比缺点要好的多,所以很多使用者还是偏好使用RPM 来管理自己的套件,在这样的情况下,如何解决 RPM 的属性相依问题呢?最简单的方式就是在安装RPM 档案的时候,发生套件相依的问题时,手动去下载前驱套件,先安装好这些套件,然后再安装最终想要安装的套件即可。但是,如此一来很花费使用者的精神与时间,挺麻烦的啦!有没有比较快速的方法呢?<br> <br>呵呵!有的,由于 RPM 类型的档案里面含有属性相依的讯息存在,如果我们可以透过分析这些讯息,再让程序自行去寻找未安装的前驱套件,并事先加以安装,如此一来不就解决了属性相依的困扰了吗?!没错!是这样!这就是目前所谓的<a href="http://linux.vbird.org//linux_server/0450apt.php">urpmi/apt/yum</a>等服务的由来啦!这些服务都是透过分析 RPM 档案的相依信息,然后自行取得相依属性套件,自行完成安装的动作,呵呵!相当的方便呢!这些信息我们会在<a href="http://linux.vbird.org//linux_server/">服务器架设篇</a>里面进行介绍,在这个章节当中,我们主要还是以单纯的 RPM 为主喔!</blockquote></blockquote><hr width="100%"><a name="rpmmanager"></a><img src="0520rpm_and_srpm_files/penguin-m.gif" alt="" nosave="" align="middle" height="34" width="25"><font size="+1" color="#000099">RPM套件管理程序</font><ul><font color="#000000">RPM 的使用其实不难,只要使用 rpm 这个指令即可!鸟哥最喜欢的就是rpm 指令的查询功能了,可以让我很轻易的就知道某个系统有没有安装鸟哥要的套件呢!此外,我们最好还是得要知道一下,到底RPM 类型的档案他们是将套件的相关档案放置在哪里呢?还有,我们说的那个 RPM的数据库又是放置在哪里呢?</font><br><font color="#000000"> </font><br><hr width="100%"><a name="rpmmanager_dir"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">RPM预设安装的路径</font><ul><font color="#000000"> </font><br>一般来说,RPM 类型的档案在安装的时候,会先去读取档案内记载的设定参数内容,然后将该数据用来比对Linux 系统的环境( <i><font color="#000066">例如属性相依的套件</font></i>),例如目前 <a href="http://linux.vbird.org//linux_server/0310telnetssh.php#ssh">SSH</a> 这个远程联机软件(<i><font color="#000066">请参考服务器篇</font></i>)使用的是 OpenSSL 的加密机制,所以,要安装 SSH 的时候,就得要先安装好 OpenSSL才行啊,如果没有安装 OpenSSL 的话, SSH 就不让您安装了!这些都是 RPM 环境的要求,如果环境相符就予以安装,如果不符就会显示出不符合的内容所在!<font color="#000066">等到安装完毕之后,rpm 就会将套件的信息写入:<b>/var/lib/rpm</b> 这个目录中去!</font>所以,往后您在进行查询的时候或者是预计要升级的时候,相关的信息就会由<b><font color="#000066">/var/lib/rpm</font></b>这个目录的内容数据来提供啰!<br> <br>一般来说,由于 RPM 有数据库来纪录套件相关的信息,所以 RPM 类型的套件所拥有的档案都放置在系统预设放置的目录底下,亦即如同我们在<a href="http://linux.vbird.org//linux_basic/0210filepermission.php#Linux_directory">档案属性与目录配置</a>一文当中提到的:<ul> <table border="0" cellpadding="3" cols="2" width="500"><tbody><tr><td width="120"><font color="#000066" face="SimSun">/etc</font></td><td><font color="#000066" face="SimSun">一些设定文件放置的目录,例如/etc/crontab</font></td></tr><tr><td><font color="#000066" face="SimSun">/usr/bin</font></td><td><font color="#000066" face="SimSun">一些可执行档案</font></td></tr><tr><td><font color="#000066" face="SimSun">/usr/lib</font></td><td><font color="#000066" face="SimSun">一些程序使用的动态函式库</font></td></tr><tr><td><font color="#000066" face="SimSun">/usr/share/doc</font></td><td><font color="#000066" face="SimSun">一些基本的软件使用手册与说明文件</font></td></tr><tr><td><font color="#000066" face="SimSun">/usr/share/man</font></td><td><font color="#000066" face="SimSun">一些 man page 档案</font></td></tr></tbody></table>&nbsp;</ul>好了,底下我们就来针对每个 RPM 的相关指令来进行说明啰!</ul></ul><blockquote><hr width="100%"><a name="rpmmanager_install"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">RPM安装( install )</font></blockquote><ul><ul>安装就是 install 嘛!所以啰,使用 rpm 来安装就很简单啦!假设我要安装一个档名为rp-pppoe-3.1-5.i386.rpm 的档案,那么我可以这样( <i><font color="#000066">记得某些套件可能需要以系统管理员的身份来安装</font></i>):<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">rpm -i rp-pppoe-3.1-5.i386.rpm</font></b></font></td></tr></tbody></table> <br>不过,这样的参数其实无法显示安装的进度,所以,通常我们会这样下达安装指令:<br> <table bgcolor="#000000" border="1" cols="1" width="520"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">rpm -ivh rp-pppoe-3.1-5.i386.rpm</font></b></font><br><font size="-1" color="#ffffff" face="SimSun">Preparing...&#160;&#160;&#160;&#160;####################################### [100%]</font><br><font size="-1" color="#ffffff" face="SimSun">&#160;&#160;1:rp-pppoe&#160;&#160;&#160; ####################################### [100%]</font><br><font size="-1" color="#ff6666" face="SimSun"># -i :install的意思</font><br><font size="-1" color="#ff6666" face="SimSun"># -v :察看更细部的安装信息画面</font><br><font size="-1" color="#ff6666" face="SimSun"># -h :以安装信息列显示安装进度,例如上面的# 字符号!</font><br><font size="-1" color="#cccccc" face="SimSun"> </font><br><font size="-1" color="#cccccc" face="SimSun"># 如果要安装两个以上的套件时,可以这样:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">rpm -ivh a.i386.rpm b.i386.rpm *.rpm</font></b></font><br><font size="-1" color="#ff6666" face="SimSun"># 后面可以接多个套件!</font><br><font size="-1" color="#ff6666" face="SimSun"> </font><br><font size="-1" color="#cccccc" face="SimSun"># 也可以直接由网络上面安装,例如:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">rpm -ivh http://website.name/path/pkgname.rpm</font></b></font></td></tr></tbody></table> <br>另外,如果我们在安装的过程当中发现问题,或者已经知道会发生的问题,而还是『执意』要安装这个套件时,可以使用如下的参数『强制』安装上去:<ul> <table border="0" cellpadding="3" cellspacing="3" cols="2" width="80%"><tbody><tr><td valign="top" width="130"><font color="#000066" face="SimSun">--nodeps</font></td><td><font face="SimSun"><font color="#000066">使用时机</font><font color="#000000">:如果您在安装某个套件时,老是发现rpm 告诉你『</font><font color="#000066">有属性相依的套件尚未安装</font><font color="#000000">』,而您又想要直接强制安装这个套件时,可以加上--nodeps 告知 RPM 不要去检查套件的相依性。</font></font><br><font face="SimSun"><font color="#000066">危险性</font><font color="#000000">:套件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑套件的属性相依,则可能会造成该套件的无法正常使用!</font></font></td></tr>

⌨️ 快捷键说明

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