在 Linux 机器上创建自解压 zip 存档

2023-11-23

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

背景:当用户从我的 Linux 盒子下载安装包时,我需要使用某个密钥预先填充该安装包。我只在运行时知道该键;我的想法是使用该密钥编写一个简单的 .xml 文件,然后将带有该 xml 文件的 .msi 安装程序压缩到自解压存档中,并将该文件发送到浏览器。如果您对如何实现这一目标有其他想法,我也很想听听


您的答案可以在以下页面找到:http://ubuntuforums.org/showthread.php?t=847329请注意,除了使用谷歌并找到听起来合乎逻辑的东西之外,我不会将任何功劳归功于我。我不保证这些信息有效,也不保证您能够再在线找到上述材料。我只是谷歌的粉丝。我希望这有帮助。

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

注意:免费软件 ZIP 程序,例如 Wine下的IZArc可以用来创建 还有一个 Win32 自解压 ZIP 文件。 这不会被涵盖在这个范围内 怎么样,抱歉。

我在谷歌上搜索发现的“研究” 此论坛帖子日期为 2003 年 8 月。 阅读它我发现 自解压 ZIP 文件没什么 更多但合适的解压二进制文件 接下来是一个普通的 ZIP 文件。我用了 Info-ZIP 中包含的 unzipsfx.exe 解压缩 5.52。

该帖子上的链接有效了一些 几天前我就拿到了 我正在寻找的 unzipsfx.exe。 今天,2008 年 7 月 2 日,我找到了链接 死的。经过一番谷歌搜索后我没有 在任何地方找到工作链接。我读 许可证几次并了解 我可以重新分发原始版本 unzipsfx.exe 包含许可证。

请注意, unzipsfx-552_win32.tar.gz (80 kB) 是 不是官方的 Info-ZIP 包并且 它包括受版权保护的软件 我不相信任何功劳。更多信息在 还包含 Info-ZIP 许可证 在压缩包中。源代码为 可以找到包含的二进制文件 这里。

解决方案

第一步,获取 unzipsfx.exe 并 压缩包: * 打开终端(在 Ubuntu 中按 alt+f2 并输入 gnome-terminal) * 输入以下命令代码:

wget http://kolmoskone.homelinux.org/~kaja/kamaa/unzipsfx-552_win32.tar.gztar zxf unzipsfx-552_win32.tar.gz sudo apt-get 安装 zip

第二步,创建一个ZIP文件 乌班图: * 打开文件管理器(nautilus)并选择您想要的文件 拉上拉链 * 右键单击​​并选择创建存档(或类似)。选择一个 ZIP 文件的位置,使用您的 主目录是最简单的。选择 输入 .zip。请参阅 man zip 以获取信息 关于如何在命令中创建 ZIP 文件 线。

第三步,制作ZIP文件 自解压 * 输入以下命令代码:

猫 unzipsfx-552_win32/unzipsfx.exe MYZIPFILE.zip > mysfxfile.exe zip -A mysfxfile.exe

