Если вам приходилось ставить JDK на вашу Linux-машину, то вы знакомы с этим способом развёртывания приложения. И, если теперь ваша замечательная новая программа должна отправиться к благодарным пользователям, то почему бы не облегчить им жизнь с помощью простого «инсталлятора»? Вот увидите, клиенты это оценят.
Как это выглядит?
Предельно просто. Пользователь загружает .sh файл и запускает его. Скрипт не просто создаёт все директории и т.п., а ещё и извлекает «из себя» файлы приложения и раскладывает их куда нужно.
Как это сделать?
Сначала создаём скрипт, а потом с помощью команды cat добавляем в него архив с файлами.
Например install.sh:
- #!/bin/bash
- A_F=`readlink -e «$0″`
- DIR=`dirname «$A_F»`
- TMP_ARH=»tmp.tar.gz»
- cd $DIR
- echo «Creating temporary arhive $TMP_ARH»
- tail -n +15 «$0» > $TMP_ARH
- echo «Unpacking temporary arhive $TMP_ARH»
- tar xzf $TMP_ARH
- echo «Removing temporary arhive $TMP_ARH»
- rm -f $TMP_ARH
- echo «Installation is complete!»
- exit 0
- ######
Тут делаем следующее:
- В строках 2-3 определяем директорию, в которой в данный момент находится скрипт, в строке 5 переходим туда. Все дальнейшие операции выполняем относительно этой директории.
- В строке 4 задаём имя временного архива.
- В строке 7 «отрезаем» бинарную часть нашего скрипта (в данном случае она начинается со строки 15), которую добавим к скрипту позже. Бинарную часть сохраняем как временный архив.
- В строке 9 распаковываем архив в текущую директорию и удаляем его в строке 11
- Завершаем выполнение скрипта в строке 13 (чтобы bash не решил выполнить и наши бинарные данные, расположенные ниже).
Как видно из скрипта в строке 15 начинается архив с нашим приложением. Добавим его:cat my_app.tar.gz >> install.shПосле команды извлечения данных в вашем «инсталляторе» вы сможете сделать также все необходимые симлинки и выполнить другие операции по настройке системы.