Deb打包-自动删除过时的文件并取消在preinst脚本上安装

时间:2019-04-24 07:28:53

标签: packaging deb

我最近开始学习deb包装。我必须打包一些python应用程序才能更轻松地进行维护/升级。在您将我重定向到维护指南和有关包装的类似巨大手册之前,我想说的是,此应用绝不会进入任何官方/非官方的存储库。它将始终与DPKG(而非APT)一起安装/升级-主机始终处于离线状态。因此,我不必严格遵守包装规则,因此也不必以非常复杂的方式进行操作。

到目前为止,我发现最容易的起点是本教程...

https://www.leaseweb.com/labs/2013/06/creating-custom-debian-packages/

我没有做任何模板工作,只是制作了一些简单的/myapp-1.0/home/bin/helloworld.py脚本以及/myapp-1.0/DEBIAN/control和/myapp-1.0/DEBIAN/postinst脚本,它们只是复制了一些file.conf到正确的位置。一切都按预期进行。我当然知道这种方式是不正确的,我应该使用debhelper之类的方法。我的应用程序在存储库中,因此我将必须将其复制到适当的文件夹结构中。这就是为什么我开始以这种方式做事的原因...

https://github.com/phusion/debian-packaging-for-the-modern-developer/tree/master/tutorial-2

...而且我更接近我想要实现的目标,但仍有两件事困扰着我...

  1. 我的应用程序将安装在离线环境中。应用程序所需的所有依赖项都必须已经安装在主机上。我想添加主机版本并将其与debian软件包相关联,因此首先安装/升级myapp.deb将检查主机版本是否足够新以进行安装。如何(正确)实现?我有两个想法:
    • 将主机版本放入/etc/somefile.txt并在DEBIAN / preinst中读取并决定是否继续安装(甚至可以在preinst中进行安装)
    • 制作一些非常简单的虚拟hostversion.deb程序包,并在myapp.deb中添加依赖度
  2. 更新期间过时的文件会发生什么?可以说我有一些文件的1.0版本。现在,我正在进行重大更改,并在1.1版中删除了其中的许多内容。我将执行升级时会发生什么?我不想在/ postinst中删除它们或构建一些要删除的文件/目录列表,因为在我看来这似乎效率很低。有什么有效的方法可以删除最新版本中不存在的文件?

0 个答案:

没有答案