Как сделать самораспаковывающийся архив

Добавил пользователь Евгений Кузнецов
Обновлено: 10.09.2024

Нередко при работе над автоматической установкой приложений возникает необходимость создать бесключевой самораспаковывающийся архив (в дальнейшем я буду использовать "SFX", так короче). Как правило, SFX архивы позволяют значительно сэкономить место на CD. Например, если приложение не требует установки, то его можно поместить в $OEM$\Progs и оно будет автоматически скопировано в Program Files. Однако, аналогичной цели можно достичь запаковав приложение в SFX, который распакует содержимое в нужную папку.

Область применения SFX не ограничивается приложениями, не требующими установки. Можно без проблем упаковать приложение, запакованное одним из распространенных инсталляторов и сконфигурировать SFX таким образом, что после распаковки будет запущена установка приложения с нужными ключами. Еще одним преимуществом SFX архивов является то, что в некоторых случаях они дают возможность не просто автоматизировать, но и полностью скрыть процесс и прогресс инсталляции от конечного пользователя. Для примера рассматривается упаковка Adobe Reader 7.0. Несмотря на то, что с относительно недавних пор приложение можно устанавливать с соответствующими ключами без особых проблем, только SFX позволяет установить приложение абсолютно незаметно.

Подготовка к созданию SFX

Вне зависимости от того, что вы будете использовать для создания SFX, различий в подготовке не будет. Если вы просто хотите запаковать папку с файлами, то никакой подготовки не требуется. А вот приложения иногда приходится распаковывать. В случае с Adobe Reader 7 используется Install Shield с Basic MSI, причем все это еще и запаковано в некий FEAD Optimizer. Надо запустить исполняемый файл Adobe, дождаться пока FEAD Optimizer закончит распаковку и найти папку с файлом Adobe Reader 7.0.msi (она может быть в %ProgramFiles%\Adobe, например). Теперь нужно запустить файл setup.exe с ключом /a для создания административной установки. В появившемся диалоговом окне нужно указать папку, в которой по окончании будут находиться все нужные нам файлы. Теперь можно переименовать Adobe Reader 7.0.msi в, скажем, Adobe7.msi и приступать к упаковке в SFX архив. Мы рассмотрим создание SFX архивов при помощи

WinRAR

WinRAR - не нуждающийся в представлении архиватор. Он обладает широкими возможностями для создания бесключевых SFX. С его помощью можно создать незаметный (silent) инсталлятор, который распакует содержимое SFX в заданную папку, выполнит заранее указанную команду, а по окончании установки может удалить распакованные файлы. Помимо всего WinRAR умеет добавлять элементы в меню Пуск, помещать ярлыки на Рабочий стол, а также задавать архиву иконку по вашему выбору. Я рассмотрю только базовые возможности программы, а с остальными вы без труда разберетесь при помощи справки.

Итак, запустив архиватор, мы переходим в папку, в которой находится административная установка Adobe. Выделяем все файлы

WinRar Main

и жмем Добавить

WinRar Add

Именуем архив по желанию, отмечаем создание SFX и выбираем максимальный уровень сжатия. Теперь надо сконфигурировать параметры SFX. Для этого на вкладке Дополнительно жмем Параметры SFX.

На вкладке Общие указываем команду для распаковки

WinRar General

и переходим на вкладку Режимы:

WinRar Parameters

Здесь мы указываем распаковку во временную папку (что повлечет за собой автоматическое удаление распакованных файлов по окончании установки), скрытый режим и перезапись всех файлов.

Перейдя на вкладку Комментарий, мы видим все параметры, которые только что сконфигурировали через графический интерфейс. В принципе, можно было сразу перейти на эту вкладку и напечатать комментарий вручную или загрузить из заранее подготовленного текстового файла.

Примечание Поскольку мы запаковываем приложение, имеющее собственный инсталлятор, то распаковка во временную папку вполне оправдана (параметр TempMode). Если же вы просто хотите распаковать файлы в нужную вам папку, то на вкладке Общие нужно указать путь (можно использовать системные переменные), и соответственно, не использовать TempMode.

