日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

超详细的CentOS7中安装Git,yum安装和自己编译安装

發(fā)布時(shí)間:2025/4/5 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超详细的CentOS7中安装Git,yum安装和自己编译安装 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

預(yù)備知識(shí)很長(zhǎng),請(qǐng)耐心看,對(duì)后面安裝過(guò)程的理解及其對(duì)linux 的理解都很有幫助

一、預(yù)備知識(shí)

1)什么是自由軟件運(yùn)動(dòng)?

自由軟件運(yùn)動(dòng)致力于通過(guò)自由軟件使計(jì)算機(jī)用戶獲得自由權(quán)利。自由軟件的用戶可以自主控制自己的計(jì)算。非自由軟件使用戶受制于軟件開發(fā)者。

2)GNU

GNU是一個(gè)自由軟件操作系統(tǒng)—就是說(shuō),它尊重其使用者的自由。自由軟件意味著使用者有運(yùn)行、復(fù)制、發(fā)布、研究、修改和改進(jìn)該軟件的自由。GNU是一個(gè)類Unix操作系統(tǒng)。它是由多個(gè)應(yīng)用程序、系統(tǒng)庫(kù)、開發(fā)工具乃至游戲構(gòu)成的程序集合。GNU的開發(fā)始于1984年1月,稱為GNU工程。GNU是一個(gè)類Unix操作系統(tǒng)。它是由多個(gè)應(yīng)用程序、系統(tǒng)庫(kù)、開發(fā)工具乃至游戲構(gòu)成的程序集合。

3)cc、gcc的介紹和區(qū)別概括

老的unix系統(tǒng)的CC程序叫做C Compiler。但GCC這個(gè)名字按GNU【GNU編譯器集合包括C, C ++,Objective-C,Fortran,Ada,Go和D的前端 ,以及這些語(yǔ)言的庫(kù)(libstdc ++等)。GCC最初是作為GNU操作系統(tǒng)的編譯器編寫的。GNU系統(tǒng)開發(fā)為100%免費(fèi)軟件,在尊重用戶自由的意義上說(shuō)是免費(fèi)的。】的說(shuō)法叫做GNU Compiler Collection。因?yàn)間cc包含很多編譯器(C, C++, Objective-C, Ada, Fortran,Java)。所以它們是不一樣的,一個(gè)是一個(gè)古老的C編譯器,一個(gè)是GNU的編譯器的集合。當(dāng)你調(diào)用gcc時(shí)不一定是調(diào)用的C/C++編譯器,是gcc根據(jù)文件擴(kuò)展名自動(dòng)識(shí)別并調(diào)用對(duì)應(yīng)的編譯器,具體可查閱$man gcc。
linux下的cc是gcc的符號(hào)鏈接。可以通過(guò)$ls –l /usr/bin/cc來(lái)簡(jiǎn)單察看

[root@Hadoop ~]# which cc /usr/bin/cc [root@Hadoop ~]# which gcc /usr/bin/gcc

cc是Unix下的,是收費(fèi)的,可不向Linux那樣可以那來(lái)隨便用,所以Linux下是沒(méi)有cc的。那么問(wèn)題來(lái)了,為啥我們?cè)趌inux下能查到cc呢(如上查詢結(jié)果)?如果我的c/c++項(xiàng)目是在Unix下編寫的,在寫makefile文件時(shí)自然地用了cc,當(dāng)將其放到Linux下這無(wú)法make了,必須將其中的cc全部修改成gcc。這太麻煩了哈,所以,Linux這想了這么一個(gè)方便的解決方案:不修改makefile,繼續(xù)使用cc,這個(gè)cc是個(gè)“冒牌貨”,它實(shí)際指向gcc。

4)make命令與Makefile文件

[root@Hadoop git-2.21.0]# ls -l |grep Makefile -rw-rw-r--. 1 root root 98415 225 2019 Makefile[root@Hadoop git-2.21.0]# which make /usr/bin/make

可以看出make是一個(gè)命令,Makefile是一個(gè)文件,具體看下面

無(wú)論是在Linux還是在Unix環(huán)境中,make都是一個(gè)非常重要的編譯命令。不管是自己進(jìn)行項(xiàng)目開發(fā)還是安裝應(yīng)用軟件,我們都經(jīng)常要用到make或make install(make和make install區(qū)別看下方)。利用make工具,我們可以將大型的開發(fā)項(xiàng)目分解成為多個(gè)更易于管理的模塊,對(duì)于一個(gè)包括幾百個(gè)源文件的應(yīng)用程序,使用make和Makefile文件就可以簡(jiǎn)潔明快地理順各個(gè)源文件之間紛繁復(fù)雜的相互關(guān)系。而且如此多的源文件,如果每次都要鍵入gcc命令進(jìn)行編譯的話,那對(duì)程序員來(lái)說(shuō)簡(jiǎn)直就是一場(chǎng)災(zāi)難。


