天天看點

Nginx源碼安裝和yum安裝對比

觀點一

根做運維的朋友聊天,談到了,yum安裝和源碼安裝哪個好的問題。真沒想到,關于這個問題,分歧還挺大的。有的人認為,不用源碼安裝就不是好的運維,不是好的系統管理者。這帽子扣的有點大了。在此我想說一說我的看法,經常看我部落格的,也許知道,前期我寫關于伺服器的文章,基本上都是源碼安裝的,後來基本上是用yum安裝的,除非yum源裡面沒有,我才會源碼安裝。在我看來,yum安裝和源碼安裝,基本上沒差別,最終還是生成系統所需求的檔案,有什麼差別呢?

一,yum安裝和源碼安裝,方式的不同

1,yum安裝是将yum源中的rpm包下載下傳到本地,安裝這個rpm包。這個rpm包是别人編譯安裝好的二進制包。這種方式與其說是安裝不如說是,更新來的更确切一點。

2,源碼安裝,下載下傳是源碼包,要進行編譯和安裝,編譯過程,可以進行參數設定。

二,yum安裝和源碼安裝,優缺點分析

1,yum安裝的優缺點

yum安裝的優點,做運維的都很清楚,安裝東西,友善快捷,特别是不用考慮包依賴。

yum安裝的缺點,安裝過程,人為無法幹預,不能按需,安裝。源裡面有什麼就安裝什麼,安裝的版本也比較低。

2,源碼安裝的優缺點

源碼安裝的優點,編譯安裝過程,可以設定參數,按照需求,進行安裝,并且安裝的版本,可以自己選擇,靈活性比較大。

源碼安裝的缺點,由于安裝包過新或者是其他問題,導緻依賴的包沒有,或者版本過低。這個時候就要解決包的依賴問題,linux系統中有的包,一個依賴一個,可能裝一個小東西,就要解決一堆包的依賴問題,花很多時間解決包的依賴問題,得不嘗失。源碼安裝的多了,不敢更新系統,更新系統,可能會導緻以前手動裝的東西,不能用。

很多做運維的,都認為,源碼安裝比yum安裝的性能要好,根據參數選擇安裝,肯定比yum裝了一大堆要好。這樣認為的運維,我隻能說,他不懂配置。根本不了解自已裝的東西。在我看來,同一版yum安裝和源碼安裝完全是一樣的。

以apache以例吧,這個東西,非常常見的,用做web最廣泛的工具之一,源碼安裝,./configure時候,可以添加很多參數,來實作訂制。yum安裝也可以,yum安裝裝了很多,apache的子產品,有的子產品根本用不到,無故浪費系統資源和影響性能。但是我們可以配置httpd.conf啊,不需求的子產品,我們可以不LoadModule啊,通過修改配置檔案,完全可以實作根源碼安裝一樣的效果。不排除少數軟體,安裝後,不能配置情況,也就是說安裝的時候是多少東西,就是多少東西,沒有配置檔案可以配置。

我覺得,對于剛接觸linux的人來說,源碼安裝很有必要,這樣你可以知道自己在做什麼,安裝過程中,肯定會遇到很多很多的問題,遇到問題,解決問題。這樣才會成長。不要一直都用yum裝,如果yum安裝出了一點問題,就傻眼了,不知道怎麼解決,這樣很杯具。

觀點二  

  1) YUM二進制方式,部署配置非常的簡單,基于YUM工具可以線上直接部署安裝,可以自動解決軟體包之間依賴的問題,但是YUM不能自定義軟體的子產品和功能,不能自定義軟體部署的路徑,對後期的維護成本會增加;

 2)  MAKE源碼方式,部署配置非常的複雜,不能自動解決軟體包之間的依賴關系,但是基于源碼編譯方式可以自定義功能和子產品,而且可以自定義部署的路徑,統一的管理,減輕後期的維護工作量;

3) 生産環境中,yum和源碼安裝的差別根本不是性能和yum庫裡面版本過低的問題。大部分生産環境要求伺服器的環境配置要一緻,因為後期會不定時增減機器、開關新服,環境不一緻出問題排查成本過高,想想看,一兩百台伺服器沒什麼,如果是一兩千台伺服器呢?幾萬伺服器呢?監控維護成本太高。并且,對自動化運維來說,統一環境如果需要更新某個程式版本,一個腳本幾條指令的事。如果是yum安裝,機房和機房之間,國家和國家之間,yum的庫不能保持一緻,會很蛋疼。

大型的軟體包、軟體服務,采用源碼編譯

小型的軟體環境,庫檔案,YUM

觀點三

1、YUM安裝可以看成是線上安裝的一種方式,隻需要yum install 軟體名,系統就自動根據yum源配置檔案中的鏡像位置去下載下傳安裝包了,并可以自動分析所需的軟體依賴關系,自動安裝所需的依賴軟體包。此方式适合初學者,簡單友善,不用考慮依賴關系。但有些軟體并不能通過yum來安裝。