Linux系列教程(十三)——Linux軟體包管理之源碼包、腳本安裝包
上篇部落格我們講解了網絡yum源和CD光牒yum源的搭建步驟,然後詳細介紹了相關的yum指令,yum 最重要是解決了軟體包依賴性問題。在安裝軟體時,我們使用yum指令将會簡單友善很多。我們知道yum指令隻能安裝rpm包,如果是源碼包呢?我們又該如何安裝,那麼這篇部落格我們主要介紹如何安裝源碼包。
1、源碼包和RPM包的差別
在 Linux軟體包管理之RPM指令 這篇部落格中我們從概念上介紹了源碼包和rpm包的差別。
源碼包開源,如果有足夠的能力,可以直接修改源代碼。安裝時可以自由選擇所需的功能。軟體是編譯安裝,是以更加适合自己的系統,更加穩定也效率更高。解除安裝友善,直接删了你安裝軟體的那個目錄就好了。但是安裝步驟較多,尤其安裝較大的軟體集合時,容易出現拼寫錯誤。編譯時間過長,比後面講的二進制安裝時間長。因為是編譯安裝,安裝過程中一旦報錯新手很難解決。
rpm包包管理系統簡單,隻通過幾個指令就可以實作包的安裝、更新、查詢和解除安裝。安裝速度比源碼包快很多。但是由于源碼已經經過編譯了,看不到源代碼。功能選擇不如源代碼包靈活。安裝過程中有很多依賴的包,依賴性不好解決。
這裡由于安裝位置的不同,安裝之後會帶來一些很明顯的差別。
RPM包和源碼包預設安裝位置:
RPM包預設安裝位置:

