Come creare o costruire dei pacchetti RPM

Come creare o costruire dei pacchetti RPM

Introduzione —

* Strumento “rpmbuild” è usato per costruire entrambi …

1) pacchetto binario ~ utilizzata per installare il software e gli script di supporto. Esso contiene i file che compongono l’applicazione, insieme con tutte le informazioni supplementari necessarie per installare e cancellarlo.
Pacchetto sorgente 2) ~ contiene il file originale tar compresso del codice sorgente, patch e specifica di file.

* Che cosa è RPM & Manager pacchetto RPM?

Il RPM Package Manager (RPM) è un potente linea di comando del sistema di gestione dei pacchetti in grado di installare, disinstallare, la verifica, l’esecuzione di query, e l’aggiornamento dei pacchetti software.

Pacchetto RPM consiste in un archivio di file e metadati utilizzati per installare e cancellare i file di archivio. La meta-dati comprende degli script helper, gli attributi di file e informazioni descrittive sul pacchetto.

* Per costruire il pacchetto RPM è necessario specificare tre cose ~

1) Fonte di applicazione – In ogni caso, non si dovrebbe modificare le fonti utilizzate nel processo di costruzione del pacchetto.

2) Patches – RPM ti dà la possibilità di applicare automaticamente le patch per loro. La patch risolve un problema specifico al sistema di destinazione. Ciò potrebbe comprendere cambiando makefile per installare l’applicazione in directory appropriate, o risolvere i conflitti cross-piattaforma. Patches di creare le condizioni necessarie per la corretta raccolta.

3) specifica di file – La specifica del file è al centro del processo di costruzione dei pacchetti RPM. Esso contiene le informazioni richieste dalla RPM per costruire il pacchetto, così come le istruzioni dicendo RPM come costruirlo. Il file di specifica detta anche esattamente ciò che i file sono una parte del pacchetto, e dove dovrebbe essere installato.

** Specifica del file ~ è divisa in 8 sezioni, come illustrato di seguito

a) Preambolo ~ contiene le informazioni che verranno visualizzati quando gli utenti richiedono informazioni sul pacchetto. Ciò include una descrizione della funzione del pacchetto, il numero di versione del software, ecc

b) Preparazione ~ in cui il vero lavoro di costruzione di un pacchetto di inizio. Come suggerisce il nome, questa sezione è dove i preparativi necessari sono effettuate prima della costruzione effettiva del software. In generale, se qualcosa deve essere fatto per le fonti prima di costruire il software, si deve accadere nella sezione di preparazione. I contenuti di questa sezione sono uno script di shell ordinaria. Tuttavia, RPM prevede due macro per rendere la vita più facile. Una macro è possibile scompattare un file compresso tar e CD nella directory di origine. La macro altri si applica facilmente le patch ai sorgenti spacchettato.

c) Build ~ Questa sezione è costituita da uno script di shell. E ‘utilizzato per eseguire qualsiasi comando in realtà sono tenuti a compilare i sorgenti, come unico comando make, o essere più complesso se il processo di costruzione richiede. Non ci sono le macro disponibili in questa sezione.

d) Installare ~ Questa sezione contiene anche uno script di shell, la sezione di installazione viene utilizzato per eseguire i comandi necessari per installare effettivamente il software.

e) Installazione e disinstallazione Script ~ Si tratta di script che verrà eseguito, sul sistema dell’utente, quando il pacchetto è in realtà installati o rimossi. RPM in grado di eseguire uno script di pre / post-installazione / rimozione del pacchetto.

f) Verificare Script ~ script che viene eseguito sul sistema dell’utente. E ‘eseguito quando RPM verifica la corretta installazione del pacchetto.

g) Pulizia Sezione ~ script che può pulire le cose dopo la compilazione. Questo script viene utilizzato raramente, poiché RPM fa normalmente un buon lavoro di risanamento nella maggior parte degli ambienti di build.

h) Elenco dei file ~ è costituito da un elenco di file che costituiscono il pacchetto. Inoltre, una serie di macro possono essere usate per controllare gli attributi di file una volta installato, così come per indicare che i file sono la documentazione, e che contengono informazioni di configurazione. L’elenco dei file è molto importante.

Requisito *** RPM per l’ambiente di generazione ~

A] RPM richiede una serie di directory per eseguire la compilazione. Mentre posizioni le directory ‘e nomi possono essere cambiati. Layout predefinito è mostrato di seguito —

root @ arunsb: ~ # ls-l / usr / src / redhat /

