使用符号链接构建Git

时间:2015-01-06 11:57:27

标签: git gnu-make configure

在GNU / Linux上,有没有办法使用符号链接而不是硬链接从源代码构建Git?

例如:

./configure
make
make install

收益率:

$PREFIX/bin/git
$PREFIX/libexec/git-core/git-log
$PREFIX/libexec/git-core/git-status
$PREFIX/libexec/git-core/git-commit
...

这些都是硬链接。

我希望git-loggit-statusgit-commit成为git等的符号链接。

3 个答案:

答案 0 :(得分:2)

可以这样做,除非我有误解。您所要做的就是将NO_INSTALL_HARDLINKS=YesPlease添加到生产线:

./configure
make NO_INSTALL_HARDLINKS=YesPlease
make NO_INSTALL_HARDLINKS=YesPlease install

如果您阅读Git源根目录中makefile顶部的注释,您将找到:

# Define NO_INSTALL_HARDLINKS if you prefer to use either symbolic links or
# copies to install built-in git commands e.g. git-cat-file.

请记住,Git只部分使用autoconf。它的大部分配置只能通过在命令行中添加make选项来选择:读取Makefile顶部的文档以了解其他可以执行的操作。

无论如何它对我有用。

答案 1 :(得分:1)

没有内置方法可以做到这一点。 Makefile总是首先尝试创建硬链接,只有当它失败时,才会回到符号链接。

您可以尝试将别名或阴影ln默认设置为创建符号链接。

答案 2 :(得分:0)

我可以确认MadScientist的方法仍适用于最新的git版本。

  wget https://www.kernel.org/pub/software/scm/git/git-2.12.3.tar.gz
  ./configure --prefix=/usr      
  make NO_INSTALL_HARDLINKS=YesPlease -j5
  make NO_INSTALL_HARDLINKS=YesPlease install


  ls -althr /usr/libexec/git-core
  -rwxr-xr-x 1 root root  11M May 11 13:48 git
  lrwxrwxrwx 1 root root    3 May 11 13:48 git-am -> git