本文发表在 rolia.net 枫下论坛公司一个软件x中包含一个已经编译好了的apache,x安装后apache作为webserver来提供操作界面操作软件.
大家知道apache的httpd运行时会调用一些动态库,也就是依赖一些库,而且位置都不同:
bash-2.05# ldd /usr/local/x/apache/bin/httpd
libaprutil-0.so.0 => /usr/local/x/apache/lib/libaprutil-0.so.0
libexpat.so.0 => /usr/local/lib/libexpat.so.0
libiconv.so.2 => /usr/local/lib/libiconv.so.2
libapr-0.so.0 => /usr/local/x/apache/lib/libapr-0.so.0
libsendfile.so.1 => /usr/lib/libsendfile.so.1
librt.so.1 => /usr/lib/librt.so.1
libm.so.1 => /usr/lib/libm.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libresolv.so.2 => /usr/lib/libresolv.so.2
libpthread.so.1 => /usr/lib/libpthread.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libc.so.1 => /usr/lib/libc.so.1
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1
bash-2.05#
编译apache时指定安装目录/usr/local/x则可以将生成的专用库(如libaprutil-0.so.0)生成到此目录,但是一些通用的库就不行了.比如/usr/local/lib/libiconv.so.2,原来就有了.
现在的问题是:软件打包时并没有把所有的库都打包进去, 如果客户的系统上缺少这些通用库,apache就跑不起来了.
请教有经验的大虾:有什么好的办法? 如果把所有库都打包进去,安装是判断冲突的工作量就大多了,也麻烦.更多精彩文章及讨论,请光临枫下论坛 rolia.net
大家知道apache的httpd运行时会调用一些动态库,也就是依赖一些库,而且位置都不同:
bash-2.05# ldd /usr/local/x/apache/bin/httpd
libaprutil-0.so.0 => /usr/local/x/apache/lib/libaprutil-0.so.0
libexpat.so.0 => /usr/local/lib/libexpat.so.0
libiconv.so.2 => /usr/local/lib/libiconv.so.2
libapr-0.so.0 => /usr/local/x/apache/lib/libapr-0.so.0
libsendfile.so.1 => /usr/lib/libsendfile.so.1
librt.so.1 => /usr/lib/librt.so.1
libm.so.1 => /usr/lib/libm.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libresolv.so.2 => /usr/lib/libresolv.so.2
libpthread.so.1 => /usr/lib/libpthread.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libc.so.1 => /usr/lib/libc.so.1
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
/usr/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1
bash-2.05#
编译apache时指定安装目录/usr/local/x则可以将生成的专用库(如libaprutil-0.so.0)生成到此目录,但是一些通用的库就不行了.比如/usr/local/lib/libiconv.so.2,原来就有了.
现在的问题是:软件打包时并没有把所有的库都打包进去, 如果客户的系统上缺少这些通用库,apache就跑不起来了.
请教有经验的大虾:有什么好的办法? 如果把所有库都打包进去,安装是判断冲突的工作量就大多了,也麻烦.更多精彩文章及讨论,请光临枫下论坛 rolia.net