北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>

                鸟哥的 Linux 私房菜
                目次 | Linux 根底篇 | Linux 效劳器篇 | Linux 企业使用篇 | 平安办理
                     
                 
                浅易 APT/YUM  效劳器设定
                近来更新日期:2004/06/23
                 
                用不惯 Tarball 装置套件却又担忧 RPM 的属性相依题目吗?假如有一种套件办理东西可以克制 RPM 属性相依的办法该有多好!有没有这种东西?呵呵!有的,那便是 APT 与 YUM 这两个效劳器了。APT (Advanced Package Tool) 是由 debian 这个 distribution 所开展的一个套件办理东西,其目标在克制 RPM 套件的属性相依题目,让运用者可以透过 APT 的剖析间接装置/晋级/删除相干联的套件喔。另一个很好用的便是 YUM (Yellow dog Updater, Modified) 这个咚咚,他是由 Duke University 所提倡的方案,目标则与 APT 类似,都是在克制 RPM 的属性相依题目,方便运用者停止套件的装置、晋级等等任务。由于 APT/YUM 这一类的效劳器在‘零碎晋级/办理’下面的功用发扬的很好,以是现在许多的 distributions 都把这两个效劳器作为预设的效劳喔。在这个章节当中,我们要引见怎样在您的 Linux 效劳器下面建置一个 ATP 或 YUM 效劳器,而且提供更新的 RPM 套件给 Client 端来运用!
                 
                媒介
                  :什么是 APT/YUM 呢?他们怎样运作
                  :能否需求搭建 APT/YUM 效劳器
                  :搭建之前,您所需求启用的效劳
                APT 效劳器
                  :APT 效劳器应用的机制
                  :装置 APT 软件
                  :APT 效劳器的套件构造
                  :APT 效劳器设定 ( 以 HTTP 提供效劳为例 )
                  :Client 真个设定
                YUM 效劳器
                  :YUM 效劳器应用的机制
                  :装置 yum 软件
                  :yum 效劳器的套件构造
                  :yum 效劳器设定
                特别案例
                  :树立本人的更新套件
                  :怎样获得网络上的更新元件
                主机的计划本领与发起
                参考资源

                媒介:
                  假如您已经自行装置过某些套件的话,那么您大概会以为:‘RPM 是比 Tarball 好装置没有错啦,但是每次为理解决套件之间的属性相依题目,真的是很烦,尤其是 RPM 文件在差别的作业零碎版本之间也无法相容!’是的!没错!为了要处理这个套件之间的属性相依题目,又要保存 RPM 套件的易装置与盘问的特性,以是就有一些套件办理办法出来啦!比拟著名的便是 APT 与 YUM 这两个咚咚啦。(注:固然,Mandrake 的 urpmi 也是很棒的东西。)
                   

                  什么是 APT/YUM 呢?他们怎样运作?
                   
                    众所皆知的, RPM 是现在 Linux 天下外面用的最多的套件装置方法。不外,由于 RPM 所办理的套件在装置的时分必需要思索到差别套件之间的相依性,这在零碎办理员处置零碎的晋级/更新下面是很厌恶的!为了克制这个题目,以是有 APT/YUM 之类的方案出来。APT ( Advanced Package Tool ) 最早是由 debian 这个 distribution 所开展出来的,而 YUM ( Yellow dog Updater, Modified ) 则是由 Duke University 所提倡的方案之一,这两者的目标都是‘为了要处理装置 RPM 套件时的属性相依题目!’,而不是额定再树立一个套件装置形式喔。起首,我们谈一谈为什么 RPM 套件会有属性相依的题目?又,什么是属性相依的题目啊?
                     
                    • 属性相依的题目大多来自于函式库的援用,举例来说,我们后面 SSH 与 Telnet 效劳器章节中提到的 SSH 效劳器需求运用到 SSL 这个套件的加密机制,以是天然就需求 SSL 的函式库,这个时分,假如您没有装置 SSL 的话,那么 SSH 就不会让您装置了!这便是属性相依的题目啦。也便是说,当我们要装置 A 套件,后果 RPM 套件办理员通知你还需求 B 套件,而装置 B 套件时,却又发明还短少 C 套件~真是环环相扣啊!厌恶去世了~
                   
                    • 要晓得某个套件的最低要求是哪些套件时,可以运用 rpm -qR packagename ,至于某个套件提供哪些文件则可以运用 rpm -q --provides packagename 。这些资讯都记录在 RPM 套件外面。
                     
                    假如关于 RPM 另有疑问,请参考根底学习篇RPM 与 SRPM 谁人章节啰。好了,既然每一个 RPM 套件的标头 (header)外面都市记录该套件的属性相依干系,那么假如我们可以将该标头的内容记录上去而且停止剖析,不就可以得知每个套件在装置之前需求额定装置哪些根底套件吗?也便是说,我们在效劳器下面先以剖析东西将一切的 RPM 文件停止剖析,然后将该剖析记录上去,只需在停止装置或晋级时先盘问该记录的文件,就可以晓得一切相干联的套件文件!没错!是如许。他的整个运作流程有点像如许:
                     
                    效劳器端:
                    1. 起首,在 APT/YUM 效劳器下面安排了一切的 RPM 套件(这包罗来自原版光碟与供给商刊行的晋级套件);
                    2. 然后以相干的功用去剖析各个 RPM 文件的相依性,这些记录可以处理所谓的属性相依题目,然后将这些材料记载成文件寄存在效劳器的某特定目次内;
                     
                    客户端:
                    1. Client 端假如需求装置/晋级/删除某个顺序时,会先下载效劳器下面纪录的属性相依文件(应用的协议则是 WWW 或许是 FTP);
                    2. 经过比对效劳器端传来的记录材料停止剖析,然后获得一切相干的套件,一次全部属载上去停止晋级装置。
                     
                    云云一来则克制了属性相依的题目啰!是的!就这么复杂啊!整个图示如下:

                图一、APT/YUM 效劳器的架构。
                    您的 APT/YUM 效劳器下面可以拥有多个版本的 Linux distributions 的 RPM 套件,而且需求提供 WWW/FTP 等效劳,而 Client 端则是藉由主机的 WWW/FTP 等协议来停止 RPM 文件的获得喔。
                   

                  能否需求搭建 APT/YUM 效劳器
                   
                    APT/YUM 的功用也只是在办理 RPM 套件罢了,只是他比单纯的 RPM 指令要好的中央在于他克制了属性相依的题目,以是用户端可以很方便的停止装置/晋级与移除的举措。那么能否意味着我就得要搭建 APT 或 YUM 效劳器呢?
                     
                    这可纷歧定呐。假如您只要一台主机,并且下面的网络效劳很少,而且也没有提供什么紧张的效劳,那么搭建 APT/YUM 效劳器就没有这么需求了。为什么呢?由于很罕用到 APT 的机制啊,并且间接找网络下面有的 APT/YUM 效劳器即可,无须搭建啦!要留意的是,搭建 APT/YUM 效劳器时,您必需要有够用的硬碟空间、够用的频宽以及提供至多 WWW 或许是 FTP 的网络效劳呢!这对只要一台主机的您来说,真的不用要操心思去办理的啦!但假如您的网络情况是如下的容貌,能够就得要搭建一台 APT/YUM 效劳器比拟好啰!
                     
                    • 您的网络外面有相称多的异样版本的 Linux distribution 零碎;
                    • 您的地区网络对外频宽不高,且外部有多部 Linux 主机零碎;
                    • 您的 Linux distributions 在国际并没有绝对应的 APT/YUM 效劳器提供效劳,而对外洋连线的频宽又很低时;
                     
                    也便是说,假如您拥有多部 Linux 主机,或许是您衔接到 APT/YUM 效劳器的频宽太低时,就可以思索搭建 APT/YUM 效劳器了。以下面图一来说,假如您的连外网络频宽太低,那么搭建一台 APT/YUM 效劳器后,一切的 Linux 是衔接到该部 APT/YUM 效劳器停止晋级/装置,速率固然比连外要快许多啦!
                      
                    以是说,假如您是下层的零碎办理员(比方学校的网管教师或许县网、区网的网管职员),为了您的整个网络的 Linux 主机来计划,那么搭建 APT/YUM 是蛮需求的,由于真的可以节流许多连外的频宽;相反的,假如您是普通用户,拥有的了不得便是两三部 Linux 主机罢了,那么好像没有搭建 APT 主机的须要性呢!由于由下面的阐明来看,搭建 APT 主机所需求的‘硬碟空间’但是不克不及省的,关于普通的用户来说,搭建 APT 主机真实是没有什么须要性说
                   

                  搭建之前,您所需求启用的效劳
                   
                    就好像后面的阐明,您要搭建 APT/YUM 时,请先记得在您的 APT/YUM 主机下面启用 WWW 或许是 FTP 效劳了才行!由于 APT/YUM 是应用 WWW/FTP 来停止 RPM 文件在 Server 与 Client 之间的传送的!别的,您的 APT/YUM 主机下面最好将最接近您主机的 Linux 版本更新套件的网站设定为映射站台 ( mirror ),云云一来,您就可以让零碎主动的更新您的 Linux distributions 所需求的更新文件,而不用手动来更新呢!
                     
                    别的,由于完好的 APT/YUM 效劳器包括了本来的 Linux distributions 的原版光碟内容,以是需求的硬碟空间是很高的!至多需求 3~5 GB 以上,最好可以有 10GB 以上的硬碟空间
                     
                    好了,底下我们就来开端装置与设定 APT/YUM 效劳器吧!

                APT 效劳器:
                  底下开端来谈一谈 APT 效劳器吧!
                   

                  APT 效劳器应用的机制
                   
                    就好像媒介阐明的, APT 主机可以将曾经存在的 RPM 文件停止剖析,而且将各个套件的相干系记载上去,以便让运用者根据这个套件的相干性记录文件来更新与装置他们的 Linux 零碎。那么这些文件放在那边呢?实在由于这些文件被需求让 Client 端可以下载,并且 APT 并不是额定再启用其他的 port ,而是透过 WWW 或许是 FTP 的方法来让 Client 端下载的,以是 APT 的 RPM 文件固然就需求放在可以让 WWW 或许让 FTP 来存取的目次啰
                     
                    在许多 Linux distributions 的 WWW 预设主页是放在 /var/www/html 这个目次下的( 比方 Red Hat 9, Fedora Core I/II, Mandrake 等等 ),以是,除非您想要自行搭建假造主机,或许是应用保持档的方法来让 RPM 文件安排的目次可以让 WWW 读取,不然您都应该要将 APT 办理的 RPM 文件安排在 /var/www/html 底下。假定我有两个 Linux 的版本要这部 APT 主机办理时,一版是 Mandrake 9.1 一版是 Red Hat 9 ,那么我可以如许编排我的 RPM 文件安排的目次:
                     
                    表一、APT 主机相干 RPM 文件安排的目次表示表
                    /var/www/html/apt/redhat9
                                 |--RPMS.os
                                 |--RPMS.updates
                                 |--SRPMS.os (非必备目次)
                                 |--SRPMS.updates (非必备目次)
                                 `--base
                                   |--pkglist.os.bz2
                                   |--pkglist.updates.bz2
                                   |--release
                                   |--release.os
                                   `--release.updates
                    /var/www/html/apt/mdk9.1
                                |--RPMS.os
                                |--RPMS.updates
                                |--SRPMS.os (非必备目次)
                                |--SRPMS.updates (非必备目次)
                                `--base
                                  |--pkglist.os.bz2
                                  |--pkglist.updates.bz2
                                  |--release
                                  |--release.os
                                  `--release.updates
                     
                    如上所示,我独立出一个名为 apt 的目次来办理我的 APT 文件,别的,由于有两个版本,以是我将 apt 又分为两个目次,由于两个目次的款式一样,以是我以 Red Hat 9 谁人 /var/www/html/apt/redhat9 目次来引见。外面至多会有三个目次才对,辨别是 RPMS.os, RPMS.updates, base 这三个目次,此中:
                     
                    • RPMS.os 的内容为 Red Hat 9 的本来光碟中的 RPM 文件(i386);
                    • RPMS.updates 的内容为 Red Hat 公司针对 Red Hat 9 这一版所释出的修补套件;
                    • base 这个目次外面的材料则是由 APT 效劳器所主动发生的,后面我们提到的 APT 会去剖析 RPM 文件而将文件资讯记载上去,记载上去的咚咚便是安排在这个目次下的啦!
                     
                    您还会看到实在另有 SRPMS.os 以及 SRPMS.updates 等目次,呵呵!谁人便是 Source RPM (SRPM) 文件安排的目次了。由于我们间接可以透过 Binary 来晋级,以是我预设不放 SRPM 在我的 APT 效劳器外面啰!
                     
                    OK!以是我们需求怎样来搭建我们的 APT 以及应用 APT 来晋级呢?
                     
                    1. 先将一切来自 Linux 原版光碟的 RPM 文件复制到 /full/path/RPMS.os 文件中;
                    2. 再未来自原 Linux 版本公司释出的 RPM 修补套件由 Internet 下载到 /full/path/RPMS.updates 当中;
                    3. 应用 APT 的功用停止 /full/path/base 这个目次外面资讯的更新;
                    4. 到 Client 端下面,以 APT 的功用更新 Client 本人的套件资讯,使与 APT 主机的 /full/path/base 这个目次外面的套件记载资讯同步化;
                    5. 到 Client 端下面,可以应用 APT 的功用来更新或许是装置套件了!固然,所运用来下载 RPM 文件的协议固然是 WWW 或是 FTP 啰!并且, Client 端剖析的是本人的 RPM 资讯喔,以是每次停止更新之前,应该将 Client 真个 RPM 资讯与 APT Server 端来同步化才行!不然 Server 新增的文件在 Client 端是无法获得资讯的喔!
                     
                    以是啰,实在在 APT 主机设定下面最紧张的步调应该是在于主机硬碟的计划、文件的复制与 updates 文件的随时主动更新(可以应用映射站台的功用),以及 /full/path/base 目次下的资讯更新等等步调!只需这边没有题目,其他的流程就复杂咯!
                   

                  装置 APT 软件
                     

                  APT 效劳器的套件构造
                   
                    APT 效劳器外面有许多的文件,阐明如下:
                   
                  • 设定文件:

                  •  
                    • /etc/apt/apt.conf:这个并不是 APT Server 的记载档,而是当我们在指令列形式下达 APT 的指令时 (如底下实行档局部会引见的 apt-get ),该指令的情况参数。普通来说,运用预设值就可以了!不需求变动他。这个文件的内容当中:

                    •  
                      表明标记为两个斜线( slash ):‘//’
                      次要至多分为三大群组,辨别为 APT(情况参数), Acquire(下载相干参数) 与 RPM(RPM相干参数),而每个群组之内又辨别具有多个参数,每个参数的设定值最初以分号‘;’离隔,比方上面的典范:
                      [root@test root]# vi /etc/apt/apt.conf
                      APT    //第一个大群组
                      {
                        // Options for apt-get
                        Get   //第一个大群组外面的第一个参数
                        {
                          Download-Only "false";  //第一个参数的项目与该项目之设定值
                          Show-Upgraded "true";   //第二个参数的项目与该项目之设定值
                        };
                      };
                      除了下面的款式外,也可以应用底下的款式来停止设定:
                      主群组::参数::项目 "设定值";
                      比方下面的典范中,可以将第一个设定值写成:
                      APT::Get::Download-Only "false";
                       
                      别的,假如您想要运用 Proxy 来放慢您的网络传输时,可以修正外面的内容,由于 Proxy 是在 Acquire 外面的 Http 参数,以是您可以运用如下的设定值(注:我以成大的 proxy.ncku.edu.tw:3128 为例):
                       
                      1. 应用本来的设定本领:
                      [root@test root]# vi /etc/apt/apt.conf
                      // 找究竟下的参数
                      Acquire
                      {
                        // 底下参加这些材料:
                        Http
                        {
                          Proxy "http://proxy.ncku.edu.tw:3128";
                        };
                        Retries "0";
                      };
                       
                      2. 或许您也可以改用底下的参数设定:
                      [root@test root]# vi /etc/apt/apt.conf
                      //在最初一行参加,留意,不要被括号 {} 括住了!
                      Acquire::Http::Proxy "http://proxy.ncku.edu.tw:3128";
                       
                      下面两种办法都是行的通的啦!
                       
                    • /etc/apt/sources.list:这个文件就真的紧张了!此文件的作用在于‘选择合适您的 APT 主机’啰!以是这个文件与 Client 的干系比拟大。内容有点像如许:

                    •  
                      [root@test root]# vi /etc/apt/sources.list
                      # Red Hat Linux 9
                      rpm http://ayo.freshrpms.net redhat/9/i386 os updates freshrpms
                      #rpm-src http://ayo.freshrpms.net redhat/9/i386 os updates freshrpms
                       
                      # 外面料的款式为:
                      # rpm <APT效劳器位址> <绝对于效劳器的途径> <目次一> <目次二> <目次三> ...
                      # 以下面的例子来说,现实上 RPM 安排的目次在:
                      # http://ayo.freshrpms.net/redhat/9/i386/RPMS.os
                      # http://ayo.freshrpms.net/redhat/9/i386/RPMS.updates
                      # http://ayo.freshrpms.net/redhat/9/i386/RPMS.freshrpms
                      # 而至于 rpm-src 则是安排 SRPM 文件的效劳器与目次喔!
                       
                      假如您是由鸟哥面引荐的 RPM 装置您的 APT 时,这里可以坚持预设的途径,不外,假如您晓得台湾地域有更疾速的映射站台,这里就可以修正成您所找到的 APT 效劳器啰。
                       
                  • 实行文件:

                  •  
                    • apt-get:这个是最次要的实行档了!大局部的时分都是给 Client 端用的,语法如下:

                    •  
                      [root@test root]# apt-get <options> <更新项目> <套件称号>
                      参数阐明:
                      options:关于参数有底下几个较罕见的:
                        -q 不要表现 apt-get 运作时的输入讯息,恬静一点比拟好吗?! ^_^
                        -y 假如 apt-get 在任务进程中需求运用者回应,这个参数可以间接答复 yes 
                      更新项目:更新的举措有底下几个:
                        update:这个举措很紧张,便是我们下面有提到的,Client 端要更新与 APT Server
                            套件相干性文件的清单对应表,就得要运用这个项目了!根本上,
                            每次停止 apt-get 来下载 APT Server 的文件前,最好都先 apt-get update 
                        install:装置某个套件,前面接套件称号
                        dist-upgrade:主动晋级我们零碎下面曾经装置的一切 RPM 套件喔
                        clean:将下载自 APT 主机的的 RPM 文件删除哩!
                        remove:移除曾经装置在我们零碎的某个套件!
                      典范:
                      [root@test root]# apt-get update       # 将 RPM 文件相干性清单更新!
                      [root@test root]# apt-get install tcpdump # 装置 tcpdump 这个套件
                      [root@test root]# apt-get -y dist-upgrade  # 晋级我们零碎下面的一切 RPM 套件
                      [root@test root]# apt-get clean 
                       
                      # 至于逐日更新的话,可以写入 /etc/crontab 喔
                      [root@test root]# vi /etc/crontab
                      40 5 * * * root apt-get update; apt-get -y dist-upgrade ; apt-get clean
                       
                    • genbasedir:我们在媒介的局部频频地提到 APT Server 会剖析曾经存在的 RPM 文件的属性相干性,而且会将属性的后果安排在 /full/path/base 谁人目次内~呵呵!实在该举措很复杂的,便是运用这个 genbasedir 即可!
                     
                  • 相干目次:

                  •  
                    • /var/cache/apt:一些记载文件的中央,比方当运用 apt-get update 之后,这个目次下的 RPM 文件相干系记载档就会更新了!

                    • /var/state/apt:这个则是 apt 在任务的时分,一些形态的记录文件安排的中央!
                   

                  APT 效劳器设定 ( 以 HTTP 提供效劳为例 )
                   
                    在底下的例子当中,我们次要是设定以 HTTP 为 APT Server 的效劳提供者,由于是应用预设的 WWW 零碎版本,以是首页在 /var/www/html。鸟哥在 /var/www/html 底下树立一个名为 apt 的目次,并在底下提供 Red Hat 9 与 Mandrake 9.1 的 APT 套件效劳功用,留意,我预设仅提供 RPM 文件,并不提供 SRPM 的文件喔!相干的目次如后面提到的表一所示(注:固然 SRPM.os... 等文件就不用树立了!)。好了,那么就来给他装置 APT Server 相干的流程吧!
                   
                  1. 建置所需的目次与复制所需的文件:

                  2. 如下面提到的 表一 所示为我们所需求的目次,而在每个 RPMS.os 为零碎本来的光碟外面的文件,而 RPMS.updates 则为套件晋级版本。我这里次要以中山大学的 FTP 网站作为次要的 update 材料泉源,运用的是 ncftp 的下载办法:
                    1. 建置所需目次:
                    [root@test root]# mkdir -p /var/www/html/apt/redhat9/RPMS.os
                    [root@test root]# mkdir -p /var/www/html/apt/redhat9/RPMS.updates
                    [root@test root]# mkdir -p /var/www/html/apt/mdk9.1/RPMS.os
                    [root@test root]# mkdir -p /var/www/html/apt/mdk9.1/RPMS.updates
                     
                    2. 应用原版 CD 来复制所需的 .os 的 RPM 文件
                    [root@test root]# cd /var/www/html/apt/redhat9/RPMS.os
                    # 先放入 Red Hat 9 的原版光碟片
                    [root@test RPMS.os]# mount /dev/cdrom 
                    [root@test RPMS.os]# cp /mnt/cdrom/RedHat/RPMS/* .
                    [root@test RPMS.os]# umount /dev/cdrom
                    # 反复下面的步调,将三片 i386 的 RPM 文件都复制出来!
                    # 至于 Mandrake 的原版光碟复制办法也是相反的步调!
                     
                    3. 应用 ftp.nsysu.edu.tw 来下载所需求的 RPM 文件
                    [root@test RPMS.os]# cd /var/www/html/apt/redhat9/RPMS.updates
                    [root@test RPMS.updates]# ncftp  \
                    > ftp://ftp.nsysu.edu.tw/Linux/RedHat/linux/updates/9/en/os/i386/
                    NcFTP 3.0.2 (October 19, 2000) by Mike Gleason (ncftp@ncftp.com).
                    Connecting to 140.117.11.7...
                    ====================================================================
                     欢送莅临【国立中山大学】文件效劳器 : FTP.NSYSU.edu.tw
                       Welcome to National Sun Yat-Sen University FTP Server.
                     右列网址提供本站文件搜索引擎 http://ftp.nsysu.edu.tw/
                       File Search Engine on the URL http://ftp.nsysu.edu.tw/
                     现在 FTP 部份有 313 人正在线上,最高限定 5000 人.
                       There are currently 313 users out of 5000 possible.
                    ====================================================================
                    Only anonymous FTP !!!! Please press [ENTER] key.
                    Logging in...
                     ========================================================================
                     !!!! Important Function !!!! (紧张功用引见)
                     o 'cd key*word' or 'cd prefix*' or 'cd *suffix' provided (case-insentive).
                       (例:cd freebsd 可以打成 cd fr 或 cd *sd 或 cd f*e*d 都通用,巨细写都行)
                     ========================================================================
                     请多多应用 <A HREF="http://ftp.nsysu.edu.tw">http://ftp.nsysu.edu.tw</A>
                     可以运用方便的文件搜索引擎喔!!!!!!!!!!!!!!!!!
                     ========================================================================
                     ADM.Email: ftpadm@cc.nsysu.edu.tw
                    Anonymous user (163.28.112.1) logged in
                    Logged in to ftp.nsysu.edu.tw.
                    Current remote directory is /pub/Linux/RedHat/linux/updates/9/en/os/i386.
                    ncftp ...x/updates/9/en/os/i386 > mget *
                    .....
                    应用下面的步调就可以将 Red Hat 9 的两个目次下的 RPM 文件安排终了!至于 Mandrake 9.1 的办法与 Red Hat 9 是完全相反的!请您按照下面的办法来自行装置 Mandrake 到您的零碎当中喔!别的,除了中山大学提供的 FTP 网站之外, 您也可以运用淡江大学或许是其他的大专院校提供的 FTP 效劳喔!
                    淡江大学的 FTP 网站: ftp://ftp.tku.edu.tw/OS/Linux
                    中山大学的 FTP 网站: ftp://linux.cdpa.nsysu.edu.tw
                     
                  3. 树立 RPM 地点文件的相干材料:

                  4. 树立好了文件之后,再来则是需求停止这些 RPM 文件的相干系剖析了,剖析办法很复杂,只需一个举措即可:
                    [root@test root]# genbasedir <最下层目次> <绝对目次一> <绝对目次二> ...
                    参数阐明:
                    最下层目次:以我们的 APT 主机为例,最下层目次有两个,辨别便是:
                          /var/www/html/apt/redhat9
                          /var/www/html/apt/mdk9.1
                    绝对目次一:那便是 RPMS.os 与 RPMS.updates ,但是记得 RPMS 不要写,
                          只需 os 以及 updates 即可!
                    典范:
                    [root@test root]# genbasedir /var/www/html/apt/redhat9 os updates
                    Creating base directory... done
                    Components: os updates
                    Processing pkglists... os updates done
                    Processing srclists... done
                    Creating component releases... os updates done
                    Creating global release file... done
                    Appending MD5Sum... os updates done
                    All your base are belong to us!!!
                    [root@test root]# genbasedir /var/www/html/apt/mdk9.1 os updates
                    # 举措真是给他有点久~耐烦期待吧! ^_^
                    停止完下面两个举措后,APT 就会在您的零碎下面自动的树立起 /var/www/html/apt/redhat9/base 以及 /var/www/html/apt/mkd9.1/base 这两个目次啰!这也是最紧张的目次咯!根本上, APT Server 到这一步调就曾经完全 OK 了!其他的便是 WWW 效劳器的设定啰,由于后面我们曾经引见过 WWW 了,这里不再反复阐明说!
                     
                  5. 树立 Client 所需求的 sources.list

                  6. 我们的 Red Hat 9 所搭建的 APT Server 固然也可以让我们本人来晋级了!这个时分请您修正 /etc/apt/sources.list 呢!请留意喔!您所选择的 APT Server 需求设定准确才行喔!
                    [root@test root]# vi /etc/apt/sources.list
                    # 这是我们主机的 Red Hat 9 典范:
                    rpm http://192.168.1.2 apt/redhat9 os updates
                    # 这是 Mandrake 的典范
                    # rpm http://192.168.1.2 apt/mdk9.1 os updates
                     
                    [root@test root]# apt-get update
                    Get:1 http://192.168.1.2 apt/redhat9 release [543B]
                    Fetched 543B in 0s (1359B/s)
                    Get:1 http://192.168.1.2 apt/redhat9/os pkglist [420kB]
                    Get:2 http://192.168.1.2 apt/redhat9/os release [121B]
                    Get:3 http://192.168.1.2 apt/redhat9/updates pkglist [55.1kB]
                    Get:4 http://192.168.1.2 apt/redhat9/updates release [126B]
                    Fetched 475kB in 8s (57.0kB/s)
                    Reading Package Lists... Done
                    Building Dependency Tree... Done
                    # 这个步调在测试我们下面的 sources.list 能否准确!
                    # 而且可以同时更新我们 Client 真个 RPM 属性文件记载!
                    # 要呈现下面的讯息才对,假如呈现错误讯息,很有能够是 WWW 设定错误!
                    这里特殊阐明的是, apt-get update 的作用在‘获得 APT Server 的各个 RPM 文件的相干性,亦便是 base 目次外面的文件’,获得这些材料后,将来您的 Linux 主秘密停止各项装置/晋级举措时,就可以间接取用本人的记录档了。以是,假如主机下面更新了 base 外面的资讯,则您必需要再次的实行 apt-get update 才行,不然主机下面更新的材料您将无法获得。
                     
                  7. 活期树立 update RPM 文件的映射材料,并更新 RPM 相干材料

                  8. 实在到上一步调一切 APT 相干的作业应该就曾经完成了,不外,要知道的是, Internet 下面的 update 套件是随时在更新的,以是我们的 APT server 下面的 RPMS.updates 目次也应该要随时更新才对啊!要更新,您可以运用手动的方法来下载,用 ncftp 好像不错!不外,终究不太合适即时更新,这个时分,我们可以应用映射 (mirror) 的方法来停止更新喔!我们以 Red Hat 9 的 update 来停止阐明!关于映射的阐明请您自行参考 http://mirrordir.sourceforge.net/ ,我们这里仅需求使用罢了喔!
                    1. 先线上装置 mirror 吧!
                    [root@test root]# rpm -ivh \
                    > http://mirrordir.sourceforge.net/mirrordir-0.10.49-1.i386.rpm
                     
                    2. mirrordir 的语法
                    [root@test root]# mirrordir <泉源网址> <目的目次>
                    [root@test root]# mirrordir -v \
                    > ftp://ftp.nsysu.edu.tw/Linux/RedHat/linux/updates/9/en/os/i386/  \
                    > /var/www/html/apt/redhat9/RPMS.updates
                    # 用 -v 来观察一下 mirrordir 的反省形态,假如以 cron 来停止时,就不需求了!
                     
                    3. 活期停止映射而且同时更新 RPM 文件相干性:
                    [root@test root]# vi /etc/crontab
                    # 参加这一行:
                    30 5 * * * root mirrordir ftp://ftp.nsysu.edu.tw/Linux/RedHat/linux/updates/9/en/os/i386/  /var/www/html/apt/redhat9/RPMS.updates && genbasedir /var/www/html/apt/redhat9  os updates
                    # 留意喔!下面为延续的一行啊! ^_^
                     
                    云云一来,我们的 APT 主机不光可以本人更新本人与 FTP 映射站的 update 材料,而且同时更新 APT 的 base 目次下的相干性文件喔!而您的 APT Client 就可以随时来更新他的 RPM 套件啰! ^_^
                   

                  Client 真个设定
                   
                    无论是 APT Server 或许是 APT Client ,要运用 APT 效劳器的功用,您都必需要装置 APT 软件才行。以是,起首请将您的 Client 根据后面‘装置 APT 效劳器软件’章节停止 apt 的装置;装置终了之后,最紧张的便是修订 /etc/apt/sources.list 这个文件啰!您必需要设定准确的 APT 效劳器才行,云云一来,您就可以运用 APT 的弱小功用啦!更多的运用本领请参考 Linux 网络套件晋级 章节。

                YUM 效劳器
                谈完了 APT 效劳器之后,接上去我们就来谈一谈现在被 Red Hat 及 Fedora 列为预设的 RPM 套件装置/晋级机制的 yum 这个效劳器啦。
                 

                YUM 效劳器应用的机制
                  与 APT 相似的, yum 并没有开辟新的网络传输机制,异样仅是应用本来主机就提供的 WWW 或许是 FTP 效劳,来让 server/client 停止文件的传输。以是在您 yum 效劳器上的 RPM 文件异样的需求安排在 WWW 或 FTP 效劳可以存取的地点目次才行。这里鸟哥异样以 /var/www/html 这个 WWW 的目次作为阐明。
                   
                  普通来说,我们需求的 RPM 文件便是本来光碟所提供的套件,以及厥后厂商提供的晋级套件,这两种 RPM 文件我辨别将他安排在底下所示的目次内:
                   
                  表二、APT 主机相干 RPM 文件安排的目次表示表
                  /var/www/html/yum/fedora/core1
                                |--base
                                |  `--headers
                                `--update
                                  `--headers

                  /var/www/html/yum/mandarke/10.0
                                |--base
                                |  `--headers
                                `--update
                                  `--headers

                   
                  好像上表二所示,每一个版本的 Linux 内仅有两个目次,此中 base 是原版光碟的 RPM 文件,至于 update 则是晋级的 RPM 文件。比拟风趣的中央在于‘颠末 yum 剖析 RPM 文件后的记录材料是安排在该目次下的 headers 目次内。’举例来说,我们的 mandrake 10.0 晋级用的 RPM 文件是安排在 /var/www/html/yum/mandrake/10.0/update 下,则在该目次下的 RPM 被剖析后,每一个 RPM 文件的记录档则安排在 /var/www/html/yum/mandrake/10.0/update/headers 目次下喔。至于整个 yum 的机制为:
                   
                  1. 先将一切来自 Linux 原版光碟的 RPM 文件复制到 /full/path/base 文件中;
                  2. 再未来自原 Linux 版本公司释出的 RPM 修补套件由 Internet 下载到 /full/path/update 当中;
                  3. 应用 yum 的功用去剖析每个目次下的 RPM 文件;
                  4. 在 Client 端下面,每次停止 RPM 套件的晋级/装置功用时, yum 会主动的读取 headers 内的记录档,并主动剖析 RPM 套件的属性相依题目。
                   
                  与 APT 相比, yum 少了一个 Client 端同步化的步调了,以是,可以防止运用者不警惕忘记了材料同步化而招致无法获得最新 RPM 记录的题目喔。

                装置 yum 软件
                yum 在 Red Hat 及 Fedora 是规范装备,以是您无须伤头脑。但假如您是其他的 distributions 而想要应用这个好用的 yum 功用,那么可以究竟下的网站搜索合适您的 yum 版本: 找到后,间接装置即可。

                yum 效劳器的套件构造
                鸟哥以为, yum 效劳器的套件构造要比 apt 复杂一些些,根本上只要底下几个咚咚:
                • 设定档:不要疑心,只要一个设定档。

                •  
                  • /etc/yum.conf这个文件是给 yum client 用的设定档,外面次要规则了要取用 RPM 文件的 yum server 的资讯,内容有点像如许:

                  •  
                    [root@test root]# vi /etc/yum.conf
                    # 在这个文件当中,表明标记是 # ,而每一个大项目则以 [] 作为开端
                    # 除了 [main] 是用在针对本机相干参数的阐明之外,要取用效劳器的目次时,
                    # 则需求额定的规则。我们以上述的 base/update 两个目次作为阐明:
                    [main]
                    cachedir=/var/cache/yum
                    debuglevel=2
                    logfile=/var/log/yum.log
                    pkgpolicy=newest
                    distroverpkg=fedora-release
                    tolerant=1
                    exactarch=1
                    # 下面次要规则了实行 yum 时所会运用到的目次。比方 /var/cache/yum。
                     
                    [base]
                    name=Fedora Core $releasever - $basearch - Base
                    baseurl=http://127.0.0.1/yum/fedora/core1/base
                    # 这里就紧张了,那其中括号[]外面便是‘目次称号’需求对应准确喔
                    # name 仅只是阐明该目次下的咚咚罢了,并不紧张;
                    # baseurl 则是完好的 URL 了!这里请万万填写准确!
                     
                    [update]
                    name=Fedora Core $releasever - $basearch - Released Updates
                    baseurl=http://127.0.0.1/yum/fedora/core1/update
                     
                    看到了吗?现实上,我们只需设定好 [base] 与 [update] 外面的网址,呵呵!就可以运用 yum server所提供的更新功用啦。
                   
                • 实行档:

                •  
                  • yum:这个指令是给 yum client 用来作为更新之用的,复杂的操纵如下:

                  •  
                    [root@test root]# yum <options> <更新项目> <套件称号>
                    参数阐明:
                    options:这里仅列出罕见的参数罢了。
                      -y 假如 yum 在任务进程中需求运用者回应,这个参数可以间接答复 yes 
                    更新项目:更新的举措有底下几个:
                      install :装置某个套件,前面需求接套件称号
                      update  :这便是晋级啦!假如 update 前面接套件称号,表现只需 yum 晋级该套件
                           罢了,假如 update 前面不接套件称号,表现 yum 针对现在该主机一切已
                           经装置的套件停止晋级的举措!这是最常运用的项目了。
                      list    :列出现在在 yum server 下面有的 RPM 套件;
                      info    :某个套件的内容,相似 rpm -qi packages 的内容。
                      clean   :将已将下载到本机的 packages 或 headers 移除。
                      remove  :移除曾经装置在我们零碎的某个套件!
                    典范:
                    [root@test root]# yum install hdparm  # 装置 hdparm 这个套件
                    [root@test root]# yum update hdparm    # 更新 hdparm 这个套件
                    [root@test root]# yum -y update      # 更新现在本机下面的一切套件,并主动回答 yes
                    [root@test root]# yum clean packages # 将下载至本机的 RPM 文件删除(放在 
                                         /var/cache/yum 外面。
                     
                    # 至于逐日更新的话,可以写入 /etc/crontab 喔
                    [root@test root]# vi /etc/crontab
                    40 5 * * * root yum -y update; yum clean packages
                     
                  • yum-arch:这个指令则是给 yum server 运用的!重点在剖析 RPM 套件的 header 喔!用法真是很复杂,异样已 /var/www/html/yum/fedora/core1/base 为例:

                  •  
                    [root@test root]# yum-arch <options> <目次>
                    参数阐明:
                    options:这里仅列出罕见的参数罢了。
                      -q : yum 剖析 RPM 进程中不表现讯息。
                    典范:
                    [root@test root]# yum-arch /var/www/html/yum/fedora/core1/base
                    # 只需颠末这个步调, yum 就会主动在 /var/www/html/yum/fedora/core1/base 底下新增
                    # 一个名为 headers 的目次,并将剖析的 RPM 记录材料都安排在外面喔!
                     
                • 相干目次

                •  
                  • /var/cache/yum:我们在 yum 这个指令外面谈到当运用 yum 停止晋级时,下载上去的 rpm 文件并不会主动被删除的,那么这些 rpm 文件放在那边呢?便是放在 /var/cache/yum 这个目次内。这些文件在晋级完成后就可以移除了,以是我们可以运用‘yum clean packages’来移除这些 rpm 文件喔。
                yum 相干的咚咚就只要如许,能否真的很复杂啊?  ^_^

                yum 效劳器设定
                yum 效劳器的设定真是复杂!最紧张的是 WWW/FTP 的设定必需要准确才行。整个步调是如许的:
                 
                1. 先树立所需求的目次:
                [root@test root]# mkdir /var/www/html/yum/fedora/core1/base
                [root@test root]# mkdir /var/www/html/yum/fedora/core1/update
                 
                2. 复制原版光碟的内容:
                # 应用 mount 与 cp umount 等功用,将本来光碟的内容整个复制到
                # /var/www/html/yum/fedora/core1/base 当中。
                 
                3. 应用 mirrordir 下载晋级套件。鸟哥这里发起运用中山大学的 FTP 网站:
                [root@test root]# mirrordir -v \
                > http://linux.cdpa.nsysu.edu.tw/Linux/Fedora/linux/core/updates/1/i386/ \
                > /var/www/html/yum/fedora/core1/update
                 
                4. 停止 RPM 套件剖析:
                [root@test root]# yum-arch /var/www/html/yum/fedora/core1/base
                [root@test root]# yum-arch /var/www/html/yum/fedora/core1/update
                 
                5. 为 client 树立 yum.conf 内容:
                [root@test root]# vi /etc/yum.conf
                [main]
                cachedir=/var/cache/yum
                debuglevel=2
                logfile=/var/log/yum.log
                pkgpolicy=newest
                distroverpkg=fedora-release
                tolerant=1
                exactarch=1

                [base]
                name=Fedora Core $releasever - $basearch - Base
                baseurl=http://127.0.0.1/yum/fedora/core1/base

                [update]
                name=Fedora Core $releasever - $basearch - Released Updates
                baseurl=http://127.0.0.1/yum/fedora/core1/update
                 
                6. 开端自我晋级:
                [root@test root]# yum -y update

                 
                没错!别疑心!整个 yum 效劳器的搭建便是这么复杂啊!

                特别案例

                树立本人的更新套件
                假如您已经本人修正一些 SRPM 的文件,而且重新打包成为 RPM 套件,然后刊行给本人的 Linux 呆板来装置,别的,您也能够获得一些方案所释出的 RPM 文件,比方 opnewebmail 所释出的 RPM 套件,这些 RPM 文件您又想安排在本人的效劳器下面,以方便本人将来晋级与盘问之用,那么应该怎样安排呢?最复杂的办法便是将这些文件安排在 /var/www/html/yum/fedora/core1/update 外面,不外能够会有题目,比方假如您运用 mirrordir 停止材料的映射时,那么您安排的 RPM 文件将会被删除喔!
                 
                现实上,我们可以本人设定好额定的晋级目次啊!举例来说,鸟哥本人所制造出来的 RPM 文件都是安排在:
                /var/www/html/yum/fedora/core1/myself
                固然,该目次是本人树立的,然后将本人新增的 RPM 文件统统给他复制出来该目次下,之后,便是制造 header 文件啦:
                yum-arch /var/www/html/yum/fedora/core1/myself
                最初只需在 /etc/yum.conf 外面新增一个目次:
                [myself]
                name=My personal RPM files
                baseurl=http://127.0.0.1/yum/fedora/core1/myself
                固然啦,要应用您的 RPM 文件的 client ,他的 /etc/yum.conf 就需求参加下面的设定,(留意:127.0.0.1 是在本人的呆板下面跑的缘故,您必需要填写准确的 yum server 的主机称号或 IP 才行。)云云一来,您的 RPM 文件就可以被应用啦!

                怎样获得网络上的更新元件
                下面提到的效劳器简直都因此 FTP 的方法在 internet 下面获得最新的 RPM 套件文件。那假如您的外部网络自身并不提供 FTP 对外连线时,该如之奈何?鸟哥已经遇过一个特殊的情况,在该网络内仅提供 port 80 的对外连线,除此之外,统统都是封闭的!而我们运用的 mirrordir 及 ncftp 都因此 ftp 来对外连线,这该如之奈何?
                 
                幸亏天无绝人之路啊!记得鸟哥在后面 网络晋级套件 谁人章节外面提到的 zzgetrpm.sh 文件吗?您只需下载该文件,然后填写准确的 URL ,就可以透过 port 80 下载网络上最新的更新套件了!然后在外部网络当中,您固然就可以透过各方法来停止 yum/apt 的晋级噜!^_^

                主机的计划本领与发起
                那么搭建一台 APT/YUM 主机需求留意哪些事变呢?由于您的 APT 主机还需求运转 WWW ,以是您能够需求独立出一个 partition 以停止假造主机的设定,或许是在 /var/www/html 这个预设的 WWW 主页的硬碟空间要充足!横竖 APT 主机需求留意的中央最次要照旧在于硬碟的空间了!别的, APT 主机最好可以安排在对外频宽较高的网段内,由于还需求对 Internet 获得 update 的 RPM 文件嘛!
                 
                而假如您的 APT 主机仅作为 APT 的 update 之用时,而 WWW 仅是隶属的功用,那么您在安顿 RPM 的地点目次最好额定的限定运用者的阅读网段,防止被内部的人(来自 Internet)作为连线晋级的次要主机,那能够会占据失您的连外频宽呐!以是,能够的话,运用假造主机,而且加以设定阅读的属性,比方运用 iptables 设定防火墙,或以 httpd.conf 外面的 ACCEPT/DENY 功用来抵御,也是一个不错的想法喔!至于 WWW 主机的相干设定请参考后面的章节。

                参考资源:
                浅易 APT/YUM 效劳器设定

                2003/08/27:初次完成
                2004/06/23:初次参加 yum 效劳器的阐明!并有实做的例子喔!
                 
                     
                中国存储网 ChinaStor.com排版整理
                原文作者鸟哥,主页,更多Linux学习材料在线看:Linux零碎办理员手册 - Linux下令大全 - Linux挪用大全- Linux专栏 - 国产Linux