Создание самораспаковывающегося zip-архива на linux box - PullRequest
8 голосов
/ 04 мая 2009

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

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

Ответы [ 2 ]

8 голосов
/ 04 мая 2009

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

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

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

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

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

Обратите внимание, что unzipsfx-552_win32.tar.gz (80 кБ) не является официальным пакетом Info-ZIP и это включает защищенное авторским правом программное обеспечение, которое Я не беру кредит. Больше информации в Info-ZIP лицензия, которая также включена в тарболе. Исходный код для включенные двоичные файлы можно найти здесь.

Решение

Шаг первый, получение unzipsfx.exe и почтовый пакет: * откройте Терминал (в Ubuntu нажмите alt + f2 и введите gnome-терминал) * введите следующие команды Код:

Wget http://kolmoskone.homelinux.org/~kaja/kamaa/unzipsfx-552_win32.tar.gz tar zxf unzipsfx-552_win32.tar.gz sudo apt-get install zip

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

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

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

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

0 голосов
/ 05 мая 2009

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

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

...