linux安装git步骤;基于yum、dnf、源码安装【非常详细】

2023-10-27

官网地址https://git-scm.com/
在这里插入图片描述

安装地址
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
在这里插入图片描述

本文客户端使用的是国产的FinalShell(下载安装点击下面的连接)
Linux连接工具(二)FinalShell下载及安装步骤

虚拟机配置建议稍微大点,如图所示。不然安装的时候会非常慢
在这里插入图片描述

一 dnf安装

官方推荐使用dnf(新一代软件包管理器,CentOS Stream 8及以后的版本才使用的)来实现二进制安装

准确来说
yum是fedora21及以前
dnf是fedora22及以后

sudo dnf install git-all

sudo是以管理员的权限运行命令

linux系统使用的是VMware Workstation17虚拟机,镜像为CentOS Stream9,系统语言设置了简体中文,命令行中文比较多

在这里插入图片描述
按提示输入y
在这里插入图片描述
输入y导入公钥
在这里插入图片描述
安装完成出现完毕!
英文是complete!

输入git --version来查看git版本,虽然不是最新版,但比较新的版本也差不了几天

在这里插入图片描述
2.41.0是2023年4月23日发布的(目前没有2.41.1的)
2.39.3是2023年4月23日发布的

git发版历史页面
在这里插入图片描述
在这里插入图片描述

二 yum安装

CentOS Stream 8以前的版本(不包括)二进制安装只能使用yum(软件包管理器)来安装
CentOS Stream 8及以后的版本虽然也有yum,但是底层使用的是dnf的包(方便老用户平滑过渡)

这个镜像是用的CentOS Linux7
查看Linux版本cat /etc/redhat-release
通过二进制包来安装

# 安装
yum -y install git

# 卸载
yum remove git

# 查看版本
git --version

-y可以跟在yum 后面。表示如果有询问,自动同意
在这里插入图片描述

在这里插入图片描述

这种方式安装的git版本较低,1.8.3.1是2013年10月10日发行的版本。1.8以后的版本官方就不再维护yum源二进制安装方式了。如果只是用来推拉代码,其实也够用,而且安装非常方便

在这里插入图片描述
这种方式包的位置在cd /usr/libexec/git-core

在这里插入图片描述

三 源码安装

1 基于 RPM 的发行版(Fedora/RHEL/RHEL衍生版)

sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel

# 为了添加文档的多种格式(doc、html、info),需要以下附加的依赖:
sudo dnf install asciidoc xmlto docbook2X

sudo dnf install getopt

# 解决二进制文件名的不同问题
sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi

2 基于 Debian 的发行版(Debian/Ubuntu/Ubuntu-derivatives)

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

# 为了添加文档的多种格式(doc、html、info),需要以下附加的依赖:
sudo apt-get install asciidoc xmlto docbook2x

sudo apt-get install install-info

以上两个发行版都需要执行下面的命令
下载、编译、安装

# 下载
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.3.tar.gz

# 解压
tar -zxvf git-2.39.3.tar.gz

# 移动文件夹并修改名字
mv git-2.39.3 /usr/local/git

# 进入git文件夹
cd /usr/local/git/

# 制作配置
make configure

# 配置
./configure --prefix=/usr/local/git

# 制作文档格式
make all doc info

# 安装
make install install-doc install-html install-info

3 yum软件包管理器来安装,这个一般是CnetOS Stream 8以前的版本才这样安装

这个镜像也是用的CentOS Linux7

3.0 卸载git

如果之前安装过git,必须删干净,不然即便是安装了新版也会显示旧版的git

# 查看git在哪里有
[root@localhost bin]# whereis git
git: /usr/local/git /usr/share/man/man1/git.1.gz

# 进入某个目录
[root@localhost bin]# cd /usr/local/

# 删除git开头的文件
[root@localhost local]# rm -rf git*

# 再次查看没有了
[root@localhost local]# whereis git
git: /usr/share/man/man1/git.1.gz

在这里插入图片描述

3.1 安装依赖包,等一分钟左右,会下载很多包,最后出现完成或则complete

# 安装依赖包
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-devel autoconf automake texinfo libtool

在这里插入图片描述

在这里插入图片描述
这里应要注意,安装依赖包的时候会自动安装一个旧版的git,也就是1.8的,我们需要手动删除,不然新版即便是安装好,查看版本也是旧版的

# 查看版本
git --version

# 看git安装在哪里
whereis git

# 手动删除git
yum -y remove git

在这里插入图片描述

3.2 下载、解压

这里我们下载一个2.39.2的,方便查看是否安装成功

# 下载git压缩包
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.2.tar.gz

# 解压
tar -zxvf git-2.39.2.tar.gz

在这里插入图片描述

3.3 移动文件夹并改名字、配置

# 移动文件夹并修改名字
mv git-2.39.2 /usr/local/git

