Pacchettizzazione facile… con checkinstall :)


Quante volte ci è capitata la necessità di pacchettizzare velocemente un programma appena compilato?! nel mio caso taaaaaaante volte…

Pacchettizzare in rpm non sembra facile… i file .spec necessari alla costruzione del pacchetto si devono scrivere per bene e di certo portano via taaaaaaanto tempo…

Porto a vostra conoscenza un caro e vecchio amico: checkinstall🙂

Checkinstall è un programmino che gira su shell, che in pochi passi vi permette di ottenere un pacchetto slackware, rpm o deb dai vostri sorgenti!

Non è tutto oro quello che luccica: veloce non è accurato. Molto spesso checkinstall non è in grado di portare a termine la costruzione di un pacchetto, ed in ogni caso i pacchetti risultanti è meglio non distribuirli.. in quanto potrebbero avere problemi di dipendenze. Checkinstall crea in automatico il file .spec, ma è meglio correggere a mano almeno le dipendenze…. Se dovete fare un backport e avete a portata di mano il SRPM, è meglio ricostruire il pacchetto con rpmbuild….

Per compilare con i tool ufficiali, e sicuramente perfetti, vi rimando a questa ottima guida.

Ma torniamo a checkinstall

Prepariamo il nostro sistema a fine di non doverci avventurare ogni santa volta in varie cartelle con privilegi di superutente, prepariamo la nostra home ad accogliere i pacchetti.

Creiamo questo file:

nano .rpmrc

ed incolliamo:

buildarchtranslate: i386: i586

buildarchtranslate: i486: i586

buildarchtranslate: i586: i586

buildarchtranslate: i686: i586

Salviamo (CTRL+X)

Creiamo un’altro file:

nano .rpmmacros

e incolliamo SOSTITUITE nomeutente con il nome della vostra home, e piuemeno con un nick a vostro piacere:

%_topdir /home/nomeutente/src/rpm

%_tmppath /home/nomeutente/src/tmp

%distribution %(head -1 /etc/fedora-release)

%distsuffix piuemeno

Salvate (CTRL+X)

Adesso sempre da terminale diamo:

mkdir -p src/rpm/RPMS/i386

mkdir -p src/rpm/RPMS/i486

mkdir -p src/rpm/RPMS/i586

mkdir -p src/rpm/RPMS/i686

mkdir -p src/rpm/RPMS/noarch

mkdir -p src/rpm/RPMS/athlon

mkdir -p src/rpm/SRPMS

mkdir -p src/rpm/SPECS

mkdir -p src/rpm/SOURCES

mkdir -p src/rpm/BUILD

mkdir -p src/tmp


Adesso vediamo di installare checkinstall…

Scarichiamo da questa pagina il pacchetto rpm ed installiamolo.

Installiamo anche rpm-build:

su

yum install -y rpm-build

Adesso è meglio fare una correzione.. in quanto l’rpm va ad installare checkinstall in /usr/local/sbin…

autenticatevi come superutente:

su

e fate questo link simbolico:

ln -s /usr/local/sbin/checkinstall /usr/bin/checkinstall

Adesso il nostro sistema è pronto per costruire pacchetti rpm… come?

semplicissimo!

Quando compilate un programma da sorgente sostituite il comando make install con checkinstall!

esempio:

./configure

make

checkinstall

Vi farà una serie di domande… prima di tutto che tipo di pacchetto volete… nel nostro caso RPM.

Poi vorrà una piccola descrizione del pacchetto… ed infine potrete modificare a vostro piacimento le dipendenze, il nome del pacchetto, la versione, ecc ecc🙂

Il pacchetto risultante solitamente lo troverete (nella vostra home) in questa cartella: src/rpm/RPMS/i386

Checkinstall purtroppo non funziona sempre bene, a maggior ragione con certi pacchettoni come le tcl.. che ancora non sono riuscito a far funzionare….

Potreste inoltre incappare in un grosso bug: checkinstall attualmente gestisce male il checksum md5..

Ad esempio se create l’rpm di Cryptopp, al momento di installarlo, yum vi darà errore di checksum…

per installare questi pacchetti *difettosi* dovrete forzare l’installazione:

su

rpm -i –nomd5 nomepacchetto.rpm

Buon divertimento!!!

4 Risposte

  1. Beelo… ho notato una cosa… nell’ultima versione di checkinstall avevo notato numerosi problemi nell’installazione dei pacchetti generati con chec. Ora, non ricordo bene quale fosse l’errore… possibile?

    Ah, forza Juve, tripletta di Del Piero, 4-0
    Simone

  2. uno degli errori più noti è quello del checksum md5😀 e come ho suggerito nell’articolo, basta installare i pacchetti ignorando l’md5..

    per il resto, checkinstall ha parecchi limiti… e bisogna avere anche molta fortuna😀

  3. Sono completamente offtopic ma… mi diresti come ti va googleearth?
    Perchè dal sito ti fanno scaricare uno file .bin che provvede a installarlo, ma dove li mette i files? E come si fa per disinstallarlo?
    Certo che se avessero fornito un .rpm o un autopackage tutto sarebbe risultato più pulito.
    Così ora che è uscita la nuova versione l’ho installata senza poter prima rimuovere la vecchia, e funziona, solo che per avviarsi ci mette 10 secondi buoni (e neanche so se dipende dal non aver rimosso la vecchia).

  4. google earth lo uso quasi mai….
    i files se non erro li mette su /opt

    per disinstallarlo…. non ricordo sinceroamente come facevo, ma comunque non fa nulla se l’hai installato di sopra😀

    la lentezza è normale… google earth x linux gira con una versione modificata di wine…. e quindi quando lo avvii, carica anche questa versione personalizzata di wine😀

    tutto normale quindi

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: