Универсальный способ создания пакетов, для различных дистрибутивов GNU LinuxИсточник: habrahabr gotlium
Различные дистрибутивы предоставляют свои утилиты, для сборки и установки программ. Сейчас поддерживаются:
Установка необходимых пакетов для работы с fpm в Debian GNU/Linux: # apt-get install ruby rubygems rpm dpkg-dev # gem install fpm Для примера соберем пакет logstash, для Debian/GNU Linux и Red Hat Linux. Создадим файл сборки, в котором опишем зависимости, файлы конфигурации и мета-информацию о пакете: $ mkdir logstash && cd logstash && touch build.sh && chmod +x build.sh && vim build.sh Вставляем: #!/bin/bash JAR_URL="https://download.elasticsearch.org/logstash/logstash/logstash-1.2.2-flatjar.jar" JAR_FILE="usr/share/logstash/logstash.jar" DESCRIPTION="Logstash Open Source Log Management" EMAIL="admin@logstash.net" URL='http://www.logstash.net/' VERSION="1.2.2" NAME="logstash" # создаем структуру директорий if [ ! -d "usr" ]; then mkdir -p {etc,usr/share/logstash,var/logstash} fi # скачиваем и кладем в необходимый каталог logstash if [ ! -f "$JAR_FILE" ]; then wget "$JAR_URL" -O "$JAR_FILE" fi cd .. function build() { fpm -n $NAME -v $VERSION -a all -C logstash -m "<$EMAIL>" \ --pre-install logstash/preinstall \ --description "$DESCRIPTION" \ --url "$URL" -t "$1" -d "$2" \ --config-files etc/logstash/syslog.conf \ -s dir etc usr var } # задаем тип пакета и зависимости build "deb" "default-jre" build "rpm" "java-1.6.0-openjdk-devel"
Создадим файл конфигурации logstash: etc/logstash/syslog.conf
Далее создадим скрипт, который должен выполнится перед установкой пакета: Устанавливаем пакет на текущей машине и проверяем:
ЗаключениеБуквально несколькими командами можно собрать пакет под различные дистрибутивы и ОС за пару минут. Спасибо автору за столь прекрасную утилиту. Надеюсь, что кто-то ее найдет такой же полезной как и я. |