# 进入git文件夹
cd /usr/local/git/

# 制作配置(预编译)
make configure

# 配置(编译),又是一大堆输出
./configure --prefix=/usr/local/git

在这里插入图片描述
结尾应该是这样的
在这里插入图片描述

3.4 安装,又是一大堆输出

# 安装
make install

安装完会有一个done的输出,这一步我等了5分钟
在这里插入图片描述

这个时候查看版本是没有的

3.5 配置全局变量

  • 打开配置文件
    vim /etc/profile

  • i变成输入模式,输入下面两行git全局变量。按esc键退出编辑,按:wq保存并退出

# git全局变量 
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
  • 刷新配置
    source /etc/profile

  • 查看版本,2.39.2没有问题
    git --version

在这里插入图片描述
在这里插入图片描述

四 windows安装请移步

请点击这里,查看windows安装git

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux安装git步骤;基于yum、dnf、源码安装【非常详细】 的相关文章

  • 从远程获取上个月在 git 分支上提交的文件列表

    我正在尝试获取上个月在 master 分支的 github 存储库上更改的所有文件的列表 我的本地克隆没有可以追溯到那么远的日志 因此当我运行以下命令时 git diff stat 1 month ago 我收到一条警告消息和一小部分更改
  • 如何在特定的Java版本上运行应用程序?

    如何运行具有特定 Java 版本的应用程序 我安装了三个 Java 版本 myuser mysystem sudo update alternatives config java There are 3 choices for the al
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 在功能分支上运行测试

    我有一个构建配置 其中包含连接到 git 分支的测试 VCS 根dev 3 个构建步骤和 1 个触发器 这些是我的构建步骤 构建测试 运行测试 构建和部署 我想为分支运行所有这些构建步骤dev但只有其中两个 构建和运行测试 用于分支匹配fe
  • Git 身份验证 - 以新用户身份拉取

    以下命令集可以正常工作 mkdir carboncake cd carboncake git init git remote add origin email protected cdn cgi l email protection rep
  • 如何将 git-svn 与 svn+ssh url 一起使用

    我喜欢在cygwin中使用git svn clone使用我们公司 svn 存储库的命令 这个的网址是svn ssh svn
  • Ctrl-p 和 Ctrl-n 在 Docker 下表现异常

    For the life of me I can t seem to figure out why ctrl p and ctrl n don t work like they re supposed to under the Docker
  • 每个分支的 Git 磁盘使用情况

    你知道是否有办法列出每个分支的 git 存储库的空间使用情况 喜欢df or du would 分支的 空间使用情况 是指 尚未在存储库的其他分支之间共享的提交所使用的空间 这没有正确的答案 如果您查看仅包含在特定分支中的提交 您将获得 b
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • Git子模块绝对工作树路径配置

    这是我的子模块redmine 仪表板配置文件 子模块配置文件 core repositoryformatversion 0 filemode true bare false logallrefupdates true worktree Us
  • git 从存储中删除文件

    我有一个藏匿处 里面有一堆文件 但由于文件冲突 我无法应用我的存储 我已经在我的存储中发现了有问题的文件 我想将其删除 如何从存储中删除单个文件而不破坏整个文件 存储是一次提交 或者实际上是两次甚至有时是三次提交 并且您无法更改提交 那么
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 将主分支的提交合并到另一个分支,但不合并两个分支

    我有 git 存储库和一个主分支 我决定开发新功能 并且创建了新分支 new branch 我已经在 new branch 中创建了一些提交 但我还没有完成新功能 我决定修复 master 分支中的一些错误 因此我切换到 master 分支
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na

