2.11. Сборка пакетов по исходным текстам

Проблема
Установить готовый пакет не удается из-за того, что он несовместим с вашей сис темой на двоичном уровне. А может, вы просто предпочитаете компилировать
приложения в своей системе или хотите сначала отредактировать исходный код,
а затем построить пакет.
Решение
Постройте новую программу из пакета RPM с исходными текстами (SRPM, Source
RPM).
Загрузите SRPM (в данном примере tuxpaint-2002.10.20-l.src.rpm) в каталог по
вашему усмотрению. Проследите за тем, чтобы он подходил для вашей поставки Linux.
Запустите программу установки пакета:
# rpm -ivh tuxpaint-2002.10.20-l.src.rpm
Команда помещает исходные тексты в каталог/usr/src/SOURCES, а файл spec —
в каталог/usr/src/SPECS:
# Is /usr/src/SOURCES
tuxpaint-2002.09.29.tar.gz tuxpaint-Makefile.patch tuxpaint-stamps-2002.09.29.tar.gz
tuxpai nt.desktop tuxpai nt-opt.patch
$ Is /usr/src/SPECS
tuxpaint.spec
Далее построите файл spec:
# rpmbuild -bb tuxpaint.spec
Новый пакет RPM создается в каталоге /usr/src/RPMS/i386:
# Is /usr/src/RPMS/i386
tuxpaint-2002.10.20-1.i386.rpm
Теперь у вас имеется новый пакет RPM с программой Tuxpaint, откомпилиро ванный для вашей системы.
Комментарий
В вашей системе исходные тексты могут храниться в другом каталоге. В Fedora 1,
как и в некоторых ранних версиях используется каталог /usr/src/redhat/RPMS/.
В других поставках используется каталог/usr/src/RPM/RPMS. Разберитесь, и вы най дете нужный каталог.
Построение пакетов по исходным текстам не избавляет от «кошмара RPM».
Оно всего лишь гарантирует двоичную совместимость с системными библиоте ками и оптимизацию RPM для архитектуры вашей системы. Соблюдение зави симостей придется обеспечивать вручную, а это далеко не так просто, как ка жется.
Обратите внимание: rpmbuild и rpm — два отдельных пакета.
См. также
rpmbuild(8), rpm(8); RPM.org (http://rpm.org/); Maximum PRM (http://www.rpm.org/
max-rpm/index.html).