在Linux系统上创建自解压缩zip归档文件

9
由于一些限制,我需要在Linux上创建一个自解压缩ZIP归档文件。生成的存档文件应仅在Windows上可执行。这有可能吗?如果可以,有哪些工具可以完成此任务?
背景:当用户从我的Linux框下载安装程序包时,我需要将该安装程序包预先填充某个特定密钥。我只能在运行时知道该密钥;我的想法是编写一个带有该密钥的简单.xml文件,然后将.msi安装程序与该xml文件压缩到自解压缩归档文件中,并将该文件发送给浏览器。如果您有其他想法,请也分享给我听。

你需要明确指出存档应该在哪个特定平台上可执行。 - bignose
添加了澄清 - 仅限Windows。 - Alex Weinstein
2个回答

10

您可以在以下页面找到答案:http://ubuntuforums.org/showthread.php?t=847329 请注意,我只是使用Google并找到了一些听起来合理的东西,除此之外我不会承认任何其他功劳。我不能保证这些信息有效,或者您能否在网上找到所提到的材料。我只是Google的粉丝。希望这能有所帮助。

问题几天前我需要为朋友创建一个Win32兼容的自解压缩ZIP文件。听起来很容易,对吧。问题是我附近没有Windows机器,也不想在Wine下安装任何归档程序。
注意:也可以在Wine下使用诸如IZArc之类的免费ZIP程序来创建Win32自解压缩ZIP文件。这将不会在本操作指南中涉及,抱歉。
“研究”通过谷歌搜索,我发现了这篇日期为2003年8月的论坛帖子。阅读后,我发现自解压缩ZIP文件只是适当的解压缩二进制文件,后跟普通的ZIP文件。我使用了Info-ZIP UnZip 5.52中包含的unzipsfx.exe。
那篇文章上的链接几天前还有效,所以我找到了我要找的unzipsfx.exe。今天,即2008年7月2日,我发现链接已经失效。经过一些谷歌搜索,我没有在任何地方找到有效的链接。我多次阅读了许可证,并理解我可以在包含许可证的情况下重新分发原始的unzipsfx.exe。
请注意,unzipsfx-552_win32.tar.gz(80KB)不是官方的Info-ZIP软件包,它包含了我不为之赞颂的受版权保护的软件。tarball中也包含了Info-ZIP许可证的更多信息。所包含二进制文件的源代码可以在此处找到。
解决方案
第一步,获取unzipsfx.exe和zip包:
打开终端(在Ubuntu中按alt+f2并键入gnome-terminal)
键入以下命令: ``` wget http://kolmoskone.homelinux.org/~kaja/kamaa/unzipsfx-552_win32.tar.gz tar zxf unzipsfx-552_win32.tar.gz sudo apt-get install zip ```
第二步,在Ubuntu中创建ZIP文件:
打开文件管理器(nautilus)并选择要压缩的文件
右键单击并选择创建档案(或类似选项)。选择ZIP文件的位置,使用您的主目录是最简单的。选择类型.zip。有关如何在命令行中创建ZIP文件的信息,请参见man zip。
第三步,使ZIP文件自解压缩:
键入以下命令: ``` cat unzipsfx-552_win32/unzipsfx.exe MYZIPFILE.zip > mysfxfile.exe zip -A mysfxfile.exe ```
现在可以在任何Win32兼容系统中打开mysfxfile.exe(包括例如Windows XP / 2000 / Vista甚至是Linux中的Wine),或在Ubuntu中的任何ZIP兼容存档程序(例如file-roller)。

1

我能够使用unzipsfx使其工作。现在有一个更新的版本可用 - 刚刚在2009年4月发布了6.0版本。5.52版本不支持我需要的关键功能 - 在提取完成后启动特定的安装文件。

因此,我下载了6.0的源文件。然后我修改了它们,以排除默认情况下存在的“提示启动内容”的检查。我使用Visual Studio 2008重新编译,尝试上面描述的步骤,现在一切都像魔法般地运行。


如果你找到了答案,能否请你标记为正确?此外,从答案链接到软件页面会很有帮助。 - bignose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接