Наши партнеры



Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Этот танец невесты оставит вас без слов! Пересмотрела 10 раз!
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Диалог бабушки и внучки! Такое видео вызывает смех сквозь слезы…
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Танец на выпускном взорвал сеть: смотреть без детей
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Женатым лучше не смотреть: танец роскошной Татьяны (видео)
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Этот танец невесты оставит вас без слов! Пересмотрела 10 раз!



Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Этот танец невесты оставит вас без слов! Пересмотрела 10 раз!
Next Previous Contents

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

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

49.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*



.

.

.

49.2 Директива Optflags

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

49.3 Макросы

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

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

%ifarch axp

%patch1 -p1

%endif

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

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

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

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

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

ExcludeArch: axp

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

49.5 Окончание

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


Next Previous Contents


Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Этот танец невесты оставит вас без слов! Пересмотрела 10 раз!