Вот и все. Теперь осталось нажать ОК пару раз и спустя некоторое время у нас будет SFX, который совершенно незаметно установит Acrobat Reader.

Преимущества: абсолютно незаметная (silent) установка, возможность распаковки файлов в заданную папку, возможность добавления элементов в меню Пуск и ярлыков на рабочий стол, выбор иконки для архива.
Недостатки: стоит $30.

7-Zip - бесплатный архиватор, распространяющийся по лицензии GNU LGPL. Если вы с ним не знакомы, то более подробную информацию вы найдете на сайте 7-Zip. С его помощью можно создавать бесключевые SFX, хотя процесс их создания несколько длиннее, чем у WinRAR.

Для начала нужно запаковать содержимое нашей папке в 7-Zip архив. Сделать это можно через 7-Zip файл-менеджер. Запустив его, мы переходим в папку, в которой находится административная установка Adobe. В эту же папку нужно положить файл StartX.exe (его назначение я объясню ниже). Выделяем все файлы

7-zip Main

и жмем Добавить

7-zip Parameters

Именуем архив по желанию (скажем, Adobe7.7z), выбираем формат 7-Zip, максимальный уровень сжатия и жмем ОК. На выходе получаем файл Adobe7.7z, из которого нам предстоит сделать SFX.

Теперь нужно создать конфигурационный файл для SFX. Его можно сделать в Блокноте. Единственное, но обязательное условие - он должен быть в кодировке UTF-8. В нашем случае он будет выглядеть так:

Выглядит сложно, но сейчас все прояснится. Первая и последние строки просто обозначают начало и конец конфигурационного файла. Средняя строка - команда, которая будет выполнена после распаковки архива. Непосредственно команда заключается в кавычки и помещается после RunProgram=. Утилита StartX.exe является эквивалентом консольной команды START и поддерживает такие же ключи. Ее наличие необходимо для установки MSI пакета, извлеченного из 7-Zip SFX. Если попытаться сделать нечто вроде RunProgram="Adobe7.msi /qn", то запуск завершится ошибкой. Два обратных слэша (\) просто предваряют кавычки, находящиеся внутри команды.

Сохраняем конфигурационный файл с именем config.txt в ту же папку, где Adobe7.7z, и переходим к завершающей стадии создания SFX.

Из инсталляционной папки 7-Zip нужно взять SFX модуль 7zS.sfx и скопировать его к файлам Adobe7.7z и config.txt. Можно сжать модуль утилитой UPX. Это уменьшит размер модуля примерно со 131 кб до 58 кб. Делается это командой

Достаточно это сделать один раз, и можно использовать сжатый модуль в дальнейшем.

Примечание . Примите к сведению, что некоторые антивирусные программы ошибочно воспринимают SFX модуль, сжатый при помощи UPX, как вирус. Если вам нужно гарантировать успешную распаковку SFX архива в любых условиях, не сжимайте модуль при помощи UPX.

Теперь, когда в одной папке собраны все три файла (adobe7.7z, config.txt и 7zS.sfx), нужно из командной строки выполнить следующую команду

Через мгновение в папке появится файл adobe7.exe. Это и есть наш SFX. Его запуск инициализирует распаковку архива во временную папку, запуск команды из конфигурационного файла, и удаление распакованных файлов по окончании установки.

Модифицированный SFX модуль для 7-Zip

Оригинальный 7-Zip SFX модуль не дает возможности сделать распаковку абсолютно незаметной. В процессе распаковки пользователь видит вот такое диалоговое окно

7-zip Cancel

и даже может прервать установку нажатием на кнопку Cancel. Этой проблемы можно избежать, воспользовавшись SFX модулем, который модифицировал участник конференции OSZone Олег Щербаков aka Oleg_Sch. Вы можете загрузить модифицированный модуль со страницы автора, где вы также найдете справку и исходный код. В справке описаны все новые функции и примеры использования (там много интересного). Так что на этой странице я ограничусь лишь примером конфигурационного файла, который полностью скроет диалоговое окно распаковки.

