我对将 Python 用于 deb 包流控制脚本(preinst、postinst 等)时可能存在的缺陷(目标系统中未安装 Python 除外)感兴趣。在 Python 中而不是 sh 中实现这些脚本是否实用?
据我了解,这至少是可能的。
这不常见的唯一原因,afaik,是它不是惯例,对于维护者脚本所做的事情,Python 通常并不比普通的 shell 脚本更有用或更直接。当它更有用时,您通常可以将需要 Python 的功能分解为单独的 Python 脚本,由维护者脚本调用。
在这种情况下遵循惯例会有所帮助,因为有很多有用的工具和脚本(例如,Lintian、Debhelper)通常假定维护者脚本使用 bash。如果他们不这样做,那没关系,但这些工具可能不如其他工具有用。我认为您需要注意的唯一另一个问题是,如果您的preinst
或postrm
脚本需要 Python,那么 Python 需要成为您的包的预依赖项 ( Pre-Depends
) 而不仅仅是Depends
.
也就是说,我发现以前在维护者脚本中使用 Python 很有用。