【发布时间】:2020-10-06 10:04:07
【问题描述】:
我正在创建一个 Debian 软件包,我有 3 个名为 /backup /usr 和 /var 的主目录。我想解压 /backup 文件夹,然后在解压其余文件夹(/usr 和 /var)之后对里面的内容做一些事情。我在备份文件夹中有一些文本文件,其中包含我需要在 Debian 软件包解包并覆盖所述目录中的文件之前在 /usr 和 /var 目录中备份的文件信息。
【问题讨论】:
-
不确定我是否理解。 “解包”阶段是覆盖文件(来自 .deb)。 BTW
/backup是一个可怕的目录选择 [使用 /var/lib/yourpackage/backup)。我认为您应该以标准方式使用 .deb,或者您应该更多地研究它是如何工作的。在这种情况下,我认为您需要一个preinst脚本来备份文件。目录的创建通常较早完成。 -
感谢您的回复。无论备份目录位于何处,我面临的问题是在复制目录之前 preinst 触发。我需要在 preinst 之前存在备份文件夹及其内容。之后,应创建/安装其余目录及其内容
-
您需要备份的内容吗?或者只是创建正确的目录?如果不在 /usr 中安装东西,而是在 /var/lib 中安装东西,然后 postisnt 会在你想要的时候覆盖文件 [但我觉得它很难看,因为现在你没有跟踪哪些文件属于哪个包]。我很难理解你在做什么[所以重新定义]。而不是备份,你应该有原始包,来恢复文件[通常的方式]
-
让我解释一下,我们开发自己的内部软件。该软件安装在 /usr/local/x/y/z 和 /var/www/html/x/y/z 中。我在我们的 git 服务器上运行管道来编译新的/修改的文件。然后,我们使用这些文件创建一个 debian 包,以修补/更新到新版本。我们读取管道中已更新和修改的文件并将其写入文本文件。该文本文件位于包的备份目录中。我想阅读该文本文件,以便在替换新文件之前备份旧文件。希望这更有意义。
-
对于可执行文件我看到了一些问题:用户如何选择要安装的补丁?第一次安装?您应该在补丁之前强制主程序。对于二进制部分,我只会分发一个包含所有二进制文件的软件包(我们 [Debian] 更改软件包的版本,就在我们更改维护者时(所以只是元数据)。磁盘,网络很便宜。[/usr/local 用于 sys管理员(本地更改)。/opt 对外部包可能更好]。对于 html 我不知道,但第一点(如何更新,选择)让我明白了。但也许 .deb 不是最好的方法部署。