由于一些我不会涉及的限制,我必须在 linux 机器上创建一个自解压 ZIP 存档。生成的存档应该只能在 Windows 上执行。这是可能吗?如果是这样,什么工具可以完成这项工作?
背景:当用户从我的 linux 机器上下载安装包时,我需要用某个键预先填充该安装包。我只在运行时知道那个键;我的想法是使用该密钥编写一个简单的 .xml 文件,然后将带有该 xml 文件的 .msi 安装程序压缩到一个自解压存档中,然后将该文件发送到浏览器。如果您对如何实现它有其他想法,我也很想听听
由于一些我不会涉及的限制,我必须在 linux 机器上创建一个自解压 ZIP 存档。生成的存档应该只能在 Windows 上执行。这是可能吗?如果是这样,什么工具可以完成这项工作?
背景:当用户从我的 linux 机器上下载安装包时,我需要用某个键预先填充该安装包。我只在运行时知道那个键;我的想法是使用该密钥编写一个简单的 .xml 文件,然后将带有该 xml 文件的 .msi 安装程序压缩到一个自解压存档中,然后将该文件发送到浏览器。如果您对如何实现它有其他想法,我也很想听听
您可以在以下页面找到您的答案:http ://ubuntuforums.org/showthread.php?t=847329 请注意,除了使用 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 (80 kB) 不是官方的 Info-ZIP 包,它包含受版权保护的软件,我不相信它。Info-ZIP 许可证中的更多信息也包含在 tarball 中。包含的二进制文件的源代码可以在这里找到。
解决方案
第一步,获取 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
mysfxfile.exe 现在可以在任何 Win32 兼容系统(包括例如 Windows XP/2000/Vista 甚至 Linux 中的 Wine)或任何 ZIP 兼容存档程序(如 Ubuntu 中的 file-roller)中打开。
我能够使用 unzipsfx 完成这项工作。它有一个更新的版本——2009 年 4 月刚刚发布——6.0 版。5.52 版不支持我需要的关键功能 - 提取完成后启动特定的设置文件。
所以我下载了6.0的源文件。然后我修改它们以排除默认情况下存在的“提示启动内容”检查。我使用 Visual Studio 2008 重新编译,尝试了上面教程中描述的步骤,现在一切都像魅力一样。