2.1.3 Бинарные rpm и rpm с исходным кодом

Существует два типа пакетов rpm - бинарные и с исходным кодом. Бинарные пакеты содержат исполняемые файлы, скомпилированные для определенной процессорной архитектуры. Например, веб-сервер Apache, скомпилированный для работы на платформе Intel Pentium не будет работать на Sharp Zaurus, в котором используется процессор ARM. Для использования на обоих системах необходимо иметь два бинарных пакета и только один пакет с исходным кодом.

Бинарные пакеты
Бинарные пакеты содержат полный набор приложений и библиотек, собранных под определенную процессорную архитектуру. Работа этих приложений часто зависит от других приложений (библиотек), которые в свою очередь содержатся в иных бинарных rpm-пакетах.
Хотя большАя часть пакетов включает приложения, некоторые пакеты содержат только библиотеки функций. Например, библиотека SDL, поддерживающая графические потребности множества игр, может быть упакована в rpm файл. Пакеты библиотек позволяют поддерживать работу множества приложений с помощью одной библиотеки (так называемые shared libraries). Поэтому как правило библиотеки входят в пакеты, не содержащие приложений.
В дополнение к бинарным пакетам для определенных архитектур, RPM поддерживает концепцию платформно-независимых бинарных пакетов, так называемых noarch-пакетов, предоставляющих библиотеки, или, например, коллекции скриптов, работа которых не зависит от конкретной платформы. Приложения, написанные на Perl, Python или shell не связаны необходимостью компиляции. Многие приложения Java также не зависят от платформы.

Пакеты с исходным кодом
Упоминавшийся выше пакет xcopilot содержит приложение xcopilot. Оно используется для синхронизации данных с КПК Palm. Исходный код этого приложения содержится, например, в пакете:

xcopilot -0.66-3.src.rpm

В соответствии с соглашениями об именовании, имя файла пакета с исходным кодом оканчивается постфиксом src.rpm.
src.rpm-пакет должен содержать все необходимые средства, потребные для сборки бинарного пакета. Наличие такого пакета означает, что можно пересобрать бинарный пакет в любое время, сделав необходимые изменения/исправления, либо под другую процессорную архитектуру. И это одна из главных целей системы пакетного менеджмента RPM.
Поскольку в пакете с исходным кодом содержится вся информация для сборки, есть возможность пересобирать бинарные пакеты в Linux-среде, отличной от исходной. Например, скрипты настройки процесса сборки могут адаптировать этот процесс в зависимости от версий найденных в системе библиотек.
Если при в процессе сборки руководствоваться указаниями, обычно содержащимися в пакетах с исходным кодом, получаемые бинарные пакеты будут максимально адекватны системному окружению.

Далее - База данных RPM
Назад - Структура пакета RPM
Содержание