mysfxfile.exe 现在可以在任何 Win32 兼容系统(包括 例如 Windows XP/2000/Vista 甚至 Linux 中的 Wine)或任何兼容的 ZIP 归档程序,例如 file-roller 乌班图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Linux 机器上创建自解压 zip 存档 的相关文章

  • CMake:使用其他平台的生成器。如何?

    如何使用 CMake 在 Linux 上生成 Visual Studio 项目文件 你不能 您必须在 Windows 上运行 CMake 才能为 Visual Studio 生成
  • 尝试加载自定义配置时,Visual Studio 安装和部署项目中出现 FileNotFoundException

    我试图在我的设置和部署项目中调用自定义操作来更新我的应用程序上的 app config 中的某些项目 我已经以通常的方式完成了自定义配置部分 例如 ConfigurationProperty serviceProvider IsRequir
  • WiX - 提交多个属性以推迟自定义操作

    我的 WiX 安装程序在处理延迟 立即自定义操作时遇到问题 请原谅我的英语 我想将用户输入的一些属性交给延迟的自定义操作 我知道我需要立即自定义操作和 CustomActionData 来执行此操作 我就是这样实现的 二进制
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f
  • mod_perl 无法看到 /tmp 中的文件

    我有一些 mod perl 代码试图访问 tmp 下的文件 但它抛出 没有这样的文件或目录 错误 我在代码中添加了一个 ls al tmp 来查看 Perl 在目录中看到的内容 它只给了我 和 drwxrwxrwt 2 root root
  • 如何从powershell获取主机名?

    我如何获得hostname https stackoverflow com q 42014215 262852 for dur来自 powershell PS home thufir powershell gt PS home thufir
  • 我如何知道 std::map 插入成功还是失败?

    我在多线程应用程序中有一个映射 将名为 uuid 的类映射到指针 我想知道插入操作是否成功或失败 e g mymap insert hint MyMap value type entry uuid itemptr 如果失败的话会抛出异常或者
  • 我可以告诉 Linux 不要交换特定进程的内存吗?

    有没有办法告诉 Linux 它不应该将特定进程的内存交换到磁盘 它是一个 Java 应用程序 所以理想情况下我希望有一种方法可以从命令行执行此操作 我知道您可以将全局交换性设置为 0 但这明智吗 您可以通过以下方式执行此操作姆洛克尔 2 h
  • 打破条件变量死锁

    我遇到这样的情况 线程 1 正在等待条件变量 A 该变量应该由线程 2 唤醒 现在线程 2 正在等待条件变量 B 该变量应该由线程 1 唤醒 在我使用的场景中条件变量 我无法避免这样的死锁情况 我检测到循环 死锁 并终止死锁参与者的线程之一
  • Git - 致命:无法获取当前工作目录?

    When I git clone从回购协议中 我得到 fatal Could not get current working directory No such file or directory 我该怎么办 我检查了服务器并发现 git文
  • 检查上次更改密码的时间[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • Pthread互斥锁由不同线程解锁

    一个天真的问题 我之前读到过 MUTEX 只能由锁定它的线程解锁 但我写了一个程序THREAD1锁定 mutexVar 并进入睡眠状态 然后THREAD2可以直接解锁mutexVar做一些操作并返回 gt 我知道每个人都说我为什么要这样做
  • 在 Windows 下使用 linux 实用程序的最佳方法是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 实用程序 如 sed awk 和其他 shell 脚本功能 非常棒 但当我在 Windows 上进行开发并且无法使用其中任何一
  • 如何在 QT 安装程序框架中区分每用户安装与系统范围安装?

    我正在使用一些名为 pgModeler 的应用程序 它的当前版本提供了一个基于 QT 安装程序框架的安装程序 Windows 上该安装程序的问题是它安装每个用户的开始菜单条目 https github com pgmodeler pgmod
  • 导出多个 LD_LIBRARY_PATH 的正确方法

    对于linux的使用 我是一个新手 根据有关我的项目的指南 我必须多次导出 LD LIBRARY PATH 并且我不确定是否不覆盖它们 Cupti Tensorflow CUDAit export LD LIBRARY PATH LD LI
  • Docker容器内的动态监听端口

    我有一个应用程序 在使用其默认端口建立一些连接后 开始打开 侦听 新的随机端口来处理现有连接 然后删除它们 视频通话 它还在通信协议内交换其IP地址和端口 我能够解决IP地址问题 但仍然无法找到一种方法来动态告诉主机的IPTABLES在Do
  • 分割 tar.bz2 文件并单独提取每个文件

    我可以将一个大的 tar bz2 文件分割成几个较小的文件并在 Ubuntu 中单独提取这些小 tar bz2 文件吗 Thanks 我认为这不容易实现 A tar bz2是单个流 它没有像这样的索引zip这将允许跳到存档中特定文件的开头
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 未找到 DEADLINE 调度策略

    我想在 C 中实现 DEADLINE 调度策略 我知道该功能已实现Linux 3 14 10我正在使用 Ubuntu 14 04Linux 3 17 0 031700 lowlatency 201410060605 SMP PREEMPT这
  • Centos/Linux 将 logrotate 设置为所有日志的最大文件大小

    我们使用 logrotate 并且它每天运行 现在我们遇到了一些情况 日志显着增长 阅读 gigabaytes 并杀死我们的服务器 所以现在我们想为日志设置最大文件大小 我可以将其添加到 logrotate conf 中吗 size 50M

随机推荐