源碼安裝步驟


Linux上幾乎所有的軟件都經(jīng)過了GPL授權(quán),因此幾乎所有的軟件都會(huì)提供源碼。
而一個(gè)軟件要在Linux上執(zhí)行,必須是二進(jìn)制文件,因此當(dāng)我們拿到軟件源碼后,需要將它編譯成二進(jìn)制文件才能在Linux上運(yùn)行。


軟件編譯過程

將源碼編譯成可供Linux運(yùn)行的二進(jìn)制文件一共需要兩步:

  • 1. 使用gcc編譯器將源碼編譯成目標(biāo)文件
  • 2. 再次使用gcc編譯器將目標(biāo)文件鏈接成二進(jìn)制文件

這過程看似簡單,實(shí)則不然。一個(gè)軟件的源代碼往往被封裝在多個(gè)源文件中,此外這些文件有錯(cuò)綜復(fù)雜的依賴關(guān)系,編譯需要嚴(yán)格按照指定的順序進(jìn)行,這無疑增加了編譯的難度。好在make命令可以幫助我們簡化編譯過程。

整個(gè)編譯過程被濃縮在Makefile文件中(告訴make命令需要怎么去編譯和鏈接程序),當(dāng)執(zhí)行make命令時(shí),make會(huì)去當(dāng)前目錄中尋找Makefile文件,并根據(jù)該文件中的要求完成整個(gè)編譯過程。

而Makefile文件由configure命令產(chǎn)生。當(dāng)執(zhí)行configure命令時(shí),configure會(huì)根據(jù)當(dāng)前系統(tǒng)環(huán)境動(dòng)態(tài)生成一個(gè)適合本系統(tǒng)的Makefile文件,供make命令使用。


Linux源碼安裝步驟

  • 1.獲取源碼
  • 2.將軟件的源碼下載至/usr/local/,并解壓。
    查看INSTALL與README文件
    解壓后查看INSTALL與README文件,這兩個(gè)文件中詳細(xì)介紹了本軟件的安裝方法和注意事項(xiàng)。
  • 3.創(chuàng)建Makefile文件
    執(zhí)行configure命令,生成Makefile文件。
  • 4.編譯
    執(zhí)行make clean;make命令將源碼編譯成二進(jìn)制文件。
    PS:make clean命令用來清除上一次編譯生成的目標(biāo)文件。這個(gè)步驟可有可無,但為了確保編譯的成功,還是加上為好。防止由于軟件中含有殘留的目標(biāo)文件導(dǎo)致編譯失敗。
  • 5.安裝
    執(zhí)行make install命令將上一步編譯好的二進(jìn)制文件安裝到指定的目錄中去。

安裝演示

1.進(jìn)入/usr/local/,并創(chuàng)建memcached目錄

cd /usr/local/
mkdir memcached

2.下載memcached的源碼

wget http://memcached.org/files/memcached-1.4.29.tar.gz

3.解壓源碼

tar -zxvf memcached-1.4.29.tar.gz

4.執(zhí)行configure,生成Makefile文件

./configure --prefix=/usr/local/memcached/

此時(shí)當(dāng)前目錄下將會(huì)生成一個(gè)Makefile文件。

注意:–prefix參數(shù)指定軟件安裝目錄。當(dāng)執(zhí)行make install命令時(shí),會(huì)將軟件安裝在此路徑中。

5.執(zhí)行make,從Makefile中讀取指令,編譯源碼

make clean; make

此時(shí)make會(huì)讀取Makefile文件,將源碼編譯成二進(jìn)制文件,并存放在當(dāng)前目錄下。

6.執(zhí)行make install,將軟件安裝至指定目錄

make install

此時(shí)二進(jìn)制文件會(huì)被安裝到先前configure prefix參數(shù)設(shè)置的路徑中去。
安裝完成!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容