我想制作一个包来执行一些命令。
我考虑的第一个选择是创建一个postinst
文件。
但似乎这样就会被执行后该包已安装,因此如果该脚本失败,则包将被安装但处于损坏状态!
第二种选择是使用Makefile
,但这似乎是在包的构建过程中执行的,而不是在安装期间执行的。
最后一个选项是使用install
文件,但在这种情况下我似乎需要为几个命令创建一个单独的脚本文件,将它们复制到某个路径,然后让该脚本执行postinst
。
还有其他选择吗?
答案1
是的,您可以用来
postinst
运行一次性(设置/配置)脚本。只是,不要使用
set -e
或直接禁用错误退出set +e
。还可以使用条件指令(如,,...)捕获和处理
if
错误||
。此后,您仍然可以使用其他运行时工具制作并向用户提供相同的安装脚本。如果安装失败并被跳过。最终用户可以随时重新运行它或尝试调试它。类似于
locatedb
(或updatedb
在某些系统中)来自的东西locate
,它由 APT 运行,也可供用户使用。
只需让脚本向用户报告错误消息,这样他们就知道发生了什么以及下一步该做什么。