在这种情况下,我正在尝试构建的GPG。基本上,我希望所有构建输出都进入我选择的子目录,而不是安装在我的实时文件系统上。
Setting --prefix = path / to / my / sandbox将一个构建的输出发送到我想去的地方,但是下一个构建阶段可以取决于上一个构建阶段的输出,找不到该输出。
示例:
$ cd libgpg-error-1.37
$ ./configure --prefix=/Users/falk/GpgSandbox/usr/local
$ make
$ make install
(success: all output placed in /Users/falk/GpgSandbox/usr/local/)
$ cd ../libassuan-2.5.3
$ ./configure --prefix=/Users/falk/GpgSandbox/usr/local
...
configure: error: libgpg-error was not found
$
我是否可以传递给./configure使其在沙箱中找到库的另一个选项?我应该在VM或Docker容器中构建?
非常感谢@hyde指出正确的方向。解决的办法是在构建之前设置一些环境变量:
mkdir -p /Users/falk/Gpg/GpgSandbox/usr/local/
export CPPFLAGS='-I/Users/falk/GpgSandbox/usr/local/include'
export LDFLAGS='-L/Users/falk/GpgSandbox/usr/local/lib'
export PATH="$PATH:/Users/falk/GpgSandbox/usr/local/bin"
cd libgpg-error-1.37/
./configure --prefix=/Users/falk/GpgSandbox/usr/local
make install
(etc.)