我想使用我从db2查询生成的共享库。
我的共享库取决于boost
,我的机器中的/usr/local/lib
位于db2
。
当我尝试使用我的函数运行查询时,我遇到了错误:它们无法正常工作,因为db2无法找到boost库,即无法解析库的位置。
如何告诉 # userprofile
LIBPATH=/usr/local/lib:LIBPATH
#profile.env
DB2ENVLIST='LIBPATH ..other stuf'
在哪里找到库路径以及我应该使用哪个环境变量?
我尝试过ife userprofile和profile.env但没有成功。
{{1}}
答案 0 :(得分:1)
让我看看我是否正确理解你的问题。您有依赖于其他库的C或C ++外部UDF。如果是这样,我认为您应该设置DB2注册表变量,而不是您的环境变量:
export LD_LIBRARY_PATH=/usr/local/lib:$LIBPATH # this must be in the global profile
db2set DB2LIBPATH=$LD_LIBRARY_PATH
db2set DB2ENVLIST="LD_LIBRARY_PATH otherstuff"
必须在实例所有者用户和DB2 fenced用户的环境中设置LD_LIBRARY_PATH变量,因为外部例程在这两者之一下运行。可能最好的方法是设置/ etc / profile。这应该在执行db2set
命令之前完成。
使用db2set
设置注册表变量后,必须重新启动DB2实例(db2stop force
然后db2start
)。