如何不讓Ubuntu自動升級Kernal
預設情況下,在Ubuntu執行apt-get upgrade時,會讓Linux Kernel也跟著升級到最新版本,這種作法一般不會遇到什麼問題,而且幫你自動修補核心漏洞對資安管理來說也是好的。
但當使用的軟體對Linux Kernel版本有版本要求時,就會希望Kernel不要被自動升級。
要避免Kernel被自動升級的方法就是移除下列三個套件:
- linux-generic-lts-vivid
- linux-headers-generic-lts-vivid
- linux-image-generic-lts-vivid
套件名稱最後的vivid可能會依Ubuntu不同版本而異。
移除以後,apt-get upgrade就不會再自動升級Linux Kernel了。
解法就到這邊,想知道原理才需要繼續看一下去。
Ubuntu採用虛擬套件來實現Linux Kernel的自動升級,下圖線條代表套件之間的Depend關係。
linux-generic-lts-vivid相依於linux-headers-generic-lts-vivid和linux-image-generic-lts-vivid,而這兩個套件又相依於實體的Kernel image版本。
官方要釋出新版Kernele並讓User自動更新時,只要更新虛擬套件linux-image-generic-lts-vivid的版本編號,並且 Depend到新的Kernel image即可。當User在下次apt-get update時就會發現有新的linux-image-generic-lts-vivid ,而這新的虛擬套件其實後面掛的就是新版的Kernel image。
一旦把虛擬套件移除,沒有套件有相依到新的kernel image,系統自然就不會幫你安裝新的kernel iamge,往後要更新Kernel Image就只能手動安裝。