在Linux机器上创build一个自解压zip压缩文件

由于一些我不会涉及的限制,我必须在Linux机器上创build一个自解压的ZIP压缩文件。 生成的压缩文件只能在Windows上执行。 这是可能吗? 如果是这样的话,什么工具可以完成这项工作

背景:当用户从我的Linux机器上下载一个安装包时,我需要安装程序包预先填充一个特定的密钥。 我只知道在运行时的密钥; 我的想法是用这个键编写一个简单的.xml文件,然后用.xml文件将.msi安装程序压缩到一个自解压的压缩文件中,然后将该文件发送到浏览器。 如果你对如何实现这个目标有另外的想法,我也很乐意听到

Solutions Collecting From Web of "在Linux机器上创build一个自解压zip压缩文件"

您的答案可以在以下页面找到 : http : //ubuntuforums.org/showthread.php?t=847329请注意,除了使用Google之外,我不记得任何其他的东西,并且发现在逻辑上听起来像是有用的东西。 我不能保证这些信息能够正常工作,或者您将能够在网上找到所提到的材料。 我只是Google的粉丝。 我希望这有帮助。

问题几天前,我不得不为朋友创建一个Win32兼容的自解压ZIP文件。 听起来很简单,对。 问题是我附近没有Windows机器,我不想在Wine下安装任何存档程序。

注意:一个免费的ZIP程序,例如Wine下的IZArc,也可以用来创建一个Win32自解压ZIP文件。 这不会被这个howto覆盖,抱歉。

“研究”谷歌搜索我发现这个论坛张贴日期为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

现在可以在任何与Win32兼容的系统(包括例如Windows XP / 2000 / Vista,甚至Wine在Linux中)中打开mysfxfile.exe,或者在Ubuntu中使用任何ZIP兼容的存档程序(例如文件滚轮)。

我能用unzipsfx做这个工作。 有一个更新的版本可用 – 刚刚在2009年4月出版 – 版本6.0。 版本5.52不支持我需要的关键功能 – 在提取完成后启动一个特定的设置文件。

所以我下载了6.0的源文件。 然后我修改它们,以排除默认情况下的“提示启动东西”检查。 我使用Visual Studio 2008进行了重新编译,尝试了上面教程中描述的步骤,现在它们都像魅力一样运行。

在Linux上有多种方式可以使自解压档案工作。 本文( http://www.linux.org/threads/self-extracting-archives.7028/ )介绍了自解压档案的各种类型和方法。