是否可以构建 `git` 使得安装目录和部署前缀不相同?
Is it possible to build `git` such that the install directory and the deployment prefix is not the same?
我正在尝试从源代码构建 git
,我希望 make install
将二进制文件放入我的源目录中名为 dist
的目录中,因此我使用以下命令configure
行。
./configure --prefix=`pwd`/dist
不幸的是,这也会导致构建输出假定这是 git
的最终安装位置,因此将路径硬编码到各种脚本和二进制文件中,例如 libexec/git-core/git-difftool
。
有没有办法在 configure
或 make
期间指定我想要不同的实际部署路径,例如 /usr/bin/local
,但仍然有 make install
进入目录 pwd
/dist?
由于这个问题好几天没有人回答,我emailed the git developers,得到了如下回答,说明我应该把prefix
设置为实际安装路径,并使用DESTDIR
环境变量来控制 make install
放置文件的位置。
./configure --prefix=/usr/local
make
DESTDIR=$(PWD)/dist make install
因此,部署前缀应在 ./configure
期间设置为 --prefix
,而安装目标应由 DESTDIR
指定。
更新:我已经测试了这个解决方案并确认它可以正常工作。
我正在尝试从源代码构建 git
,我希望 make install
将二进制文件放入我的源目录中名为 dist
的目录中,因此我使用以下命令configure
行。
./configure --prefix=`pwd`/dist
不幸的是,这也会导致构建输出假定这是 git
的最终安装位置,因此将路径硬编码到各种脚本和二进制文件中,例如 libexec/git-core/git-difftool
。
有没有办法在 configure
或 make
期间指定我想要不同的实际部署路径,例如 /usr/bin/local
,但仍然有 make install
进入目录 pwd
/dist?
由于这个问题好几天没有人回答,我emailed the git developers,得到了如下回答,说明我应该把prefix
设置为实际安装路径,并使用DESTDIR
环境变量来控制 make install
放置文件的位置。
./configure --prefix=/usr/local
make
DESTDIR=$(PWD)/dist make install
因此,部署前缀应在 ./configure
期间设置为 --prefix
,而安装目标应由 DESTDIR
指定。
更新:我已经测试了这个解决方案并确认它可以正常工作。