FreeBSD Porter 手册
上一页 |  | 下一页

# 第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/mozilla` 那样。

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

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

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

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

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