Create sfx archive linux

Содержание
  1. Как создать самораспаковывающийся архив или инсталлятор в Linux
  2. Создание самораспаковывающегося архива
  3. Создание самораспаковывающегося инсталлятора
  4. Create self-extracting archive on Linux
  5. Create SFX (as Linux binary) on Linux
  6. Create SFX (as Windows binary) on Linux
  7. [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  8. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  9. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  10. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  11. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  12. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  13. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  14. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  15. Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux
  16. unixforum.org
  17. sfx архив
  18. sfx архив
  19. Re: sfx архив
  20. Re: sfx архив
  21. Re: sfx архив
  22. Re: sfx архив
  23. Re: sfx архив
  24. Re: sfx архив
  25. Re: sfx архив
  26. Re: sfx архив
  27. Re: sfx архив
  28. Как создать самораспаковывающийся архив или инсталлятор в Linux
  29. Создание самораспаковывающегося архива
  30. Создание самораспаковывающегося инсталлятора

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

В то время как обычный файл архива требует отдельной программы (например tar, gunzip) для извлечения контента из архива, самораспаковывающийся (SFX) архив сам является исполняемым, и может сам извлекать свой контент при запуске. Самораспаковывающийся инсталлятор делает то же самое, но при этом копирует извлекаемые файлы в соответствующие директории.
В этом руководстве я покажу, как создать самораспаковывающийся архив или инсталлятор в Linux.

Для этих целей вы можете использовать утилиту командной строки под названием makeself , которая представляет собой скрипт оболочки, создающий архив, сжатый с помощью TAR, и добавляющий к нему небольшой скрипт-заглушку в начале архива для инициации самораспаковки и управления установкой извлекаемых файлов.
Чтобы установить makeself в Linux, скачайте его архив с последней версией, и распакуйте скачанный архив, как показано ниже. После того, как архив распакуется, он создаст новую директорию с названием makeself-2.1.5. Скопируйте все скрипты в директорию /usr/bin.

Базовый синтаксис makeself.sh:

Аргумент «label» — это сообщение, которое выводится после окончания распаковки.
Аргумент «startup_script» задает стартовый скрипт/команду, которые выполняются после успешной распаковки архива. Это полезно при создании самораспаковывающегося инсталлятора. Обычно стартовый скрипт копирует/инсталлирует извлеченный контент в соответствующие целевые директории. Стартовый скрипт может быть расположен внутри директории пакета, чтобы скрипт был включен в самораспаковывающийся архив.

Некоторые другие полезные опции makeself.sh:

—gzip : использовать для сжатия gzip (используется по умолчанию);
—bzip2 : использовать для сжатия bzip2;
—nocomp : не использовать сжатие;
—notemp :извлекать файлы не во временную директорию, а в специальную новую поддиректорию, созданную в текущей директории;
—follow : следовать всем символьным ссылкам и файлам архива, которые связаны между собой символьными ссылками.

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

Для создания самораспаковывающегося архива, содержащего все файлы из директории ./backup, используйте приведенную ниже команду. Здесь стартовая процедура не делает ничего, кроме того, что выводит сообщение «Extraction done».

Самораспаковывающийся архив «./backup.run» успешно создан.
Для извлечения файлов из архива просто запустите его:

Создание самораспаковывающегося инсталлятора

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

Читайте также:  Как снять bitlocker с флешки windows 10

Затем сделаем стартовый скрипт исполняемым.

И наконец создаем инсталлятор со стартовым скриптом, как показано ниже:

Источник

Create self-extracting archive on Linux

A self-extracting archive (SFX) is convenient when you need to copy files to another computer which may not already have the archive software installed. For example, many Windows drivers are installed using SFX.

On Windows, we can create a SFX using a GUI archive software such as 7-Zip and WinRAR. Simply right click the selected files and choose Add to archive…, then tick Create SFX archive. If you want to encrypt the files, you can set a password. If you also want to encrypt the file names, tick Encrypt file names. In this way, a SFX with password protection on both data and header is created.

Create SFX (as Linux binary) on Linux

But how can we create a SFX on Linux using command line?

This turns out to be possible with the 7z program (from package p7zip ) using option -sfx . For example, to create a SFX data.exe for dir data :

You can also encrypt both data and header in a SFX with option -mhe=on . For example, to create a SFX data.exe with password 123456 for dir data :

If you don’t want to write the password in plaintext, you can use -p alone and it will prompt you for the password:

Create SFX (as Windows binary) on Linux

But you may have noticed that, the created SFX is a Linux binary, not a Windows binary:

So it won’t work on Windows systems. To understand this, note that a SFX is combined from a executable part (stub) and a non-executable part (archive). To visualize this, we give a simple example of creating SFX with the ZIP format using cat :

Here the stub unzipsfx comes from package unzip , which you can find on most Linux distros. As you can see, creating SFX can be as simple as cat a stub and a archive.

Now it should be easier to understand why data.exe is a Linux binary: Because it’s generated with a Linux stub. If you are copying files to a Windows machine, you have to generate SFX using a Windows stub. This is still possible with the -sfx option. Actually, the -sfx option allows you to specify the SFX module in the generated archive using format -sfx[] . Now we need to find a proper Windows SFX module.

The Windows SFX module exists in the 7-Zip installation program:

Taking the 64-bit program for example. This program is actually a SFX itself. So we can extract files from it even if we are on Linux:

There is a file named 7z.sfx in the extracted files. This is what we use as the SFX module in the command line option. Copy this file to the dir where the command will be run, and run the command:

The generated SFX should work on a Windows system.

Источник

[хочется странного] создание SFX-архива для оффтопика под GNU/Linux

Такое бывает? Желательно без wine.
Было обрадовался, обнаружив, что rar и p7zip это умеют, но оказалось, что они делают архивы, распаковывающиеся под GNU/Linux (интересно, кому это может быть нужно?), а не под оффтопиком.

Читайте также:  Ноутбук срок действия windows истекает

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

кажется рар такое умел. Точно:

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

Вроде-бы SFX для RAR можно сделать просто добавив к sfx модулю архив. Типа так «cat ar.rar >> sfx.exe». Но не уверен.

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

рар это умеет
rar a -zимяконфига имяархива.rar файлы
потом делаем sfx
rar s имяархива.rar

Не забывайте что в конфиге хранятся удобные действия при распаковке и коментарии.

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

Видел какую-нибудь проприетарщину (и не только), которая как *.sh распространяется (драйвер NVIDIA, например)?

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

кажется рар такое умел. Точно:

Огромное спасибо.
С поиском windows.sfx возникли некоторые проблемы, поэтому просто слил виндовую версию winrar, поставил под wine, и взял default.sfx оттуда. Всё работает.

1/ How to make a rar extractable for windows?

so
get those on megaupload
5a74b0c8e3d35fe498d580e08e90650c *default.sfx
76ab410e2826456a9ca9a006ffea6766 *wincon.sfx
5a74b0c8e3d35fe498d580e08e90650c *windows.sfx
eeb322f1978b711140ec076fa735cb50 *zip.sfx
f53dce3ad1e2f73ccf5aa577519f1c92 *freebsd.sfx
6887d39229d11a8b063d8c9c03b0a732 *linux.sfx
4be71f85fc808ed14355ae5e2e69e9e7 *macos_x.sfx
8a70b6be524d625d17291c6d5766cced *7z.sfx
fbec918cd09e5bd955411c474d440f27 *7zCon.sfx
put that
under /home/username/.sfx

2/
go to the folder where owns the file:
so type:
cp /home/username/.sfx/windows.sfx .

Code:
rar a -sfxdefault.sfx myexeforwindows.exe myfiledocument.doc
Enjoy,

Say thanks please !! cuz it is no where on LINUX Boards !!

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

Ещё б пример такого конфига..
Благодарю.

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

можно использовать PeaZip как оболочку к 7zip

>оказалось, что они делают архивы, распаковывающиеся под GNU/Linux

странно, PeaZip делает .ехе файлы, распаковывающиеся через вайн и в винде

Re: [хочется странного] создание SFX-архива для оффтопика под GNU/Linux

Пример
Presetup=ping yandex.ru
Setup=ping google.ru

Найдено грепом по директории с

/.wine/
Оказалось, виндовый rar хранит свои настройки в реестре.

Также есть опции
Delete
License
Overwrite
Path
Presetup
SavePath
Setup
Shortcut
Silent
TempMode
Text
Title

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

sfx архив

Модератор: Bizdelnick

sfx архив

Сообщение TWINc » 14.08.2006 12:45

подскажите как мне сделать следущее:

у меня есть
setup.sh
program.tar.gz

setup.sh распаковывает program.tar.gz и раскидывает по нужным папкам файлы.

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

Вообщем хочеться как сделан .run файл у драйверов к nvidia’вским видеокартам =)

