安装 Web 服务器时的软件包选择

安装 Web 服务器时的软件包选择

在安装 Web 服务器时,我一直在思考一些严肃的问题……
“我真的需要那个包吗?”

我注意到,当您为 Web 服务器安装软件包时,
通常会有同一个软件包的两个“版本”。

例如,在安装 php7.4 时,可以安装php-mbstringphp7.4-mbstring
或者php-gdphp7.4-gd

所以我的问题是,如果我安装php7.4-mbstring,是否还需要安装php-mbstring
它是否对所有具有相同命名模式的包都起作用(php-dev=>php7.4-dev等)

答案1

通常,没有版本号的包将通过依赖项“指向”最新的包。

所以今天,您可以安装php-mbstring,它也会安装php7.4-mbstring。将来的某个时候,php7.5-mbstring将会出现,然后php-mbstring“指向” php7.5-mstring

因此如果您已经安装了php-mbstring,下次检查依赖项时它将解析为较新的版本。

如果您只安装了php7.4-mstring,那么您将无法获得较新的软件包。

答案2

Fedora 软件包命名指南 定义软件包名称并处理如您的示例中的情况。几乎所有 Linux 发行版都遵循此约定。

具有相同基本名称的多个包

出于多种原因,在 Fedora 中同时安装多个版本的软件包有时是有利的。这样做时,软件包名称必须反映这一事实。一个软件包应该使用基本名称(不带版本信息)。从它派生的所有其他软件包必须包含基本名称,并加上以下后缀:

  • 软件包版本应该包含原始版本中的句点。
    • 如果基本包名称以数字结尾,则必须在名称后附加一个下划线(“_”),并且必须在其后附加版本,以避免混淆名称的结束位置和版本的开始位置。
    • 如果基本包名称不以数字结尾,则版本必须直接附加到包名称中,中间不加分隔符。
  • 连字符(“-”)后跟描述性后缀(如“稳定”),它提供了有关打包版本的性质的一些指示。

例子

  • python-sqlalchemy 软件包在 Fedora 中有时会有多个版本,以实现向后兼容。python-sqlalchemy 的最新版本名为 python-sqlalchemy,较旧的受支持版本为 python-sqlalchemy0.5。在这种情况下不使用分隔符。
  • v8 软件包的最新版本名为v8。为了打包版本“3.13”,软件包必须命名为v8_3.13

因此,仅有名称的版本是基本版本,所有附加更多信息的软件包都是派生版本。

派生类型有很多种。最常见的一种是用于标记保留的旧版本,以便与旧软件兼容。但其他派生类型也是可能的,例如用于不同编程语言的附加工具或库。

相关内容