6 Home
ivan edited this page 2024-02-16 01:32:43 +03:00
This file contains ambiguous Unicode characters

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/