Создание самораспаковывающегося zip-архива в окне linux

из-за ряда ограничений, которые я не буду вдаваться, мне нужно создать самораспаковывающийся zip архив на Linux. Полученный архив должен быть исполняемым только в Windows. Это вообще возможно? Если да, то какие инструменты будут выполнять эту работу?

фон: когда пользователь загружает пакет установки из моего окна linux, мне нужно, чтобы этот пакет установки был предварительно заполнен определенным ключом. Я знаю только этот ключ во время выполнения; моя идея состояла в том, чтобы написать простой .XML-файл с этим ключом, затем на молнии .установщик msi с этим xml-файлом в самораспаковывающийся архив и отправляет этот файл в браузер. Если у вас есть альтернативные идеи о том, как это сделать, я бы тоже хотел их услышать

3 ответов


ваш ответ можно найти на следующей странице:http://ubuntuforums.org/showthread.php?t=847329 Обратите внимание, что я не беру кредит ни за что, кроме использования Google и найти что-то, что звучит логически, как это будет работать. Я не гарантирую, что эта информация будет работать, или что вы сможете найти упомянутые материалы в интернете больше. Я просто фанат Google. Надеюсь, это поможет.

проблема несколько дней назад у меня были к создание Win32-совместимого самораспаковывающийся ZIP-файл для друга. Звучит просто, верно. Проблема была что у меня не было машины Windows рядом, и я не хотел устанавливать любые архивные программы под Wine.

Примечание: бесплатная ZIP-программа, такая как IZArc под вино можно использовать для создания самораспаковывающийся ZIP-файл Win32. Это не будет покрыто этим методические указания, к сожалению.

"исследование" Googling вокруг я нашел этот пост на форуме от Августа 2003 года. Прочитав его, я понял, что самораспаковывающиеся ZIP-файлы-ничто больше, но подходящий распаковать двоичный файл затем следует обычный ZIP-файл. Я в unzipsfx.exe включено в Info-ZIP Разархивируйте 5.52.

ссылка на этот пост работала несколько несколько дней назад я положил руки на ... unzipsfx.exe, который я искал. Сегодня, 2 июля 2008 года я нашел ссылку мертвый. После некоторых погуглив, я не найти рабочую ссылку где угодно. Я читал лицензия несколько раз и понятно что я могу распространять исходный unzipsfx.exe с включенной лицензией.

обратите внимание, что unzipsfx-552_win32.смола.gz (80 kB) является не официальный пакет Info-ZIP и он включает защищенное авторским правом программное обеспечение, которое Я не ставлю себе в заслугу. Подробнее в 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.смола.ГЗ судо apt-get install zip

Шаг второй, создание ZIP-файла в Убунту: * откройте файловый менеджер (Наутилус) и выберите файлы, которые вы хотите иметь промелькнувший * щелкните правой кнопкой мыши и выберите Создайте архив (или аналогичный). Выберите расположение ZIP-файла, используя домашний каталог самый простой. Выбирать тип.застежка-молния. См. Man zip для получения информации о том, как создать ZIP-файл в команде линия.

Шаг третий, создание ZIP-файла самораскрывающийся * введите следующий код команды:

cat unzipsfx-552_win32 / unzipsfx.исполняемый MYZIPFILE.zip > mysfxfile.exe zip-A mysfxfile.exe

mysfxfile.exe теперь можно открыть в любом Win32 совместимая система (в том числе для пример Windows XP / 2000 / Vista и даже Вино в Linux) или любой ZIP-совместимый архивируйте программу как файл-ролик внутри Ubuntu.


Я смог сделать эту работу с unzipsfx. Доступна более новая версия - только что вышла в апреле 2009 года-версия 6.0. Версия 5.52 не поддерживает критическую функциональность, которая мне нужна - запуск определенного установочного файла после завершения извлечения.

поэтому я загрузил исходные файлы для 6.0. Затем я изменил их, чтобы исключить проверку" приглашение к запуску", которая существует по умолчанию. Я перекомпилировал с помощью Visual Studio 2008, попробовал описанные шаги в учебнике выше, и все это работает как шарм сейчас.


существует несколько способов заставить самораспаковывающиеся архивы работать в Linux. Эта статья (http://www.linux.org/threads/self-extracting-archives.7028/) объясняет различные типы и способы создания самораспаковывающихся архивов.