Ubuntu源码安装最新版本git
Git是个低频更新但很重要的开发软件,系统官方仓库的版本总是落后最新版不少,不想安装额外的日更源的话,手动源码安装最新版本是不错的解决方法。
1. 安装依赖包(install libraries that Git depends)
sudo apt-get install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev install-info
2. 下载git源码包 (grab the latest source package)
源码包在kernel.org,懂的都懂,Linus创造,必须放在高大上的地方, 地址为: https://www.kernel.org/pub/software/scm/git 按时间找到最新版本,写这个文章的时候最新版本包为:git-2.37.0.tar.xz
3. 解压到指定位置,我一般喜欢把非系统的源码包放在/opt (uncompress the files)
➜ sudo tar -xvf git-2.37.0.tar.xz -C /opt/
git-2.37.0/
git-2.37.0/.cirrus.yml
git-2.37.0/.clang-format
git-2.37.0/.editorconfig
git-2.37.0/.gitattributes
....
4. 编译安装 (configuire && make install)
➜ cd /opt/git-2.37.0
看看默认编译参数(check default location)
➜ git-2.37.0 ./configure --help
`configure' configures git 2.37.0 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
符合规范,没有有必要特殊设置,开始编译
➜ git-2.37.0 sudo ./configure
configure: Setting lib to 'lib' (the default)
configure: Will try -pthread then -lpthread to enable POSIX Threads.
configure: CHECKS for site configuration
checking for gcc... gcc
checking whether the C compiler works... yes
安装
➜ git-2.37.0 sudo make install
GIT_VERSION = 2.37.0
* new build flags
CC fuzz-commit-graph.o
CC fuzz-pack-headers.o
......
检查结果,新安装的版本:
➜ git-2.37.0 /usr/local/bin/git --version
git version 2.37.0
原来系统的版本为:
➜ git --version
git version 2.34.1
把老的版本备份为git_old,留条退路是个好习惯。并确认环境变量PATH的搜索路径中有/usr/local/bin
➜ sudo mv /usr/bin/git /usr/bin/git_old
➜ echo $PATH
/home/mephisto/.cargo/bin:/home/mephisto/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
大功告成
➜ git -v
git version 2.37.0