9.1.pkg-message (安装二进制包时显示的消息文件)

关于 pkg-* 文件,还有一些我们还没有提到的小技巧,有时会很有用。

9.1.pkg-message (安装二进制包时显示的消息文件)

要在软件包安装时显示一条信息,请将信息放在 pkg-message 中。这一功能对于显示在 pkg installpkg upgrade 后需要采取的额外安装步骤通常很有用。

重要

  • pkg-message 必须只包含对于在 FreeBSD 上的安装和操作至关重要的信息, 并且是相关 port 所特有的。

  • 设置信息只应在初始安装时显示。升级说明应该只在从相关版本升级时显示。

  • 不要在信息的周围加上空白或一行行的符号 (像 ----------, , 或 ==========)。让 pkg(8) 来处理这些格式问题。

  • 提交人已获得全面使用 UCL 格式规范来约束现有消息的安装或升级范围的批准,。

pkg-message 支持两种格式:

raw

一个普通的纯文本文件。它的信息只在安装时显示。

UCL

如果文件以 [ 开头,那么它被认为是一个 UCL 文件。UCL 格式在 libucl 的 GitHub 页面上有描述。

注意

请不要在 pkg-plist 中 添加一个 pkg-message 条目。

9.1.1. pkg-message 中的 UCL

其格式如下。它应该是一个对象的数组。这些对象本身可以有这些关键字。

message

要显示的实际信息。这个关键字是强制性的。

type

消息应该何时显示。

maximum_version

仅当 typeupgrade 时。如果从严格低于指定版本的版本升级时显示。

minimum_version

只有当 typeupgrade 时。如果从一个严格大于指定版本的版本升级,则显示。

maximum_versionminimum_version 这两个关键字可以合并使用。

type 关键字可以有三个值。

install

该信息应该只在软件包安装时显示。

remove

该信息只应在软件包被移除时显示。

upgrade

该信息只应在升级软件包时显示。

重要

为了保持与非 UCL pkg-message 文件的兼容性,UCL pkg-message 的第一行 必须 是一个 [,而最后一行 必须 是一个 ]

例1. UCL 短字符串

消息以双引号 " 为界,这用于简单的单行字符串:

[
{ type: install
  message: "Simple message"
}
]

例2. UCL 多行字符串

多行字符串使用标准的 here 文档表示法。 多行分隔符必须从 << 符号之后开始,没有任何空白,而且必须由大写字母组成。要完成一个多行字符串,需要在自己的一行中加入定界符字符串,不能有任何空白。UCL 短字符串的信息可以写成:

[
{ type: install
  message: <<EOM
Simple message
EOM
}
]

例3. 在安装/卸载时显示一个消息

当只需要在安装或卸载时显示一个信息时,请设置类型:

[
{
  type: remove
  message: "package being removed."
}
{ type: install, message: "package being installed."}
]

例4. 升级时显示消息

当一个 port 被升级时, 所显示的消息可以更加符合这个 port 的需要。

[
{
  type: upgrade
  message: "Package is being upgraded."
}
{
  type: upgrade
  maximum_version: "1.0"
  message: "Upgrading from before 1.0 need to do this."
}
{
  type: upgrade
  minimum_version: "1.0"
  message: "Upgrading from after 1.0 should do that."
}
{
  type: upgrade
  maximum_version: "3.0"
  minimum_version: "1.0"
  message: "Upgrading from > 1.0 and < 3.0 remove that file."
}
]

当显示升级信息时,限制它何时显示给用户是很重要的。大多数时候,它是通过使用 maximum_version 来限制它的使用,当需要做一些特定的事情时,从某一版本之前的升级。

最后更新于

FreeBSD 中文社区