Но порой нужно таки сделать "а-ля" коробочную установку в стиле "взял один файл-архив, запустил и получил результат". Ситуация усугубляется, когда все это надо делать под разными сортами UNIXа. Конечно, есть вариант написать этого зверя на Java. На ней можно сделать установщик еще и графическим. Нужно только, чтобы эта Java была у заказчика, то есть опять тема простоты уходит. Нужно что-то простое и легковесное.
Небольшой анализ привел меня к makeself. В двух словах это саморазархивирующиеся shell-скрипты. То есть вы готовите процедуру установки, сводите все к наличию каталога со всеми необходимыми файлами, и, если нужно, скриптом, которые надо запустить после разархивации. Все как у так называемых SFX (self extract) модулей для WinRAR, например. Прелесть в том, что в итоге вы получаете одиночный файл, который является абсолютно стандартным shell-скриптом, работающим в большом количестве типов UNIX, и который также содержит внутри себя архив с вашими файлами. Все, что нужно сделать на стороне клиента, это запустить этот файл.
Допустим, вы подготовили ваш дистрибутив в каталоге
/home/sandbox/intallation
. Также у вас есть скрипт ./setup
, который необходимо запустить после разархивации для локальной настройки, например. Все что вы делаете:makeself.sh /home/sandbox/installation megasoft-0.0.1.sh "Mega Software 0.0.1" ./setup
Данная команда создаст файл magesoft-0.0.1.sh
, в который упакуется содержимое каталога /home/sandbox/intallation
и скрипт ./setup
. Теперь все, что надо сделать на стороне клиента, это запустить это файл командой:. ./megasoft-0.0.1.sh
Скрипт разархивирует собственное содержимое и запустит ваш скрипт setup
, который сможет окончательно настроить установку.makeself
позволяет использовать для компрессии стандартные средства UNIX на выбор compress
, gzip
, bzip2
. Также содержимое архива дополнительно защищается контрольными суммами: MD5 или CRC. Это может быть полезно, если вы не используете компрессию, а целостность данных проверять все же хотите.Список же поддерживаемых типов UNIX для текущей версии 2.1 весьма внушителен:
* Linux (all distributions)
* Sun Solaris (8 tested)
* HP-UX (tested on 11.0 and 11i on HPPA RISC)
* SCO OpenUnix and OpenServer
* IBM AIX 5.1L
* MacOS X (Darwin)
* SGI IRIX 6.5
* FreeBSD
* UnicOS / Cray
Напомню ссылку на makeself еще раз http://megastep.org/makeself/
Комментариев нет:
Отправить комментарий