5.13 处理冲突

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

注意: 这些用于描述冲突的变量会自动地设置 IGNORE, 后者的完整介绍, 可以在 第 12.14 节 找到。

  在删去相互冲突的 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 的检查是在联编过程之后、 安装开始之前进行的。

若您有关于 FreeBSD ports 系统的问题, 请发送电子邮件至 <ports@FreeBSD.org>。
关于此文档的任何问题, 请致函 <doc@FreeBSD.org>。