是否可以构建“git”以使安装目录和部署前缀不同?

mer*_*011 5 git autoconf

我正在尝试从源代码构建git,并且我想make install将二进制文件放入dist源目录中调用的目录中,因此我使用以下configure行。

./configure --prefix=`pwd`/dist
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也会导致构建输出假设这是 的最终安装位置git,因此将路径硬编码到各种脚本和二进制文件中,例如libexec/git-core/git-difftool.

有没有办法在其中指定configure或者make我想要实际部署的不同路径,例如/usr/bin/local,但仍然make install进入目录pwd/dist?

mer*_*011 5

由于这个问题已经好几天没有答案了,我给git开发人员发了邮件,收到了以下答复,表明我应该设置prefix为实际的安装路径,并使用DESTDIR环境变量来控制make install放置文件的位置。

./configure --prefix=/usr/local
make
DESTDIR=$(PWD)/dist make install
Run Code Online (Sandbox Code Playgroud)

因此,部署前缀应设置为--prefixwhile ./configure,而安装目标应由 指定DESTDIR

更新:我已经测试了这个解决方案并确认它可以正常工作。