Linux原始碼包和指令碼安裝包的安裝方法
上篇文章我們講解了網路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 為例,下載地址://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 檔案,可以知道啟動命令:
啟動發現報如下錯誤:這是 80 埠被佔用了。因為我們用 yum 安裝過rpm包的httpd,這裡停掉 rpm包的httpd就好了。
3、原始碼包解除安裝
原始碼包不需要額外的解除安裝命令,直接刪除安裝目錄即可,不會有任何的垃圾檔案遺留。
這裡就可以看出為啥Linux系統執行很長的時間都比較穩定,而windows系統執行一段時間就會比較卡。這是因為Linux系統安裝的軟體解除安裝乾淨,而windows怎麼解除安裝都會存在一定的垃圾檔案。
4、指令碼安裝包
這裡首先要給大家說明,Linux系統從本質上講只有rpm包和原始碼包,是沒有指令碼安裝包的。這裡說指令碼安裝包,其實根本上就是原始碼包。上面剛剛講了原始碼包的安裝方法,發現還是比較麻煩的。為了簡化原始碼包的安裝,人為的修改原始碼包,使其變成自動安裝的指令碼,我們只需要執行指令碼定義簡單的引數就能完成安裝。具體解釋如下:
①、指令碼安裝包並不是獨立的軟體包型別,基本上都是原始碼包。
②、指令碼安裝包是人為的把安裝過程寫成了自動安裝的指令碼,只要執行指令碼,定義簡單的引數,就可以完成安裝。
③、指令碼安裝包類似於windows下軟體的安裝方式。
這裡以 Webim 的安裝為例來介紹如何安裝指令碼安裝包:
Webim 是一個基於 Web 的Linux 系統管理介面,安裝完成之後,就可以通過圖形化的方式來設定使用者賬戶、DNS、檔案共享等服務。
第一步:下載 Webim 指令碼安裝包
下載地址://sourceforge.net/projects/webadmin/files/webmin
第二步:將下載的檔案通過工具複製到Linux系統中,並解壓
第三步:進入到解壓之後的目錄,並執行裡面的指令碼安裝檔案 ./setup.sh
安裝完成之後,我們輸入 虛擬機器的ip地址:20000,進入到 Webim 操作介面
5、總結
本篇文章我們介紹了原始碼包和指令碼安裝包的安裝方法。原始碼包和前面講的RPM包安裝相比是比較麻煩的,而且重點介紹了原始碼包和rpm包由於安裝位置的不同造成後面啟動相關服務的方法的區別。指令碼安裝包其實就是人為的修改原始碼包,使其成為一個自動安裝的指令碼,安裝過程簡單。那麼軟體包的介紹就結束了,下篇文章我們將學習使用者管理,如何在Linux系統中建立使用者,切換使用者,刪除修改使用者等等。