第 6 章 特殊情况
上一页 |  | 下一页

## 第 6 章 特殊情况

有一些您在创建port时的特殊情况，我们在这里提一下。

## 6.1. 共享库

如果您的port安装了一个或多个共享库,那么请定义一个 `USE_LDCONFIG` make 变量， 在`post-install`标记把它注册进共享库 缓冲时会调用`bsd.port.mk`去运行 `${LDCONFIG} -m`来指向新库的安装目录。 (通常是 ``PREFIX`/lib`) 同样，您也可以适当的在您的 `pke-plist`文件 中定义一组`@exec /sbin/ldconfig -m` 和`@unexec /sbin/ldconfig -R，` 那么用户可以在安装后马上 就能使用，并且在卸载软件包后系统也不会认为这些共享库仍然存在。

USE_LDCONFIG= yes

如果您需要把共享库安装在缺省的位置之外， 可以通过定义 make 变量 `USE_LDCONFIG` 来改变默认的安装路径， 它包含安装共享库的目录列表 例如： 如果您的共享库安装到 ``PREFIX`/lib/foo` 和 ``PREFIX`/lib/bar` directories目录，您可以在您的 `Makefile`中这样设置:

USE_LDCONFIG= ${PREFIX}/lib/foo ${PREFIX}/lib/bar

请务必仔细检查， 通常这是完全不必要的， 或者可以通过 `-rpath` 或在连接时设置 `LD_RUN_PATH` 来避免 (参见 `lang/moscow_ml` 给出的例子)， 或者用一个 shell 封装程序来在执行可执行文件之前设置 `LD_LIBRARY_PATH`， 类似 `www/seamonkey` 那样。

当在 64-位系统上安装 32-位 的函数库时， 请使用 `USE_LDCONFIG32`。

尽量将共享库版本号保持为 `libfoo.so.0` 这样的格式。 我们的运行环境连接器只会检查主 (第一个) 版本数字。

如果在更新 port 时升级了其库的主版本号， 则其它所有连接了受影响的库的 port 的 `PORTREVISION` 都应递增， 以强制它们采用新版本的库重新编译。

上一页 |  | 下一页
5.14. 安装文件 | 起始页 | 6.2. Ports 的发行限制

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

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.