Newsgroup: it.comp.os.linux.iniziare
Titolo: creare rpm

Salve,
il mio lavoro è quello del "becereo" programmatore. Malgrado ciò ;) da un po' 
lavoro su fedora 6. Adesso, mi piacerebbe poter compilare le versioni dei miei 
programmi e metterle a disposizione così come fa fedora. Ovvero, vorrei creare i 
miei rpm e metterli su un server ftp.
Quello che non capisco e quali tools utilizzare: rpmdevtools, checkinstall, 
etc... ? Vi è un metodo "standard" ?
Inoltre, le versioni che vorrei distribuire, devono avere nel nome fc6, come 
vedo nella maggior parte degli rpm che installo attraverso yum ?
E l'architettura ?
Sul computer che uso, ho il kernel i686. Devo aggiungere anche questa o metto 
noarch ? Visto che non ho la sensazione di programmare per un'architettura 
specifica.
Grazie in anticipo.
Obelix.

 E l'architettura ?
Quando compili il pacchetto:
rpmbuild --rebuild --target=architettura \
/usr/src/redhat/SRPMS/pacco-ver.src.rpm

 programmi e metterle a disposizione cosě come fa fedora. Ovvero, vorrei creare 
Puoi usare checkinstall.

 Puoi usare checkinstall.
Funziona benone se ti interessa solo produrre
pacchetti binari per applicazioni per applicazioni
"stand-alone" ma non genera i pacchetti sorgenti.
Se poi intendi suddividere l'applicazione in
più pacchetti (binari veri e propri, header e
librerie per lo sviluppo, manualistica, plugin
in rpm distinti) non va bene.
Comunque sì, è un ottimo compromesso.
P.S.
Dimenticavo: è un ambito un po' ristretto ma se
quel che si deve fare è trasformare in rpm i moduli
perl di cpan, allora c'è anche cpan2rpm.

 un'architettura specifica.
No, di solito noarch si usa per alcuni pacchetti "dati", un rpm che
contiene wallpapers non ha architettura :)
Se vuoi stare un po' sul generico, fai i pacchetti per i586..
Per fare pratica, inizia con dei pacchetti semplici, magari solo con
dati (i wallpapers di prima sono un possibile inizio..). Poi piano
piano inizi a sfruttare le macro di RPM, quelle specifiche della distro
e features varie...
Ciao.
-- 
*** Linux user # 198661 --- ICQ 33500725 ***
***  Home  
http://web.tiscali.it/kailed
  ***
       ***  Powered by SuSeLinux  ***

 Puoi usare checkinstall.
Andiamoci piano, checkinstall va bene solo per impacchettare robetta.
Per fare le cose fatte bene, bisogna studiarsi un po' la documentazione
di rpm. Poi via di spec file e rpmbuild..


 Se vuoi stare un po' sul generico, fai i pacchetti per i586..
il discorso è come sopra.
sai, è lo stesso problema di quando scrivi un programma per un certo sistema 
unix, e poi lo devi "portare" su macchine diverse, con diversi OS, e, quindi, si 
è costretti a scrivere dei makefile adeguati per farsì che si riesca a compilare 
in modo corretto.
Gazie,
ciao.

 farsì che si riesca a compilare in modo corretto.
L'architettura dovresti specificarla in base alle opzioni di
compilazione; un pacchetto i686 non gira su i386. Quindi è giusto
utilizzare un'architettura e specificarla nel nome del pacchetto.
Con un generico i586 copri un vastissimo range di cpu e allo stesso
tempo hai dei binari minimamente ottimizzati.
L'alternativa a rpm è quella di creare quei "pacchettoni binari" con cui
per esempio vengono distribuiti i driver nvidia e molti giochi per
linux. Normalmente hanno un'estensione tipo *.bin. *.run o anche *.sh.
Li sei indipendente dal package manager (quindi in parte anche dalla
distro..) e non hai vincoli su come installare la tua applicazione. Ti
devi creare tu uno script o programma che si occupi dell'installazione
dei file. Puoi personalizzarti l'installer, farlo solo testo, con una
gui personalizzata, reciclare il Loki Installer.
Hai più libertà d'azione...
Per fare questi pacchettoni si utilizza Makeself, non l'ho mai
utilizzato ma pare molto semplice:
makeself --opzioni-varie directory-programma...
E' uno script bash, che volendo puoi modificare a tuo piacimento.
lo trovi facilmente con google...


 Ciao.
Ciao e grazie.
Obelix.