gpt4 book ai didi

虚拟机镜像的二进制差异和补丁实用程序

转载 作者:行者123 更新时间:2023-12-03 23:46:53 24 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我需要经常发布一些软件,该软件包含在VMWare磁盘文件中,即.vmdk文件。
我想要的是某种二进制差异和补丁实用程序,以使生成的增量尽可能小。

最佳答案

让我从久经考验的方法开始,然后指出一些最近的方法。

我见过的处理二进制文件的方法

很久以前,人们将二进制文件的新旧版本扩展为临时“文本”文件(每个字节扩展为 3 个字节:2 个十六进制数字和一个换行符)。
然后通过旧版本的“diff”(绝对无法处理二进制文件)运行这两个“文本”文件以制作补丁文件。
然后我们通过尚未达到 8 位清洁的通信线路传输该“文本”补丁文件。
在接收端,将旧的二进制文件扩展为临时文本版本,然后修补旧文本文件,然后将新文本文件压缩回二进制文件(将每对十六进制数字压缩为一个字节,然后丢弃换行符和任何可能进入的回车)。

最近,我一直在使用 rsync (或一些建立在它之上的实用程序,例如 Unison)。
它可以很好地处理任意二进制文件。
我通常会进行实时更新,Unison 在我的本地机器上运行,rsync 在文件服务器上运行,相互交流。

无论补丁文件如何生成,您都可以使用任何数据压缩实用程序来压缩该文件。

据我所知,应该使用二进制文件的方法

StackOverflow: "how to crate a PATCH file for the binary difference output file"
建议使用 bsdiff .

另一个 StackOverflow question暗示“vimdiff”似乎可以充分处理任意字节。

StackOverflow: "Useful Binary Diff Tool"提到了其他一些二进制差异工具。

我听说一些基于 rsync 的工具——“rdiff”和“rdiff-backup”和“duplicity”——允许你创建补丁文件。
然后,收到该补丁文件的人可以使用它来将旧的二进制文件更新为新的二进制文件。

Wikipedia claims标准“diff”和“patch”实用程序的最新版本支持二进制文件。
你试过吗?

可执行文件压缩前沿研究

如果您对在更新可执行文件时使 delta 文件尽可能小的前沿研究感兴趣,您将需要查看
"How Courgette works"
作者:Stephen Adams 2009 年在 Chromium 项目。

除其他外,收到补丁的计算机“反汇编”旧应用程序,将所有绝对地址和偏移量转换为符号;然后修补反汇编的代码;然后将修补后的代码“重新组装”到应用程序的新版本中。

关于虚拟机镜像的二进制差异和补丁实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com