Crea il tuo pacchetto rpm

Mer, 19/01/2011 - 02:37

Crea il tuo pacchetto rpm

Inviato da specialworld83 3 commenti

I pacchetti RPM , acronimo di REDHAT PACKAGE MANAGER, sono quelli che comunemente installiamo nella nostra distro e non solo.Da premettere che realizzarli da sorgenti già pronti si perde pochissimo tempo, mentre se dobbiamo creare anche il file .spec le cose cambiano.

Iniziamo, prima di tutti ci serve un pacchetto sorgente per la nostra distro che andiamo a prendere dai repo SRPM, il pacchetto di esempio è wicd che sfortunatamente non si trovano nei mirror ufficiali, ma nel MIB si.

Installiamo il pacchetto sorgente da user normale senza password di root da terminale:

rpm -ivh wicd-xxx-.src.rpm

L'dentificativo xxx è il numero di release del pacchetto, che al momento a noi non ci interessa.

Fatto cio entriamo nella cartella /home/utente/rpmbuild/SPECS

da terminale eseguiamo il seguente comando:

rpmbuild -bs wicd.spec

L'output che ci restituirà il terminale sarà questo:

[specialworld83@localhost SPECS]
$ rpmbuild -bs wicd.spec 
Scritto: /home/specialworld83/rpmbuild/SRPMS/wicd-1.7.0-69mdv2010.2.src.rpm
[specialworld83@localhost SPECS]$ cd ..
[specialworld83@localhost rpmbuild]$ ls
BUILD/  BUILDROOT/  RPMS/  SOURCES/  SPECS/  SRPMS/
[calogero@localhost rpmbuild]$

Ora la fase più importante, ottenere il pacchetto rpm, eseguite questo comando:

rpmbuild --rebuild /home/utente/rpmbuild/SRPM/wicd-1.7.0-69mdv2010.2.src.rpm

Ecco che parte la compilazione del programma, e vi restiurà alla fine se tutto è corretto questo output:

Elaborazione file in corso: wicd-1.7.0-69mdv2010.2
Esecuzione(%doc) in corso: /bin/sh -e /var/tmp/rpm-tmp.0JfFtV
+ umask 022
+ cd /home/specialworld83/rpmbuild/BUILD
+ cd wicd-1.7.0
+ DOCDIR=/home/specialworld83/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386/usr/share/doc/wicd
+ export DOCDIR
+ /bin/mkdir -p /home/specialworld83/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386/usr/share/doc/wicd
+ cp -pr AUTHORS README /home/specialworld83/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386/usr/share/doc/wicd
+ exit 0
Ricerca di Provides in corso: /usr/lib/rpm/mandriva/filter.sh ' ' ' ' '/home/calogero/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386' /usr/lib/rpm/mandriva/find-provides
Ricerca di Requires in corso: /usr/lib/rpm/mandriva/filter.sh ' ' ' ' '/home/calogero/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386' /usr/lib/rpm/mandriva/find-requires /home/calogero/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386 i586
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires(postun): /bin/sh
Requires: python >= 2.6 bash coreutils
Controllo per file scompattato/i in corso: /usr/lib/rpm/check-files /home/calogero/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386
Scritto: /home/calogero/rpmbuild/RPMS/i586/wicd-1.7.0-69mdv2010.2.i586.rpm
Esecuzione(%clean) in corso: /bin/sh -e /var/tmp/rpm-tmp.XUl2dt
+ umask 022
+ cd /home/calogero/rpmbuild/BUILD
+ cd wicd-1.7.0
+ rm -rf /home/calogero/rpmbuild/BUILDROOT/wicd-1.7.0-69mdv2010.2.i386
+ exit 0
Esecuzione(--clean) in corso: /bin/sh -e /var/tmp/rpm-tmp.fVrkzL
+ umask 022
+ cd /home/calogero/rpmbuild/BUILD
+ rm -rf wicd-1.7.0
+ exit 0

Il file viene salvato nella cartella rpmbuild/RPMS/i586

Da precisare che non tutti i pacchetti rpm si realizzano con estrema facilità, ma ho preso un src da me stesso realizzato e ho creato il pacchetto, per evitare confusioni varie.

La guida spero possa esservi di aiuto a chi vuole cimentarsi nella pacchetizzazione. Preciso che per controllare meglio i file spec vi è rpmlint che trova se ci sono errori oppure.


In:



Commenti

Ritratto di Stefano
#1

Inviato da Stefano il Mer, 19/01/2011 - 02:49.

Re: Crea il tuo pacchetto rpm

Grazie del contributo, guida molto interessante ed utile Wink

Stefano

Stefano Mainardi - Founder of ILDN & CEO of Twinbit



Ritratto di paolo
#2

Inviato da paolo il Mer, 19/01/2011 - 02:55.

Re: Crea il tuo pacchetto rpm

Ottimo contributo, grazie. Applause

Paolo Mainardi - ILDN Founder - CTO Twinbit
http://www.paolomainardi.com
http://www.twinbit.it



Ritratto di Nick78
#3

Inviato da Nick78 il Mer, 19/01/2011 - 11:56.

Re: Crea il tuo pacchetto rpm

Woow bella guida!! ora ci provo anche io! Big Grin
Ciao ciao!!
Nicola

NiCk on Mandriva 2011 - Asus K61IC - P8700 - 4Gb Ram - KDE SC 4.6.5 - Kernel 3.0.1 - Nvidia GT_220M 1Gb - Linux registered user #496729 - www.nickworlds.it - Samsung Galaxy S3 Android 4.0.3