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è)置的路徑中去。
安裝完成!