Tworzenie rpm-≤w jest do╢µ proste, szczeg≤lnie je╢li oprogramowanie kt≤re chcesz tam w│o┐yµ poprawnie siΩ instaluje.
Procedura tworzenia RPM-≤w wygl▒da tak:
/etc/rpmrc
jest obecny i skonfigurowany w Twoim systemie.Zazwyczaj RPM tworzy zar≤wno pakiety binarne jak i ╝r≤d│owe.
W chwili obecnej, jedyny spos≤b konfiguracji RPM-a
jest dostΩpny poprzez plik /etc/rpmrc
.
Przyk│adowy plik wygl▒da tak:
require_vendor: 1
distribution: Moja w│asna dystrybucja!
require_distribution: 1
topdir: /usr/src/me
vendor: Kubu╢soft
packager: Pakuj▒cy RPM w Kubu╢soft <pakiety@kubu╢soft.com.pl>
optflags: i386 -O2 -m486 -fno-strength-reduce
optflags: alpha -O2
optflags: sparc -O2
signature: pgp
pgp_name: Pakuj▒cy RPM w Kubu╢soft
pgp_path: /home/pakiety/.pgp
tmppath: /usr/tmp
Wiersz require_vendor
zmusza RPM-a to szukania
wiersza z nazw▒ producenta pakiet≤w (vendor).
Ta mo┐e pochodziµ z pliku /etc/rpmrc
lub z nag│≤wka pliku spec.
By wy│▒czyµ tΩ opcjΩ, zmie± liczbΩ na 0
.
Analogicznie jest w przypadku wierszy
require_distribution
oraz
require_group
.
NastΩpnym wiersz zawiera distribution
czyli nazwΩ dystrybucji.
Mo┐esz j▒ zdefiniowaµ tutaj, b▒d╝ p≤╝niej,
w nag│≤wku pliku spec.
====================
Tworz▒c pakiet dla konkretnej dystrybucji warto zadbaµ
by wiersz ten zawiera│ poprawn▒ informacjΩ,
nawet pomimo tego, ┐e nie jest wymagany.
Tyczy siΩ to r≤wnie┐ wiersza vendor
(producent),
choµ nazwa mo┐e byµ zupe│nie dowolna
(np. Joe's Software, Rock Music Emporium).
RPM pozwala r≤wnie┐ tworzyµ pakiety dla r≤┐nych platform
sprzΩtowych.
Plik rpmrc
mo┐e zawieraµ zmienn▒ ``optflags''
wykorzystywan▒ przy building budowaniu tych element≤w pakietu,
kt≤re wymagaj▒ opcji zale┐nych od platformy.
Dok│adniejszy opis tej zmiennej pojawi siΩ w jednym
z nastΩpnych rodzia│≤w.
Nie s▒ to oczywi╢cie wszystkie etykiety/makra. Jest ich wiΩcej. By siΩ im przyjrzeµ spr≤buj komendy:
rpm --showrc
kt≤ra powinna wypisaµ wszystkie mo┐liwe etykiety
wraz z ich warto╢ciami(o ile s▒ ustawione).
Niniejszy rozdzia│ zawiera opis pliku specyfikuj▒cego pakiet. Pliki takie s▒ niezbΩdne by stworzyµ pakiet. Zawiera on opis oprogramowania wraz z instrukcjami instalacyjnymi oraz listΩ wszystkich plik≤w binarnych przez niego instalowanych.
Plik specyfikuj▒cy warto jest nazwaµ zgodnie z konwencj▒. Powinno ty wygl▒daµ mniej wiΩcej tak: nazwa pakietu-kreska-numer wersji-kreska-release number-kropka-spec.
A tak wygl▒da przyk│adowy plik specyfikacyjny (eject-3.0-1.spec):
Summary: ejects ejectable media and controls auto ejection
Name: eject
Version: 1.4
Release: 3
Copyright: GPL
Group: Utilities/System
Source: sunsite.unc.edu:/pub/Linux/utils/disk-management/eject-1.4.tar.gz
Patch: eject-1.4-make.patch
Patch1: eject-1.4-jaz.patch
%description
This program allows the user to eject media that is autoejecting like
CD-ROMs, Jaz and Zip drives, and floppy drives on SPARC machines.
%prep
%setup
%patch -p1
%patch1 -p1
%build
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
%install
install -s -m 755 -o 0 -g 0 eject /usr/bin/eject
install -m 644 -o 0 -g 0 eject.1 /usr/man/man1
%files
%doc README COPYING ChangeLog
/usr/bin/eject
/usr/man/man1/eject.1
Nag│≤wek zawiera kilka standardowych p≤l kt≤re powinny byµ wype│nione.
Pola nag│≤wka powinny byµ wype│nione w poni┐szy spos≤b:
Summary:
Jest to jednowierszowy,
skr≤cony opis pakietu. Name:
To pole zawiera nazwΩ pliku rpm.
ªci╢le jest to string bΩd▒cy t▒ czΩ╢ci▒ nazwy pliku
rpm kt≤ra odpowiada nazwie pakietu.Version:
To pole zawiera wersjΩ pliku rpm.
ªci╢le jest to string bΩd▒cy t▒ czΩ╢ci▒ nazwy pliku
rpm kt≤ra odpowiada wersji pakietu.Release:
To pole zawiera numer modyfikacji
pliku rpm. Jest to liczba m≤wi▒ca z kt≤r▒
modyfikacj▒ (podwersj▒) obecnej wersji pakietu
mamy do czynienia (tzn. je╢li dokonany w pakiecie
tylko minimalnych poprawek b│Ωd≤w to wypuszczamy
pakiet w tej samej wersji ale z numerem modyfikacji
wiΩkszym o jeden).Icon:
To pole zawiera nazwΩ pliku z ikon▒
przeznaczon▒ do wykorzystania przez narzΩdzia
instalacyjne wy┐szego poziomu
(np. ``glint'' RedHat-a). Plik ten powinien byµ
zapisany w formacie GIF i znajdowaµ siΩ w
katalogu SOURCES.Source:
This wiersz zawiera nazwΩ
pliku ╝r≤d│owego z kt≤rego jest budowany dany rpm.
Jest to pomocne w sytuacji gdy chce siΩ kiedy╢
ponownie uzyskaµ kody ╝r≤d│owe lub sprawdziµ
czy nie ma ich nowszej wersji.
Uwaga: Nazwa pliku w tym wierszu MUSI
odpowiadaµ nazwie pliku obecnego w Twoim systemie.
(tzn. nie zmieniaj nazw plik≤w ╝r≤d│owych po
ich ╢ci▒gniΩciu). Mo┐na podaµ wiΩcej ni┐ jeden
pli ╝r≤d│owy pisz▒c w poni┐szy spos≤b:
Source0: blah-0.tar.gz
Source1: blah-1.tar.gz
Source2: fooblah.tar.gz
Te pliki powinny siΩ znale╝µ w katalogu SOURCES
.
(Struktura tego katalogu jest opisana w rozdziale
"Katalogi z plikami ╝r≤d│owymi".)Patch:
To pole zawiera miejsce w kt≤rym
bΩdzie mo┐na znale╝µ poprawki(patch) je╢li
zainstnieje potrzeba ich ponownego ╢ci▒gniΩcia.
Uwaga: Nazwa tego pliku musi odpowiadaµ nazwie pliku
jaki jest u┐yty do naniesienia Twoich poprawek.
Mo┐na te┐ podaµ wiele plik≤w z poprawkami analogicznie
do wielu plik≤w ╝r≤d│owych:
Patch0: blah-0.patch
Patch1: blah-1.patch
Patch2: fooblah.patch
Te pliki powinny siΩ znale╝µ w katalogu SOURCES
.Copyright:
Ten wiersz opisuje spos≤b
stosowania prawa autorskiego do pakietu. Najlepiej
wykorzystaµ jedn▒ z dobrze zdefiniowanych kategorii:
GPL, BSD, MIT, public domain, distributable,
lub commercial.BuildRoot:
Ten wiersz pozwala zdefiniowaµ
g│≤wny katalog (``root'') dla tworzenia i instalacji pakietu.
Mo┐na to wykorzystaµ np. do testowania instalacji pakietu
zanim siΩ go zainstaluje w docelowym miejscu.Group:
Ten wiersz s│u┐y do tego, by
programy instalacyjne wy┐szego poziomu (wspomniany
``glint'') wiedzia│y w jakim miejscu ich hierarchicznej
struktury grup pakiet≤w umie╢ciµ dany pakiet.
W chwili obecnej drzewo grup pakiet≤w wygl▒da
mniej wiΩcej tak:
Applications
Communications
Editors
Emacs
Engineering
Spreadsheets
Databases
Graphics
Networking
Mail
Math
News
Publishing
TeX
Base
Kernel
Utilities
Archiving
Console
File
System
Terminal
Text
Daemons
Documentation
X11
XFree86
Servers
Applications
Graphics
Networking
Games
Strategy
Video
Amusements
Utilities
Libraries
Window Managers
Libraries
Networking
Admin
Daemons
News
Utilities
Development
Debuggers
Libraries
Libc
Languages
Fortran
Tcl
Building
Version Control
Tools
Shells
Games
%description
Nie jest to element nag│≤wka
w ╢cis│ym tego s│owa znaczeniu ale jego opis powinien siΩ znale╝µ
wraz z opisem nag│≤wka. Dla ka┐dego pakietu lub subpakietu
potrzebne jest jedno takie pole zawieraj▒ce wyczerpuj▒cy
opis pakietu.
Jest to druga czΩ╢µ pliku specyfikuj▒cego.
U┐ywa siΩ jej do przygotowania ╝r≤de│ do kompilacji.
W niej powinny znajdowaµ siΩ wszystkie czynno╢ci
niezbΩdne by nanie╢µ poprawki do ╝r≤de│ i doprowadziµ
je do stanu w kt≤rym bΩdzie mo┐na wydaµ komendΩ make
.
Jedn▒ rzecz nale┐y podkre╢liµ:
Ka┐da z tych czΩ╢ci jest tak naprawdΩ tylko miejscem
do umieszczenia odpowiednich skrypt≤w.
Mo┐esz po prostu napisaµ skrypt w sh
a nastΩpnie umie╢ciµ go po znaczniku %prep
by rozpakowaµ i wprowadziµ poprawki do swoich program≤w.
By to u│atwiµ powsta│y specjalne makra.
Pierwszym z nich jest makro %setup
.
W swojej najprostszej formie
(bez dodatkowych opcji w linii polece±),
rozpakowywuje ona ╝r≤d│a i zmienia bie┐▒cy katalog
na katalog zawieraj▒cy ╝r≤d│a.
Poza tym ma jednak dodatkowe opcje:
-n name
ustawi nazwΩ roboczego katalogu na name
.
Domy╢lnie jest to $NAZWA-$WERSJA
.
Do innych mo┐liwo╢ci nale┐▒ $NAZWA
,
${NAZWA}${WERSJA}
,
czy jak▒kolwiek inn▒ u┐ywana przez g│≤wny plik tar.
(ProszΩ zauwa┐yµ, ┐e zmienne ``$'' nie
s▒ faktycznymi zmiennymi dostΩpnymi wewn▒trz pliku
specyfikuj▒cego. W rzeczywisto╢ci s▒ one tutaj u┐yte
w miejsce przyk│adowej nazwy. W pakiecie nale┐y u┐yµ
rzeczywistej nazwy i wersji, a nie zmiennej.)-c
utworzy i wejdzie do
wymienionego katalogu zanim zacznie siΩ rozpakowywanie
poprzez untar.-b #
wykona untar (rozpakuje) Source# zanim wejdzie do katalogu roboczego
(nie ma sensu │▒czenie tej opcji z -c
, a wiΩc siΩ tego nie robi).
Jest to przydatne wy│▒cznie w przypadku wielu plik≤w
╝r≤d│owych.-a #
wykona untar (rozpakuje) Source# po wej╢ciu do katalogu.-T
Ta opcja zmienia domy╢ln▒ procedurΩ
rozpakowywania (untar) ╝r≤de│ i wymaga -b 0
lub
-a 0
by g│≤wny plik ╝r≤d│owy zosta│ rozpakowany (untar).
Komenda ta jest potrzebna gdy u┐ywany jest wiΩcej ni┐ jeden
komplet plik≤w ╝r≤d│owych.-D
Nie usuwaj katalogu przed
rozpakowaniem.
Jest ona przydatna tylko wtedy, gdy ma siΩ wiΩcej ni┐
jedno makro konfiguracyjne.
Powinna byµ u┐ywana wy│▒cznie w makrach konfiguracyjnych
wy│▒cznie po wykonaniu pierwszego z nich
(ale nigdy wΩwn▒trz pierwszego z nich).NastΩpne dostΩpne makra znajduj▒ siΩ w makrze %patch
.
Makro te pomaga zautomatyzowaµ proces nanoszenie poprawek
do ╝r≤de│.
Mo┐liwe s▒ liczne opcje opisane poni┐ej:
#
zastosuje Patch#
jako plik z poprawkami.-p #
podaje liczbΩ katalog≤w
do usuniΩcia z nazwy przed wykorzystaniem polecenia patch(1)-P
Domy╢lnie stosowana jest
Patch
(lub
Patch0
). Ta flaga wy│▒cza to zachowanie a wiΩc wymusza
0
by g│owne pliki ╝r≤d│owe siΩ rozpakowa│y. Opcja ta
jest przydatna w drugim (b▒d╝ dalszym) makrze
%patch
kt≤re wymaga innego ni┐ pierwsze makro
numeru poprawki.%patch#
zamiast : %patch # -P
To s▒ wszystkie makra jakich potrzebujesz. Po ich poprawnym
napisaniu mo┐na wykonaµ dowolne inne komendy konfiguracyjne
poprzez stworzenie odpowiednich fragment≤w skrypt≤w w sh
.
Wszystko co zostanie umieszczone a┐ do makra %build
(omawianego w nastΩpnym rozdziale) bΩdzie wykonane przez sh
.
Przyk│ady powy┐ej mog▒ sugerowaµ rzeczy jakie chcia│by╢
tam umie╢ciµ.
Dla tej sekcji nie ma jakich╢ specjalnych makr.
Powinno siΩ w niej umieszczaµ dowolne polecenia
potrzebne do stworzenia pakietu po rozpakowaniu
╝r≤de│, naniesieniu poprawek i przej╢ciu do katalogu
roboczego. Jest to po prostu nastΩpny zbi≤r polece±
przekazany do sh
, wiΩc mo┐na tu u┐ywaµ
dowolnych poprawnych polece± sh
(w│▒cznie z komentarzami).
Katalog roboczy na pocz▒tku ka┐dej z sekcji jest
ustawiany na katalog g│≤wny z plikami ╝r≤d│owymi,
o czym trzeba pamiΩtaµ i w razie potrzeby przechodziµ
do odpowiednich podkatalog≤w.
Tu r≤wnie┐ nie ma jakich╢ specjalnych makr. Sekcja
ta powinna zawieraµ listΩ polece± potrzebnych
do instalacji pakietu. Je╢li wykonujesz
make install
by zainstalowaµ pakiet, umie╢µ to tu.
Mo┐esz r≤wnie┐ nanie╢µ poprawki do makefile'a zanim
wykonasz make install
. Je╢li nie to umie╢µ tu sekwencjΩ
polece± sh
jakich potrzebujesz. Katalog roboczy,
identycznie jak w poprzednim przypadku, jest ustawiany
przed wykonaniem tych polece± na g│≤wny katalog z plikami
╝r≤d│owymi.
Mo┐esz tu umie╢ciµ skrypty do wykonania przed i po
instalacji/deinstalacji (tzn. sekcjami Install/Uninstall).
G│≤wny pow≤d to np. potrzeba wykonania komendy ldconfig
po instlacji b▒d╝ usuwaniu pakiet≤w zaiweraj▒cych biblioteki
dzielone. Makra s▒ zdefiniowane jak poni┐ej:
%pre
makro z poleceniami wykonywanymi przed sekcj▒ Install.%post
makro z poleceniami wykonywanymi po sekcji Install.%preun
makro z poleceniami wykonywanymi przed sekcj▒ Uninstall.%postun
makro z poleceniami wykonywanymi po sekcji Uninstall.Sekcje te mog▒ zawieraµ dowolne poprawne polecenia sh
( nie potrzebujesz wstawiaµ #!/bin/sh
na pocz▒tku).
W sekcji tej musisz wypisaµ pliki jakie wchodz▒
w sk│ad pakietu. RPM nie potrafi okre╢liµ jakie pliki
zostaj▒ zainstalowan na skutek np. make install
.
Tego siΩ po prostu NIE DA zrobiµ.
Owszem, by│a propozycja wykonywania polecenia find
przed i po instalacji pakietu. Jednak w systemach
wielou┐ytkownikowych nie jest to zbyt sensowne gdy┐
w tym samym czasie mog│o powstaµ wiele innych plik≤w nie
maj▒cych najmniejszego zwi▒zku z instalowanym pakietem.
W tej sekcji dostΩpne jest pare specjalnych makr. S▒ one opisane poni┐ej:
%doc
s│u┐y do zaznaczenia kt≤re pliki
pakietu s▒ jego dokumentacj▒. Dokumentacja ta zostanie
umieszczona w katalogu:
/usr/doc/$NAZWA-$WERSJA-$MODYFIKACJA
.
Mo┐na zar≤wno podaµ nazwy kilku plik≤w w linii zawieraj▒cej
to makro jak i podaµ te nazwy oddzielnie u┐ywaj▒c makra
dla ka┐dej z nich.%config
s│u┐y do zaznaczenia plik≤w
konfiguracyjnych w obrΩbie pakietu. Chodzi tu o pliki typu:
sendmail.cf, passwd, etc. W trakcie deinstalacji pliki
te s▒ usuwane o ile nie by│y zmieniane. Je╢li by│y,
to ich nazwa zostaje zmieniona poprzez dodanie ko±c≤wki
.rpmsave
.
Analogicznie jak dla plik≤w z dokumentacj▒ jedno makro
mo┐e s│u┐yµ do zdefiniowania kilku takich plik≤w.%dir
zaznacza dany katalog jako
nale┐▒cy do pakietu. Domy╢lnie, je╢li pojawi siΩ
nazwa katalogu BEZ makra %dir
, WSZYSTKO
w tym katalogu jest w│▒czane w liste plik≤w i nastΩpnie instalowane jako czΩ╢µ pakietu. To makro pozwala tego unikn▒µ.%files -f <filename>
pozwala
na w│▒czenie listy plik≤w znajduj▒cej siΩ w jakim╢
pliku w obrΩbie katalogu z plikami ╝r≤d│owymi.
Jest to wygodne gdy procedura instalacji buduje
w│asn▒ listΩ plik≤w kt≤r▒ nastΩpnie mo┐na w│▒czyµ jedn▒ komend▒
bez podawania nazw tych plik≤w. Mo┐na te┐ tak▒ listΩ
stworzyµ np. z pomoc▒ komendy find. NajwiΩksz▒ trudno╢ci▒ w li╢cie plik≤w jest podawanie
katalag≤w. Je╢li np. podasz przez pomy│kΩ
/usr/bin
, to Tw≤j pakiet rpm bΩdzie zawiera│
wszystkie pliki w katalogu /usr/bin
w Twoim komputerze.
Jedn▒ z podstawowych rzeczy jest poprawnie skonfigurowane
katalog≤w w kt≤rych RPM bΩdzie budowa│ pakiet.
Robi siΩ to poprzez plik /etc/rpmrc
.
WiΩkszo╢µ os≤b u┐ywa po prostu /usr/src
.
Mo┐liwe, ┐e bΩdziesz potrzebowa│ utworzyµ poni┐sze katalogi:
BUILD
jest katalogiem w kt≤rym RPM buduje pakiet.
Pr≤bne tworzenie pakietu mo┐esz wykonaµ w jakimkolwiek
katalogu kt≤ry tu podasz.SOURCES
jest katalogiem w kt≤rym powiniene╢ umie╢ciµ
oryginalne pliki ╝r≤d│owe i pliki z poprawkami. Jest to miejsce
do kt≤rego RPM bΩdzie zagl▒da│ domy╢lnie.SPECS
jest katalogiem w kt≤rym powinny siΩ znale╝µ
wszystkie pliki specyfikujace (spec).RPMS
RPM umie╢ci tu binarme pliki RPM
po ich zbudowaniu.SRPMS
RPM umie╢ci to pliki RPM z plikami ╝r≤d│owymi.Pierwsz▒ rzecz▒ do zroienia jest doprowadzenie plik≤w ╝r≤d│owych
do takiego stanu by kompilowa│y i/lub instalowa│y siΩ
bez pomocy RPM-a. By to osi▒gn▒µ, rozpakuj ╝r≤d│a
i zmie± nazwΩ katalogu na $NAZWA.orig.
NastΩpnie ponownie rozpakuj ╝r≤d│a i pracuj na nich.
Wejd╝ do ich katalogu i postΩpuj zgodnie z instrukcjia
ich instalacji/kompilacji. Je╢li bΩdzie konieczna edycja
jakich╢ plik≤w to konieczne bΩdzie wygenerowanie
pliku z poprawkami (patch).
Je╢li doprowadzisz ╝r≤d│a do stanu w kt≤rym bΩd▒ siΩ
poprawnie instalowaµ/kompilowaµ - wyczy╢µ katalog ╝r≤d│owy.
Upewnij siΩ, ┐e wszystkie pliki stworzone w skrypcie
konfiguracyjnym (configure
) zosta│y usuniΩte.
NastΩpnie wyjd╝ z katalogu ╝r≤d│owego i wykonaj co╢
takiego:
diff -uNr dirname.orig dirname > ../SOURCES/dirname-linux.patch
(dirname w tym przyk│adzie to to samo co $NAZWA
parΩ linii powy┐ej).
Polecenie to stworzy plik z poprawkami jaki bΩdzie
m≤g│ byµ wykorzystany w pliku specyfikacyjnym.
Zauwa┐, ┐e ``linux'' w nazwie pliku z poprawkami
jest jakim╢ wybranym identyfikatorem.
Zamiast tego mo┐na u┐yµ czego╢ bardziej precyzyjnego
jak np. ``config'' lub ``bugs'' (b│Ωdy) by opisaµ dlaczego
poprawki by│y potrzebne.
Przed u┐yciem pliku z poprawkami warto do niego zajrzeµ
by siΩ upewniµ, ┐e przypadkiem nie znalaz│o siΩ w nim co╢
niew│a╢ciwego jak np. pliki binarne.
Teraz, gdy ╝r≤d│a siΩ kompiluj▒ i instaluj▒ i wiadomo jak to robiµ to zr≤b to, skompiluj i zainstaluj. Przyjrzyj siΩ wynikowi instalacji i stw≤rz w ten spos≤b listΩ plik≤w do u┐ycia w pliku specyfikuj▒cym. Zazwyczaj plik specyfikuj▒cy powstaje r≤wnocze╢nie z opisywanymi tu krokami. Po prostu tworzy siΩ go na pocz▒tku wstawiaj▒c to co jest znane i potem w miarΩ postΩpu prac uzype│nia siΩ go o brakuj▒ce kawa│ki.
Gdy plik specyfikuj▒cy jest gotowy, mo┐na ju┐ pr≤bowaµ tworzyµ nowy pakiet. Najwygodniej jest to zrobiµ poni┐szym poleceniem:
rpm -ba foobar-1.0.spec
Opcja -b
ma parΩ interesuj▒cyh podopcji:
p
oznacza wykonanie sekcji prep
pliku
specyfikuj▒cego. l
is a list check that does some checks on
%files
. ?????c
wykonaj sekcjΩ prep
i kompiluj.
Jest to przydatne gdy jest siΩ niepewnym czy ╝r≤d│a
w og≤le bΩd▒ siΩ kompilowaµ/instalowaµ. Owszem,
na pierwszy rzut oka mo┐e to wygl▒daµ na zbΩdne
gdy┐ mo┐na dot▒d pracowaµ ze ╝r≤d│ami a┐ bΩd▒ siΩ
kompilowaµ jednak gdy przyzwyczaisz siΩ
do wykorzystania RPM-a to spotkasz siΩ z sytuacjami w
kt≤rach ta opcja oka┐e siΩ przydatna.i
wykonaj prep, kompiluj i instaluj.b
prep, kompiluj, instaluj, i buduj jedynie
pakiet binarny. a
zbuduj wszystko - zar≤wno pakiet ╝r≤d│owy jak i binarny.-b
:
--short-circuit
??? przejdzie prosto do
okre╢lonego etapu (mo┐e byµ u┐yte wy│▒cznie z c i i)--clean
usuwa katalog ze ╝r≤d│ami stworzony
w czasie budowania pakietu.--keep-temps
zachowa wszystkie pliki
temporalne i skrypty kt≤re zosta│y umieszczone
w /tmp. Mo┐na sprawdziµ na bie┐▒co jakie to s▒
pliki wykrozystuj▒c opcjΩ -v
.--test
nie wykonuje ┐adnych rzeczywistych
etap≤w choµ wykonuje keep-temp.Po stworzeniu pakietu rpm ╝r≤d│owego i binarnego nale┐y je przetestowaµ. Najpro╢ciej i najlepiej jest wykorzystaµ do tego zupe│nie inny komputer ni┐ ten na kt≤rym pakiet by│ tworzony. W ko±cu przy tworzeniu pakietu by│ on do╢µ czΩsto instalowany i na komputerze na kt≤rym powstawa│ powinien byµ do╢µ dobrze zainstalowany.
Mo┐na te┐ pr≤bowaµ rpm -u nazwapakietu.rpm
na testowanym pakiecie ale mo┐e byµ to zdradliwe w sytuacji
w kt≤rej jakie╢ pliki zosta│y pominiΩte w li╢cie plik≤w
i nie zostan▒ wtedy usuniΩte.
Wtedy zainstalowany program bΩdzie kompletny mimo tego,
┐e rpm bΩdzie b│Ωdny. PamiΩtaj, ┐e poniewa┐ Ty ju┐
zrobi│e╢ rpm -ba package
, to zdecydowana wiΩkszo╢µ
os≤b instaluj▒cyhc Tw≤j pakiet wykona jedynie
rpm -i package
. Upewnij siΩ, ┐e nie wykonujesz
w sekcjach build
lub install
czego╢ co powinno byµ zrobione gdy instalowany
jest wy│▒cznie pakiet binarny.
Gdy ju┐ stworzy│e╢ sw≤j w│asny pakiet RPM (zak│adaj▒c, ┐e nie ma ju┐ takiego pakietu dostΩpnego pod postaci▒ RPM) mo┐esz udostΩpniµ wynik swojej pracy innym (zak│adaj▒c ┐e to czego pakiet stworzy│e╢ mo┐e byµ tak udostΩpniane). By udostΩpniµ, umie╢µ to na ftp.redhat.com.
Prosimy sprawdziµ siΩ, ┐e nic nie zosta│o pominiΩte jeszcze raz czytaj▒c rozdzia│y o "Testowaniu" i "Co robiµ z nowymi RPM-ami". Chcemy mieµ jako rpm wszystko co siΩ da i chcemy, ┐eby by│y to dobre rpm-y. Prosimy wiΩc po╢wiΩciµ trochΩ czasu na ich dok│adne przetestowanie i prosimy te┐ o umieszczenie ich w archiwum ftp tak, by ka┐dy m≤g│ z nich skorzystaµ. A tak┐e, prosimy upewniµ siΩ, ┐e umieszczasz jedynie bezp│atne oprogramowanie. Oprogramowanie komercyjne i shareware nie powinno byµ umieszczane w archiwum o ile nie zawieraj▒ klauzuli w ich prawach autorskich to dopuszczaj▒cej. Dotyczy to np. Netscape, ssh, pgp, etc.