Re: sfx архив

Сообщение Andrew S » 14.08.2006 12:55

Re: sfx архив

Сообщение diesel » 14.08.2006 13:02

Re: sfx архив

Сообщение TWINc » 14.08.2006 13:03

Re: sfx архив

Сообщение backslash » 14.08.2006 15:18

Пример скрипта, решающего поставленную в первом сообщении задачу («самораспаковывающийся архив»), подробно разобран в книге Кернигана и Пайка «UNIX. Программное окружение» (известна также под другими названиями) — там он называется bundle.

Re: sfx архив

Сообщение diesel » 14.08.2006 15:27

Re: sfx архив

Сообщение TWINc » 14.08.2006 16:49

Всем спасибо за помощь!

Может быть кому нибудь пригодитсья. вот мой скрипт

создать архив можно так
./make_pkg.sh Data [path]

установить как
./Data install [path]

извлечь
./Data extract

Читайте также:  Host файл windows путь

Re: sfx архив

Сообщение elide » 14.08.2006 18:24

Re: sfx архив

Сообщение diesel » 14.08.2006 21:48

Re: sfx архив

Сообщение backslash » 15.08.2006 16:13

ИМХО, если готового решения в системе нет, а задача довольно простая, то логичней собрать велосипед из подручных материалов (сколько там строчек на шелле?), нежели выгугливать в интернете собранный. Здесь важно и время, и деньги (траф).

