milvus-lite openkylin 构建兼容问题
实际属于一个已知问题,就是openkylin 使用的pagesize 比较大,不是通常的4k(当前的版本是16k)但是因为依赖jemalloc,默认构建是4k,所以在一些系统上是不能运行的,官方实际也给了解决方案,就是自己构建,但是自己构建实际问题是不少的
参考构建命令
最好使用官方的docker 镜像,里边已经包含了依赖了,可以减少我们的处理,否则milvus-lite 的构建特别费事(不少依赖)
构建脚本,实际的执行
git clone --recurse-submodules https://github.com/milvus-io/milvus-lite.git \
&& cd milvus-lite \
&& git checkout $tag \
&& cd python \
&& python3 -m build --wheel \
&& cp -r dist /workspace/ \
&& cd /workspace && rm -rf milvus-lite
docker 构建
TAG="main"
IMAGE_TAG="latest"
if [ "$#" -eq 0 ]; then
echo "Please set dockerfile path"
elif [ "$#" -eq 1 ]; then
DOCKERFILE=$1
docker build -t build_milvus_lite:$IMAGE_TAG -f $DOCKERFILE . \
&& docker run --rm -v $PWD:/workspace/dist build_milvus_lite:$IMAGE_TAG /workspace/build_milvus_lite.sh $TAG
elif [ "$#" -eq 2 ]; then
DOCKERFILE=$1
TAG=$2
docker build -t build_milvus_lite:$IMAGE_TAG -f $DOCKERFILE . \
&& docker run --rm -v $PWD:/workspace/dist build_milvus_lite:$IMAGE_TAG /workspace/build_milvus_lite.sh $TAG
elif [ "$#" -eq 3 ]; then
DOCKERFILE=$1
TAG=$2
CACAN_CACHE=$3
docker build -t build_milvus_lite:$IMAGE_TAG -f $DOCKERFILE . \
&& docker run --rm -e CONAN_USER_HOME=/workspace/conan -v $CACAN_CACHE:/workspace/conan -v $PWD:/workspace/dist build_milvus_lite:$IMAGE_TAG /workspace/build_milvus_lite.sh $TAG
fi
一些构建问题
- openblas 问题
如果提示问题,需要自己调整下,调整为使用openblas
#include <openblas/cblas.h>
- jemalloc 参数问题
目前尽管看官方CMakeLists 参数已经调整为了16,但是实际是不生效的,因为milvus-lite 的python包使用了conan 构建,可能因为没更新的问题,参数还是默认的,解决方法: 先执行,让后修改jemalloc 包的conanfile.py,添加如下
args = ["--with-lg-page=16"]
autotools.configure(args=args)
如何检查是否构建成功
可以通过strings 命令
strings ./milvus |grep LG_PAGE
使用问题
目前可能是权限问题,对于构建好的whl包,可以手工安装,但是有一些依赖问题,可以按照提示把构建的依赖放到系统/usr/lib 目录
libgflags_nothreads.so.2.2 libglog.so.1 libopenblas.so.0 libknowhere.so
说明
整体来说自己构建还是可以通过的,就是目前官方调整为16的参数,应该是没有发布conan,所以问题还是不少的, 我临时构建好的放github 了大家可以按需使用
浙公网安备 33010602011771号