原文链接:https://blog.csdn.net/richie696/article/details/113049313
为什么要手工编译源代码安装
相信大家选用Deepin Linux v20发行版的原因十有八九都是一样的,deepin-wine提供了比较完善且常用的Windows软件,方便和其它同事、朋友工作交流沟通等原因,Deepin的交互UI也比较有好,复合国人的审美和使用习惯。它的好处自不必多说,那么带来的问题也不少。比如:开发用的很多软件源不支持Deepin,我们需要手工去修改或研究安装源的安装方式,虽然deepin使用的是Debian的软件源,系统也是基于deepin的unstable版本构建,但并不代表deepin可以完全和debian一样,比如今天要说的Git源码编译安装方式就无法通用,Git-scm官方使用的是ppa安装源,在Deepin v20上就放弃这种安装方式吧!我使用了deepin 15版本的方法没能安装成功,于是最后决定采用源码安装方式,并成功将最新的Git 2.32.0版本git编译成功。具体操作步骤如下:
准备工作 首先我们需要从Git官网下载最新的源代码包,你可以下载压缩包,也可以直接去github clone最新的源代码,只不过第二种方式你需要先安装apt源里面的git,之后需要再卸载掉。地址分别如下:
GITHUB地址:
git clone https://github.com/git/git.git
源代码包地址:
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.gz
下载到本地后还无法直接编译,下面需要进行编译项目的依赖安装,这里我使用的是Deepin v20.1,本教程理论上只要是v20+的都可以,具体操作进入下一节细说。
安装依赖项 编译源代码本身会用到的一些依赖比如make, g++, gcc 等,这些自行安装,如果已经安装过的略过这一步。
sudo apt install make g++ gcc -y
用于生成git源代码configure文件的依赖:
sudo apt install autoconf
而git本身的依赖还包括curl、zlib、openssl、expat、libiconv等,此处请执行
sudo apt install build-essential libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev -y
在编译过程中,还会编译到git的文档等内容,为了顺利编译通过,你还需要安装和文档解析有关的依赖,具体如下:
sudo apt install asciidoc xmlto docbook2x
至此,依赖项算是安装的差不多了,如果在编译的时候还有什么漏掉的到时候报错再补也不迟。
开始编译 此处以我下载的最新版Git-2.32.0版本为例(存放路径:~/git-2.32.0.tar.gz),执行如下操作:
tar -zxvf git-2.32.0.tar.gz cd git-2.32.0 make configure ./configure --prefix=/usr/local/git --bindir=/usr/bin
这里的–prefix是指定git的安装目录,–bindir是指定git执行文件存放的路径,指定以后,就可以在任意目录下执行git命令,这里需要注意,如果之前有安装apt版本的,请先卸载掉apt的git版本。
接下来,等待片刻后看到如下提示就证明配置成功了。
然后开始执行编译,命令如下:
make all doc (这里等待时间略长,但和nodejs比已经快很多了。)
等待片刻后,看到如下提示证明编译成功,如果有错误,请根据错误提示安装缺少的依赖,如果不知道缺什么可以给我留言,我看到后会帮你解决。
最后一步,安装吧,到这里后面也不会有什么错误了。
sudo make install install-doc install-html
最终安装成功以后,使用
git --version
查看一下git版本是不是最新啦!
其实,Deepin v20自带的git版本和Debian是一样的,都是2.20.0,但是由于我使用的是SmartGit来管理Git项目,所以每次打开都提示我让我更新版本,当前2.20.0版本太旧不推荐使用,所以就花了点时间研究一下,顺便记录下来提供给需要的人。
没用过的人给安利一波,Linux下面少有的好用的Git GUI工具,不过是付费的,可以申请免费个人License,大家可以试试看。 ———————————————— 版权声明:本文为CSDN博主「richie696」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/richie696/article/details/113049313
注意:本文归作者所有,未经作者允许,不得转载