aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/porters-handbook
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2005-07-24 12:29:42 +0000
committerXin LI <delphij@FreeBSD.org>2005-07-24 12:29:42 +0000
commit5b2e49d648ad5fd97fa52228e706101b92bef426 (patch)
treeb9eb67111d0da8a5b0fd44d232f958ee31a305f0 /zh_CN.GB2312/books/porters-handbook
parentc061824a5461011320205e530a3166da6360d015 (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/porters-handbook')
-rw-r--r--zh_CN.GB2312/books/porters-handbook/book.sgml100
1 files changed, 82 insertions, 18 deletions
diff --git a/zh_CN.GB2312/books/porters-handbook/book.sgml b/zh_CN.GB2312/books/porters-handbook/book.sgml
index 1ae9bbac4a..33a1b36fd0 100644
--- a/zh_CN.GB2312/books/porters-handbook/book.sgml
+++ b/zh_CN.GB2312/books/porters-handbook/book.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.589
+ Original Revision: 1.594
$FreeBSD$
-->
@@ -1984,8 +1984,8 @@ PORTEPOCH= 1</programlisting>
<listitem>
<para>(此外, 作为一项加分因素,
- 您还可以提供一些其它需要修改的文件,
- 按照 Committer 指南所介绍的流程。)</para>
+ 您还可以按照 Committer 指南所介绍的流程,
+ 提供一些其它需要修改的文件。)</para>
</listitem>
</itemizedlist>
</step>
@@ -2927,7 +2927,12 @@ PATCHFILES= patch1:test</programlisting>
<para><replaceable>lib</replaceable> 部分是一个正则表达式, 用于在
<command>ldconfig -r</command> 的输出中进行查找。 可以使用类似
<literal>intl.[5-7]</literal> 和 <literal>intl</literal> 这样的值。
- 后者表示任意主版本号的 <literal>intl</literal> 库。</para>
+ 前一种模式, 即
+ <literal>intl.[5-7]</literal>, 能够匹配
+ <literal>intl.5</literal>、 <literal>intl.6</literal> 和
+ <literal>intl.7</literal> 中的任意一个。 第二种模式, 即
+ <literal>intl</literal> 则可以匹配任意版本的
+ <literal>intl</literal> 库。</para>
</note>
<para>依赖关系会被检测两次, 一次是在
@@ -8548,13 +8553,11 @@ bacula:*:910:</programlisting>
</sect1>
<sect1 id="dads-noinstall">
- <title>将 port 标记为 <makevar>BROKEN</makevar>,
- <makevar>FORBIDDEN</makevar>, 或以其它方式阻止安装</title>
+ <title>使用 <makevar>BROKEN</makevar>、
+ <makevar>FORBIDDEN</makevar> 或 <makevar>IGNORE</makevar>
+ 标记不可安装的 port</title>
- <para>某些时候, 需要阻止用户安装某个 port。
- 例如, 有时可能某个 port 包含了某些安全漏洞,
- 或彻底无法使用, 或基本上过时了,
- 但由于某种原因仍然在代码库中 (以便有人能修好它们, 对吗?)。
+ <para>某些时候会需要阻止用户安装某个 port。
想要告诉用户某个 port 不应被安装, 有许多可以在 port 的
<filename>Makefile</filename> 中使用的
<command>make</command> 变量。 下列
@@ -8566,12 +8569,38 @@ bacula:*:910:</programlisting>
<link linkend="portsmon">portsmon</link>, 都依赖于
<filename>Makefile</filename> 的正确性。</para>
+ <sect2 id="dads-noinstall-variables">
+ <title>变量</title>
+
<itemizedlist>
<listitem>
- <para><makevar>BROKEN</makevar> 用来表示 port 无法编译或安装。
- 这将防止用户把时间浪费在安装这些 port 上。
- 构建集群仍然会尝试构建,
- 以确认是否导致其无法编译的问题已经被解决。</para>
+ <para><makevar>BROKEN</makevar> 专门用于表达目前无法正确编译、
+ 安装或卸载这类问题。 如果是临时性的问题, 则可以使用它。
+ 构建集群仍将尝试构建它, 以确认导致问题的深层问题是否已被解决。
+ 举例来说, 当 port 发生下述情况时, 应使用
+ <makevar>BROKEN</makevar>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>无法编译 (does not compile)</para>
+ </listitem>
+
+ <listitem>
+ <para>无法正确进行配置或安装操作</para>
+ </listitem>
+
+ <listitem>
+ <para>在
+ <filename>${LOCALBASE}</filename> 和
+ <filename>${X11BASE}</filename> 以外的地方安装文件</para>
+ </listitem>
+
+ <listitem>
+ <para>卸载时无法删除所安装的全部文件 (不过,
+ 留下用户改过的文件可接受的, 因为可能希望这样作)</para>
+ </listitem>
+ </itemizedlist>
+
</listitem>
<listitem>
@@ -8591,7 +8620,8 @@ bacula:*:910:</programlisting>
<listitem>
<para><makevar>IGNORE</makevar> 用来表示 port
- 由于某些其他原因不应予以构建。 任何情况下,
+ 由于某些其他原因不应予以构建。 如果认为发生了结构性的问题,
+ 则应使用它。 任何情况下,
构建集群都不会构建标记为
<makevar>IGNORE</makevar> 的 port。 以下是使用
<makevar>IGNORE</makevar> 的一些例子:</para>
@@ -8615,18 +8645,23 @@ bacula:*:910:</programlisting>
</listitem>
<listitem>
- <para>无法与已经安装的某个 port 一同工作</para>
+ <para>无法与的某个已安装的 port 一同工作 (例如, port 依赖于
+ <filename role="package">www/apache21</filename> 而安装的则是
+ <filename role="package">www/apache13</filename>)</para>
</listitem>
</itemizedlist>
<note>
<para>如果 port 与某个已经安装的
- port 冲突, 则应 <link linkend="conflicts">使用
+ port 冲突 (例如, 它们在同一位置安装同名但功能不同的文件),
+ 则应 <link linkend="conflicts">使用
<makevar>CONFLICTS</makevar> 来标记它</link>。
<makevar>CONFLICTS</makevar> 将自动地设置
<makevar>IGNORE</makevar>。</para>
</note>
+ </listitem>
+ <listitem>
<para>如果 port 只应在某些平台上标记为 <makevar>IGNORE</makevar>,
还有另外两个方便使用的
<makevar>IGNORE</makevar> 变量可供选择:
@@ -8640,9 +8675,38 @@ bacula:*:910:</programlisting>
</itemizedlist>
+ </sect2>
+ <sect2 id="dads-noinstall-notes">
+ <title>实现说明</title>
+
+ <para>由于 <filename>bsd.port.mk</filename> 和其他一些地方
+ <makevar>IGNORECMD</makevar> 的一些特殊用法,
+ <makevar>BROKEN</makevar> 的值应该用引号括起来,
+ 而 <makevar>IGNORE</makevar> 则不能用引号括起来。</para>
+
+ <para>此外, 由于显示给用户的方式不同,
+ 这些字串的措辞也应有所不同。 例如:</para>
+
+ <programlisting>BROKEN= "this port is unsupported on FreeBSD 5.x"</programlisting>
+
+ <programlisting>IGNORE= is unsupported on FreeBSD 5.x</programlisting>
+
+ <para>它们分别会在
+ <command>make describe</command> 时产生下面的输出:</para>
+
+ <programlisting>===> foobar-0.1 is marked as broken: this port is unsupported on FreeBSD 5.x.</programlisting>
+
+ <programlisting>===> foobar-0.1 is unsupported on FreeBSD 5.x.</programlisting>
+ </sect2>
+ </sect1>
+
+ <sect1 id="dads-deprecated">
+ <title>可以用 <makevar>DEPRECATED</makevar>
+ 或 <makevar>EXPIRATION_DATE</makevar> 表示某个 port 将被删除。</title>
+
<para>一定要记得 <makevar>BROKEN</makevar> 和
<makevar>FORBIDDEN</makevar> 只应作为当某个 port
- 无法升级时的最终解决方案。 永久性地坏掉了的 port 应被从 ports tree
+ 无法正常工作时的临时解决方案。 永久性地坏掉了的 port 应被从 ports tree
中完全删除。</para>
<para>需要时还可以使用 <makevar>DEPRECATED</makevar>