;!@Install@!UTF-8!
RunProgram="StartX.exe /WAIT \"msiexec /i Adobe7.msi /qn\""
GUIMode="2"
;!@InstallEnd@!

Вообще-то, для модифицированного модуля утилита StartX не нужна, и можно было бы обойтись RunProgram="Adobe7.msi /qn" .

Любопытно, что в данном случае 7-Zip продемонстрировал лучшее сжатие, чем WinRAR. Размер 7-Zip SFX (даже с утилитой StartX.exe) оказался 20893 кб против 23825 кб у WinRAR SFX. Oднако, недостатком родного SFX модуля 7-Zip является невозможность сконфигурировать бесключевую распаковку SFX в заданную папку. Модифицированный модуль Олега, позволяет указать папку распаковки в конфигурационном файле и избавляет 7-Zip от данного недостатка.

SFX Creator

*

Программа написана специально для решения задач по созданию полноценного SFX архива и обладает большими возможностями для создания бесключевых SFX. С ее помощью можно создать как незаметный (silent) инсталлятор, так и инсталлятор с графическим интерфейсом.

Рано или поздно все сталкиваются с надобностью создать архив. Не знаете, как это сделать? Тогда я вам расскажу.

В этом материале я хотел бы объяснить, как создать самораспаковывающийся архив, который еще называют SFX-архивом. Он представляет собой особую папку, состоящую из архива и исполняемого кода, с помощью которого он распаковывается.

Если вы думаете, что для его создания нужны какие-то особые знания, то ошибаетесь. На самом деле это делается очень легко и просто.

Из данной статьи вы узнаете о том, как его создать, используя наиболее популярные программные продукты.

Программные продукты Winrar и Winzip

Файлы с расширением .exe вам наверняка постоянно встречаются (установочные файлы программных продуктов).

Главное их преимущество заключается не только в том, что они является самораспаковывающимся, но и в том, что их установка не требует наличия каких-либо дополнительных приложений. Для их формирования, как правило, используется WinZip либо WinRar.

Один из выше приведённых архиваторов наверняка уже есть на вашем ПК, поэтому можете сразу же приступать к делу. Схема работы как с WinZip, так и с WinRar одинакова. В качестве примера я возьму последний архиватор.

Статью о том, как создавать обычные архивы, читайте здесь.

sfx архив

Архиватор 7-Zip

sfx архив через 7-zip

Вот, собственно, и всё, дорогие друзья! Как видите, всё делается очень легко и просто!

Самораспаковывающиеся архивы используются для передачи файлов. С помощью этого способа информацией обмениваются через любое облако, интернет или физический накопитель. Архив запаковывает файлы при помощи сжатия. Думать о том, есть ли у получателя специальная программа, не придется, поскольку распаковка выполняется без этого.

Как отличить архивы

У привычных файлов, для открытия которых требуются профильные приложения, стоят расширения .rar или .zip. Самораспаковывающиеся отличаются тем, что у них идет расширение .exe. Чтобы открыть и извлечь информацию, получателю не придется ставить на компьютер архиватор.

Значок запакованных файлов при этом встречается разный. Он меняется в зависимости от используемого приложения и ее версии.

что такое самораспаковывающийся архив

Создание архива

Порядок действий зависит от используемой программы. Сжатие файлов обычно выполняют с помощью утилиты 7zip, WinZIP или WinRAR. На примере этих программ мы рассмотрим, как там создаются самораспаковывающиеся файлы.

WinRAR

