Создание самораспаковывающегося zip-архива в Linux.
-
03-07-2019 - |
Вопрос
Из-за ряда ограничений, в которые я не буду вдаваться, мне необходимо создать самораспаковывающийся ZIP-архив на Linux-сервере.Полученный архив должен быть исполняемым только в Windows.Это вообще возможно?Если да, то какие инструменты справятся с этой задачей?
Фон:когда пользователь загружает установочный пакет из моего Linux-компьютера, мне нужно, чтобы этот установочный пакет был предварительно заполнен определенным ключом.Я знаю этот ключ только во время выполнения;Моя идея заключалась в том, чтобы написать простой XML-файл с этим ключом, затем заархивировать установщик .msi с этим XML-файлом в самораспаковывающийся архив и отправить этот файл в браузер.Если у вас есть альтернативные идеи о том, как это осуществить, я тоже буду рад их услышать.
Решение
Ваш ответ можно найти на следующей странице: http://ubuntuforums.org/showthread.php?t=847329 Обратите внимание, что я не беру на себя ответственность ни за что, кроме использования Google и поиска чего-то, что логически звучит так, будто это работает.Я не гарантирую, что эта информация сработает или что вы сможете больше найти упомянутые материалы в Интернете.Я просто фанат Google.Надеюсь, это поможет.
Проблема Пару дней назад мне пришлось создать Win32 совместимый самораспаковывающийся ZIP-файл для друга.Звучит просто, да.Проблема была что у меня не было машины Windows Meme it рядом, и я не хотел устанавливать Meme it любые программы архивирования под Wine.
ПРИМЕЧАНИЕ:Бесплатная программа ZIP, такая как IZArc под Wine можно использовать для создания Win32 самораспаковывающийся ZIP файл.Это не будет охватываться этим хауто, извините.
"Исследования" Гуглил вокруг, что я нашел этот пост на форуме от августа 2003 года.Читая его, я узнал, что самораспаковывающиеся ZIP-файлы ничто больше, чем подходящий распаковать двоичный файл за которым следует обычный ZIP-файл.Я использовал unzipsfx.exe включен в Info-ZIP Скачать UnZip 5.52.
Ссылка на этот пост работала несколько дней назад, так что я получил мои руки на Meme it unzipsfx.exe, который я искал.Сегодня, 2 июля 2008 Я нашел ссылку мертва.После того, как я погуглил, я не найти рабочую ссылку в любом месте.Я читаю лицензию несколько раз и понял что я могу перераспределить оригинал Meme it unzipsfx.exe с включенной лицензией.
Обратите внимание, что unzipsfx-552_win32.tar.gz (80 кБ) не официальный пакет Info-ZIP и включает в себя защищенное авторским правом программное обеспечение, Я не беру на себя никаких заслуг.Больше информации в Info-ZIP лицензия, которая также включена в тарболе.Исходный код для включенные двоичные файлы можно найти здесь.
Решение
Шаг первый, получение пакета unzipsfx.exe и Zip:* Откройте терминал (в Ubuntu нажмите Alt+F2 и введите гном-концевой) * Введите в следующих командах код:
wget http://kolmoskone.homelinux.org/~kaja/kamaa/unzipsfx-552_win32.tar.gztar zxf unzipsfx-552_win32.tar.gz sudo apt-get установить zip Zip
Шаг второй, создание ZIP-файла в Ubuntu:* откройте файловый менеджер (nautilus) и выберите файлы, которые вы хотите иметь zipped * щелкните правой кнопкой мыши и выберите Создать архив (или аналогичный).Выбрать расположение 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 СОВМЕСТИМЫЙ архивировать программу, такую как file-roller в Убунту.
Другие советы
Я смог сделать эту работу с помощью unzipsfx. Доступна более новая версия - только что вышла в апреле 2009 года - версия 6.0. Версия 5.52 не поддерживала необходимую мне критическую функциональность - запуск определенного установочного файла после завершения извлечения. Р>
Итак, я скачал исходные файлы для 6.0. Затем я изменил их, чтобы исключить запрос на запуск материала. проверьте, что там по умолчанию. Я перекомпилировал с использованием Visual Studio 2008, попробовал шаги, описанные в учебном руководстве выше, и теперь все работает как чудо. Р>