使用符号 link 构建 Git
Build Git with symbolic link
在 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
等的符号链接
没有执行此操作的内置方法。 Makefile 总是首先尝试创建硬链接,只有在失败时才回退到符号链接。
您可以尝试使用别名或隐藏 ln 以默认创建符号链接。
你可以这样做,除非我误会了。您所要做的就是将 NO_INSTALL_HARDLINKS=YesPlease
添加到 make 行:
./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 顶部的文档,了解您可以做的其他事情。
无论如何它对我有用。
我可以确认 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
在 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
等的符号链接
没有执行此操作的内置方法。 Makefile 总是首先尝试创建硬链接,只有在失败时才回退到符号链接。
您可以尝试使用别名或隐藏 ln 以默认创建符号链接。
你可以这样做,除非我误会了。您所要做的就是将 NO_INSTALL_HARDLINKS=YesPlease
添加到 make 行:
./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 顶部的文档,了解您可以做的其他事情。
无论如何它对我有用。
我可以确认 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