今天來總結一下在Linux中軟體安裝,通常我們應該知道,安裝軟體有兩種方法:一種是軟體包的安裝,也就是rpm包的安裝,就是指這些軟體包都是已經編譯好的二進制rpm包,我們通過rpm安裝工具和yum安裝工具就可以直接安裝了。另一種則是源代碼安裝,這種軟體安裝就是指它隻有源代碼,沒有經過編譯的二進制,需要通過手動去編譯安裝的。
rpm包是别人所編譯好的軟體包,比如說編譯好的rpm包沒有某個功能,也我們又想用,那我們就得自去手動下載下傳源代碼來自行安裝了,自定義去安裝程式包,這個是我們要撐握的。
下面我們就來說說源代碼編譯安裝httpd:
作業系統:CentOS release 6.4 x86_64
安裝前提:GCC、Develoment Tools、Server Platform Development
安裝的軟體包:httpd-2.2.25.tar.bz2
首先我們先檢視一下系統中有沒有安裝好的httpd,rmp -q httpd就可以檢視到,如果有我們就先解除安裝,rpm -e httpd就可以解除安裝,如果沒有那就安裝。
<a href="http://s3.51cto.com/wyfs02/M01/12/A6/wKioL1MLOl-gtb97AABX-R_r9Vo937.jpg" target="_blank"></a>
以安裝httpd-2.2.25源碼的軟體包為例,我們要檢查系統中需要的安裝環境,yum grouplist可以檢視InstalledGroups裡有沒有Server Platform Development和Development tools這兩項,然後再gcc -v檢視一下gcc編譯器有沒有安裝好,做好這些工作那我們就去下載下傳所需要安裝的源代碼軟體包了
httpd-2.2.25.tar.bz2、這個我從我們的教室的伺服器上下載下傳好了、直接get下載下傳到本地就OK了,下載下傳好我們就開始安裝了。
<a href="http://s3.51cto.com/wyfs02/M02/12/A6/wKioL1MLOsKTxhJkAAI6VXkUQFY962.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/12/A6/wKioL1MLOsKhi4p6AALUckgVmus434.jpg" target="_blank"></a>
安裝httpd-2.2.25.tar.bz2源碼軟體包的步驟:
解壓軟體包到本地:
# tar xf httpd-2.2.25.tar.bz2
<a href="http://s3.51cto.com/wyfs02/M02/12/A5/wKiom1MLOyzT31LUAAD52T3Lcoo979.jpg" target="_blank"></a>
cd到解壓好的目錄中:
# cdhttpd-2.2.25
在這裡我們可以看到解壓的檔案中生成了一個configure的檔案,我們可以./configure --help看看幫助文檔,這裡就不看了,繼續下一步
<a href="http://s3.51cto.com/wyfs02/M01/12/A6/wKioL1MLO-XR_NROAAHGXU4BRg0094.jpg" target="_blank"></a>
./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --enable-so
--prefix=/usr/local/httpd :這個是指定我們安裝的路徑
--sysconfdir=/etc/httpd :這個是指定的配置檔案路徑
--enable-so :這個是指允許子產品化使用
這樣我們回車就開始了,程式比較大,可能時間比較長,耐心等待吧.....
編譯完之後我們開始執行make指令了,這個也比較久,等吧......
make完了就開始執行make install真正開始執行安裝了;
好了,安裝完之後我們進到安裝目錄看一下生成的檔案:/usr/local/httpd 在bin目錄生成一個叫ahachectl的腳本,我們直接在指令行中輸入ahachectl,系統說找不到這個指令,是以我們要配置一下PATH環境變量,是以我們就在/etc/profile.d/目錄下建一個httpd.sh的檔案,如下:
# vim /etc/profile.d/httpd.sh
PATH=/usr/local/httpd/bin:$PATH
export PATH
<a href="http://s3.51cto.com/wyfs02/M01/12/A5/wKiom1MLPO_w_QfwAAAjHGA9T0Y284.jpg" target="_blank"></a>
儲存退出即可!
我們echo $PATH看看有沒有這個路徑了
<a href="http://s3.51cto.com/wyfs02/M02/12/A6/wKioL1MLPTrAaPkYAABgrWoXI9s970.jpg" target="_blank"></a>
看!沒有、那是系統還沒有識别,要配置檔案生效那我們就得讓系統重讀配置檔案了:
# . /etc/profile.d/httpd.sh
再echo $PATH就看到我們剛才寫的那個路徑了;
如果不配置環境變量那我們每次啟動就都得寫全完整路徑了:如
# /usr/local/httpd/bin/apachectl start
配置完環境變量和重讀配置檔案後我們就可以直接啟動了。
# apachectl start
netstat -tnl:用這個指令我們檢視一下是不是已經監聽了80端口:
再網頁測試一下!ifconfig檢視一下虛拟機的IP位址:
<a href="http://s3.51cto.com/wyfs02/M00/12/A7/wKioL1MLPwyR8Ar1AAEMNHsIpUI292.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/12/A7/wKiom1MLP8zwvXOyAABdIk1DHbI300.jpg" target="_blank"></a>
這樣、我們的httpd源碼安裝就完成了!
再來看看/usr/local/httpd下的include檔案、這裡存放的全是頭檔案,為了讓系統可以通過/usr/include/這個路徑也能找到我們的頭檔案、那我們就要做個連結到這個/usr/include這時來了;
輸出頭檔案給系統:
ln -sv /usr/local/httpd/include /usr/include/httpd
同樣、我們也要輸出庫檔案,在/etc/ld.so.conf.d/目錄下建立一個httpd.conf的檔案:
# vim /etc/ld.so.conf.d/httd.conf
/usr/local/httpd/lib
儲存退出,再讓系統重新生成庫檔案路徑緩存:
# ldconfig -v
最後再輸出man幫助文檔,編輯/etc/man.config:
# vim /etc/man.comfig
在後面加上一行:
MANPATH /usr/local/httpd/man 儲存退出即可!
<a href="http://s3.51cto.com/wyfs02/M02/12/A7/wKioL1MLQeriPaO_AACEx1QQYTY878.jpg" target="_blank"></a>
結束:
大概的安裝過程就是這樣,如有什麼不妥、萬望指出、不勝感激、人無完人、有做得不到之處或錯誤的地方希望多多提點、在此小弟先感謝你的關注了!
本文轉自 wei0164 51CTO部落格,原文連結:http://blog.51cto.com/tanxw/1362910,如需轉載請自行聯系原作者