Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
Les Pérégrinations numériques du Gluon du Net

Le Gluon du Net est un acteur de la communauté du logiciel libre dont il assure la promotion et le support auprès d'autres gluons également attirés par la philosophie du "Libre".

checkinstall: créer rapidement un fichier deb pour un usage personnel

Publié le 8 Décembre 2013 par Le Gluon du Net in ligne de commande

 

 

Je viens de compiler un programme, j'ai donc fait un "make", puis "sudo make install" pour l'installer. Je teste, ça me convient pas, je le désinstalle "sudo make uninstall" et là, mauvaise surprise, le développeur n'a pas prévu un script de désinstallation.

Arrghhh, mon installation Linux est souillée, comment nettoyer ce bordel de fichiers qui trainent de ci de là?

 

Il doit exister plusieurs solutions, celle-ci est rapide et simple: créer un deb de mon programme, l'installer pour ensuite le désinstaller proprement. C'est possible avec checkinstall.

 

Checkinstall  crée un deb à partir d'un programme compilé qui possède un script d'installation, comme par exemple "sudo make install" ou "sudo ./install". Pour cela il faut se positionner, à l'aide d'un terminal, dans le répertoire du programme compilé, à l'endroit exact où peut être lancé le script d'installation.

 

$ sudo checkinstall

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.


The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:

 

Il vous demande s'il est nécessaire de créer un dossier pour la documentation, ce n'est pas le cas ici, répondez "n"

 

*****************************************
**** Debian package creation selected ***
*****************************************

*** Warning: The package name "Build" contains upper case
*** Warning: letters. dpkg might not like that so I changed
*** Warning: them to lower case.

This package will be built according to these values:

0 - Maintainer: [ romain@tipingouin-home ]
1 - Summary: [ test 08122013 svn ]
2 - Name: [ test ]
3 - Version: [ 20131208 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ Build ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ build ]
12 - Conflicts: [ ]
13 - Replaces: [ ]

Enter a number to change any of them or press ENTER to continue:

tapez ici le numéro de champs à changer:

 

0 votre adresse mail

1 un descriptif rapide de votre deb

2 le nom de votre paquet debian

3 la version du programme, ici je mets la date de téléchargement des sources

4 la version de vorte paquet debian

 

je vous laisse découvrir les aurtes champs: licence, compilé en 32 ou 64 bits?, dépendences etc...mais vous n'êtes pas obligé de remplir tout ces champs.

 

Les champs obligatoires à renseigner:

 

--> le nom du paquet: à retenir car vous en aurez besoin le jour où vous désinstallerez le paquet.

--> la version: si vous avez nommé le paquet à l'identique de celui qu'il porte dans les dépots officiels de vorte distribution, vous devez indiquez ici un numéro de version plus récent que celui présent dans les dépots, ou il sera écrasé lors de la prochaine mise à jour.

 

Les principaux champs correctement renseignés, appuyez sur "Entrée".

 

checkinstall débute sa cuisine: il va empaqueter tous les fichiers de la commande "make install" dans un deb, puis va installer le paquet.

 

Si durant cette opération, vous avez cette question:


Some of the files created by the installation are inside the home directory: /home

You probably don't want them to be included in the package.
Do you want me to list them? [n]: y
Should I exclude them from the package? (Saying yes is a good idea) [n]: yes


La plupart du temps, mieux vaut exclure les fichiers et donc répondre "yes" à la question "Should I exclude them from the package?".

 

Si tout se passe bien, vous obtenez:


Stripping ELF binaries and libraries...OK

Compressing man pages...OK

Building file list...OK

Building Debian package...OK

Installing Debian package...OK

Erasing temporary files...OK

Writing backup package...OK
OK

Deleting temp dir...OK


**********************************************************************

Done. The new package has been installed and saved to

/somewhere/test/Build/test_20131208-1_amd64.deb

You can remove it from your system anytime using:

dpkg -r test

**********************************************************************

checkinstall nous informe avoir correctement empaqueté et installé le programme et nous donne même la commande nécessaire à sa désinstallation, ce que je vais m'empresser de faire:


sudo dpkg -r test

 

et voilà, mon Linux est tout propre, le programme sauvagement installé n'y est plus.

 

Si checkinstall permet de créer rapidement des deb, i lfaut savoir que ces paquets ne peuvent servir qu'à un usage personnel et il n'est pas souhaitable de les diffuser car:

 

- ils peuvent contenir certains de vos ficheirs pero

- les dépendences ne sont pas gérées

- autres raisons

...

 

D'ailleurs le site launchpad les refusera.

Pour créer des paquet .deb dans les règles de l'art, le chemin est un peu plus compliqué (tutoriel forum Ubuntu.fr: Comment créer des paquets.).

 

HOPE THIS HELP.

 

LGDN.

Commenter cet article