在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-log
,git-status
,git-commit
成为git
等的符号链接。
答案 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