plik


Menadżer Pakietów RedHat-a (RPM) - Jak To Zrobić: Tworzenie RPM-ów na wiele platform. Następna strona Poprzednia strona Spis treści 7. Tworzenie RPM-ów na wiele platform. RPM może być wykorzystywany do tworzenia pakietów dla Intel i386, Digital Alpha pracujących pod Linux, oraz Sparc. Są też doniesienia o jego wykorzystaniu na platformach SGI i HP. RPM ma parę cech które czynią tworzenie pakietów na wiele platform prostszymi. Pierwszą z nich jest dyrektywa ``optflags'' w pliku /etc/rpmrc. Może ona być wykorzystana do ustawienia odpowiednich opcji i flag, specyficznych dla architektury, potrzebnych do kompilacji bądź instalacji. Następną cechą ułatwiającą tworzenie pakietów na wiele platform są makra ``arch'' w pliku specyfikującym. Mogą one być wykorzystane do wykonania różnych rzeczy zależnych od architektury na której pakiet jest instalowany. Następną taką cechą jest dyrektywa ``Exclude'' w nagłówku. 7.1 Przykładowy plik specyfikujący .spec Poniżej zamieszczona jest część pliku specyfikującego dla pakietu ``fileutils''. Jest on przygotowany do instalacji na dwóch platformach: Alfach i Intelu. 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 Dyrektywa optflags W powyższym przykładzie przedstawione zostało użycie dyrektywy ``optflags'' z /etc/rpmrc. RPM_OPT_FLAGS przyjmują odpowiednią wartość w zależności od tego na jakiej platformie instalowany jest pakiet. Do pliku Makefile użytego w pakiecie należy nanieść poprawki by korzystał z tej zmiennej zamiast standardowych opcji (np. -m486 lub -O2). Możesz się zorientować co powinno być zrobione poprzez zainstalowanie pakietu źródłowego, jego rozpakowanie i przyjrzenie się plikowi Makefile. Następnie należy zajrzeć do plików z poprawkami dla pliku Makefile i sprawdzić jakie zmiany powinny być wprowadzone. 7.3 Makra Makro %ifarch jest bardzo istotne dla tworzenia pakietów na wiele architektur. W większości przypadków potrzebujesz nanieść jedną lub dwie poprawki specyficzne tylko dla jednej, konkretnej architektury. W takiej sytacji RPM pozwala na naniesienie poprawki wyłącznie dla niej. W powyższym przypadku, pakiet fileutils ma poprawkę dla maszyn 64-bitowych. To naturalnie w chwili obecnej stosuje się tylko do Alf. Tak więc dodajemy makro %ifarch nanoszące odpowiednią poprawkę: %ifarch axp %patch1 -p1 %endif To zapewni, że poprawka nie będzie naniesiona na żadnej innej architekturze a wyłącznie na alfach. 7.4 Wyłączanie pewnych platform w pakietach Można opiekować się źródłowymi RPM-ami w jednym katalogu dla wszystkich platform. Uzyskuje się to poprzez ``wyłączenie'' (ang. exclude) pewnych pakietów z tworzenia ich dla pewnych architektur, tak, że ciągle możliwym jest: rpm --rebuild /usr/src/SRPMS/*.rpm dające w wyniku poprawne pakiety. Jeśli aplikacja nie została jeszcze do tej pory przeniesiona na daną platformę to wystarczy dodać wiersz wygladający mniej więcej tak: ExcludeArch: axp do nagłówka pliku specyfikującego pakiet źródłowy. Następnie przebuduj pakiet na platformę na której już pracuje. W ten sposób uzyskuje się pakiet, który kompiluje się/tworzy się np. na Intel-u podczas gdy może być łatwo opuszczony na Alfie. 7.5 Ostatnie poprawki Wykorzystanie RPM to tworzenia pakietów przeznaczonych na wiele platform jest zazwyczaj prostsze niż doprowadzenie pakietu do stanu w którym daję się on na nich zainstalować. Jednakże w miarę jak powstaje więcej i więcej pakietów w postaci binarnej staje się to coraz prostsze. Jeśli przy tworzeniu pakietu zabrniesz w ślepą uliczkę to jak zwykle, rozwiązaniem może być zajrzenie do kodu źródłowego podobnego pakietu. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
RPM HOWTO pl
RPM HOWTO pl (3)
RPM HOWTO pl 2 (2)
RPM HOWTO pl 8 (2)
rpm howto pl 6
RPM HOWTO pl 3 (2)
RPM HOWTO pl 4 (2)
RPM HOWTO pl 1 (2)
RPM HOWTO pl 5 (2)
RPM HOWTO pl (2)
bootdisk howto pl 8
PPP HOWTO pl 6 (2)
NIS HOWTO pl 1 (2)
cdrom howto pl 1
jtz howto pl 5
Keystroke HOWTO pl (2)
PostgreSQL HOWTO pl 14
printing howto pl 5
debian apt howto pl

więcej podobnych podstron