在Python中实现deb preinst,postint等脚本是否切实可行

Ros*_*nko 8 python debian packaging deb

当我将deb用于deb包流控制脚本(preinst,postinst等)时,我对陷阱可能是什么(目标系统中没有安装Python)感兴趣.用Python实现这些脚本是否切实可行?

据我所知,这至少是可能的.

the*_*aul 7

这并不常见,据我所知,唯一的原因是,这不是惯例,和Python通常不是比那维护者脚本做各种各样的事情简单的shell脚本更加有用或直白.当它更有用时,您通常可以将需要Python的功能分解为维护者脚本调用的单独Python脚本.

在这种情况下,它可以帮助遵循惯例,因为有很多有用的工具和脚本(例如,Lintian,Debhelper),它们通常假设维护者脚本使用bash.如果他们不这样做,那没关系,但这些工具可能没有其他方面那么有用.我认为您需要注意的唯一其他问题是,如果您的preinstpostrm脚本需要Python,那么Python需要是Pre-Depends您的包的预依赖项(),而不仅仅是一个Depends.

也就是说,我发现之前在维护者脚本中使用Python很有用.

  • 这确实提出了另一个有效的问题; 如果您针对特定的Python版本,您将无法支持所有当前流行的基于Debian的操作系统.例如,最早的Ubuntu LTS版本(8.04)仅支持Python 2.5,而Ubuntu 10.04仅支持Python 2.6,而Ubuntu 12.04仅支持Python 2.7.但是,如果你可以编写兼容的Python(不是那么难),你应该没问题. (4认同)