drwxr-xr-x 2 root root 4096 25 agosto 2007 FONTI => contiene i sorgenti originali, patch, e file di icona
drwxr-xr-x 2 root root 4096 25 agosto 2007 SPECS => Contiene i file di specifica
drwxr-xr-x 2 root root 4096 25 agosto 2007 BUILD => Directory in cui le fonti sono imballata, e il software è stato costruito
drwxr-xr-x 8 root root 4096 28 maggio 2008 RPM => contiene il pacchetto binario di file creati dal processo di generazione
drwxr-xr-x 2 root root 4096 25 agosto 2007 SRPMS => Contiene il pacchetto sorgente dei file creati dal processo di generazione

root @ arunsb: ~ #

B] bisogno di esportare alcune variabili globali usate da RPM —

root @ arunsb: ~ # export RPM_BUILD_DIR =/usr/src/redhat/BUILD/
root @ arunsb: ~ # export RPM_SOURCE_DIR =/usr/src/redhat/SOURCES/

Step 1] Crea Specification (spec) File ~

root@arunsb:~# head -n 50  /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul

#RPM_BUILD_DIR    /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR    /usr/src/redhat/SOURCES/

%define MY_PREFIX    /usr/local/openlsm/

## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL

%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.

## Preparation Section-
%prep

rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}

## Build Section-
%build

cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make

## Install Section-
%install

cd ./openlsm-0.99-r45/
make install

## Files Section-
%files

/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#

* Come si crea l’elenco di file?

Creare l’elenco di file è un processo manuale. Quello che ho fatto è ho preso la lista dei file dal mio manuale directory prefix installato con comando find come mostrato di seguito …

root@arunsb:~# find /usr/local/openlsm/ -type f -or  -type d

Fase 2] Avvio Build ~

root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l  openlsm.spec
-rw-r–r– 1 root root 12938 Dec  2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#

root@arunsb:/usr/src/redhat/SPECS# rpmbuild   -ba  openlsm.spec

….
… ..

Controllo per il file non imballati (s): / usr / lib / rpm / check-file% buildroot ()
Ha scritto: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Ha scritto: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS # echo $?
0

root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r-r-1 root root 3206 2 dicembre 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r-r-1 root root 3052868 2 Dicembre 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #

* Fonte e il pacchetto binario creato!

** Vediamo cosa è successo in “/ usr / src / redhat / directory”

root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
BUILD RPMS SOURCES SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BUILD /
openlsm-0.99-R45 <== Source estratto qui come parte di istruzioni per la compilazione da cioè la specifica del file “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls FONTI /
openlsm-0.99-r45.tar.gz <openlsm == originale ‘-0.99-r45.tar.gz’ origine del file copiato da me
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat # ls RPMS/i386 /
openlsm-0.99-r45.i386.rpm <== pacchetto rpm binario creato!
root @ arunsb: / usr / src / redhat # ls SRPMS /
openlsm-0.99-r45.src.rpm <== pacchetto rpm Source creato!
root @ arunsb: / usr / src / redhat #

Fase 3] Ora installare il pacchetto e testarlo ~

root @ arunsb: / usr / src / redhat RPMS/i386/openlsm-0.99-r45.i386.rpm # cp / home / arunsb /

root @ arunsb: / usr / src / redhat # cd / arunsb / home /
root @ arunsb: ~ # ls
openlsm-0.99-r45.i386.rpm
root @ arunsb: ~ # rpm-ivh openlsm-0,99-r45.i386.rpm
Preparing … ########################################### [100%]
1: ########################################### openlsm [100%]
root @ arunsb: ~ # ls / usr / local / openlsm /
etc contrib bin includere script lib sbin var parti
root @ arunsb: ~ #

** Avvio del server openlsm ~

root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm-start redhat
* Server Admin partire openlsm: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm status redhat
openlsm (pid 21607) è in esecuzione …
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-q openlsm-0.99-R45
openlsm-0.99-R45
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-openlsm ql-0.99-R45
..

root @ arunsb: ~ # rpm-openlsm QIV-0.99-R45
Nome: Relocations openlsm: (non trasferibile)
Version: 0.99 Vendor: IndianGNU.org & openlsm
Comunicato: R45 Build Date: mer 02 Dec 2009 05:50:54 CEST
Data di installazione: mer 02 Dec 2009 06:06:23 CEST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group: System Environment / Daemons Source RPM: openlsm-0.99-r45.src.rpm
Dimensioni: 14877918 Licenza: GPL
Firma: (nessuno)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Sintesi: openlsm Server Admin
Descrizione:
openlsm Server Admin è libero e open source web pannello di controllo a base di Linux, sistemi Unix.
root @ arunsb: ~ #

** NOTA ~ Questo articolo non contiene le informazioni su come definire le micro, come copiare documenti, pagine man per difetto posizione, come impostare la proprietà ecc permision e mi occuperò di questi temi nel prossimo articolo su RPM.

** Si prega di consultare l’articolo inglese ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

Saluti,
Arun Bagul

Similar Posts:

Be Sociable, Share!

Lascia un Commento

Your email address will not be published. Required fields are marked *