① 而make工具則可自動(dòng)完成編譯工作,并且可以只對(duì)程序員在上次編譯后修改過(guò)的部分進(jìn)行編譯。
② 事實(shí)上,只有make命令還是不夠的,前面說(shuō)過(guò)還必用須makefile告訴它要做什么以及怎么做才行,對(duì)于程序開發(fā)而言,就是告訴make命令應(yīng)用程序的組織情況。
③ Makefile定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,Makefile中紀(jì)錄有文件的信息,在 make時(shí)會(huì)決定在鏈接的時(shí)候需要重新編譯哪些文件。因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。makefile 帶來(lái)的好處就是“自動(dòng)化編譯”,一旦寫好,只需要一個(gè)make命令,整個(gè)工程完全自動(dòng)編譯,極大的提高了軟件開發(fā)的效率。
④ 我們現(xiàn)在對(duì)makefile的位置和數(shù)量簡(jiǎn)單說(shuō)一下。一般情況下,makefile會(huì)跟項(xiàng)目的源文件放在同一個(gè)目錄中。另外,系統(tǒng)中可以有多個(gè)makefile,一般說(shuō)來(lái)一個(gè)項(xiàng)目使用一個(gè)makefile就可以了;
因此,有效的利用make和makefile工具可以大大提高項(xiàng)目開發(fā)的效率。同時(shí)掌握make和makefile之后,您也不會(huì)再面對(duì)著Linux下的應(yīng)用軟件手足無(wú)措了。

make是用來(lái)編譯的,它從Makefile中讀取指令,然后編譯。make install是用來(lái)安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

預(yù)備知識(shí)及make工作原理,及Makefile依賴可參考:
make工作原理:https://blog.csdn.net/qq_22182835/article/details/89467386
Makefile依賴
https://www.cnblogs.com/nosadness/p/5136652.html

5)source、sh、bash、./都是用來(lái)執(zhí)行腳本的命令

6)automake autoconf 使用詳解

autoconf命令用途:幫我們自動(dòng)生成Makefile文件
我們直接從helloworld.c實(shí)例入手講解:
  下面的 過(guò)程如果簡(jiǎn)單地說(shuō)來(lái)就是 :
  新建三個(gè)文件:
   helloworld.c
   configure.in
   Makefile.am
  然后執(zhí)行:
aclocal; autoconf; automake --add-missing; ./configure; make; ./helloworld
  就可以看到Makefile被產(chǎn)生出來(lái),而且可以將helloworld.c編譯通過(guò).

很簡(jiǎn)單吧,幾條命令就可以做出一個(gè)符合慣例的 Makefile,

現(xiàn)在 開始介紹詳細(xì)的 過(guò)程:
先用命令查看是否有autoconf工具和automake工具,如果沒(méi)有請(qǐng)自行百度安裝:

# which autoconf /usr/bin/autoconf # which automake /usr/bin/automake

1.建目錄

在 你的 工作目錄下建一個(gè)helloworld目錄,我們用它來(lái)存放helloworld程序及相關(guān)文件,如在 /home/my/build下:

$ mkdir helloword
$ cd helloworld
  2. hello.c

然后用你自己最喜歡的 編輯器寫一個(gè)hello.c文件,如命令:vi hello.c.使用下面的 代碼作為hello.c的 內(nèi)容.

