Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Обновляем списки пакетов:
apt-get update
Устанавливаем необходимые для сборки пакеты:
apt-get install rpmdevtools rpmlint rpm-build
От обычного пользователя в домашнем каталоге выполняем команду создания древа каталогов:
rpmdev-setuptree
Файл настройки приводим к требуемому виду (важна только первая строка, закомментированные правим по желанию):
vi ~/.rpmmacros
%_topdir %homedir/RPM
#%_tmppath %homedir/tmp
# %packager Joe Hacker <joe@email.address>
# %_gpg_name joe@email.address
Переходим в каталог с выгруженными программой файлами - например, в /tmp:
cd /tmp/Inform7_1.0.1_all
DEBIAN usr
Создаём архив исходных файлов:
tar cvfz /tmp/inform7-1.0.1.tar.gz ./usr
Переходим в каталог ~/RPM:
cd ~/RPM
Выкладываем архив со скриптами по пути ~/RPM/SOURCES:
cp /tmp/inform7-1.0.1.tar.gz ~/RPM/SOURCES/
Создаем/правим спеку сборки под текущее приложение:
vi SPECS/inform7.spec
Проверяем корректность синтаксиса спеки:
rpmlint SPECS/inform7.spec
Запускам сборку пакета:
rpmbuild -bb SPECS/inform7.spec
Или пакета вместе с сырцами:
rpmbuild -ba SPECS/inform7.spec
Пакет будет по пути ~/RPM/RPMS/noarch/inform7-1.0.1-1.noarch.rpm, сырцы будут по пути ~/RPM/SRPMS/inform7-1.0.1-1.src.rpm
Выпуск новой версии/обновление пакета
Переходим в каталог с выгруженными программой файлами по аналогии с описанием выше и создаем архив. При мажорных релизах и смене версии, надо создавать архив с указанием версии в имени файла, например:
cd /tmp/Inform7_1.0.1_all
DEBIAN usr
tar cvfz /tmp/inform7-1.0.2.tar.gz ./usr
Переходим в каталог ~/RPM:
cd ~/RPM
Выкладываем архив со скриптами по пути ~/RPM/SOURCES:
cp /tmp/inform7-1.0.2.tar.gz ~/RPM/SOURCES/
Создаем/правим спеку сборки под текущее приложение, где меняем номер версии пакета в спеке:
vi SPECS/inform7.spec
Version: 1.0.2
Release: 1
Запускам сборку пакета:
rpmbuild -bb SPECS/inform7.spec
Пакет будет по пути ~/RPM/RPMS/noarch/inform7-1.0.2-1.noarch.rpm
При минорных изменениях в сборке, можно менять не версию пакета в спеке, а релиза:
Release: 2
В этом случае, имя файла не меняется от предыдущего и версия релиза в спеке тоже не корректируется:
Переходим в каталог с выгруженными программой файлами - например, в /tmp:
cd /tmp/Inform7_1.0.1_all
DEBIAN usr
Создаём архив исходных файлов:
tar cvfz /tmp/inform7-1.0.1.tar.gz .
Переходим в каталог ~/RPM:
cd ~/RPM
Выкладываем архив со скриптами по пути ~/RPM/SOURCES:
cp /tmp/inform7-1.0.1.tar.gz ~/RPM/SOURCES/
Создаем/правим спеку сборки под текущее приложение:
vi SPECS/inform7.spec
Version: 1.0.1
Release: 2
Запускам сборку пакета:
rpmbuild -bb SPECS/inform7.spec
Пакет будет по пути ~/RPM/RPMS/noarch/inform7-1.0.1-2.noarch.rpm
Сборка RPM средствами скрипта
Переходим в каталог с выгруженными программой файлами - например, в /tmp:
cd /tmp/Inform7_1.0.1_all
DEBIAN usr
Выкладываем в текущий каталог скрипт mkrpm.sh ( https://git.susenin.ru/ivan/inform/src/branch/master/mkrpm.sh )
При каждой сборке пакета рекомендуется менять значение релиза в файле mkrpm.sh (параметр REL=13 , далее 14, 15 и тп) или версии приложения(параметр VER=1.0.2 , ***). Запускаем скрипт:
RPM]$ ./mkrpm.sh
Start build rpm? (y/n)
Собранный пакет будет по пути:
~/RPM/RPMS/noarch/