linux 获取最新版本git并编译安装

Posted by 移影残风 on April 25, 2019

1.安装依赖

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y

sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev -y

2.获取最新版本

git_version=$(lftp https://mirrors.ustc.edu.cn/kernel.org/software/scm/git/ -e "cls;bye" | grep -e "git-[0-9].*.tar.gz" | sed -r 's/git-(.*).tar.gz/\1/g' | sort -rV | xargs | awk -F ' ' '{print $1}')

命令详解

 grep -e "git-[0-9].*.tar.gz"

使用grep命令搭配正则表达式,筛选出类似git-2.3.8.tar.gz这样格式的文件名

  • 第3步
sed -r 's/git-(.*).tar.gz/\1/g'

使用sed的正则表达式分组功能,上面筛选出的文件名中的版本号提取出来

  • 第4步
sort -rV 

使用sort命令的版本号排序功能(-V),将上面提取出的版本号从高到低排序(-r)

  • 第5步
xargs | awk -F ' ' '{print $1}')

使用xargs命令将多行输出内容转换成一行以空格分隔的输出内容,通过管道传递给awk命令,然后使用awk命令以空格为分隔符,获取第一个最高的版本号

3.编译安装

wget https://mirrors.ustc.edu.cn/kernel.org/software/scm/git/git-${git_version}.tar.gz
tar -zxvf git-${git_version}.tar.gz
cd git-${git_version}
make prefix=/usr/local all
make prefix=/usr/local install

4.验证

git --version

一键执行

  • CentOS
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
git_version=$(lftp https://mirrors.ustc.edu.cn/kernel.org/software/scm/git/ -e "cls;bye" | grep -e "git-[0-9].*.tar.gz" | sed -r 's/git-(.*).tar.gz/\1/g' | sort -rV | xargs | awk -F ' ' '{print $1}')
wget https://mirrors.ustc.edu.cn/kernel.org/software/scm/git/git-${git_version}.tar.gz
tar -zxvf git-${git_version}.tar.gz
cd git-${git_version}
make prefix=/usr/local all
make prefix=/usr/local install
  • Ubuntu
sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev -y
git_version=$(lftp https://mirrors.ustc.edu.cn/kernel.org/software/scm/git/ -e "cls;bye" | grep -e "git-[0-9].*.tar.gz" | sed -r 's/git-(.*).tar.gz/\1/g' | sort -rV | xargs | awk -F ' ' '{print $1}')
wget https://mirrors.ustc.edu.cn/kernel.org/software/scm/git/git-${git_version}.tar.gz
tar -zxvf git-${git_version}.tar.gz
cd git-${git_version}
make prefix=/usr/local all
make prefix=/usr/local install

参考:

Git - 安装 Git