rpm包也能手工更改安裝位置,但是更改位置之後會造成一些影響,下面我們會詳細講解。
源碼包安裝位置:
/usr/local/軟體名/
由于安裝位置不同帶來的影響
①、rpm包安裝的服務可以使用系統服務管理指令(service)來管理。
比如 rpm 包安裝的apache 的啟動方法是:
①、/etc/rc.d/init.d/httpd start
②、service httpd start
第二種指令是第一種指令的簡化形式。這是紅帽專有指令。service 會去 rpm 包預設的安裝位置去找可執行檔案,是以service類似的啟動服務管理指令隻能管理rpm安裝包。如果更改了rpm包的預設安裝位置,可能造成通過service啟動服務失敗。
Linux要啟動一個執行檔案,都應該是用絕對路徑來啟動,後面講的配置好環境變量之後能直接通過檔案名來啟動,其實原理也是通過環境變量找到的絕對路徑。而 /etc/rc.d/init.d/ 目錄是所有rpm包安裝的服務執行檔案存放目錄。
提示:綠色的都是可執行檔案。
②、源碼包啟動服務
由于源碼包沒有安裝到指定的路徑中,是以源碼包安裝的服務不能被類似service服務管理指令管理,這裡就隻能通過絕對路徑的形式來啟動了。
/usr/local/apache2/bin/apachectl start
2、源碼包安裝
①、安裝準備
一、首先在Linux系統安裝gcc編譯器
二、下載下傳源碼包
我們以 httpd 為例,下載下傳位址:http://mirror.bit.edu.cn/apache/httpd/
②、安裝注意事項
一、源代碼建議儲存位置:/usr/local/src
二、軟體安裝位置:/usr/local
三、如何确定安裝過程報錯:安裝過程停止,并出現error、warning或no的提示。注意源碼包安裝過程一旦報錯是很難解決的,需要我們去修改源碼。是以從正規網站上下載下傳别人驗證過的源碼包,一般是不會報錯的。
③、安裝源碼包
我們将下載下傳好的源碼包通過工具(在 Linux學習技巧 中有介紹)複制到Linux系統中,然後解壓,最後進入到解壓目錄,因為後面很多指令都需要在解壓之後的目錄中操作。
這裡我們可以檢視INSTALL 檔案,檢視安裝說明:
第一步:軟體配置與檢查 ./configure
①、定義需要的功能選項。
②、檢測系統是否符合安裝要求。
③、把定義好的功能選項和檢測系統環境的資訊都寫入Makefile 檔案,用于後續的編輯
./configure --prefix=/usr/local/apache2
通過 -- prefix 定義源碼包安裝位置,後面的apache2(由于我們通過yum已經安裝了apache,是以這裡命名為apache2)可以任意命名。
執行完成如果沒有出現報錯資訊,則準備工作完成。
第二步:執行編譯 make ,将源碼包編譯為機器碼
這一步安裝的時長取決于源碼包的大小以及機器的性能。如果安裝出錯,可以執行 make clean,清空産生的所有臨時檔案。
注意:這一步執行完成之後并不會在 /usr/local 下生成 apache2目錄。但是在httpd源碼包解壓目錄生成了Makefile 檔案
第三步:執行 make install ,編譯安裝
第四步:安裝完成之後,啟動該服務
我們通過檢視源碼包解壓之後的目錄 INSTALL 檔案,可以知道啟動指令:
/usr/local/apache2/bin/apachectl start
啟動發現報如下錯誤:這是 80 端口被占用了。因為我們用 yum 安裝過rpm包的httpd,這裡停掉 rpm包的httpd就好了。
3、源碼包解除安裝
源碼包不需要額外的解除安裝指令,直接删除安裝目錄即可,不會有任何的垃圾檔案遺留。
這裡就可以看出為啥Linux系統運作很長的時間都比較穩定,而windows系統運作一段時間就會比較卡。這是因為Linux系統安裝的軟體解除安裝幹淨,而windows怎麼解除安裝都會存在一定的垃圾檔案。
4、腳本安裝包
這裡首先要給大家說明,Linux系統從本質上講隻有rpm包和源碼包,是沒有腳本安裝包的。這裡說腳本安裝包,其實根本上就是源碼包。上面剛剛講了源碼包的安裝方法,發現還是比較麻煩的。為了簡化源碼包的安裝,人為的修改源碼包,使其變成自動安裝的腳本,我們隻需要執行腳本定義簡單的參數就能完成安裝。具體解釋如下:
①、腳本安裝包并不是獨立的軟體包類型,基本上都是源碼包。
②、腳本安裝包是人為的把安裝過程寫成了自動安裝的腳本,隻要執行腳本,定義簡單的參數,就可以完成安裝。
③、腳本安裝包類似于windows下軟體的安裝方式。
這裡以 Webim 的安裝為例來介紹如何安裝腳本安裝包:
Webim 是一個基于 Web 的Linux 系統管理界面,安裝完成之後,就可以通過圖形化的方式來設定使用者賬戶、DNS、檔案共享等服務。
第一步:下載下傳 Webim 腳本安裝包
下載下傳位址:http://sourceforge.net/projects/webadmin/files/webmin
第二步:将下載下傳的檔案通過工具複制到Linux系統中,并解壓
第三步:進入到解壓之後的目錄,并執行裡面的腳本安裝檔案 ./setup.sh
出現如下界面安裝成功:
安裝完成之後,我們輸入 虛拟機的ip位址:20000,後面的端口号20000根據你安裝實際情況來,進入到 Webim 操作界面
5、總結
本篇部落格我們介紹了源碼包和腳本安裝包的安裝方法。源碼包和前面講的RPM包安裝相比是比較麻煩的,而且重點介紹了源碼包和rpm包由于安裝位置的不同造成後面啟動相關服務的方法的差別。腳本安裝包其實就是人為的修改源碼包,使其成為一個自動安裝的腳本,安裝過程簡單。那麼軟體包的介紹就結束了,下篇部落格我們将學習使用者管理。
作者:IT可樂
出處:http://www.cnblogs.com/ysocean/
資源:微信搜【IT可樂】關注我,回複 【電子書】有我特别篩選的免費電子書。
本文版權歸作者所有,歡迎轉載,但未經作者同意不能轉載,否則保留追究法律責任的權利。