如何理解Linux版本控制

sha*_*007 6 linux version

我需要了解 Linux 版本控制系统和分发概念。版本的公共、稳定或最终条款是什么?

gol*_*cks 7

内核版本控制独立于发行版版本控制,除非发行版包含自己的补丁。这通过在版本上附加一个额外的标识符来表示,例如:

3.16.6-203
Run Code Online (Sandbox Code Playgroud)

3.16.6是 vanilla(未修改)内核的版本,-203由发行版附加以指示其修改的相关版本。

您没有必要深入了解这一点,只要 Linux 内核是一个独立的实体即可。发行版将它与用户空间软件相结合,并且(在大多数情况下)所有东西都经过预编译以在特定的计算机架构上协同工作(当今最常见的是 X86-64;一些发行版称之为 AMD64——它们指的是完全相同的东西)。

大多数基本的用户空间软件实际上来自GNU,一个与 Linux 内核不同的组织,因此操作系统的正确通用名称通常被认为是“GNU/Linux”

软件捆绑在由发行版管理的存储库中。当您安装软件时,它来自默认存储库(例如“稳定”),但是您可以将系统配置为使用不同的存储库(例如“测试”)来默认访问不同版本的单个事物。您也可以指定一个版本,如果它不在默认存储库中,安装程序将检查其他版本的列表。

发行版在版本控制方面有两种不同的类型。虽然个别软件总是在更新,但大多数发行版偶尔也会整体升级,例如,从 Ubuntu 12.x 到 Ubuntu 13.x。这使他们能够进行彻底的改变,否则可能很难做到。然而,一些发行版使用滚动发布模型,其中没有不同的版本,只有一个不断更新的版本。

总而言之,版本控制的概念可能适用于:

  • Linux内核,一个独立的软件。
  • 发行版,通常有昵称(例如 Ubuntu 14.10:“Utopic Unicorn”,或 Fedora 20:“Heisenbug”)。
  • 发行版中单个软件包的版本,通常分为不同的存储库。与内核一样,它们具有独立的源代码,分发包程序可能对其稍作修改。
  • 编译包的“目标架构”(例如 X86-64)。这些也可以分成回购。

完整包版本字符串的示例,它结合了以下几项内容:

foobar-4.11.3-4.fc20.x86_64
Run Code Online (Sandbox Code Playgroud)

这是针对 Fedora .rpm 但其他发行版使用类似的方案。Foobar是包名,4.11.3是所用源-4的版本,表示 Fedora 应用的补丁f20版本, 是编译此包的发行版版本, 是编译x86_64的架构。