簡介
在使用Linux的時候,安裝軟體一般有幾種:系統包管理器安裝、原始碼編譯、二進位制包,還有現在桌面系統用比較多的Snap、AppImage、Flatpak等。
升級由於軟體會存在一些漏洞,需要定期進行更新,這時候使用,不同方式的安裝的軟體升級就不一樣了。
系統包管理器安裝,直接使用包管理工具進行升級即可例如在CentOS上可以直接使用yum update nginx進行升級,這時候所有的依賴關係也會跟著升級。
優點:
操作簡單,直接一條命令就可以升級穩定,系統自帶的包一般都是經過驗證才會進行釋出的,相對比較穩定缺點:
版本不好控制,一般會自動升級到最新版本升級會導致依賴包跟著被升級,有可能出現異常。原始碼安裝的,編譯新版本到新的路徑原始碼編譯安裝的時候,一般都可以指定一個安裝路徑,例如:./configure --prefix=/opt/nginx-1.18,先編譯到新的路徑去,然後再進行服務切換
優點:
版本好控制,可以根據自己需要的版本進行編譯安裝快速回退,有問題,可以直接指回到舊的目錄就可以完成回退缺點:
編譯需要比較長的時間安裝後的穩定性需要自己進行驗證需要自己解決依賴關係包二進位制包安裝的,解壓到新的路徑二進位制包直接加好執行位就可以直接執行了,系統包管理器的安裝包也都是二進位制,只是安裝系統的規範,將檔案放到對應的目錄。
二進位制包安裝的,例如jdk就可以直接使用編譯過的tar包進行部署,只要解壓完就可以直接執行。
優點:
快速部署,單獨打包的二進位制包一般比較少依賴系統包,解壓後直接可以執行缺點:
需要官方有提供二進位制包只能支援指定的發行版本AppImageAppImage將整個軟體打包成AppImage檔案包,一個包包含了所有的功能. 並且幾乎可以在所有的linux發行版本中使用。
優點:
快速部署,直接加上執行位就可以執行可以在多個發行版本中執行缺點:
需要官方有提供,或者自己有能力打包。打包出來的檔案還是比較大的。(不過還可以結果,很適合桌面的Linux)Snap 、FlatpakSnap 和Flatpak都是為了統一Linux上包的格式,讓一個軟體可以執行在各種 Linux發行版和作業系統上。
優點:
快速部署,都有自己的應用市場,可以直接搜尋安裝可以在多個發行版本中執行缺點:
發展比較晚,還有很多需要完善總結一般我是比較建議生產環境自己編譯,或者下載官方的二進位制包進行部署,這樣子升級或者回退的時候不會相互影響。
儘量不要使用系統的元件,部署服務!
剛碰到的坑!開發使用系統自帶的Python,手動安裝第三方包,然後去跑服務;結果系統升級,把python相關依賴包升級了,導致服務異常了。
最新評論