Compilation et création d’un paquet deb pour son usage perso ...
Niveau : Geek(e)
samedi 29 décembre 2007, par leonux
Cet article a surtout une approche didactique ... Vous avez besoin d’un paquet et le dépot officiel ne contient qu’une vieille version ...
Nous allons découvrir comment, relativement rapidement, se concocter un petit fichier deb sauce maison ..
A noter, le paquet généré ne pourra servir qu’à un usage personnel et, en aucun cas, figurer dans un quelconque dépot ....
Pour réaliser ce paquet, nous pourrez vous référer à cet article pour comprendre ce que sont les commandes ./configure et make. Le make install sera remplacé par une autre commande (checkinstall)
Vérifiez avec Synaptic si les paquets autoconf, automake, g++, make, fakeroot et checkinstall sont installés, nous en aurons besoin .
Vous aurez besoin de cette archive pour réaliser ce travail : smc-1.4.tar.bz2
Clic droit sur l’archive -> extraire ici
Se rendre dans le dossier nouvellement créé (smc-1.4) et, première commande :
smc-1.4$ ./autogen.sh
Cette commande va créer (entre autre) le si précieux fichier configure, elle n’est pas systématique, on continue ?
$ ./configure
Arff !! Il vous manque des dépendances, pas vrai ? ;) Allez jeter un coup d’oeil dans le dossier docs puis le fichier readme-linux.txt ...
Ben oui, l’équipe de dev n’a pas mis ça là pour refaire la déco :D
1.) Requirements
You need :
The Secret Maryo Chronicles source distribution.
The GCC G++ compiler (version 3.4 or higher)
Following libraries (with headers/development files) :
Boost Filesystem ( >= 1.31 )
SDL ( >= 1.2.10 )
SDL_image ( >= 1.2.0 )
libpng
SDL_mixer ( >= 1.2.0 )
libvorbis
SDL_ttf ( >= 2.0 )
FreeType 2
CEGUI ( >= 0.5 )
Either SILLY, DevIL or FreeImage
GNU make
autoconf (2.57 or higher) and automake (IMPORTANT : version 1.7 or higher)
Nous en avons déjà installé une partie, vous vous souvenez ? _Ce qui se traduit par :
installer :
libcegui-mk2-1 (0.5.0-2)
libcegui-mk2-dev (0.5.0-2)
libdevil1c2 (1.6.7-5)
libgl1-mesa-dev (7.0.1-1ubuntu3)
libglu1-mesa-dev (7.0.1-1ubuntu3)
libglu1-xorg-dev (1:7.2-5ubuntu13)
libjpeg62-dev (6b-14)
libogg-dev (1.1.3-2ubuntu2)
libsdl-image1.2-dev (1.2.5-3)
libsdl-mixer1.2-dev (1.2.6-3)
libsdl-ttf2.0-dev (2.0.9-1)
libsdl1.2-dev (1.2.11-9ubuntu2)
libsmpeg-dev (0.4.5+cvs20030824-2)
libtiff4-dev (3.8.2-7ubuntu2)
libtiffxx0c2 (3.8.2-7ubuntu2)
libvorbis-dev (1.2.0.dfsg-1)
libxerces27 (2.7.0-3)
libxerces27-dev (2.7.0-3)
mesa-common-dev (7.0.1-1ubuntu3)
libboost-dev (1.34.1-2ubuntu1)
libboost-filesystem-dev (1.34.1-2ubuntu1)
libboost-filesystem1.34.1 (1.34.1-2ubuntu1)
Voilà, je crois que c’est tout ... Si j’en ai oublié, vous me le dîtes, je suis en train de jouer en ce moment ;)
troisième commande
$ make
Là, pas de difficulté particulière ... Vous avez le temps d’aller prendre un café ....
Normalement, checkinstall s’utilise avec l’utilisateur root (administrateur) et on change les droits ensuite ...
Comme je suis un peu fainéant, je vais utiliser une ruse de sioux et faire croire à checkinstall que j’utilise mon compte root alors qu’il n’en est rien ... C’est possible grâce à fakeroot ...
$ fakeroot checkinstall -D --pkgname=smc
checkinstall 1.6.1, Copyright 2002 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] : y
Preparing package documentation...OK
| intégration d’une courte description, je ne me foule pas, c’est juste pour moi ;) |
Please write a description for the package.
End your description with an empty line or EOF.
>> paquet maison du jeu Secret Maryo Chronicles version 1.4
>>
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values :
0 - Maintainer : [ zarb@mezigue ]
1 - Summary : [ paquet maison du jeu Secret Maryo Chronicles version 1.4 ]
2 - Name : [ smc ]
3 - Version : [ 1.4 ]
4 - Release : [ 1 ]
5 - License : [ GPL ]
6 - Group : [ checkinstall ]
7 - Architecture : [ i386 ]
8 - Source location : [ smc-1.4 ]
9 - Alternate source location : [ ]
10 - Requires : [ ]
Enter a number to change any of them or press ENTER to continue :
| je vais taper 0 pour changer zarb@mezigue en moi@mezigue.net, vous pouvez mettre votre véritable adresse ... Pour le tuto, je fais de la prévention au spam :) |
Enter a number to change any of them or press ENTER to continue : 0
Enter the maintainer’s name and e-mail address :
>> moi@mezigue.net
This package will be built according to these values :
0 - Maintainer : [ moi@mezigue.net ]
1 - Summary : [ paquet maison du jeu Secret Maryo Chronicles version 1.4 ]
2 - Name : [ smc ]
3 - Version : [ 1.4 ]
4 - Release : [ 1 ]
5 - License : [ GPL ]
6 - Group : [ checkinstall ]
7 - Architecture : [ i386 ]
8 - Source location : [ smc-1.4 ]
9 - Alternate source location : [ ]
10 - Requires : [ ]
| Je vais aussi changer le point 4 pour me souvenir que c’est un paquet perso |
Enter a number to change any of them or press ENTER to continue : 4
Enter new release number :
>> perso-ubuntu1
This package will be built according to these values :
0 - Maintainer : [ moi@mezigue.net ]
1 - Summary : [ paquet maison du jeu Secret Maryo Chronicles version 1.4 ]
2 - Name : [ smc ]
3 - Version : [ 1.4 ]
4 - Release : [ perso-ubuntu1 ]
5 - License : [ GPL ]
6 - Group : [ checkinstall ]
7 - Architecture : [ i386 ]
8 - Source location : [ smc-1.4 ]
9 - Alternate source location : [ ]
10 - Requires : [ ]
Pour Requires (10), ça ne passe pas ...
Ce n’est pas gênant, vu que c’est vous qui l’avez compilé, néanmoins ce paquet ne pourra pas figurer dans un dépot digne de ce nom, il ne gère pas les dépendances .... Sur votre machine, elles sont déjà là, vous les avez installé lors de la phase ./configure ... ;)

Il ne reste plus qu’à installer avec Gdebi en faisant un clic droit sur votre paquet puis "installateur de paquets Gdebi".
Et en avant la musique ! :)
Il manque le raccourci, vous pouvez lancer le jeu :
via une console en tapant smc
En le créant vous-même ...



Le site officiel : http://www.secretmaryo.org/