Проблема Несколько дней назад мне пришлось создать Win32-совместимый самораспаковывающийся ZIP-файл для друга. Звучит легко, да. Проблема заключалась в том, что у меня поблизости не было Windows-машины, а ставить какие-то программы-архиваторы под Wine не хотелось.
ПРИМЕЧАНИЕ. Для создания самораспаковывающегося ZIP-файла Win32 также можно использовать бесплатную ZIP-программу, такую как IZArc под Wine. Это не будет рассмотрено в данном руководстве, извините.
«Исследование» Погуглив, я нашел этот пост на форуме, датированный августом 2003 года. Прочитав его, я обнаружил, что самораспаковывающиеся ZIP-файлы представляют собой не что иное, как подходящий распаковываемый двоичный файл, за которым следует обычный ZIP-файл. Я использовал unzipsfx.exe, включенный в Info-ZIP UnZip 5.52.
Ссылка на этот пост работала несколько дней назад, поэтому я получил unzipsfx.exe, который искал. Сегодня, 2 июля 2008 г., я обнаружил, что ссылка мертва. Погуглив нигде не нашел рабочей ссылки. Я прочитал лицензию несколько раз и понял, что могу распространять оригинальный unzipsfx.exe с включенной лицензией.
Обратите внимание, что файл unzipsfx-552_win32.tar.gz (80 кБ) не является официальным пакетом 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.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-СОВМЕСТИМОЙ программе архивирования, такой как file-roller в Ubuntu.