У пользователей эта программа пользуется наибольшим спросом. Для самораспаковывающегося файла выполняются почти такие же действия, только в настройках дополнительно указывается некоторая информация. Интерфейс этой программы обычно на английском языке, но разобраться в нем удастся даже при наличии минимальных знаний. Последовательность действий:

  1. Правой кнопкой мыши щелкните по файлу или папке, которую нужно заархивировать.
  2. В открывшемся меню выберите программу, наведите на нее мышку и щелкните по надписи Add to archive.
  3. В возникшем окне программа предложит указать параметры для активации. В самой первой вкладке (General) поставьте галочку напротив строки Create SFX archive. Тогда в названии файла автоматически поменяется расширение.
  4. Нажмите внизу подтверждающую кнопку, чтобы началось сжатие файлов. После загрузки на рабочем столе появится архив.

самораспаковывающийся архив, что это

Для самораспаковывающихся файлов устанавливают и дополнительные параметры, если в этом есть необходимость. Достаточно перейти во вторую вкладку, чтобы открыть дополнительные опции. Они появятся после нажатия на кнопку SFX options. В открывшемся окне пользователь указывает место распаковки или меняет иконку, если ее внешний вид не устраивает. Также там есть возможность добавлять лицензионные данные. Это необходимо, если другой человек с помощью архива продает какой-то продукт.

как создать архив самораспаковывающийся архив

У этого приложения нет бесплатной пробной версии и постоянно всплывающих окон с просьбой о продлении лицензии, как это сделано в предыдущей утилите.

как создать самораспаковывающийся архив


Для распаковки файла достаточно 2 раза нажать на него, а в появившемся окне изменить место, где появится файл и тапнуть по кнопке Extract.

Архивы этой программы иногда блокируются антивирусами. Они ошибочно полагают, что там есть вредоносные файлы, даже если на самом деле папка чиста. На Windows 10 встроенный защитник удаляет такие архивы без предупреждения, поэтому пользователям следует его предварительно отключить:

блокировка антивируса

При установке нескольких антивирусов встроенный защитник моментально блокируется другим, чтобы он не удалил файл, тогда при переходе в настройки все функции будут уже отключены.

WinZip

Эта программа в основном используется зарубежными гражданами. По популярности она на первом месте в Европе, поэтому ее выпустили еще и с русским интерфейсом. WinZip создает самораспаковывающиеся файлы только в том случае, если уже сделан стандартный архив. В связи с этим меняется принцип использования утилиты:

Как выбрать архиватор

Мы рассмотрели инструкцию по созданию самораспаковывающихся файлов только на 3 программах. Выбирать среди них или другого ПО следует на основе личных предпочтений. Для упрощения задачи рассмотрим их основные особенности:

Поскольку любой SFX-архив не нуждается в предварительной установке подходящего приложения, его считают более удобным вариантом и отличной альтернативой простому сжатию файлов. Создаются самораспаковывающиеся пакеты за несколько минут с помощью любой из предложенных программ.

Приветствую!
В этой подробной пошаговой инструкции, с фотографиями, мы покажем вам, как создать SFX (самораспаковывающийся) архив в приложении WinRar.
Воспользовавшись данной инструкцией, вы с лёгкостью сможете создать данный тип архива.

Создаём самораспаковывающийся архив в WinRar

Окно программы WinRar: выбор файлов и папок для архивирования

Откройте приложение WinRar. В нём перейдите к файлам или папкам, которые требуется заархивировать. Выделите мышкой нужные.

Примечание: программа поддерживает выборочное выделение файлов и папок. Для этого зажмите и не отпускайте клавишу Ctrl. Как все нужные файлы и папки будут выделены, отпустите клавишу.

Выделив необходимые объекты для архивации, нажмите в верхнем меню на кнопку Добавить.

Будет запущен процесс создания архива. По окончании будет создан самораспаковывающийся архив.

Если у вас остались вопросы, вы можете задавать их в комментариях.

Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.

В свою очередь, Вы тоже можете нам очень помочь.

Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.

Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!

Попробуйте найти другие ответы на сайте
. или задайте вопрос в комментариях, где Вам обязательно ответят в кратчайшие сроки.

Читайте также: