📄 small-lan.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>跟踪多台机器</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="最前沿" href="cutting-edge.html" /><link rel="PREVIOUS" title="使用make world" href="makeworld.html" /><link rel="NEXT" title="Linux二进制兼容模式" href="linuxemu.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="makeworld.html"accesskey="P">Prev</a></td><td width="80%" align="center" valign="bottom">Chapter 21. 最前沿</td><td width="10%" align="right" valign="bottom"><a href="linuxemu.html"accesskey="N">Next</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="SMALL-LAN" name="SMALL-LAN">21.5. 跟踪多台机器</a></h1><i class="AUTHORGROUP"><span class="CONTRIB">贡献者</span> Mike Meyer.</i> <p>如果你有多台机器想跟踪同样的源码树,那么让它们都下载源码并重建所有东西,看起有点浪费资源:磁盘空间、网络带宽以及CPU周期。解决的办法是让一台机器处理大部分的工作,而其它的机器通过NFS装载(mount)这些工作。这部分列举了一种这样做的方法。</p><div class="SECT2"><h2 class="SECT2"><a id="SMALL-LAN-PRELIMINARIES" name="SMALL-LAN-PRELIMINARIES">21.5.1.准备</a></h2><p>首先,确定一批机器,运行的二进制代码是同一套---我们称作<span class="emphasis"><iclass="EMPHASIS">建造套件(buildset)</i></span>。每台机器可以有定制内核,但他们运行的是相同的用户区二进制文件(userlandbinaries)。从这个集起,选择一台机器做为<span class="emphasis"><iclass="EMPHASIS">建造机器(buildmachine)</i></span>。这将是用于建造(build)系统和内核的机器。想像一下,它应该是一台快速的机器,有足够的空余的CPU来执行<tt class="COMMAND">make world</tt>。你也想要选一台机器做为<span class="emphasis"><iclass="EMPHASIS">测试机器(testmachine)</i></span>,这个将用于软件的更新生成产品之前对他们进行测试。这个<spanclass="emphasis"><iclass="EMPHASIS">必须</i></span>是一台你能提供的平时也可使用的机器。它可以是“建造机器”,但没这个必要。</p><p>在这个“建造套件”里的所有机器需要从同一台机器、同一个点上装载<ttclass="FILENAME">/usr/obj</tt> 和<ttclass="FILENAME">/usr/src</tt>。理想地,它们在“建造机器”上的两个不同的驱动器里,但是在那台机器上可以进行NFS装载。如果你有多个“建造套件”,<tt class="FILENAME">/usr/src</tt> 应该在某个“建造机器”上,而在其它机器上进行NFS装载。</p><p>最后,确认“建造套件”里所有机器上的<ttclass="FILENAME">/etc/make.conf</tt>与“建造机器”里的相同。这意味着“建造机器”必须建造部分基本系统用于“建造套件”里所有机器的安装。同样,每台“建造机器”要有它自已的内核名字,使用<tt class="FILENAME">/etc/make.conf</tt>里的<ttclass="MAKEVAR">KERNCONF</tt>进行设置,并且每台“建造机器”应该把它们列在<ttclass="MAKEVAR">KERNCONF</tt>里,同时把自已的内核列在最前。“建造机器”的<ttclass="FILENAME">/usr/src/sys/<varclass="REPLACEABLE">arch</var>/conf</tt>里一定要有每台机器的内核配置文件,如果它想建造它们的内核的话。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN31329" name="AEN31329">21.5.2. 基本系统</a></h2><p>既然所有的妥当了,就准备建造所有的东西。如<ahref="makeworld.html#MAKE-BUILDWORLD">Section21.4.7.2</a>中描述的一样在“建造机器”上建造内核和系统,但是什么也不安装。在建造结束后,转到“测试机器”上,安装你刚建造的内核。如果这台机器通过NFS装载了<tt class="FILENAME">/usr/src</tt>和<ttclass="FILENAME">/usr/obj</tt>,在你重启到单用户模式里,你需要启动网络然后装载他们。最简单的方式是启动到多用户模式下,然后执行<tt class="COMMAND">shutdownnow</tt>转到单用户模式。一旦进入,你就可以安装新的内核和系统,并执行<ttclass="COMMAND">mergemaster</tt>,就像平常一样。完成后,重启返回到一般多用户模式操作这台机器。</p><p>在你确信所有在“测试机器”里都工作正常后,就使用相同的过程在“建造套件”里的其它机器里安装新的软件。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN31338" name="AEN31338">21.5.3. Ports</a></h2><p>类似的想法是使用ports树。第一个关键的步骤是从同一台机子里装载<ttclass="FILENAME">/usr/ports</tt>到“建造套件”里的所有机子。然后正确设置<ttclass="FILENAME">/etc/make.conf</tt>共享distfiles。你应把<ttclass="MAKEVAR">DISTDIR</tt>设置到一个共享的目录里,那里可以被任何一个<ttclass="USERNAME">根(root)</tt>用户写入,并且是由你的NFS装载映射的。设置每一台机子的<ttclass="MAKEVAR">WRKDIRPREFIX</tt>到一个本地建造(build)目录。最后,如果你要建造和发布包(packages),那么你应该设置<tt class="MAKEVAR">PACKAGES</tt>到一个类似于<tt class="MAKEVAR">DISTDIR</tt>的目录。</p></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="makeworld.html"accesskey="P">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">Home</a></td><td width="33%" align="right" valign="top"><a href="linuxemu.html"accesskey="N">Next</a></td></tr><tr><td width="33%" align="left" valign="top">使用<tt class="COMMAND">make world</tt></td><td width="34%" align="center" valign="top"><a href="cutting-edge.html"accesskey="U">Up</a></td><td width="33%" align="right" valign="top">Linux二进制兼容模式</td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -