為什麼要進行源碼安裝軟體包呢?
由于我們系統自帶都是一些已經編譯好的rpm安裝包,這些rpm包的更新的速度大約是每三年更新一次,對于那些具有新功能或者具有更多功能的的軟體包,官方隻提供給我們那些以c語言和其它語言編寫的源碼包,我們要想使用就必須自己進行編譯和安裝。使用源碼安裝我們不僅可以使用最新的軟體,使用更新或更多的功能,而且能夠個性定制自己的軟體安裝。
源碼安裝的一般步驟是:一般我們下載下傳的源碼都是tar.gz或者tar.bz2格式的,是以首先我們首先要拆包,一般将壓縮包拆解到/usr/local/src/目錄下;拆解後的檔案就是源碼,這是我們需要對源碼進行相應的配置(./configure –選項)産生makefile;然後,對産生的makefile檔案進行編譯,編譯産生相應的可執行檔案、庫檔案、頭檔案、man手冊;最後執行源碼的安裝make install;安裝之後我們要進行更加細節和人性化的調整。
下面我們就以httpd-2.4.4的安裝為例,為大家展示源碼安裝的具體步驟:
安裝前的準備工作:
首先,我們先下載下傳與http相關的軟體包,與httpd相關的軟體包我們可以去apache官方網站進行下載下傳http://www.apache.org。這裡我準備了的軟體包:
httpd-2.4.4.tar.bz2
apr-1.4.6.tar.gz
apr-util-1.5.1.tar.gz
其次,由于我們下載下傳的是源代碼,這些源代碼要使用就必須進行編譯。編譯又需要相應的編譯器,linux常用的編譯器有gcc等多種編譯器,這就要求有多種編譯的環境。一般情況下,隻要安裝了以下這些包組:
Development Libraries
Development Tools
X Software Development
Legacy Software Development
就能解決絕大部分的源碼的編譯環境問題了。我們在源碼安裝前使用:yum grouplist |less檢視是否這些包組已經安裝,
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukTM2YjMzAzNx8CX3AzMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjLzM3Lc9CX6MHc0RHaiojIsJye.png)
至此準備工作已經完成了。
下面是源碼安裝的具體操作步驟:
我們将所用的源碼複制到我們的管理者家目錄下:
将httpd-2.4.4.tar.bz2解壓到/usr/local/src目錄下:tar –jxvfhttpd-2.4.4.tar.bz2 –C /usr/local/src/
切換目錄到/usr/local/src/httpd-2.4.4/:
使用./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache 來指明檔案的安裝目錄和配置檔案的存放目錄。但是在産生makefile檔案之前,該配置腳本會對系統環境進行各種檢測,來檢視是否支援apache的運作需求:
接下來我們通過rpm –qa|grep –i apr檢視我們的系統是否安裝了apr:
發現我們已經安裝了apr主程式,但是為什麼還提示沒有找到呢?因為有時候可能有些apr的庫檔案并不包含在apr的主程式當中,而是存在apr-devel的程式中。
下面我們檢視是否存在apr-devel安裝包:
發現存在apr-devel包,安裝apr-devel包,再次執行./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache指令:
我們将事先準備好的apr-1.4.6.tar.gz和apr-util-1.5.1.tar.gz解壓安裝,安裝完成後會出現以下目錄:
為了将形成的頭檔案和庫檔案能夠被系統借用,我們要将形成的頭檔案和庫檔案放到系統所能識别的目錄(系統所能識别的頭檔案目錄為:/include或/usr/include;庫檔案所能識别的目錄為:/lib或/usr/lib):
我們可以通過ln –s/usr/local/apr/include/apr-1/* /usr/include
為了能識别庫檔案,我們需要在/etc/ld.so.conf.d/下建立一名為apr.conf的檔案,并将apr的庫檔案目錄放在apr.conf的檔案内。然後,通過ldconfig指令更新緩存,然後通過ldconfig –pv |grep apr指令來檢視是否加載成功庫檔案。此時的頭檔案和庫檔案就能被系統找到。
在這裡為大家推薦一個可以下載下傳linux相關安裝包網址:http://www.rpmfind.net。
安裝完成apr主程式和工具後,我們再次進入/usr/local/src/httpd-2.4.4/目錄下執行./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache指令:
這時我們就需要在剛才的指令後面來指明apr-1-config的配置檔案(--with-apr=/usr/local/apr/bin/apr-1-config):
我們同樣,加入這樣一句話—with-apr-util=/usr/local/apr-util/:
此時,我們檢視是否安裝了pcre,如果安裝了,檢視是否安裝了pcre-devel,沒有的話安裝pcre-devel:
好了,我們繼續上面未完成的指令,這次終于成功了,然後我們執行make指令進行編譯。
最後,我們通過make install 進行安裝:
切換目錄到/usr/local/apache/目錄下檢視所形成的目錄及檔案:
此時,要想系統能夠調用我們頭檔案,我們需要把我們的頭檔案連結到系統能夠識别的目錄下:
要想識别我們的庫檔案,需要在/etc/ld.so.conf.d/下建立一名為apache.conf檔案将庫的具體路徑(/usr/local/apache/modules/)寫到這個檔案内:
然後,使用ldconfig更新緩存。
要想實作man的幫助指令,我們需要修改/etc/man.conf檔案,添加我們apache的man手冊的路徑:
測試man指令能否成功:
對于服務來說,要想實作它的功能就必須挂接它的配置檔案:
要想實作對apache的控制,我們需要編寫控制腳本,通過chkconfig指令,實作開機自啟動,控制腳本一般放在/etc/init.d/目錄下。我們進入到/etc/init.d/目錄下編寫一個腳本httpd,并且改變該檔案的權限為可執行。