Creazione di pacchetti rpm, tgz e deb partendo da una distribuzione sorgente.
OVERVIEW
Checkinstall, scritto da Felipe Eduardo Sánchez Díaz Durán, permette di creare partendo da un software distribuito in formato sorgente, tipicamente un file tar.gz, un pacchetto binario per l'installazione su sistemi derivati da Debian (.deb), Slackware (.tgz) o Red Hat (.rpm). Creare un pacchetto nel formato gestito da una determinata distribuzione, comporta il vantaggio di avere un sistema più ordinato, in quanto viene mantenuta traccia delle applicazioni correntemente installate, con la possibilità di rimuoverle in modo pulito. Cosa che non potrebbe avvenire senza una regola di uninstall, che spesso manca, nei makefile delle applicazioni.
Il processo di installazione di un software mediante checkinstall, varia solamente nell'ultima sua fase. Dopo aver eseguito i classici, configure
e make
, checkinstall si sostituisce al make install
, creando, secondo le esigenze dell'amministratore del sistema, un pacchetto che andrà installato poi con il tool apposito (rpm, apt o installpkg) a seconda della distribuzione di destinazione.
DOWNLOAD
Il download può essere eseguito dalla home del progetto http://asic-linux.com.mx/~izto/checkinstall/:
homer@enigma:/software$ wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.0beta4.tgz
--13:37:35-- http://asic-linux.com.mx/%7Eizto/checkinstall/files/source/checkin
stall-1.6.0beta4.tgz
=> `checkinstall-1.6.0beta4.tgz'
Resolving asic-linux.com.mx... 200.76.179.225
Connecting to asic-linux.com.mx[200.76.179.225]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 147,508 [application/x-tar]
100%[===========================================================================>] 147,508 5.08K/s ETA 00:00
13:38:05 (5.04 KB/s) - `checkinstall-1.6.0beta4.tgz' saved [147508/147508]
INSTALLAZIONE
Una volta scaricati i sorgenti è necessario scompattarli:
homer@enigma:/software$ tar xvfz checkinstall-1.6.0beta4.tgz
checkinstall-1.6.0beta4/
checkinstall-1.6.0beta4/FAQ
checkinstall-1.6.0beta4/BUGS
checkinstall-1.6.0beta4/TODO
checkinstall-1.6.0beta4/Makefile
checkinstall-1.6.0beta4/doc-pak/
..
quindi eseguire il make:
homer@enigma:/software/checkinstall-1.6.0beta4$ make
make -C installwatch-0.7.0beta4
make[1]: Entering directory `/software/checkinstall-1.6.0beta4/installwatch-0.7.0beta4'
./create-localdecls
...
make[1]: Leaving directory `/software/checkinstall-1.6.0beta4/installwatch-0.7.0beta4'
ed il make install da root:
homer@enigma:/software/checkinstall-1.6.0beta4$ sudo -s
root@enigma:/software/checkinstall-1.6.0beta4# make install
make -C installwatch-0.7.0beta4
make[1]: Entering directory `/software/checkinstall-1.6.0beta4/installwatch-0.7.0beta4'
... at:\n\n\t/usr/local/lib/checkinstall/checkinstallrc-dist\n\n=========================================================\n\n";echo ;fi
E' bene sottolineare il fatto che solo in questo caso è necessario utilizzare make install
, che non installa in realtà il software nel sistema, proprio perchè checkinstall non è ancora operativo.
UTILIZZO
Attraverso l'ultima operazione da compiere per installare checkinstall, è possibile anche vederne l'utilizzo.
Nella cartella in cui sono stati compilati i sorgenti, è necessario a questo punto lanciare il comando checkinstall
, l'utente sarà quindi guidato tramite una serie di domande:
root@enigma:/software/checkinstall-1.6.0beta4# checkinstall
checkinstall 1.6.0beta4, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
Please choose the packaging method you want to use.
Slackware [S], RPM [R] or Debian [D]? S
La prima richiesta del programma riguarda il tipo di pacchetto che si vuole andare a creare. In questo esempio la scelta è S ovvero il formato tgz di Slackware
********************************************
**** Slackware package creation selected ***
********************************************
This package will be built according to these values:
1 - Summary: [ CheckInstall installations tracker, version 1.6.0beta4 ]
2 - Name: [ checkinstall ]
3 - Version: [ 1.6.0beta4 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i386 ]
8 - Source location: [ checkinstall-1.6.0beta4 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue: 4
Tramite un menu è possibile selezionare e modificare alcuni valori relativi all'installazione
Enter new release number: 4
>> Homer-02-01-2004
This package will be built according to these values:
1 - Summary: [ CheckInstall installations tracker, version 1.6.0beta4 ]
2 - Name: [ checkinstall ]
3 - Version: [ 1.6.0beta4 ]
4 - Release: [ Homer-02-01-2004 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i386 ]
8 - Source location: [ checkinstall-1.6.0beta4 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:
Installing with make install...
========================= Installation results ===========================
make -C installwatch-0.7.0beta4
make[1]: Entering directory `/software/checkinstall-1.6.0beta4/installwatch-0.7.0beta4'
make[1]: Nothing to be done for `all'.
...
=============================================================================
An existing checkinstallrc file has been found.
The one from this distribution can be found at:
/usr/local/lib/checkinstall/checkinstallrc-dist
=============================================================================
======================== Installation successful ==========================
Copying documentation directory...
./
FAQ
BUGS
TODO
README
installwatch-0.7.0beta4/
installwatch-0.7.0beta4/BUGS
installwatch-0.7.0beta4/TODO
installwatch-0.7.0beta4/README
installwatch-0.7.0beta4/CHANGELOG
...
Copying files to the temporary directory...OK
Striping ELF binaries and libraries...OK
Compressing man pages...OK
Building file list...OK
Preparing Slackware install directory...OK
Writing package description...OK
Creating package checkinstall-1.6.0beta4-i386-Homer-02-01-2004...OK
NOTE: The package will not be installed.
Erasing temporary files...OK
Writing backup package...OK
Deleting temp dir...OK
**********************************************************************
Done. The new package has been saved to
/software/checkinstall-1.6.0beta4/checkinstall-1.6.0beta4-i386-Homer-02-01-2004.tgz
You can install it in your system anytime using:
installpkg checkinstall-1.6.0beta4-i386-Homer-02-01-2004.tgz
**********************************************************************
Una volta in possesso di tutte le informazioni necessarie, checkinstall crea il pacchetto per la distribuzione scelta ed informa l'utente della sua locazione e di come fare per installarlo
Una volta creato, il pacchetto è pronto per l'installazione:
root@enigma:/software/checkinstall-1.6.0beta4# installpkg checkinstall-1.6.0beta4-i386-Homer-02-01-2004.tgz
Installing package checkinstall-1.6.0beta4-i386-Homer-02-01-2004...
PACKAGE DESCRIPTION:
Executing install script for checkinstall-1.6.0beta4-i386-Homer-02-01-2004...
DESCRIZIONE DEL PACCHETTO
E' possibile creare una descrizione del pacchetto che si andrà ad installare inserendo le informazioni in un file chiamato description-pak
. Qualora questo file risulti assente, Checkinstall provvederà ad inoltrare una richiesta all'utente per procedere ad una sua eventuale creazione. Le informazioni inserite verrano visualizzate durante l'utilizzo di pkgtool
, in Slackware oppure tramite il comando rpm -qi
nelle distribuzioni rpm based.
SCRIPT PRE E POST INSTALLAZIONE/RIMOZIONE
Per i package di tipo .rpm o .deb, è possibile creare a seconda dell'occorrenza quattro tipi di shell script, che devono essere presenti nella directory dei sorgenti:
preinstall-pak: eseguito prima dell'installazione;
postinstall-pak: eseguito dopo l'installazione;
preremove-pak: eseguito prima delle rimozione;
postremove-pak: eseguito dopo la rimozione;
questi tipi di script possono risultare utili, nell'automatizzare operazioni quali per esempio la creazione o cancellazioni di utenti, in relazione con il software che si andrà ad installare o rimuovere.
Utilizzo di RPM per installare, aggiornare, rimuovere pacchetti .rpm. Utilizzo di tar.gz