# 10.1.运行 make describe

FreeBSD 的一些 Port 维护工具，例如 [portupgrade(1)](https://man.freebsd.org/cgi/man.cgi?query=portupgrade\&sektion=1\&format=html)，依赖于一个名为 **/usr/ports/INDEX** 的数据库，该数据库跟踪诸如 Port 依赖关系等信息。**INDEX** 是通过顶层的 **ports/Makefile** 使用 `make index` 命令生成的，它会进入每个 Port 子目录并在那里执行 `make describe`。因此，如果 `make describe` 在任何 Port 中失败，就无法生成 **INDEX**，这会导致许多人很快变得不快。

> **注意**
>
> 能够生成此文件非常重要，无论 **make.conf** 中设置了哪些选项，因此请避免在某些情况下使用 `.error` 语句（例如，当某个依赖项未满足时）。(参见 [Avoid Use of the `.error` Construct](https://docs.freebsd.org/en/books/porters-handbook/porting-dads/#dads-dot-error)。)

如果 `make describe` 输出一个字符串而不是错误信息，通常意味着一切正常。具体字符串的含义可以参考 **bsd.port.mk**。

还要注意，运行较新的 `portlint`（如下一节所述）将自动触发 `make describe` 的执行。
