git环境编译升级

1. 下载

wget https://www.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz
编译从github下载的压缩包可能会报错,建议从git官网下载压缩包。

https://www.kernel.org/

2. 编译

tar -zxvf git-2.34.5.tar.gz
cd git-2.34.5
make prefix=/usr/local all
sudo make prefix=/usr/local install
没有sudo权限,可以指定一个prefix路径
./configure prefix=/***/***/***
make prefix=/***/***/*** all
make prefix=/***/***/*** install
git --version 验证版本

https://blog.csdn.net/weixin_54227557/article/details/136166143

以下chatgpt生成

./configure 命令的作用

./configure --prefix=/usr/local 是一个用于配置软件包构建的命令。在使用 makemake install 编译和安装软件包之前,configure 脚本会检查你的系统环境,并生成合适的 Makefile 文件。

命令解析

  • ./configure:运行当前目录下的 configure 脚本。这个脚本会检查系统的编译器、库和其他依赖项,以确保软件可以正确构建。
  • --prefix=/usr/local:指定软件的安装路径。在这里,/usr/local 是安装目录。使用这个选项后,所有生成的文件(如二进制文件、库文件、配置文件等)将安装到 /usr/local 目录下的相应位置。

具体作用

  1. 配置编译选项configure 脚本会检测你的系统,并生成适当的配置选项,以便后续的编译过程能顺利进行。
  2. 设置安装目录:通过 --prefix 选项,你可以指定软件安装的位置。默认情况下,大多数软件会安装到 /usr/local,这可以避免与系统包管理器安装的软件发生冲突。
  3. 生成 Makefileconfigure 脚本会根据检测结果生成一个或多个 Makefile 文件,这些文件包含了如何编译和安装软件的详细指令。

常见使用场景

  1. 安装到默认目录:如果你希望将软件安装到 /usr/local,可以直接使用上述命令。

    ./configure --prefix=/usr/local
    make
    make install
    
  2. 安装到用户目录:如果你没有管理员权限,或者你希望将软件安装到用户目录,可以指定一个用户拥有的目录,例如 $HOME/local

    ./configure --prefix=$HOME/local
    make
    make install
    
  3. 自定义安装目录:在某些情况下,你可能希望将软件安装到特定的目录,以便与其他软件隔离。

    ./configure --prefix=/opt/mysoftware
    make
    make install
    

总结

./configure --prefix=/usr/local 是一个配置软件构建过程的重要步骤,它通过检查系统环境并生成适当的 Makefile 文件,为后续的编译和安装过程做好准备。通过指定 --prefix 选项,你可以灵活地控制软件的安装位置。

make prefix all install有什么区别

这两条 make 命令的主要区别在于它们执行的目标不同:一个是编译所有目标,另一个是安装编译后的目标。

命令解析

  1. make prefix=/***/***/*** all

    • 作用:编译所有目标。
    • 解释make 命令会读取当前目录下的 Makefile 文件,并执行 all 目标。all 通常包含编译项目所需的所有步骤,如编译源代码和生成可执行文件。
    • prefix=///*:这是传递给 Makefile 的变量,用于指定安装目录的位置。不过在编译阶段,这个变量通常不会影响编译过程,主要影响的是安装路径。
  2. make prefix=/***/***/*** install

    • 作用:安装编译后的目标。
    • 解释make 命令会执行 install 目标,通常包括将编译好的文件复制到指定的安装目录。例如,二进制文件、库文件和配置文件等会被复制到由 prefix 指定的目录下。
    • prefix=///*:在安装阶段,这个变量指定了文件的安装路径。它决定了安装文件的位置。

区别总结

  • make all

    • 执行编译过程,生成所有目标文件。
    • 不会安装文件。
    • prefix 变量在这个阶段通常没有影响。
  • make install

    • 执行安装过程,将编译好的文件复制到指定的安装目录。
    • prefix 变量在这个阶段决定了文件的安装位置。

示例

假设你有一个软件项目,使用 Makefile 进行管理,包含以下目标:

all: myprogrammyprogram: myprogram.cgcc -o myprogram myprogram.cinstall: myprogrammkdir -p $(prefix)/bincp myprogram $(prefix)/bin

运行这两条命令:

make prefix=/usr/local all
make prefix=/usr/local install
  • make prefix=/usr/local all:编译 myprogram.c,生成 myprogram 可执行文件。
  • make prefix=/usr/local install:将 myprogram 可执行文件复制到 /usr/local/bin 目录。

总结

  • make all 用于编译项目。
  • make install 用于安装编译后的文件。
  • prefix 变量通常在安装阶段起作用,指定文件的安装路径。

git commit --amend --no-edit 是什么命令

git commit --amend --no-edit 是一个 Git 命令,用于修改上一次提交。具体来说,它会让你更新上一次提交的内容而不修改提交消息。以下是该命令的详细说明:

命令解释

  • git commit --amend:该命令用于修改最近的一次提交。执行此命令时,你可以更改提交的内容,也可以修改提交消息。默认情况下,Git 会打开一个编辑器,允许你编辑提交消息。
  • --no-edit:这是一个选项,告诉 Git 不要打开编辑器,也不要更改提交消息。它保留了原有的提交消息,只更新提交的内容。

使用场景

  1. 修正错误

    • 如果你在上一次提交后发现遗漏了一些文件或需要对代码进行微小的修正,可以使用此命令将这些更改包含在上一次提交中,而不需要创建新的提交。
  2. 保持提交历史整洁

    • 使用 --amend 可以让你的提交历史看起来更整洁,因为它避免了创建多个小的修正提交。

示例

假设你刚刚提交了一个更改,但忘记包含某些文件或想要修改已经提交的文件:

  1. 进行更改

    • 对需要修改的文件进行更改,然后添加到暂存区(staging area)。
    git add <file1> <file2>
    
  2. 使用 --amend --no-edit 更新提交

    • 使用 git commit --amend --no-edit 将这些更改包含在上一次提交中,而不修改提交消息。
    git commit --amend --no-edit
    

注意事项

  • 安全性:在公共分支上使用 --amend 需要小心,因为它会更改提交历史。如果其他人已经基于你的上一次提交进行了工作,那么修改该提交可能会导致冲突和混乱。因此,这个命令通常在处理自己的分支或本地工作时使用。

总结

git commit --amend --no-edit 是一个非常有用的命令,允许你在不更改提交消息的情况下修改最近的一次提交的内容。这在修正错误和保持提交历史整洁方面非常有用,但在使用时需要注意其对提交历史的影响,特别是在公共分支上使用时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/46881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】树和二叉树——Lesson1

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

科普文:微服务技术栈梳理

概叙 如上两图所示&#xff0c;微服务架构下&#xff0c;需要的组件很多&#xff0c;上面中也并未列全。下面将梳理一下国内微服务架构下&#xff0c;用到的技术栈&#xff0c;仅供参考。 科普文&#xff1a;12种常见的软件架构-CSDN博客 没有最好的架构&#xff0c;只有最适…

Kubernetes RBAC 之 UserAccount

Kubernetes RBAC 之 UserAccount 定义 Kubernetes 用户账户可以直接在终端使用&#xff0c;用来读写其有权限的资源或者非资源数据&#xff0c;而 Service Account 一般是用来绑定程序调用的。 创建用户 创建 Kubernetes 用户 kate # 进入 Kubernetes Public Key Infrastr…

常用网络接口自动化测试框架应用

一、RESTful&#xff08;resource representational state transfer)类型接口测试 (一&#xff09;GUI界面测试工具&#xff1a;jmeter 1、添加线程组 2、添加http请求 3、为线程组添加察看结果树 4、写入接口参数并运行 5、在查看结果树窗口查看结果 6、多组数据可增加CSVDat…

Android 桌面小组件使用

基本步骤 1.创建小组件布局 这里需要注意的事,小组件布局里不能使用自定义View,只能使用原生的组件,比如说LinearLayout,TextView,连约束布局都不能使用 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://sch…

python数据可视化(7)——绘制箱形图

课程学习来源&#xff1a;b站up&#xff1a;【蚂蚁学python】 【课程链接&#xff1a;【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接&#xff1a;【链接】】 Python绘制箱形图分析北京天气数据 箱形图 箱形图&#xff08;Box-plot&#xff09;又称为盒…

一站式短视频矩阵开发,高效托管!

短视频矩阵系统源码SaaS解决方案提供全面的开发服务&#xff0c;包括可视化视频编辑、矩阵式内容分发托管以及集成的多功能开发支持。 短视频矩阵&#xff1a;引爆您的数字营销革命 短视频矩阵系统是一套多功能集成解决方案&#xff0c;专为提升在短视频平台上的内容创作、管理…

【C++】多态-最全解析(多态是什么?如何使用多态?多态的底层原理是什么?)

目录 一、前言 二、多态是什么&#xff1f; 三、多态的定义及实现 &#x1f525; 多态的构成条件&#x1f525; &#x1f525; 虚函数的重写&#x1f525; &#x1f525;虚函数重写的两个例外 &#x1f525; &#x1f34d; 协变返回类型 &#x1f95d; 析构函数的重写…

使用APEXSQL LOG解析sql server事务日志,进行审计与数据恢复

一 下载 https://download.csdn.net/download/sunke861/11449739 二 使用 解压安装包后&#xff0c;点击&#xff1a;ApexSQLLog.exe 2.1 连接数据库 连接要审计的数据库&#xff1a; 假如报错&#xff1a; 则点击ok关闭该窗口&#xff0c;然后点击左上方的New按钮&#xf…

Git-Automatic merge failed; fix conflicts and then commit the result. 解决

Git-Automatic merge failed; fix conflicts and then commit the result. 解决 文章目录 1. 杂话2. 问题2.1 先搞定版本A2.2 再搞定版本AC2.3 搞定AB版本2.4 冲突 3. 解决3.1 分析3.2 解决 1. 杂话 大伙儿应该都用过Git吧&#xff0c;具体是个啥东西我就不说了哈。之前我在用g…

Codeforces Round 958 (Div. 2)(A~C)题

A. Split the Multiset 思路: 最优的策略是每次操作分出 k−1&#x1d458;−1 个 1&#xff0c;然后考虑最后是否会剩下一个单独的 1。 代码: #include<bits/stdc.h> using namespace std; #define N 1000005 typedef long long ll; typedef unsigned long long ull;…

【找不到视图问题解决】@RestController 与 @Controller注解的使用区别

一、问题描述 苍穹外卖在菜品分页查询功能实现的过程中&#xff0c;出现了找不到视图的情况 2024-07-12 21:54:20.860 ERROR 22488 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with p…

【Vim】为什么程序员喜欢用 Vim

1. Vim介绍 Vim是一款高度可配置的文本编辑器&#xff0c;它被设计成作为一个工具&#xff0c;可以非常高效地进行文本编辑工作。以下是关于Vim的一些基本介绍&#xff1a; 历史&#xff1a;Vim 是 Vi 文本编辑器的改进版&#xff0c;最初由布莱姆米勒&#xff08;Bram Moole…

Transformer注意力机制

Transformer注意力机制 &#x1f42c; 目录: 一、Transformer简介二、理解注意力机制自注意力机制多头注意力机制 一、Transformer简介 Transformer是一种用于自然语言处理(NLP)和其他序列到序列(Seq2Seq)任务的深度学习模型框架&#xff0c;它在2017年由Vaswani等人首次提出…

手机m4a怎么转换成mp3,手机端即可完成格式转换

M4A&#xff08;MPEG-4 Audio&#xff09;是一种无损压缩的音频格式&#xff0c;通常用于苹果设备和 iTunes 上&#xff0c;因为它能提供较高的音质同时占用较小的存储空间。 然而&#xff0c;MP3 作为最普及的音频格式之一&#xff0c;兼容性更强&#xff0c;几乎所有的播放设…

【单元测试】SpringBoot

【单元测试】SpringBoot 1. 为什么单元测试很重要&#xff1f;‼️ 从前&#xff0c;有一个名叫小明的程序员&#xff0c;他非常聪明&#xff0c;但有一个致命的缺点&#xff1a;懒惰。小明的代码写得又快又好&#xff0c;但他总觉得单元测试是一件麻烦事&#xff0c;觉得代码…

ENSP中NAT的相关实验(两个私网,一个公网)

题目 实验需求 1.按照图示配置IP地址&#xff0c;公网地址100.1.1.1/24 2.私网A通过NAPT&#xff0c;使R1接入到互联网&#xff0c;私网B通过EASY IP&#xff0c;使R3接入到互联网 3.私网A配置NAT SERVER把Telnet的Telnet服务发布到公网&#xff0c;使PC2可以访问 三、实验…

el-table和 el-image图片预览使用插槽后层叠样式错乱问题

问题&#xff1a; 解决办法&#xff1a;在el-image组件中添加preview-teleported 属性 最终效果

玩转鸿蒙NXET之组件导航与路由跳转二

页面路由&#xff08;ohos.router&#xff09; 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。Router模块通过不同的url地址&#xff0c;可以方便地进行页面路由&#xff0c;轻松地访问不同的页面。本文将从页面跳转、页面返回、页面返回前增加一个询问框和命名路…

MongoDB自学笔记(一)

一、MongoDB简介 MongoDB是一款基于C开发的文档型数据库。与传统的关系型数据库有所不同&#xff0c;MongoDB面向的是文档&#xff0c;所谓的文档是一种名为BSON &#xff08;Binary JSON&#xff1a;二进制JSON格式&#xff09;是非关系数据库当中功能最丰富&#xff0c;最像…