随机推荐

  • 苹果开发者账号注册方法简明指南

    注册苹果开发者账号的方法 在2020年以前 注册苹果开发者账号后 就可以生成证书 但2020年后 因为注册苹果开发者账号需要使用Apple Developer app注册开发者账号 所以需要缴费才能创建ios证书了 所以新政策出来后 注册苹
  • Android底层驱动开发记录:03_HAL

    在上一节基础上增加HAL层代码 1 完成IoctrlJ25 hal c 填充主要结构体hw module t static struct ioctrlj25 device ioctrlj25 dev common close ioctrlj
  • 基于ROS实现A*算法的C++代码示例

    以下是基于ROS实现A 算法的C 代码示例 include
  • 【问题解决】无法定位程序输入点~于动态链接库上(The procedure entry point ~ could not be located)

    重新着手使用自己笔记本上配的工作环境 在实习中 需要对Qt程序进行打包 在Qt creator 中 修改为 release 编译 进入release 生成的项目目录 新建一个目录 把可执行文件复制进去 进入新建的目录 在命令行下 执行 wi
  • 树莓派——交叉编译(二)WiringPi软链接、硬链接

    树莓派 交叉编译 二 WiringPi软链接 参考大佬文章 Linux软硬链接命令解析 https www cnblogs com zhangna1998517 p 11347364 html 一 软链接 1 概念 2 生成软链接 ln s
  • lumen初学教程

    文档传送 lumen文档 laravel文档 laravel命令速查表 安装 Lumen composer global require laravel lumen installer 创建新的项目 通过终端进入所需创建目录的文件夹 lum
  • 如何查看自己的cuda环境,以及其对应版本

    第一步 cmd打开命令窗口 输入conda env list 查看有几个conda环境 第二步 选择一个环境进入conda 输入conda activate pytorch 第三步 进入python环境 输入python 第四部 在Pyth
  • 前端如何在H5页面调起微信支付

    在微信服务号开发的时候经常会遇到微信支付的功能实现 通过实际经验自己总结了一下 前端在H5页面调起微信支付有两种办法 一是利用内置对象 二是通过引用微信的js sdk 亲测都能支付成功 从写法上来看用内置对象方法比较简单 这里讲的只是前端要
  • Python读取和写入yaml文件

    yaml是专门用来写配置文件的语言 简洁强大 远比JSON格式方便 yaml在python语言中有PyYAML安装包 我这边应用场景是用来做接口自动化时 接口返回的值写入到yaml文件 然后需要用的时候直接引用即可 不如登录接口 我需获取接
  • java基础之内部类

    1 简介 内部类 inner class 是定义在另一个类中的类 使用内部类的原因 有以下三点 内部类方法可以访问可以访问该类定义所在的作用域中的数据 包括私有的数据 内部类可以对同一个包中的其他类隐藏起来 当想要定义一个回调函数时且不想编
  • 符合功能安全要求的动态测试工具-TESSY

    Tessy是一个专门针对嵌入式软件的C C 代码进行单元 集成测试的工具 它可以自动化地执行测试 评估测试结果并生成测试报告 Tessy的目标就是 通过自动化整个测试周期 支持针对C语言的单元测试 集成测试 同时 Tessy也同样关注测试组
  • SpringBoot利用cancl监听mysql的binlog日志通过kafja实时同步数据到es

    canal官网 https github com alibaba canal wiki gitlab https github com alibaba canal wiki QuickStart 下载地址 https github com
  • 关于GPT的20个知识,你都知道吗?

    1 GPT全称是什么 GPT全称是Generative Pre trained Transformer 2 GPT是由谁研发的 GPT是由OpenAI的研究人员研发的 3 GPT的目的是什么 GPT的目的是通过无监督的预训练 obtain
  • 离线安装/断网安装python第三方库

    由于team服务器在另一个校区 为了安全 校网络技术中心建议我们不要让服务器连外网 所以在复现代码的时候遇到一些python第三方库没法使用 就只能离线安装了 说起来都是泪 在这里 谢谢他们 参考链接 1 呕心沥血整理 python离线安装
  • 深度学习入门之Pytorch——Momentum

    动量法 动量法是梯度下降法的变式 在随机梯度下降的同时 增加动量 这是来自于物理中的概念 可以想象损失函数是一个山谷 一个球从山谷滑下来 在一个平坦的地势 球的滑动速度就会慢下来 可能陷入一些鞍点或者局部极小值点 如图 这个时候给它增加动量
  • Vue中自定义指令是什么?有哪些应用场景?

    一 什么是指令 开始之前先学习一下指令系统这个词 指令系统是计算机硬件的语言系统 也叫机器语言 它是系统程序员看到的计算机的主要属性 因此指令系统表征了计算机的基本功能决定了机器所要求的能力 在vue中提供了一套为数据驱动视图更为方便的操作
  • 终于解决了Invalid from address

    以太坊存证 ipfs 运行环境是ganache cli自动生成十个账户 import Web3 from web3 let getWeb3 new Promise function resolve reject Wait for loadi
  • Webpack详细教程

    webpack教程 第 1 章 webpack 简介 1 1 webpack 是什么 1 2 webpack 五个核心概念 1 2 1 Entry 入口 Entry 1 2 2 Output 输出 Output 1 2 3 Loader 1
  • 实战wxPython:045 - 一些扩展按钮控件

    本文介绍几个扩展按钮 它们不数属于wxPython核心库中的控件 但是它们可以提供一些特殊的效果 一 PlateButton PlateButton是一个通用按钮控件 它是一个自定义的平面按钮 它在许多方面模拟Safari浏览器书签栏中的按
  • linux安装git步骤;基于yum、dnf、源码安装【非常详细】

    这里写目录标题 一 dnf安装 二 yum安装 三 源码安装 1 基于 RPM 的发行版 Fedora RHEL RHEL衍生版 2 基于 Debian 的发行版 Debian Ubuntu Ubuntu derivatives 3 yum