Linux下Git最新版源代码编译构建

简介: Linux下Git最新版源代码编译构建

在Linux操作系统中,虽然可以用软件包管理器直接安装git,但是版本是比较旧的(尤其是redhat系linux),因此可以下载官方最新版源代码进行编译构建。

这里以Debian系统为例,讲解git源码的编译。

1,安装构建所需的依赖

执行下列命令安装:

sudo apt install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev gettext zlib1g-dev libssl-dev asciidoc xmlto docbook2x install-info

2,下载git源代码

官方下载页面的上面这个地方可以下载源代码:

网络异常,图片无法展示
|

或者在备用网址下载(提取码:2333)。

下载后解压源代码。

3,开始构建编译

在解压的源代码文件夹中打开终端(或者使用cd命令进入源代码文件夹),执行下列命令配置并编译:

make configure
./configure
make all doc info

需要注意的是:git源码所在路径中不可以有任何非英文字符!因此需要将git源码解压到全英文路径下再进行编译,否则会编译失败。

等待编译完成之后,执行安装命令:

sudomake install install-doc install-html install-info

安装完成,执行git命令发现就可以使用了!

git默认会安装到以下目录:

  • git命令:/usr/local/bin
  • git核心组件:/usr/local/libexec/git-core
  • git其余组件和文档:/usr/local/share

如果说你想构建一个git并打包放在别的电脑上面使用,可以在make install时指定DESTDIR变量指定想要安装到的位置:

makeDESTDIR=自定义安装位置(绝对路径) install install-doc install-html install-info

但是安装到别的位置时是无法在那个位置运行git的,可以将其制作为deb安装包安装到默认位置。

4,添加Git命令自动补全功能

通常在使用Linux命令时,按下Tab可以自动补全,大大地提高了我们的效率:

网络异常,图片无法展示
|

然而大家发现:自行编译并安装Git之后,Git命令不能自动补全

不过Git官方提供了一个脚本:git-completion.bash用于添加对Git命令的补全功能,这个脚本就在我们上述下载的git源码中。

在解压的Git源码文件夹中的contrib/completion目录下即可找到它:

网络异常,图片无法展示
|

然后我们把这个脚本放在指定位置即可!

首先确保系统安装了自动补全功能,通常Linux系统都自带这个功能,若没有则安装这个软件包:

sudo apt install bash-completion

然后在/etc目录下创建bash_completion.d文件夹,将我们上述的git-completion.bash脚本放进去即可!这样就完成了这个脚本的安装。记得先对该脚本添加可执行权限哦!

# 先进入到git-completion.bash脚本所在目录下sudomkdir /etc/bash_completion.d
chmod+x ./git-completion.bash
sudocp-f ./git-completion.bash /etc/bash_completion.d/

参考文档:

相关文章
|
10天前
|
存储 网络协议 Ubuntu
【Linux开发实战指南】基于UDP协议的即时聊天室:快速构建登陆、聊天与退出功能
UDP 是一种无连接的、不可靠的传输层协议,位于IP协议之上。它提供了最基本的数据传输服务,不保证数据包的顺序、可靠到达或无重复。与TCP(传输控制协议)相比,UDP具有较低的传输延迟,因为省去了建立连接和确认接收等过程,适用于对实时性要求较高、但能容忍一定数据丢失的场景,如在线视频、语音通话、DNS查询等。 链表 链表是一种动态数据结构,用于存储一系列元素(节点),每个节点包含数据字段和指向下一个节点的引用(指针)。链表分为单向链表、双向链表和循环链表等类型。与数组相比,链表在插入和删除操作上更为高效,因为它不需要移动元素,只需修改节点间的指针即可。但访问链表中的元素不如数组直接,通常需要从
|
10天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
|
13天前
|
机器学习/深度学习 自然语言处理 运维
正式邀测! OS Copilot——一款基于大模型构建的 Linux 智能操作系统助手
重塑操作系统交互新体验,开启您的智能化系统管理之旅。
|
19天前
|
Linux 测试技术 开发工具
CentOS Linux 8使用阿里源(安装jdk11、git测试)
CentOS Linux 8使用阿里源(安装jdk11、git测试)
95 1
|
20天前
|
JavaScript Ubuntu Linux
蓝易云 - linux中安装nodejs,卸载nodejs,更新nodejs,git
请根据自己的Linux发行版和版本选择合适的命令。
151 2
|
23天前
|
Linux C语言 C++
Linux 下centos 查看 -std这个编译时命令 是否支持 C17
Linux 下centos 查看 -std这个编译时命令 是否支持 C17
20 2
|
19天前
|
Linux 开发工具 git
解决 Linux git push 贡献者不同(没有出现绿点)的问题
解决 Linux git push 贡献者不同(没有出现绿点)的问题
|
2月前
|
Ubuntu Linux Go
ubuntu linux (20.04) 源码编译cryptopp库 - apt版本过旧
ubuntu linux (20.04) 源码编译cryptopp库 - apt版本过旧
33 1
|
1月前
|
Linux Docker Python
【docker】Mac M1 构建 x64 linux镜像
【docker】Mac M1 构建 x64 linux镜像
43 0
|
1月前
|
Linux 编译器 C语言
编译Linux内核:基础、重要性和交叉编译方法
Linux内核作为操作系统的心脏,负责管理计算机的硬件资源,同时也是运行所有其他程序的基础。理解如何编译Linux内核对于系统管理员、开发者乃至高级用户来说都是一项极其宝贵的技能。本文将介绍编译Linux内核的基本知识、编译的重要性、具体步骤以及交叉编译的概念。
94 0