Supponete ora di aver finito la vostra applicazione, e volete
che oltre al tarball, sia disponibile in formato RPM, ad uso e consumo
degli utenti Linux, che usino il Red Hat Package Manager, cosa fareste?
In questo paragrafo vediamo come creare un file RPM contenente i
vostri eseguibili, e un RPM contenente i sorgenti.
Supponiamo di aver creato il nostro programma di elaborazioni di
matrici, che chiameremo matrix, e questo programma abbia una man
page e un file di configurazione, chiamato matrix.cfg, che va posto
nella directory /etc.
Per poter creare un rpm, contenente tali file é necessario :
Assicurarsi che il file /etc/rpmrc sia impostato in maniera corretta
Creare un file di specifiche sul pacchetto
Creare il pacchetto mediante tale file di specifiche.
Esempio di /etc/rpmrc.
Vediamo come può essere settato il file di configurazione di
RPM:
require_vendor: 1
distribution: Red Hat
require_distribution: 1
topdir: /usr/src/packs
vendor: NerSoft
packager: NerSoft Gestione Software <nrsof@soft.it>
optflags: i386 -O2 -m486
optflags: alpha -O2
optflags: sparc -O2
signature: pgp
pgp_name:
pgp_path: /home/packages/.pgp
tmppath: /tmp
La linea 1, obbliga RPM a trovare una linea vendor, dove si specifica
di solito il produttore del pacchetto. Le linee:
distribution: Red
Hat
require_distribution: 1
Sono direttamente collegate poiché se la seconda é settata a 0,
nella prima non é necessario specificare per quale distribuzione
debba essere creato il pacchetto. Tralasciamo le due linee successive,
che sembrano abbastanza chiare e passiamo ad optflags, li vengono
specificati i flag da passare al compilatore per rendere il programma
ottimizzato per la data piattaforma; l'ottimizzazione viene fatta
durante la compilazione del pacchetto stesso. Le restanti linee
servono per l'autenticazione del pacchetto. Oltre a queste opzioni
per il file /etc/rpmrc, ne esistono altre che potete scoprire con
il comando : rpm --showrc.
Creiamo il file di specifiche.
Dopo aver settato a modo l'rpm, creiamo il nostro file di specifiche,
matrix-1.0.SPEC:
Summary:Pacchetto
di elaborazione matematica matrix
Name: matrix
Version: 1.0
Release: 1
Copyright: GPL
Group: Utility
Source: ftp://ftp.techno.it/matrix.tar.gz
%description
Progetto di Laboratorio. Parser per le elaborazioni di matrici.
%files
%config /etc/matrix.cfg
/usr/bin/matrix
/usr/man/man4/matrix.4
Cerchiamo di descrivere a modo questo file, e i suoi campi:
Summary. Contiene una descrizione riassuntiva del pacchetto
Name. É la label che verrà assegnata al pacchetto all'interno del
database dopo l'installazione.
Version. Versione del software.
Release. Numero di versione indicante il numero di volte che il
pacchetto é stato impacchettato per questa versione.
Copyright. Indica chi detiene il copyright su quel determinato pacchetto.
Group. Indica a quale gruppo deve appartenere il pacchetto.
Source. Serve per indicare l'URL in cui é possibile reperire il
pacchetto.
Description Da una generale panoramica sull'utilizzo del pacchetto.
Files Indica quali siano i file che fanno parte del pacchetto. Ogni
file di configurazione é necessario farlo precedere dal %config.
Creiamo il pacchetto RPM
Ora copiamo i file nelle posizioni specificate dal file .SPEC
nel nostro sistema (tanto per intenderci l'eseguibile matrix va
in /usr/bin,la man page in /usr/man/man4, il file di configurazione
matrix.cfg in /etc). A questo punto possiamo fare la creazione del
pacchetto con il comando:
cyberspace.org:~#
rpm -bb matrix-0.1.SPEC
Processing files: matrix
Finding provides...
Finding requires...
Requires: ld-linux.so.2 libc.so.6 libc.so.6(GLIBC_2.0)
Wrote: /usr/src/rpm/RPMS/i386/matrix-0.1-1.i386.rpm
Abbiamo ora ottenuto il nostro pacchetto, installiamolo:
cyberspace.org:/usr/src/rpm/RPMS/i386
# rpm -i matrix-0.1-1.i386.rpm
E interroghiamolo:
cyberspace.org:~# rpm -qi
matrix
Name : matrix Relocations: (not relocateable)
Version : 0.1 Vendor: NerSoft
Release : 1 Build Date: Thu Feb 10
20:41:11 2000
Install date: Fri Feb 11 11:54:55 2000 Build Host: liz.cyberspace.org
Group : Utility Source RPM: matrix-0.1-1.src.rpm
Size : 25168 License: GPL
Summary : Pacchetto di elaborazione matrici matrix
Description : Pacchetto di elaborazioni di semplici matrici
Torna all'indice Generale del corso di Corso di C con Linux di Software Planet