Debian
Debian Linux 核心版本控制
在 Debian Stretch 發行版上,如果我執行
uname -a
,我會獲得:Linux index 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux
如果我執行
dpkg -s linux-image-amd64 | grep Version
,我會獲得:Version: 4.9+80+deb9u6
上述命令列印了三個不同的核心版本:
- 4.9.0-8
- 4.9.144-3.1
- 4.9 + 80 + deb9u6
我的問題是:這些不同的版本是什麼,它們的含義是什麼?
“80+deb9u6”是源碼包的
linux-latest
版本;這會建構為每個平台提取目前核心包的元包,例如linux-image-amd64
您擁有的,並使用基本核心版本進行版本控制,從而產生 4.9+80+deb9u6。“4.9.0-8”是核心的ABI版本;它出現在特定核心的包名中,例如
linux-image-4.9.0-8-amd64
. 版本代表核心系列的基數,並且每次核心 ABI 以不兼容的方式更改時都會增加一個數字 - 就使用者而言,每當需要重新編譯樹外模組時。“4.9.144-3.1”是核心的包版本。這遵循標準的 Debian 版本控制方案:4.9.144 是上游核心版本,您可以匹配上游核心版本,3.1 是打包的版本。給定上游版本的第一個包,通常給定打包的版本1,然後每次上傳新包(不改變對應的上游),打包版本遞增。您可以在Debian 特定的更改日誌中查看每個版本中更改的詳細資訊。
所有這些結合起來提供了許多對最終使用者有用的功能:
- 使用者可以安裝特定於體系結構的元包,例如
linux-image-amd64
,並確保他們始終擁有最新的可用核心包 - 目前元包是 4.9+80+deb9u6 版本,它會引入 ,linux-image-4.9.0-8-...
並且當核心版本或 ABI版本更改,將上傳一個新的元包;- 不會以向後不兼容的方式更改核心 ABI 的新上游核心(或 Debian 更新檔)不會導致不必要的包流失或本地重建(對於樹外模組);
- 需要它們的核心 ABI 更改將導致模組重建,因此已安裝的模組始終可用並可安裝到正在執行的核心中(除非出現錯誤)。