![Snapcraft - 如何使用上一部分文件的绝对路径](https://linux22.com/image/1059483/Snapcraft%20-%20%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E4%B8%8A%E4%B8%80%E9%83%A8%E5%88%86%E6%96%87%E4%BB%B6%E7%9A%84%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84.png)
我正在创建一个包含 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/'