![Debian 软件包是否经过系统要求验证?](https://linux22.com/image/1131984/Debian%20%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%98%AF%E5%90%A6%E7%BB%8F%E8%BF%87%E7%B3%BB%E7%BB%9F%E8%A6%81%E6%B1%82%E9%AA%8C%E8%AF%81%EF%BC%9F.png)
是否可以通过使用 debconf 创建一个软件包来验证运行该软件所需的最低系统要求?debconf 预安装配置脚本可以做到这一点吗?
谢谢
答案1
您可以在软件包安装过程中显示警告。但是,中止安装是一种馊主意- 您将使软件包系统处于损坏状态,并且直到用户删除您的软件包为止,每个软件包安装都将以尝试完成安装您的软件包而结束。那将是糟糕的用户体验。
您可以使用postinst
脚本来执行此操作 - 我建议postinst
您可能必须安装包作为依赖项来检测硬件等,并且包装政策指定在以下时间进行提示postinst
:
如果软件包有一条至关重要的信息需要传递给用户(例如“不要按原样运行,您必须先编辑以下配置文件,否则您的系统可能会发出格式错误的消息”),则应该在 config 或 postinst 脚本中显示此信息,并提示用户按回车键确认消息。版权信息不算作至关重要的信息(它们属于 /usr/share/doc/package/copyright);程序使用说明也不算作至关重要的信息(这些说明应该放在在线文档中,所有用户都可以看到它们)。
任何必要的提示几乎总是应该局限于配置或 postinst 脚本。如果在 postinst 中完成,则应使用条件进行保护,以便在软件包安装失败并且使用 abort-upgrade、abort-remove 或 abort-deconfigure 调用 postinst 时不会发生不必要的提示。
debconf
,一个db_input
命令优先处理high
或critical
显示警告。
最好为您的软件可执行文件编写一个包装脚本,检查要求并显示更明显的消息,并可能提供卸载软件包的选项。