提醒:本文為合集文章,,后續(xù)會持續(xù)更新! 關(guān)注我,,每日提升,! 在Linux下安裝源碼包是最常用的。在日常的管理工作中,,阿銘的大部分軟件都是通過源碼安裝的,。安裝源碼包,需要我們把源代碼編譯成可執(zhí)行的二進(jìn)制文件,。如果你能讀懂這些源代碼,,就可以修改這些源代碼的自定義功能,然后再按你的需求編譯,。使用源碼包除了可以自定義修改源代碼外,,還可以定制相關(guān)的功能,因為源碼包在編譯時可以附加額外的選項,。 源碼包的編譯用到了Linux系統(tǒng)里的編譯器,。常見的源碼包一般都是用C語言開發(fā)的,因為C語言是Linux上最標(biāo)準(zhǔn)的程序語言,。Linux上的C語言編譯器稱為gcc,,利用它可以把C語言編譯成可執(zhí)行的二進(jìn)制文件。所以,,如果你的機(jī)器上沒有安裝gcc,,就無法編譯源碼,你可以使用命令yum install -y gcc來完成安裝,。 安裝源碼包通常需要以下3個步驟,。 (1) ./configure 這一步可以定制功能,,加上相應(yīng)的選項即可,具體有什么選項可以通過命令./configure --help來查看,。這一步會自動檢測你的Linux系統(tǒng)與相關(guān)的套件是否有編譯該源碼包時所需要的庫,,因為一旦缺少某個庫,就不能完成編譯,。只有檢測通過后,,才會生成Makefile文件。 (2) make 使用這個命令,,會根據(jù)Makefile文件中預(yù)設(shè)的參數(shù)進(jìn)行編譯,,這一步其實就是gcc在工作了。 (3) make install 這一步是安裝步驟,,用于創(chuàng)建相關(guān)軟件的存放目錄和配置文件,。 對于以上這3個步驟,并不是所有的源碼包軟件都一樣,,也就是說,,源碼包的安裝并沒有標(biāo)準(zhǔn)的安裝步驟。這就需要你拿到源碼包解壓后,,進(jìn)入目錄,,找到相關(guān)的幫助文檔(通常,會以INSTALL或者README為文件名),。下面阿銘會編譯安裝一個源碼包來幫助你更深刻地理解安裝源碼包的過程,。 下載源碼包 下載源碼包一定要去官方站點,因為你從其他網(wǎng)站下載的源碼包很有可能是被修改過的,。我們先把Nginx的源碼包下載到/usr/local/src/目錄下,,如下所示: # cd /usr/local/src/# wget http:///download/nginx-1.22.0.tar.gz 阿銘提供的下載地址為Nginx下載地址,,如果該地址已失效,,請到其官網(wǎng)獲取最新的Nginx下載地址。在下載之前,,阿銘先進(jìn)入/usr/local/src目錄,,這是因為阿銘習(xí)慣把源碼包都放到這個目錄下。這樣做的好處是方便自己和其他管理員維護(hù),。所以,,阿銘建議你將下載的源碼包都統(tǒng)一放到這個目錄下。 解壓源碼包 解壓.tar.gz格式的壓縮包,,這在前面已經(jīng)介紹過,,示例命令如下:
配置相關(guān)的選項并生成Makefile 首先,進(jìn)入解壓后的源碼目錄,,在配置之前可以查看可用的配置參數(shù),,如下所示: # cd nginx-1.22.0# ./configure --help |less --help print this message --prefix=PATH set installation prefix --sbin-path=PATH set nginx binary pathname --modules-path=PATH set modules path --conf-path=PATH set nginx.conf pathname --error-log-path=PATH set error log pathname --pid-path=PATH set nginx.pid pathname --lock-path=PATH set nginx.lock pathname --user=USER set non-privileged user for worker processes --group=GROUP set non-privileged group for worker processes 限于篇幅,,后面的內(nèi)容阿銘省略了。常用的配置選項有--prefix=PREFIX,,它的意思是定義軟件包的安裝路徑,。如果你想了解其他配置選項,也可以使用命令./configure --help查看詳情,。這里阿銘把Nginx安裝在/usr/local/nginx目錄下,,該選項的配置為--prefix=/usr/local/nginx。配置過程如下所示:
不幸的是配置剛開始就報錯了,,因為Nginx需要zlib庫,,該系統(tǒng)并未安裝。安裝命令如下: # yum install -y pcre-devel 安裝后再繼續(xù)上面的步驟,,如下所示:
此時又有新的錯誤: ./configure: error: the HTTP gzip module requires the zlib library.You can either disable the module by using --without-http_gzip_moduleoption, or install the zlib library into the system, or build the zlib librarystatically from the source with nginx by using --with-zlib=<path> option. 根據(jù)它提示,很容易解決此問題,,安裝zlib即可:
然后繼續(xù)./configure那一步,,最終通過,驗證這一步是否成功的命令是: # echo $?0 這里返回值是0,,說明執(zhí)行成功,,否則就沒有成功。此時就成功生成Makefile了,。查看結(jié)果如下:
進(jìn)行編譯 生成Makefile后,,需要進(jìn)行編譯,如下所示: # make-bash:make: 未找到命令 說明:這是因為我們的系統(tǒng)還未安裝make命令,,安裝即可
編譯時會出現(xiàn)類似這樣雜亂的信息,。限于篇幅,阿銘只列出一小部分內(nèi)容,。編譯的時間會比較長,,這是因為CPU高速計算時的使用率很高。編譯后再使用命令echo $?驗證是否編譯成功,,如下所示: # echo $?0 如果驗證結(jié)果是0,,就可以執(zhí)行最后一步了。 安裝 安裝源碼包的命令為make install,,如下所示:
當(dāng)然,,你也可以使用命令echo $?驗證是否已正確安裝。執(zhí)行完這一步,,則會在/usr/local/nginx目錄下增加很多目錄,。使用ls命令查看該目錄,如下所示: # ls /usr/local/nginx/conf html logs sbin 到此,Nginx源碼的安裝就完成了,。其實在日常的源碼安裝過程中,,遇到錯誤不能完成安裝的情況很多,這些錯誤通常都是因為缺少某一個庫文件,。這需要你仔細(xì)琢磨報錯信息或者查看當(dāng)前目錄下的config.log以得到相關(guān)的信息,。 感謝閱讀,關(guān)注我,,持續(xù)為你輸出高質(zhì)量Linux技術(shù)文檔,! |
|