#include <stdio.h>
int main(){
printf("%s", 'hello world!");
return 0;
}
  完成后保存退出.
  現(xiàn)在 在 helloworld目錄下就應(yīng)該有一個(gè)你自己寫的 hello.c了.
  
  3.生成configure
3.1 運(yùn)行autoscan命令產(chǎn)生configure.scan文件

# autoscan # ls autoscan.log configure.scan hello.c

3.2 將configure.scan文件重命名為configure.in文件

# mv configure.scan configure.in # ls autoscan.log configure.in hello.c

3.3 修改configure.in里面的內(nèi)容如下:

# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_INIT(hello.c) AM_INIT_AUTOMAKE(hello, 1.0) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT(Makefile)

3.4 然后執(zhí)行命令aclocal和autoconf,分別會(huì)產(chǎn)生aclocal.m4及configure兩個(gè)文件:

# aclocal aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in' # ls aclocal.m4 autom4te.cache autoscan.log configure.in hello.c # autoconf # ls aclocal.m4 autom4te.cache autoscan.log configure configure.in hello.c

3.5 手動(dòng)創(chuàng)建并編輯如下的Makefile.am文件
新建Makefile.am文件,并輸入如下內(nèi)容,命令:

$ vi Makefile.am 輸入的內(nèi)容: AUTOMAKE_OPTIONS=foreign bin_PROGRAMS=hello hello_SOURCES=hello.c

automake會(huì)根據(jù)你寫的 Makefile.am來(lái)自動(dòng)生成Makefile.in.
  
3.6 執(zhí)行automake --add-missing命令,產(chǎn)生Makefile.in文件,使用選項(xiàng)”–add-missing”可以讓automake自動(dòng)添加一些必需的腳本文件。

# automake --add-missing automake: warning: autoconf input should be named 'configure.ac', not 'configure.in' configure.in:6: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see: configure.in:6: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation configure.in:6: installing './install-sh' configure.in:6: installing './missing' Makefile.am: installing './depcomp' automake: warning: autoconf input should be named 'configure.ac', not 'configure.in' # ls aclocal.m4 autoscan.log configure.in hello.c Makefile.am missing autom4te.cache configure depcomp install-sh Makefile.in

3.7 最后執(zhí)行./configure命令,自動(dòng)產(chǎn)生Makefile文件

#./configure # ls aclocal.m4 config.log configure.in install-sh Makefile.in autom4te.cache config.status depcomp Makefile missing autoscan.log configure hello.c Makefile.am

3.8 使用Makefile編譯源代碼:

# make gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"hello.c\" -DVERSION=\"1.0\" -I. -g -O2 -MT hello.o -MD -MP -MF .deps/hello.Tpo -c -o hello.o hello.c mv -f .deps/hello.Tpo .deps/hello.Po gcc -g -O2 -o hello hello.o[root@Hadoop test]# ls -l |grep hello -rwxr-xr-x. 1 root root 10953 12月 28 14:54 hello -rw-r--r--. 1 root root 65 12月 28 14:09 hello.c -rw-r--r--. 1 root root 5960 12月 28 14:54 hello.o

3.9 運(yùn)行hello

# ./hello hello world!

具體內(nèi)容參考:https://www.cnblogs.com/liujx2019/p/10310064.html

7)configure就是6)過(guò)程中生成的腳本文件

8)為什么我安裝的時(shí)候要先./configure,然后make,然后make install呢?

1:./configure 是軟件的組態(tài)設(shè)置文件 產(chǎn)生對(duì)應(yīng)平臺(tái)的Makefile。你可以通過(guò)在 configure 后加上參數(shù)來(lái)對(duì)安裝進(jìn)行控制,比如代碼:./configure –prefix=/usr 意思是將該軟件安裝在 /usr 下面,執(zhí)行文件就會(huì)安裝在 /usr/bin (而不是默認(rèn)的 /usr/local/bin),資源文件就會(huì)安裝在 /usr/share(而不是默認(rèn)的/usr/local/share)。

2:make 根據(jù)Makefile的內(nèi)容 編譯出符合平臺(tái)的可執(zhí)行文件

3:make install 安裝編譯成功的軟件

4:make clean清除編譯成功的obj and binary

二、可以使用yum進(jìn)行安裝

1、安裝git:yum install git

2、查看yum源倉(cāng)庫(kù)Git信息:yum info git

3、安裝依賴庫(kù):yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

yum install gcc-c++ perl-ExtUtils-MakeMaker

4、查看git版本,如果默認(rèn)安裝的版本過(guò)低,移除默認(rèn)安裝的git

4.1、查看版本信息:git --version4.2、移除默認(rèn)安裝的git:yum remove git

三、自行下載安裝Git

最新git源碼下載地址:https://github.com/git/git/releaseshttps://www.kernel.org/pub/software/scm/git/

1、下載

1.1、用wegt命令進(jìn)行下載:wget -O /tmp/git-2.21.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz

2、解壓:此處解壓到/usr/local/src目錄下

tar -zxvf git-2.21.0.tar.gz -C /usr/local/src

3、安裝

3.1、進(jìn)入解壓后的git目錄:cd /usr/local/src/git-2.21.0.tar.gz
Git 的工作需要調(diào)用 curl,zlib,openssl,expat,libiconv 等庫(kù)的代碼,所以需要先安裝這些依賴工具。安裝編譯依賴

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

3.3、配置目錄,設(shè)置安裝路徑:# ./configure --prefix=/usr/local/git

3.4、編譯 # make

3.5、安裝# make install

4、 配置環(huán)境變量

vim /etc/profile

在文件末尾輸入以下內(nèi)容:

# GIT_HOME GIT_HOME=/usr/local/git export PATH=$PATH:$GIT_HOME/bin

#刷新

source /etc/profile


移動(dòng)到根目錄輸入,顯示版本就沒(méi)問(wèn)題啦!

[root@CentOS7BAK /]# git --version git version 1.8.3.1

總結(jié)

以上是生活随笔為你收集整理的超详细的CentOS7中安装Git,yum安装和自己编译安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。