Creare un pacchetto, che contenga solo binari, é abbastanza riduttivo
per le caratteristiche che l'RPM stesso fornisce. Editiamo allora
in maniera opportuna il nostro file matrix-0.2.SPEC:
Summary: Pacchetto
di elaborazione matrici matrix
Name: matrix
Version: 0.2
Release: 2
Copyright: GPL
Group: Utility
Source: ftp://ftp.techoz.it/matrix-0.2/matrix-0.2.tar.gz
%description
Pacchetto di elaborazioni di semplici matrici
%prep
%setup
%build
configure --prefix=/usr/bin
make
%install
make install
%clean
rm -fr matrix-0.2
%files
%config /etc/matrix.cfg
/usr/bin/matrix
/usr/man/man4/matrix.4
%doc NEWS
%doc README
%doc AUTHORS
%doc INSTALL
%doc ChangeLog
Il file matrix-0.2.SPEC,che deve essere posto nella directory /usr/src/rpm/SPECS,
é composto da differenti sezioni, che analizziamo:
%prep. Forse in cui il file deve essere decomposto e preparato per
la compilazione. Di solito é composta semplicemente da una sottosezione
%setup, che vediamo sotto e che ha come compito principale di scompattare
il sorgente, eseguendo il tar sul file, il cui nome é ricavato dal
tag Source, posto all'interno del file matrix-0.2.SPEC stesso.
%build. Qui l'RPM, configura e compila il pacchetto, dopo averlo
scompattato. Nel nostro esempio abbiamo supposto di aver creato
il tarball via autoconf. La directory di lavoro, dove RPM compila
e configura é:/usr/src/redhat/BUILD.
%install. Dopo la compilazione i file vanno copiati nelle posizioni
adeguate, e per far ciò basta fare il comando make install. Si noti
che anche qui non avessimo usato i Makefile, si sarebbe dovuto usare
il comando install o un semplice cp. La directory di lavoro é anche
qui /usr/src/redhat/BUILD.
%clean. Vengono eliminati i vecchi dati della directory /usr/src/rpm/BUILD,
e per far ciò :rm -fr nomepacchetto.
%files. Dopo aver svolto le sessioni precedenti, i files sono posizionati
sul disco rigido, ma non sono posti come dovrebbero. Bisogna dire
all'RPM dove trovare i file, siccome durante l'esecuzione delle
sezioni precedenti l'RPM non ne ha tenuto traccia. E questa operazione
viene svolta mediante la sezione %files. I file di configurazione
vanno specificati nella direttiva %config e quelli di documentazione
con la direttiva %doc. L'RPM copia automaticamente questi ultimi
nella directory /usr/doc/nome-pacchetto, ovvero nel nostro caso
/usr/doc/matrix-0.2.
Da notare che la struttura del tarball, che andrà poi posto nella
directory /usr/src/rpm/SOURCES deve essere il tarball di una directory
contenete il pacchetto avente come nome, quello indicato nel .SPEC,
alla direttiva Source. Sia matrix-0.2 il nome del pacchetto, la
directory che contiene i file del pacchetto deve essere matrix-0.2.
Procediamo quindi nel seguente modo:
mkdir matrix-0.2
tar cfvz matrix.tar.gz matrix-0.2
mv matrix.tar.gz /usr/src/rpm/SOURCES
A questo punto per compilare e ottenere il tutto basta fare:
cd /usr/src/rpm/SPECS
rpm -bb matrix-0.2.SPEC
Nell'esempio presentato sopra abbiamo tralasciato alcune sezioni,
che possono essere utili nella creazione di un pacchetto. Presentiamole
nella tabella sottostante seguendo l'ordine in cui vanno poste.
Tabella 2-12. Sezione dei file di specifica RPM
|
Sezione |
Descrizione |
|
Summary: testo |
Panoramica sul pacchetto. |
|
Nome: pacchetto |
Nome del pacchetto. |
|
Versione: versione |
Versione del pacchetto. |
|
Release: release |
Release del pacchetto |
|
Source: file |
File sorgente. |
|
Patch: file |
Patch di applicare. |
|
Copyright: Testo |
Tipo di licenza |
|
BuildRoot: directory |
Directory temporanea di installazione. |
|
%define nomevalore |
Definizione di una macro. |
|
%description |
Segue descrizione |
|
%prep |
Segue fase di preparazione. |
|
%setup |
Scompatta il pacchetto. |
|
%patch |
Applica la patch indicata. |
|
%build |
Segue istruzioni per la compilazione. |
|
%install |
Segue istruzioni per l'installazione. |
|
%clean |
Segue fase rimozione fine lavoro |
|
%pre |
Segue script di pre-installazione. |
|
%post |
Segue script di post-installazione. |
|
%preun |
Segue script di pre-disintallazione. |
|
%postun |
Segue script di post-disinstallazione. |
|
%files |
Segue elenco files. |
|
%config |
Segue file di configurazione. |
|
%doc |
Segue file di documentazione. |
|
Sezione |
Descrizione |
Torna all'indice Generale del corso di Corso di C con Linux di Software Planet