Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

Надежные VPS и выделенные серверы в Нидерландах

Storage VPS, High CPU VPS

Профессиональная техническая поддержка

Домены, SSL сертификаты, VPN

7. Построение RPM для нескольких архитектур

Сейчас RPM может использоваться для построения пакетов для Intel i386, Digital Alpha с работающим Linux и the Sparc. Также было сообщено, что RPM работает на SGI и рабочих станциях HP. Существует несколько свойств, которые делают построение пакетов не всех платформах легким. Первое из этих свойств это директива ``optflags'' в файле /etc/rpmrc. Она может быть использована для установки используемых для построения программного обеспечения флагов в значения соответствующие определенной архитектуре. Другое свойство это макрос ``arch'' в spec-файле. Оно может быть использована чтобы делать разные вещи в зависимости от архитектуры на которой производится посторонние. Еще одно свойство это директива ``Exclude'' в заголовке.

7.1 Простой spec-файл

Следующая информация это часть spec-файла для пакета ``fileutils''. Он настроен для построения и на Alpha и на Intel платформах.

Summary: GNU File Utilities
Name: fileutils
Version: 3.16
Release: 1
Copyright: GPL
Group: Utilities/File
Source0: prep.ai.mit.edu:/pub/gnu/fileutils-3.16.tar.gz
Source1: DIR_COLORS
Patch: fileutils-3.16-mktime.patch

%description
These are the GNU file management utilities.  It includes programs
to copy, move, list, etc, files.

The ls program in this package now incorporates color ls!

%prep
%setup

%ifarch alpha
%patch -p1
autoconf
%endif
%build
configure --prefix=/usr --exec-prefix=/
make CFLAGS="$RPM_OPT_FLAGS" LDFLAGS=-s

%install
rm -f /usr/info/fileutils*
make install
gzip -9nf /usr/info/fileutils*

.
.
.

7.2 Директива Optflags

В этом примере вы видите как директива ``optflags'' используется из файла /etc/rpmrc. В зависимости от того на какой архитектуре вы производите построение, соответствующее значение дается переменной RPM_OPT_FLAGS. Вы должны изменить Makefile вашего пакета для использования этой переменной вместо директив, которые вы могли бы использовать (подобно директивам -m486 и -O2). Вы можете лучше почувствовать что надо сделать если загрузите этот пакет с исходными текстами, распакуйте исходные тексты и посмотрите на Makefile. Затем посмотрите на заплатку для Makefile и вы увидите какие изменения должны быть сделаны.

7.3 Макросы

Макрос %ifarch очень важен. Очень часто вам необходимо сделать одну или несколько заплаток, специфических только для одной архитектуры. В этом случае RPM позволит вам приложить эти заплатки только на этой архитектуре.

В вышеприведенном примере, fileutils имеют заплатку для 64-битовых машин. Очевидно, что она должна быть приложена только на Alpha. Так что ма добавим макрос %ifarch вокруг применения 64-битовой заплатки как приведено:

%ifarch axp
%patch1 -p1
%endif

Это будет обеспечивать, что заплатка не будет приложена на любой архитектуре за исключением alpha.

7.4 Исключение архитектур из пакетов

Для того чтобы вы могли сопровождать пакеты с исходным текстом в одной директории для всех платформ мы реализовали возможность ``исключения'' построения пакетов на определенных архитектурах. Так что вы все равно можете делать такие вещи как:

rpm --rebuild /usr/src/SRPMS/*.rpm

и иметь правильно построенные пакеты. Если вы еще не перенесли приложение на определенную платформу, все что вам надо сделать это добавить примерно следующую строку:

ExcludeArch: axp

к заголовку spec-файла пакета с исходными текстами. Затем заново постройте пакет на платформе на которой он может строится. Вы будете иметь пакет с исходными текстами, который может строиться на платформе Intel и может быть легко пропущен на платформе Alpha.

7.5 Окончание

Использование RPM для создания многоплатформенных пакетов обычно более легко сделать, чем заставить сам пакет быть построенным в обоих местах. Как всегда наилучшая помощь когда вы застряли это посмотреть как сделан похожий пакет.


Вперед Назад Содержание
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

Спринтхост — хостинг от 99 ₽ в месяц

Бесподобная поддержка, тестовый период 30 дней и домены от 149 ₽

Промокод на 30% кешбэк — CITFORUM

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...