9.1.pkg-message (安装二进制包时显示的消息文件)
关于 pkg-* 文件,还有一些我们还没有提到的小技巧,有时会很有用。
9.1.pkg-message (安装二进制包时显示的消息文件)
要在软件包安装时显示一条信息,请将信息放在 pkg-message 中。这一功能对于显示在 pkg install
或 pkg 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
仅当 type
为 upgrade
时。如果从严格低于指定版本的版本升级时显示。
minimum_version
只有当 type
是 upgrade
时。如果从一个严格大于指定版本的版本升级,则显示。
maximum_version
和 minimum_version
这两个关键字可以合并使用。
type
关键字可以有三个值。
install
该信息应该只在软件包安装时显示。
remove
该信息只应在软件包被移除时显示。
upgrade
该信息只应在升级软件包时显示。
重要
为了保持与非 UCL pkg-message 文件的兼容性,UCL pkg-message 的第一行 必须 是一个
[
,而最后一行 必须 是一个]
。
例1. UCL 短字符串
消息以双引号 "
为界,这用于简单的单行字符串:
例2. UCL 多行字符串
多行字符串使用标准的 here 文档表示法。 多行分隔符必须从 <<
符号之后开始,没有任何空白,而且必须由大写字母组成。要完成一个多行字符串,需要在自己的一行中加入定界符字符串,不能有任何空白。UCL 短字符串的信息可以写成:
例3. 在安装/卸载时显示一个消息
当只需要在安装或卸载时显示一个信息时,请设置类型:
例4. 升级时显示消息
当一个 port 被升级时, 所显示的消息可以更加符合这个 port 的需要。
当显示升级信息时,限制它何时显示给用户是很重要的。大多数时候,它是通过使用 maximum_version
来限制它的使用,当需要做一些特定的事情时,从某一版本之前的升级。
最后更新于