源碼就是用特定的語言來編寫的文本,比如我們常見的c語言。然而源碼的安裝要經過配置、編譯的一系列的復雜過程,那麼如此的麻煩為何還要來安裝源碼呢?其實這是為了讓我們的系統來使用更新的功能和更多的功能,另外還可以更加個性化我們的配置。就拿apache來說吧,紅帽官方提供給我們的是2.2的版本,但是最新的的版本已經到2.4了,所以有些時候我們需要安裝源碼。
下面我們來簡單說說關於源碼安裝的必備環境:
源碼需要編譯成可執行文件,而編譯則需要有相應的編譯環境。當我們的系統中安裝了Develepment Tools、Develepment Libraries、legacy software、和X soft Develepment這四個軟件組的話,我們的編譯環境就基本上具備了。
我們以軟件httpd-2.4為例為大家講解,下面開始源碼的安裝工作:
第一步:拆解httpd並放入指定的目錄/usr/local/src
切換到源碼被拆解的位置,進入該目錄下相應的httpd目錄,裡邊有些特征的文件,如configure(為生成makefile文件)、INSTALL或者README(指導我們安裝)。查看INSTALL文件,如下所示
第二步:生成makefile文件
但是我們不會那麼容易裝好的,安裝過程中我們會發現種種問題,下面我們一一來解決
(1)生成httpd的makefile文件
然後我們查看系統有沒有安裝apr
結果我們發現安裝了apr,這是怎麼回事呢?發生這種情況我們首先應該考慮到apr裡面缺少我們需要的庫,而這些庫往往放在devel裡面,那麼我們來安裝apr-devel軟件包。
(2)但是安裝完apr-devel後再進行第一步又出現下面錯誤
提示我們apr版本太低了,至少是1.4.0的才可以。那麼去網上找更高的版本,這裡需要注意的是我們要找適合我們系統平台的源碼才可以,如下圖所示,一般的都是i386、i586和i686的平台,但是如果你的是64位的就要選擇x86_64的。
開始安裝apr的源碼,我們要把apr和apr-util都安裝,util是工具,把這兩個軟件包分別進行拆解
此時我們在/usr/local/apr/apr1-1.4.6目錄下,然後執行make進行編譯
最後執行make install進行安裝
(3)安裝完畢後/usr/local/apr目錄下會生成下列文件
然而這些庫文件、頭文件若想要被他人所利用還需要做一些處理:
【頭文件的處理】進入系統能識別頭文件的目錄/usr/include,然後為apr的頭文件創建鏈接到所在目錄ln -s /usr/local/apr/include/apr-1/* .
【庫文件的處理】在/etc/ld.so.conf.d目錄下創建名為apr.conf的文件並進行編輯,輸入一個供系統查找庫文件的路徑/usr/local/apr/lib;保存退出後ldconfig重新加載緩存然後查看。如下圖所示,看到庫文件可以被找到
(4)至此apr已經被安裝好了,然後依據apr的安裝來進行apr-util的安裝,在生成makefile文件時又出現下面的錯誤,提示我們apr並沒有找到,讓我們加入一個--with-apr的選項
這裡需要注意的是在源碼安裝過程中我們要學會用查看指令的方式為我們解決問題,查看有關信息
到/usr/local/apr目錄下用tree命令顯示文件之間的關系,結果看見在bin目錄下有該文件
然後生成makefile文件,注意要加進文件目錄
然後make、安裝,因為util是個工具,所以沒必要管頭文件和庫文件,所以apr的問題到此就都解決了。
(5)然後再來進行第一步,但是又出問題了,提示我們缺少配置文件,需要我們指明apr的配置文件
再在第一步中加入apr配置文件的路徑
然而類似的問題又出現了,提示我們apr-util的配置文件沒找到,那麼我們再把 --with-apr-util=/uar/local/apr-util/ 加入上邊指令中又有些小問題出現,說pcre的庫找不到。
經過前面的配置我們可以猜想是因為pcre-devel的軟件包沒有安裝的緣故,那麼進行pcre-devel的安裝。
安裝完畢後再來進行httpd的makefile文件的生成,這次沒有再出現問題了。安裝的過程是辛苦的,不過不要灰心喲,努力和回報是相對的!
第三步:make進行編譯
第四步:make install進行安裝
第五步:根據前面對apr頭文件和庫文件的處理來對httpd的頭文件和庫文件進行處理
第六步:為apache服務准備配置文件
(1)首先切換到/etc/apache/bin目錄下,運行一個名為httpd的服務器程序,然後發現apache服務已啟動
(2)關閉服務,再為服務程序掛接配置文件,然後發現服務又啟動了
(3)但是我們想要做到像系統其它服務一樣,輸入start 服務就會啟動,而輸入stop服務就停止,那麼我們還需要為它准備一個控制腳本。到/etc/init.d目錄下,創建一個名為httpd的文件,因為它最後要成為可執行的腳本,所以用chmod a+x httpd為它增加可執行權限。然後進行編輯,如下圖所示
完成後進行啟動、關閉、顯示狀態和重啟的測試,發現都可以完成
 
(4)但是我們覺得還不夠,我們還想服務可以隨著電腦的啟動而啟動,我們還要做一些配置
我們查看一下/etc/init.d/acpid,該文件是該服務的控制腳本
我們要想使用chkconfig命令來控制服務的開啟,需要在我們httpd的控制腳本中加入上邊標記的兩行,如下圖所示
然後把httpd服務加入chkconfig的控制
查看了服務的狀態,看到正如腳本文件中添加的一樣,在3、4、5級別為on,之後我們就可以利用chkconfig命令來控制apache服務隨機啟動與關閉了
(5)檢查服務配置
在另外一台機器上用http://192.168.2.101來訪問該服務器,如下圖所示,測試表明配置成功了
(6)我們在配置linux服務器的時候經常會用到手冊,那麼我們apache的手冊可以用嗎?我們切換到/usr/local/apache/man/man1下,查看目錄並查看ab.1的手冊,如下圖所示
提示我們沒有手冊,但是我們明明有啊,這是怎麼回事呢?在linux下一切皆文件,我們還要在man的配置文件/etc/man.conf去加上該手冊的目錄以供查找,如下圖所示
然後再嘗試用手冊來查ab,結果如下圖所示
至此我們的源碼安裝就完成了,當然了,其它的源碼安裝都與此過程差不多,要做的就是以不變應萬變。
本文出自 “xiaoxiaozhou” 博客,請務必保留此出處http://xiaoxiaozhou.blog.51cto.com/4681537/1263172