上篇博客我們講解了網絡yum源和光盤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包由於安裝位置的不同造成后面啟動相關服務的方法的區別。腳本安裝包其實就是人為的修改源碼包,使其成為一個自動安裝的腳本,安裝過程簡單。那么軟件包的介紹就結束了,下篇博客我們將學習用戶管理。