在玲珑环境中,从源码构建应用时(例如Seafile),如果依赖了 libtool,并且是从软件源拉取的deb包,会报错找不到 /usr/share/libtool/build-aux什么的。
libtool
/usr/share/libtool/build-aux
报错的路径硬编码在${PREFIX}/bin/libtoolize这个文件中,需要对它进行修复,修复脚本fix-libtool.bash如下:
${PREFIX}/bin/libtoolize
fix-libtool.bash
#!/bin/bash # 遇到错误立即退出,引用未定义变量报错 set -euo pipefail echo "" > proj_build.log exec > >(tee -i proj_build.log) 2>&1 # 修正libtoolize脚本中的libtool硬编码路径 LIBTOOL_FILE="${PREFIX}/bin/libtoolize" sed -i -e "s|prefix=\"/usr\"|prefix=\"$PREFIX\"|" \ -e "s|datadir=\"/usr/share\"|datadir=\"$PREFIX/share\"|" \ -e "s|pkgauxdir=\"/usr/share/libtool/build-aux\"|pkgauxdir=\"$PREFIX/share/libtool/build-aux\"|" \ -e "s|pkgltdldir=\"/usr/share/libtool\"|pkgltdldir=\"$PREFIX/share/libtool\"|" \ -e "s|aclocaldir=\"/usr/share/aclocal\"|aclocaldir=\"$PREFIX/share/aclocal\"|" \ "$LIBTOOL_FILE"
你可以试一下重新编译libtool然后将PREFIX设置在你即将放置到的目录?
当时我修webkit2gtk硬编码依赖时就是这么干的
Featured Collection
Popular Events
在玲珑环境中,从源码构建应用时(例如Seafile),如果依赖了
libtool,并且是从软件源拉取的deb包,会报错找不到/usr/share/libtool/build-aux什么的。报错的路径硬编码在
${PREFIX}/bin/libtoolize这个文件中,需要对它进行修复,修复脚本fix-libtool.bash如下: