第5章.特殊情况

有一些你在创建port时的特殊情况,我们在这里提一下.

5.1 Shared Libraries(共享库)

如果你的port安装了一个或多个共享库,请定义INSTALLS_SHLIB make变量,在post-install时他会调用bsd.port.mk运行${LDCONFIG} -m,同样你也应当适当的在你的pkg-plist中定义一组@exec /sbin/ldconfig -m和@unexec /sbin/ldconfig -R.那么用户可以在安装之后马上就使用并且卸载软件包后系统也不会认为这些共享库仍然存在.

如果你需要把共享库安装在缺省的位置之外,可以定义LDCONFIG_DIRS变量,包含安装共享库的目录列表.举个例子:如果你的port安装了共享库到PREFIX/lib/foo和PREFIX/lib/bar目录.你可以在Makefile中如下设置:

    INSTALLS_SHLIB= yes
    LDCONFIG_DIRS=  %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar

注意这里LDCONFIG_DIRS的内容要使用sed(1)过滤,所以PLIST_SUB置换也会应用.推荐你使用%%PREFIX%%代替PREFIX,%%LOCALBASE%%代替LOCALBSE,%%X11BASE%%代替X11BASE.