При переезде с Tomcat 7 на Tomcat 8 с сожалением обнаружил, что в публичных репозитариях для Centos 6 нет необходимого пакета. Так как необходимо было раскатить обновление на большое количество серверов, было принято решение сделать свой пакет.
За основу был взят репозитарий: https://github.com/wcarty/rpm-tomcat8, от которого был сделан форк с моими изменениями: https://github.com/spions/rpm-tomcat8
1. Ставим необходимые пакеты для сборки:
sudo yum -y install rpmdevtools && rpmdev-setuptree |
2. Закачиваем файл спецификации и другие необходимые в сборке файлы:
Spec-файл, сокращение от «файл спецификации», определяет все действия утилиты rpmbuild, которые должны быть выполнены при построении приложения, так же как и все действия, необходимые при установке/удалении приложения. Каждый src.rpm-пакет имеет в своем составе spec-файл для последующей пересборки пакета.
wget https://raw.github.com/spions/rpm-tomcat8/master/tomcat8.spec -O ~/rpmbuild/SPECS/tomcat8.spec wget https://raw.github.com/spions/rpm-tomcat8/master/tomcat8.init -O ~/rpmbuild/SOURCES/tomcat8.init wget https://raw.github.com/spions/rpm-tomcat8/master/tomcat8.sysconfig -O ~/rpmbuild/SOURCES/tomcat8.sysconfig wget https://raw.github.com/spions/rpm-tomcat8/master/tomcat8.logrotate -O ~/rpmbuild/SOURCES/tomcat8.logrotate |
3. Идем на сайт tomcat и смотрим какая последняя версия tomcat доступна:
wget http://apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-8/v8.0.41/bin/apache-tomcat-8.0.41.tar.gz -O ~/rpmbuild/SOURCES/apache-tomcat-8.0.41.tar.gz |
4. В зависимости от версии меняем параметры spec файла.
У меня заменена версия и добавлена зависимость с 8 версией java:
~/rpmbuild/SPECS/tomcat8.spec Version: 8.0.41 Requires: java-1.8.0-openjdk |
5. Производим компиляцию:
rpmbuild -bb ~/rpmbuild/SPECS/tomcat8.spec |
6. Проверяем полученный пакет:
~/rpmbuild/RPMS/noarch |
В зависимости от задания, полученный пакет можно через mrepo добавить в свой репозитарий или же раскатывать при помощи других средств автоматизации.