FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD Port 开发者手册翻译项目
  • 编辑日志
  • 译者说明
  • FreeBSD Port 开发者手册
    • FreeBSD Port 开发者手册
  • 第1章 简介
    • 1.1.简介
  • 第2章 制作新的 port
    • 2.1.制作新的 port
  • 第3章 简单的 port
    • 3.1.编写 Makefile
    • 3.2.编写描述文件
    • 3.3.创建校验和文件
    • 3.4.测试 port
    • 3.5.用 portlint 来检查 port
    • 3.6.提交新的 port
  • 第4章 复杂的 Port
    • 4.1 Port 工作原理
    • 4.2.获取源代码
    • 4.3.修改 port
    • 4.4.打补丁
    • 4.5.配置
    • 4.6.处理用户输入
  • 第5章 配置 Makefile
    • 5.1.原始来源
    • 5.2.命名
    • 5.3.归类
    • 5.4.源代码包文件
    • 5.5.维护者(MAINTAINER)
    • 5.6.一句话说明(COMMENT)
    • 5.7.项目网站
    • 5.8.许可证
    • 5.9.PORTSCOUT
    • 5.10.依赖
    • 5.11.从属 port 和 MASTERDIR
    • 5.12.man 手册
    • 5.13.info 文件
    • 5.14.Makefile 参数
    • 5.15.特殊的工作目录
    • 5.16.解决冲突
    • 5.17.安装文件
    • 5.18. 使用 BINARY_ALIAS 来重命名命令,而不是在编译中打补丁
  • 第6章 特殊情况
    • 第6章 特殊情况
  • 第7章 Flavors
    • 7.1.Flavors 简介
    • 7.2.使用 FLAVORS
    • 7.3.USES=php 和 Flavors
    • 7.4.USES=python 和 Flavors
    • 7.5.USES=lua 和 Flavors
  • 第8章 高级 pkg-plist 实践
    • 8.1.根据 make 变量对 pkg-plist 进行修改
    • 8.2.空目录
    • 8.3.配置文件
    • 8.4.动态与静态软件包列表
    • 8.5.自动创建软件包列表
    • 8.6.用关键词扩展软件包列表
  • 第9章 pkg-*
    • 9.1.pkg-message(安装二进制包时显示的消息文件)
    • 9.2.pkg-install、pkg-pre-install 和 pkg-post-install(安装二进制包时执行的脚本文件)
    • 9.3.pkg-deinstall、pkg-pre-deinstall 和 pkg-post-deinstall(卸载时执行的脚本文件)
    • 9.4.修改 pkg-* 文件的名字
    • 9.5.使用 SUB_FILES 和 SUB_LIST
  • 第10章 测试 port
    • 10.1.运行 make describe
    • 10.2.运行 make test
    • 10.3.Portclippy / Portfmt
    • 10.4.Portlint
    • 10.5.Port 工具
    • 10.6.PREFIX 和 DESTDIR
    • 10.7.Poudriere
    • 10.8.调试 port
  • 第11章 升级 port
    • 11.1.使用 Git 制作补丁
    • 11.2.UPDATING 和 MOVED
  • 第12章 安全
    • 12.1.安全为何如此重要
    • 12.2.修复安全漏洞
    • 12.3.向社区通报情况
  • 第13章 该做什么和不该做什么
    • 第13章 该做什么和不该做什么
  • 第14章 一个简单的 port
    • 第14章 一个简单的 port
  • 第15章 在 Port Makefile 中变量的顺序
    • 第15章 在 Port Makefile 中变量的顺序
  • 第16章 保持更新
    • 第16章 保持更新
  • 第17章 使用 USES 宏
    • 第17章 使用 USES 宏
  • 第18章 __FreeBSD_version 的值
    • 第18章 __FreeBSD_version 的值
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
在GitHub上编辑
导出为 PDF
  1. 第9章 pkg-*

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

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

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

在安装软件包时显示消息,请将消息放在 pkg-message 中。这种功能通常用于显示安装后需要执行的额外步骤 pkg install 或 pkg upgrade 。

* pkg-message 必须仅包含对 FreeBSD 设置和操作至关重要且特定于相关port的信息。* 设置信息应仅在初始安装时显示。升级说明应仅在从相关版本升级时显示。* 不要用空格或符号行(如 ---------- , 或 ========== )包围消息。将格式留给 pkg(8)。* 提交者可以使用 UCL 格式规范来限制现有消息的安装或升级范围。* 请确保参考适当的工具来处理服务。 使用 service name start 来启动服务,而不是使用 /usr/local/etc/rc.d/name start * 使用 sysrc name_enable=YES 在 rc.conf 中更改选项

pkg-message 支持两种格式:

原始

一个常规的纯文本文件。它的消息只在安装时显示。

UCL

如果文件以“[”开头,则被视为 UCL 文件。UCL 格式在 libucl 的 GitHub 页面上有描述。

9.1.1. pkg-message 中的 UCL

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

message

要显示的实际消息。此关键字是强制性的。

type

消息应该何时显示。

maximum_version

仅当 type 为 upgrade 时。如果从严格低于指定版本升级,则显示。

minimum_version

只有当 type 是 upgrade 时。如果从严格大于指定版本升级,则显示。

可以组合使用 maximum_version 和 minimum_version 关键字。

type 关键字可以有三个值:

install

只有在软件包安装时才显示消息。

remove

只有在卸载软件包时才显示消息。

upgrade

只有在升级软件包时才显示消息。

示例 1. UCL 短字符串

消息由双引号 " 分隔,用于简单的单行字符串:

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

Example 2. UCL Multiline Strings

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

Example 3. Display a Message on Install/Deinstall

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

[
{
  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 来限制其使用,以便在需要执行特定操作时将其升级到特定版本之前的升级中显示。

上一页8.6.用关键词扩展软件包列表下一页9.2.pkg-install、pkg-pre-install 和 pkg-post-install(安装二进制包时执行的脚本文件)

最后更新于10个月前

Multiline strings use the standard here document notation. The multiline delimiter must start just after << symbols without any whitespace and it must consist of capital letters only. To finish a multiline string, add the delimiter string on a line of its own without any whitespace. The message from can be written as:

UCL Short Strings