我正在创建一个包含 2 个部分的 Snap。第二部分需要第一部分中创建的文件,否则将无法构建。
我尝试使用相对路径,从当前部分的根目录开始,但 libtool 不接受它。如果我使用绝对路径,它会构建,但现在 snapcraft.yaml 不再可移植。
这就是我现在所拥有的:
build: |
./autogen.sh && ./configure LDFLAGS='-L/home/snapcraft/mySnap/parts/libdb4.8/install/usr/local/BerkeleyDB.4.8/lib/' CPPFLAGS='-I/home/snapcraft/mySnap/parts/libdb4.8/install/usr/local/BerkeleyDB.4.8/include/'
是否有一个环境变量保存前面部分的绝对路径?或者还有其他方法可以做到这一点?
谢谢
答案1
我可以通过将必要的文件添加到暂存区来解决此问题
stage:
- usr/local/BerkeleyDB.4.8/lib/*
- usr/local/BerkeleyDB.4.8/include/*
然后使用 $SNAPCRAFT_STAGE 环境变量指向它们。
build: |
./autogen.sh && ./configure LDFLAGS='-L$SNAPCRAFT_STAGE/usr/local/BerkeleyDB.4.8/lib/' CPPFLAGS='-I$SNAPCRAFT_STAGE/usr/local/BerkeleyDB.4.8/include/'