Источник

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

В то время как обычный файл архива требует отдельной программы (например tar, gunzip) для извлечения контента из архива, самораспаковывающийся (SFX) архив сам является исполняемым, и может сам извлекать свой контент при запуске. Самораспаковывающийся инсталлятор делает то же самое, но при этом копирует извлекаемые файлы в соответствующие директории.
В этом руководстве я покажу, как создать самораспаковывающийся архив или инсталлятор в Linux .

Для этих целей вы можете использовать утилиту командной строки под названием makeself, которая представляет собой скрипт оболочки, создающий архив, сжатый с помощью TAR, и добавляющий к нему небольшой скрипт-заглушку в начале архива для инициации самораспаковки и управления установкой извлекаемых файлов.
Чтобы установить makeself в Linux, скачайте его архив с последней версией, и распакуйте скачанный архив, как показано ниже. После того, как архив распакуется, он создаст новую директорию с названием makeself-2.1.5. Скопируйте все скрипты в директорию /usr/bin.

$ wget http://megastep.org/makeself/makeself-2.1.5.run $ chmod 755 makeself-2.1.5.run $ ./makeself-2.1.5.run $ cd makeself-2.1.5 $ sudo cp *.sh /usr/bin

Базовый синтаксис makeself.sh:

makeself.sh [options] [directory_to_package] [sfx_archive_filename] [label] [startup_script] [optional_script_args]

Аргумент «label» — это сообщение, которое выводится после окончания распаковки.
Аргумент «startup_script» задает стартовый скрипт/команду, которые выполняются после успешной распаковки архива. Это полезно при создании самораспаковывающегося инсталлятора. Обычно стартовый скрипт копирует/инсталлирует извлеченный контент в соответствующие целевые директории. Стартовый скрипт может быть расположен внутри директории пакета, чтобы скрипт был включен в самораспаковывающийся архив.

Некоторые другие полезные опции makeself.sh:

—gzip : использовать для сжатия gzip (используется по умолчанию);
—bzip2 : использовать для сжатия bzip2;
—nocomp : не использовать сжатие;
—notemp :извлекать файлы не во временную директорию, а в специальную новую поддиректорию, созданную в текущей директории;
—follow : следовать всем символьным ссылкам и файлам архива, которые связаны между собой символьными ссылками.

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

Для создания самораспаковывающегося архива, содержащего все файлы из директории ./backup, используйте приведенную ниже команду. Здесь стартовая процедура не делает ничего, кроме того, что выводит сообщение «Extraction done».

$ makeself.sh —notemp ./backup ./backup.run «SFX archive for backup» echo «Extraction done» Header is 403 lines long About to compress 1540 KB of data. Adding files to archive named «./backup.run». ./ ./jpeg/ ./jpeg/1.jpg . . CRC: 2238411397 MD5: 0b0fd3a2ba08ffcec821b9cbaa11b70d

Самораспаковывающийся архив «./backup.run» успешно создан.
Для извлечения файлов из архива просто запустите его:

$ ./backup.run Creating directory backup Verifying archive integrity. All good. Uncompressing SFX archive for backup. Done

Создание самораспаковывающегося инсталлятора

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

$ vi ./program/install.sh #!/bin/sh if [ -d $HOME/bin ] then cp myprogram $HOME/bin/ fi

Затем сделаем стартовый скрипт исполняемым.

$ chmod 755 ./program/install.sh

И наконец создаем инсталлятор со стартовым скриптом, как показано ниже:

Источник

Оцените статью