5.13. 处理冲突

针对不同的 package 或 port 之间的冲突情形, 系统提供了不同的变量来协助开发人员进行表达: CONFLICTSCONFLICTS_INSTALLCONFLICTS_BUILD

注意:

这些用于描述冲突的变量会自动地设置 IGNORE, 后者的完整介绍, 可以在 第 12.14 节 “使用 BROKENFORBIDDENIGNORE 阻止用户安装 port” 找到。

在删去相互冲突的 port 时, 建议将 CONFLICTS 保留几个月, 以便让那些不经常更新系统的用户能够看到。

5.13.1. CONFLICTS_INSTALL

如果您的软件包不能与某些软件包同时安装 (例如由于安装同样的文件到相同的位置、 运行时不兼容等等), 则应把其它软件包的名字列在 CONFLICTS_INSTALL 变量中。 此处可以使用 shell 通配符, 如 *?。 列出其它软件包的名字时需要遵循它们在 /var/db/pkg 中出现的样子。 请确保 CONFLICTS_INSTALL 不会匹配到您正制作的这个预编译包的名字, 否则, 使用 FORCE_PKG_REGISTER 来强制安装就没有办法进行了。 对于 CONFLICTS_INSTALL 的检查是在联编过程之后、 安装开始之前进行的。

5.13.2. CONFLICTS_BUILD

如果您的软件包在系统中存在某些其它软件包时不能完成联编, 则应把其它软件包的名字列在 CONFLICTS_BUILD 变量中。 此处可以使用 shell 通配符, 如 *?。 列出其它软件包的名字时需要遵循它们在 /var/db/pkg 中出现的样子。 对于 CONFLICTS_BUILD 的检查是在联编过程开始之前进行的。 联编时的冲突不会在编译好的包中予以记录。

5.13.3. CONFLICTS

如果您的 port 在某些其它 port 已经存在的情况下既不能联编, 也不能安装, 则应把其它软件包的名字列在 CONFLICTS 变量中。 此处可以使用 shell 通配符, 如 *?。 列出其它软件包的名字时需要遵循它们在 /var/db/pkg 中出现的样子。 请确保 CONFLICTS 不会匹配到您正制作的这个预编译包的名字, 否则, 使用 FORCE_PKG_REGISTER 来强制安装就没有办法进行了。 对于 CONFLICTS 的检查是在联编过程之后、 安装开始之前进行的。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.