linux 軟體安裝用編譯還是用rpm?

編譯安裝的好處除了自選模塊/路徑,還有什麼?

處理依賴關係麻煩,升級麻煩,批量管理更是麻煩。


提問不太嚴謹,rpm 包也是可以自己寫 spec,編譯、打包的。

生產環境中,都是需要使用包管理,打二進位包分發的,不大可能每台伺服器都自己編譯。

至於是使用官方源的包,還是自己維護的源的包,這個就看需要了。

自己編譯程序而不接入包管理,在生產環境這樣做是比較髒的,自己私下玩玩那就隨意了。


編譯的好處還是你可以自己根據硬體和需求調整相應參數,比如編譯內核和資料庫,nginx等


1.看場景,自己玩選rpm省事,生產環境編譯

2.看規模,規模小隨便選,規模大的生產環境優先選擇編譯然後打包,再通過RPM等報管理器來安裝

3.看用途,基礎依賴果斷rpm,應用程序優先選擇自行編譯

4.看並發量,並發高性能有要求選擇自行編譯,並發低性能要求低rpm

選rpm是為了方便,效率,基礎依賴,選編譯是為了性能,為了自主調整。


1、各發行版Linux有不同軟體管理方式,見下圖。

而我的提問中顯然rpm只能針對redhat系列。

2、李寒 提出可自行製作rpm包,於是我自己製作了。

參考一堂課玩轉rpm包的製作-wjlkoorey258-ChinaUnix博客

3、自製rpm包特點

其實rpm包製作過程中也跟源碼編譯安裝一樣,也是需要configure的。故,可以自定義配置參數(當然,使用rpm -ivh --prefix=xxx也能指定安裝路徑)。至於依賴關係也是要在spec 文件中的Requires 指定。在spec文件中,可以把安裝前,安裝後,卸載後,各個階段要做的都指定。例如,安裝完nginx後,添加/etc/init.d/nginx 啟動文件,nginx 目錄許可權等等,卸載nginx後保留nginx的配置文件等。

------------------------------------------------------------------------------------------------------------------

使用rpmbuild 製作rpm包需要編寫spec文件,可以採用另一種更加智能的方式fpm ,以後再補充。

2015-07-24 自己提問,經過一些學習慣,(上面是2015-09-06自己總結回答,2015-12-16才發布,且沒有寫完整)


看你自己怎麼選擇咯,你開心就好


自己編譯可以針對硬體進行優化,然而利用包管理直接安裝還有好多方式


推薦閱讀:

docker並不是萬能的
伺服器購置,電費,帶寬費之間什麼比例?
運維工程師需要具備哪些性格特質?

TAG:Linux | 運維 | Linux軟體 | 運維自動化 |