📄 0450apt.htm
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content="VBird">
<meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">
<meta name="Description" content="APT 伺服器对于管理一整个具有 Linux 主机群的管理员来说,真的是顶重要的!因为他可以让我们更方便来管理 RPM 套件的升级喔!">
<title>鸟哥的 Linux 私房菜 -- APT/YUM server</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 background="http://linux.vbird.org/VBirdLinux.jpg" nosave>
<center><center><b><font color="#3333FF"><font size=+2><font face="标楷体">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="标楷体">与</font><font face="Times New Roman,Times"> ADSL </font><font face="标楷体">私房菜</font></font></font></b>
<br>
<a href="http://linux.vbird.org" target="_top"><img SRC="../images/VBirdTitle2.jpg" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/linux_basic"><img SRC="../images/icon_system.gif" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/linux_server"><img SRC="../images/icon_server.gif" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/linux_security"><img SRC="http://linux.vbird.org/images/icon_security.jpg" NOSAVE BORDER=0 height=25 width=90></a>
<a href="http://phorum.vbird.org" target="_blank"><img SRC="../images/icon_forums.gif" NOSAVE BORDER=0 height=25 width=90></a>
<a target="_blank" href="http://linux.vbird.org/adsl"><img SRC="../images/icon_adsl.gif" NOSAVE BORDER=0 height=25 width=90></a>
<br>
<hr WIDTH="100%">
</center>
<font color="#3333FF"><font size=+2><a href="0450apt.php" target="_self"><font face="标楷体">简易</font><font face="Times New Roman,Times">
APT/YUM </font><font face="标楷体">伺服器设定</font></a></font></font></center>
<div align=right><font face="新细明体"><font color="#3333FF"><font size=-1>最近更新日期∶2004/06/23</font></font></font></div>
<font color="#000099"><font size=-2> </font></font>
<table BORDER COLS=1 WIDTH="100%" BGCOLOR="#FFCCCC" >
<tr>
<td><font color="#000099"><font size=-1>用不惯 Tarball 安装套件却又担心
RPM 的属性相依问题吗?如果有一种套件管理工具可以克服 RPM 属性相依的方法该有多好!有没有这种工具?呵呵!有的,那就是
APT 与 YUM 这两个伺服器了。APT (Advanced Package Tool) 是由 <a href="http://www.debian.org/intl/zh/" target="_blank">debian</a>
这个 distribution 所发展的一个套件管理工具,其目的在克服 RPM 套件的属性相依问题,让使用者可以透过
APT 的分析直接安装/升级/删除相关联的套件喔。另一个很好用的就是 YUM (Yellow
dog Updater, Modified) 这个咚咚,他是由 Duke University 所发起的计划,目的则与
APT 相似,都是在克服 RPM 的属性相依问题,方便使用者进行套件的安装、升级等等工作。由于
APT/YUM 这一类的伺服器在『系统升级/管理』上面的功能发挥的很好,所以目前很多的
distributions 都把这两个伺服器作为预设的服务喔。在这个章节当中,我们要介绍如何在您的
Linux 伺服器上面建置一个 ATP 或 YUM 伺服器,并且提供更新的 RPM 套件给 Client
端来使用!</font></font></td>
</tr>
</table>
<font color="#000099"><font size=-2> </font></font>
<br><font color="#000099"><font size=+1><a href="#theory">前言</a>∶</font></font>
<br><font color="#000099"> ∶<a href="#theory_what">甚么是 APT/YUM 呢?他们如何运作</a></font>
<br><font color="#000099"> ∶<a href="#theory_why_apt">是否需要架设
APT/YUM 伺服器</a></font>
<br><font color="#000099"> ∶<a href="#theory_protocol">架设之前,您所需要启用的服务</a></font>
<br><font color="#000099"><font size=+1><a href="#apt">APT 伺服器</a>∶</font></font>
<br><font color="#000099"> ∶<a href="#apt_mechanism">APT 伺服器利用的机制</a></font>
<br><font color="#000099"> ∶<a href="#apt_install">安装 APT 软体</a></font>
<br><font color="#000099"> ∶<a href="#apt_intru">APT 伺服器的套件结构</a></font>
<br><font color="#000099"> ∶<a href="#apt_httpd_setup">APT 伺服器设定
( 以 HTTP 提供服务为例 )</a></font>
<br><font color="#000099"> ∶<a href="#apt_client">Client 端的设定</a></font>
<br><font color="#000099"><font size=+1><a href="#yum">YUM 伺服器</a>∶</font></font>
<br><font color="#000099"> ∶<a href="#yum_mechanism">YUM 伺服器利用的机制</a></font>
<br><font color="#000099"> ∶<a href="#yum_install">安装 yum 软体</a></font>
<br><font color="#000099"> ∶<a href="#yum_packa">yum 伺服器的套件结构</a></font>
<br><font color="#000099"> ∶<a href="#yum_setup">yum 伺服器设定</a></font>
<br><font color="#000099"><font size=+1><a href="#spec">特殊案例</a>∶</font></font>
<br><font color="#000099"> ∶<a href="#spec_my">建立自己的更新套件</a></font>
<br><font color="#000099"> ∶<a href="#spec_spec">如何取得网路上的更新元件</a></font>
<br><font color="#000099"><font size=+1><a href="#server_partition">主机的规划技巧与建议</a>∶</font></font>
<br><font color="#000099"><font size=+1><a href="#reference">参考资源</a>∶</font></font>
<br>
<hr WIDTH="100%"><a NAME="theory"></a><img SRC="../penguin-m.gif" ALT="" NOSAVE height=34 width=25 align=CENTER><font color="#000099"><font size=+1>前言∶</font></font>
<ul>如果您曾经自行安装过某些套件的话,那么您或许会觉得∶『<font color="#000066"><a href="http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php">RPM</a>
是比 <a href="http://linux.vbird.org/linux_basic/0520source_code_and_tarball.php">Tarball</a>
好安装没有错啦,但是每次为了解决套件之间的属性相依问题,真的是很烦,尤其是
RPM 档案在不同的作业系统版本之间也无法相容!</font>』是的!没错!为了要解决这个套件之间的属性相依问题,又要保留
RPM 套件的易安装与查询的特性,所以就有一些套件管理方法出来啦!比较有名的就是
APT 与 YUM 这两个咚咚啦。(注∶当然,Mandrake 的 urpmi 也是很棒的工具。)
<br>
<br>
<hr WIDTH="100%"><a NAME="theory_what"></a><img SRC="../penguin-s.gif" NOSAVE height=23 width=17 align=CENTER><font color="#000099">甚么是
APT/YUM 呢?他们如何运作?</font>
<br>
<ul>众所皆知的, RPM 是目前 Linux 世界里面用的最多的套件安装方式。不过,由于
RPM 所管理的套件在安装的时候必须要考虑到不同套件之间的相依性,这在系统管理员处理系统的升级/更新上面是很讨厌的!为了克服这个问题,所以有
APT/YUM 之类的计划出来。APT ( Advanced Package Tool ) 最早是由 <a href="http://www.debian.org/intl/zh/" target="_blank">debian</a>
这个 distribution 所发展出来的,而
<a href="http://linux.duke.edu/projects/yum/index.ptml" target="_blank">YUM
( Yellow dog Updater, Modified )</a> 则是由 <a href="http://www.phy.duke.edu/~rgb/General/yum_HOWTO.php" target="_blank">Duke
University</a> 所发起的计划之一,这两者的目的都是『<font color="#000066">为了要解决安装
RPM 套件时的属性相依问题!</font>』,而不是额外再建立一个套件安装模式喔。首先,我们谈一谈为甚么
RPM 套件会有属性相依的问题?又,甚么是属性相依的问题啊?
<br>
<ul>
<li>
属性相依的问题大多来自于函式库的引用,举例来说,我们前面 <a href="http://linux.vbird.org/linux_server/0310telnetssh.php">SSH
与 Telnet 伺服器</a>章节中提到的 SSH 伺服器需要使用到 SSL 这个套件的加密机制,所以自然就需要
SSL 的函式库,这个时候,如果您没有安装 SSL 的话,那么 SSH 就不会让您安装了!这就是属性相依的问题啦。也就是说,当我们要安装
A 套件,<font color="#000000">结果 RPM 套件管理员告诉你还需要 B 套件,而安装
B 套件时,却又发现还缺少 C 套件~真是环环相扣啊!讨厌死了~</font></li>
</ul>
</ul>
<font color="#000000"> </font>
<ul>
<ul>
<li>
<font color="#000000">要知道某个套件的最低要求是哪些套件时,可以使用 </font><font face="细明体"><font color="#000066">rpm
-qR packagename</font></font><font color="#000000"> ,至于某个套件提供哪些档案则可以使用
</font><font face="细明体"><font color="#000066">rpm
-q --provides packagename</font></font><font color="#000000"> 。这些资讯都纪录在
RPM 套件里面。</font></li>
</ul>
<font color="#000000"> </font>
<br><font color="#000000">如果对于 RPM 还有疑问,请参考<a target="_blank" href="http://linux.vbird.org/linux_basic">基础学习篇</a>的
<a href="http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php">RPM
与 SRPM</a> 那个章节棉。好了,既然每一个 RPM 套件的标头 (header)里面都会纪录该套件的属性相依关系,那么如果我们可以将该标头的内容纪录下来并且进行分析,不就可以得知每个套件在安装之前需要额外安装哪些基础套件吗?也就是说,</font><font color="#000066">我们在伺服器上面先以分析工具将所有的
RPM 档案进行分析,然后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的档案,就可以知道所有相关联的套件档案!</font><font color="#000000">没错!是这样。他的整个运作流程有点像这样∶</font>
<br><font color="#000000"> </font>
<br><font color="#000099">伺服器端∶</font>
<ol>
<li>
<font color="#000066">首先,在 APT/YUM 伺服器上面放置了所有的 RPM 套件(这包括来自原版光碟与供应商发行的升级套件);</font></li>
<li>
<font color="#000066">然后以相关的功能去分析各个 RPM 档案的相依性,这些纪录可以解决所谓的属性相依问题,然后将这些资料记录成档案存放在伺服器的某特定目录内;</font></li>
</ol>
<font color="#000066"> </font>
<br><font color="#000099">客户端∶</font>
<ol>
<li>
<font color="#000066">Client 端如果需要安装/升级/删除某个程式时,会先下载伺服器上面记载的属性相依档案(利用的协定则是
WWW 或者是 FTP);</font></li>
<li>
<font color="#000066">经由比对伺服器端传来的纪录资料进行分析,然后取得所有相关的套件,一次全部下载下来进行升级安装。</font></li>
</ol>
<font color="#000066"> </font>
<br><font color="#000000">如此一来则克服了属性相依的问题棉!是的!就这么简单啊!整个图示如下∶</font></ul>
</ul>
<center><img SRC="0450apt/apt-1.jpg" NOSAVE BORDER=2 height=269 width=384>
<br><a NAME="fig_1"></a>图一、APT/YUM 伺服器的架构。</center>
<ul>
<ul>您的 APT/YUM 伺服器上面可以拥有多个版本的 Linux distributions 的 RPM
套件,并且需要提供 WWW/FTP 等服务,而 Client 端则是藉由主机的 WWW/FTP 等协定来进行
RPM 档案的取得喔。</ul>
<br>
<hr WIDTH="100%"><a NAME="theory_why_apt"></a><img SRC="../penguin-s.gif" NOSAVE height=23 width=17 align=CENTER><font color="#000099">是否需要架设
APT/YUM 伺服器</font>
<br>
<ul>APT/YUM 的功能也只是在管理 RPM 套件而已,只是他比单纯的 RPM 指令要好的地方在于他克服了属性相依的问题,所以用户端可以很方便的进行安装/升级与移除的动作。那么是否意味著我就得要架设
APT 或 YUM 伺服器呢?
<br>
<br>这可不一定呐。如果您只有一部主机,而且上面的网路服务很少,并且也没有提供甚么重要的服务,那么架设
APT/YUM 伺服器就没有这么需要了。为甚么呢?因为很少用到 APT 的机制啊,而且直接找网路上面有的
APT/YUM 伺服器即可,无须架设啦!要注意的是,架设 APT/YUM 伺服器时,您必须要有够用的硬碟空间、够用的频宽以及提供至少
WWW 或者是 FTP 的网路服务呢!这对只有一部主机的您来说,真的不必要费心思去管理的啦!但如果您的网路环境是如下的模样,可能就得要架设一部
APT/YUM 伺服器比较好棉!
<br>
<ul>
<li>
<font color="#000066">您的网路里面有相当多的同样版本的 Linux distribution
系统;</font></li>
<li>
<font color="#000066">您的区域网路对外频宽不高,且内部有多部 Linux 主机系统;</font></li>
<li>
<font color="#000066">您的 Linux distributions 在国内并没有相对应的 APT/YUM
伺服器提供服务,而对国外连线的频宽又很低时;</font></li>
</ul>
<br>也就是说,如果您拥有多部 Linux 主机,或者是您连接到 APT/YUM 伺服器的频宽太低时,就可以考虑架设
APT/YUM 伺服器了。以上面<a href="#fig_1">图一</a>来说,如果您的连外网路频宽太低,那么架设一部
APT/YUM 伺服器后,所有的 Linux 是连接到该部 APT/YUM 伺服器进行升级/安装,速度当然比连外要快很多啦!
<br>
<br>所以说,如果您是上层的系统管理员(例如学校的网管老师或者县网、区网的网管人员),为了您的整个网域的
Linux 主机来打算,那么架设 APT/YUM 是蛮需要的,因为真的可以节省很多连外的频宽;相反的,如果您是一般用户,拥有的了不起就是两三部
Linux 主机而已,那么似乎没有架设 APT 主机的必要性呢!因为由上面的说明来看,架设
APT 主机所需要的『硬碟空间』可是不能省的,<font color="#000066">对于一般的用户来说,架设
APT 主机实在是没有什么必要性说</font>~</ul>
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -