Linux On The Root !

Accueil du site > Le coin des geeks... > Des paquets pour son usage perso .. > Secret Maryo Chronicles

Compilation et création d’un paquet deb pour son usage perso ...

Secret Maryo Chronicles

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)

Préalables :

Vérifiez avec Synaptic si les paquets autoconf, automake, g++, make, fakeroot et checkinstall sont installés, nous en aurons besoin .

Téléchargement de l’archive :

Vous aurez besoin de cette archive pour réaliser ce travail : smc-1.4.tar.bz2

décompresser l’archive :

- Clic droit sur l’archive -> extraire ici

On passe aux choses sérieuses ;)

- 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é ....


Création du fichier deb

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/


6 Messages de forum

  • Secret Maryo Chronicles

    29 décembre 2007 17:51, par dzef
    Très intéressant Leonux, j’avais justement 1 ou 2 paquets deb à me faire, ton article tombe à pic. Merci beaucoup.
  • Secret Maryo Chronicles

    29 décembre 2007 21:43, par zarer

    Très très bonne idée ce tuto ! J’ai moi aussi une install qui tarde faute de paquet .deb et de dépendances à compiler ! Boudiou ! J’ai plus d’excuse maintenant !

    Merci hein !

  • Secret Maryo Chronicles

    29 décembre 2007 23:14, par leonux

    Eh eh, bon courage, les gars ;)

    un petit howto pour checkinstall

    l’adresse d’origine est en haut dans la doc :)

  • Secret Maryo Chronicles

    31 mai 2008 11:03, par nicorider

    Bonjour,

    Pour que le paquet s’innstalle dans /opt à la place de /usr que faut il remplacer dans une des commandes que tu as cité ?

    Merci d’avance.

  • Secret Maryo Chronicles

    31 mai 2008 22:44, par Leonux

    Salut Nicorider,

    C’est avec configure que ça se règle avec par exemple :

    $ ./configure --prefix=/opt/smc

    Je ne l’ai pas testé comme ça mais tu as raison, c’est une bonne astuce utilisée notamment pour KDE4 sous certaines distributions ...

    Tiens moi au courant :)

  • Secret Maryo Chronicles

    6 août 2008 02:05, par PH

    Salut. Comme tu le vois j’ai des erreurs à la fin. De quoi cela vient-il ? Merci

    ========================= Installation results =========================== Making install in src make[1] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2/src » make[2] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2/src » /bin/bash ../mkinstalldirs /usr/local/bin /usr/bin/install -c lxappearance /usr/local/bin/lxappearance make[2] : Rien à faire pour « install-data-am ». make[2] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2/src » make[1] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2/src » Making install in po make[1] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2/po » if test -r ".././mkinstalldirs" ; then \ .././mkinstalldirs /usr/local/share ; \ else \ /bin/sh ../mkinstalldirs /usr/local/share ; \ fi mkdir -p — /usr/local/share/locale/zh_TW/LC_MESSAGES installing zh_TW.gmo as /usr/local/share/locale/zh_TW/LC_MESSAGES/lxappearance.mo if test "lxappearance" = "glib" ; then \ if test -r ".././mkinstalldirs" ; then \ .././mkinstalldirs /usr/local/share/glib-2.0/gettext/po ; \ else \ /bin/sh ../mkinstalldirs /usr/local/share/glib-2.0/gettext/po ; \ fi ; \ /usr/bin/install -c -m 644 ./Makefile.in.in \ /usr/local/share/glib-2.0/gettext/po/Makefile.in.in ; \ else \  : ; \ fi make[1] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2/po » Making install in man make[1] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2/man » make[2] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2/man » make[2] : Rien à faire pour « install-exec-am ». /bin/bash ../mkinstalldirs /usr/local/share/man/man1 mkdir -p — /usr/local/share/man/man1 /usr/bin/install -c -m 644 ./lxappearance.1 /usr/local/share/man/man1/lxappearance.1 make[2] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2/man » make[1] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2/man » make[1] : entrant dans le répertoire « /home/ph57/lxapp/lxappearance-0.2 » make[2] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2 » make[2] : Rien à faire pour « install-exec-am ». /bin/bash ./mkinstalldirs /usr/local/share/applications /usr/bin/install -c -m 644 lxappearance.desktop /usr/local/share/applications/lxappearance.desktop /bin/bash ./mkinstalldirs /usr/local/share/lxappearance mkdir -p — /usr/local/share/lxappearance /usr/bin/install -c -m 644 scripts/install-icon-theme.sh /usr/local/share/lxappearance/install-icon-theme.sh make install-data-hook make[3] : entrant dans le répertoire « /home/moi/lxapp/lxappearance-0.2 » for script in /usr/local/share/lxappearance/*.sh ; do \ chmod +x $script ; \ done chmod : modification des permissions de `/usr/local/share/lxappearance/install-icon-theme.sh’ : Aucun fichier ou dossier de ce type make[3] : *** [install-data-hook] Erreur 1 make[3] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2 » make[2] : *** [install-data-am] Erreur 2 make[2] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2 » make[1] : *** [install-am] Erreur 2 make[1] : quittant le répertoire « /home/moi/lxapp/lxappearance-0.2 » make : *** [install-recursive] Erreur 1

    **** Installation failed. Aborting package creation.

    Cleaning up...OK

    Bye.


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette