Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| tutoriel:package_debian [Le 19/04/2007, 15:09] – 88.168.104.133 | tutoriel:package_debian [Le 23/04/2007, 20:46] (Version actuelle) – effacée otheym | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Créer simplement un package Debian/ | ||
| - | ===== Présentation ===== | ||
| - | |||
| - | Certains tuto de création d'un package explique comment faire, alors quel est l' | ||
| - | Tous simplement j'ai eu un problème de taille: soit je n' | ||
| - | |||
| - | Après de l'aide d'un forum, recherche sur le net, lecture multiples de tuto et de la persévérance, | ||
| - | |||
| - | |||
| - | L' | ||
| - | |||
| - | |||
| - | ===== Pré-requis ===== | ||
| - | Il faut avoir installé les packages suivants: | ||
| - | * debhelper | ||
| - | * cdbs | ||
| - | * lintian | ||
| - | * linda | ||
| - | * build-essential | ||
| - | * fakeroot | ||
| - | * devscripts | ||
| - | * pbuilder | ||
| - | * dh_make | ||
| - | * libsdl1.2-dev | ||
| - | * libsdl-image1.2-dev | ||
| - | |||
| - | |||
| - | |||
| - | sudo apt-get install debhelper cdbs lintian linda build-essential fakeroot devscripts pbuilder dh-make libsdl1.2-dev libsdl-image1.2-dev | ||
| - | |||
| - | ===== Création de notre package source et binaire ===== | ||
| - | |||
| - | ===== Téléchargement des sources ===== | ||
| - | |||
| - | Créer le répertoire packages dans votre ~/(votre répertoire personnel donc): | ||
| - | mkdir ~/packages | ||
| - | cd ~/packages | ||
| - | |||
| - | Puis, nous avons besoin de télécharger les sources, pour cela allez sur mon site: | ||
| - | wget http:// | ||
| - | |||
| - | Faite ensuite: | ||
| - | tar xvzf mariosokoban.tar.gz | ||
| - | afin de le décompresser. | ||
| - | |||
| - | créer ensuite un dossier ayant le nom du jeu suivit de la version, dans le cas de se tutorial c'est: | ||
| - | mkdir mariosokoban-0.0.1 | ||
| - | |||
| - | puis déplacer les fichiers/ | ||
| - | mv -f c* m* images mariosokoban-0.0.1/ | ||
| - | |||
| - | Il va vous indiquer qu'il ne peut déplacer mariosokoban-0.0.1 dans un sous répertoire de lui-même, cela est normal vous ne vous en préocuppez pas. | ||
| - | |||
| - | ===== Création du dossier debian ===== | ||
| - | |||
| - | Nous avons besoin d'un dossier spécial appelé debian, celui-ci contiendrat un tas de fichiers don nous avons besoin pour créer le package. | ||
| - | |||
| - | Plaçons nous dans le répertoire du jeu: | ||
| - | cd mariosokoban-0.0.1 | ||
| - | |||
| - | Puis nous allons créer le fameu répertoire: | ||
| - | | ||
| - | |||
| - | dh_make vous indique: | ||
| - | Type of package: single binary, multiple binary, library, kernel module or cdbs? | ||
| - | | ||
| - | |||
| - | Vous allez mettre s car c'est un simple paquet normal. | ||
| - | Il vous affiche ensuite ceci: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | Type of Package : Single | ||
| - | Hit < | ||
| - | |||
| - | Il vous indique donc le nom du mainteneur du package, son mail, la date, le nom du package, sa version, son type et la license. | ||
| - | Il demande une confirmation que c'est bien éxacte. | ||
| - | |||
| - | Le nom du mainteneur est pris comme étant le nom que vous avez entré dans la case nom/prénom a l' | ||
| - | Le mail c'est celui que vous venez de lui indiquer. | ||
| - | La date est enregistré depuis un timestamp. | ||
| - | |||
| - | Pour le nom du paquet et sa version, cela se complique: | ||
| - | En effet, ont est dans un répertoire s' | ||
| - | Ce qui se trouve avant le tiret correspond au nom du paquet donc ici mariosokoban, | ||
| - | Pour la license, au départ il y en a pas. | ||
| - | Puis viens le type du paquet, c'est ce que l'ont a choisi en répondant à la question de dh_make. | ||
| - | |||
| - | Ont confirme et il nous répond: | ||
| - | Done. Please edit the files in the debian/ subdirectory now. You should also | ||
| - | check that the mariosokoban Makefiles install into $DESTDIR and not in / . | ||
| - | |||
| - | Il nous informe donc que le répertoire debian avec les fichiers correspondants sont créer, il nous informe aussi que dans notre makefile il faut un point appelé install avec la variable DESTDIR pour définir le répertoire d' | ||
| - | Ne vous inquiétez pas, pas besoin de toucher au makefile de ce tuto, tous est prêt pour. | ||
| - | |||
| - | ===== Les modifications dans le dossier debian ===== | ||
| - | |||
| - | allons dans ce fameu dossier debian et liston un peu le contenu: | ||
| - | cd debian/ | ||
| - | ls | ||
| - | |||
| - | Nous avons pas loin de 24 fichiers présent ici, nous allons en modifier certains et nous en créérons un autre. | ||
| - | |||
| - | ==== control ==== | ||
| - | |||
| - | Modifions le fichier control: | ||
| - | emacs control | ||
| - | |||
| - | De base le fichier est le suivant: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | |||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | <insert long description, | ||
| - | |||
| - | Source est le nom du package source. | ||
| - | Section correspond a la section, ici nous allons mettre games pour indiquer un jeu. | ||
| - | Priority c'est al priorité, optionnel ça va très bien. | ||
| - | Ensuite c'est le nom du mainteneur avec son mail entre crochet. | ||
| - | Build-Depends correspond aux dépendances pour compiler, comme le jeu utilise la librairie SDL et SDL_image, ont va rajouter | ||
| - | | ||
| - | |||
| - | Cette ligne sera donc: | ||
| - | | ||
| - | |||
| - | D' | ||
| - | Dans cet exemple une version de la SDL supérieur à la 1.2 ou tous simplement la version 1.2 fonctionneront pour le jeu mais pas une version antérieur, nous indiquons cela en mettant >= qui signifie supérieur à (>) ou égale à(=) la version 1.2 | ||
| - | |||
| - | Plus bas nous avons Package qui est le nom du package binaire cette fois. | ||
| - | Architecture correspond au type d' | ||
| - | Any ou All définisssent que c'est sur tous type d' | ||
| - | |||
| - | Nous avons ensuite Depends, vous supprimez ce qui se trouve entre accolade et vous mettez à la place ceci la librairie SDL et SDL_image: | ||
| - | | ||
| - | |||
| - | Pour Description, | ||
| - | Elle se compose de la suite de la ligne, et pour le reste de la description c'est sur chaque nouvelle ligne contenant un espace juste avant. | ||
| - | |||
| - | ===== changelog ===== | ||
| - | |||
| - | Modifions le fichier changelog: | ||
| - | emacs changelog | ||
| - | |||
| - | De base le fichier est: | ||
| - | | ||
| - | |||
| - | * Initial release (Closes: # | ||
| - | |||
| - | -- DE LOS RIOS Christophe < | ||
| - | |||
| - | Sur la première ligne nous avons le nom du package suivit de sa version entre parenthèse. | ||
| - | en général le numéro est composé comme ceci: | ||
| - | La version que vous donnez au programme suivit d'un tiret puis du numéro de version debian, si c'est ubuntu vous rajouté ubuntu et la version ubuntu. | ||
| - | Le package n' | ||
| - | Ensuite c'est prévu pour ubuntu, ont rajoute donc ubuntu et comme c'est le premier sous ubuntu ont met 0. | ||
| - | La version sera donc: 0.0.1-0ubuntu1 | ||
| - | |||
| - | Ensuite nous voyons unstable, cela correspond a la version de la distribution debian, comme ont est sous ubuntu, ont va mettre le nom de code de notre version. | ||
| - | Dans cet exemple ont va mettre edgy à la place. | ||
| - | Notre ligne est donc finalement: | ||
| - | | ||
| - | |||
| - | Ensuite le (Closes: # | ||
| - | Cette ligne, ayant toujours deux espaces et une étoile au début, permet d' | ||
| - | |||
| - | En dernier nous avons le nom/prénom du mainteneur, son e-mail et la date enregistré au format UTC + le GMT, par exemple en ce moment en france nous somme en GMT+1 mais otn a rajouté 1H, c'est comme si ont était en GMT+2, ont va donc mettre la date/heure au format UTC et ont rajoutera: + 0200 | ||
| - | |||
| - | ==== dirs ==== | ||
| - | |||
| - | Nous allons ouvrir le fichier dirs: | ||
| - | emacs dirs | ||
| - | |||
| - | Ce fichier contient la liste des dossiers utilisé dans votre programme, son arborescence. | ||
| - | Nous utilisons dans le jeu le répertoire / | ||
| - | Nous allons au dessus des 2 autres répertoires, | ||
| - | | ||
| - | Nous indiquons le répertoire sans dire qu'il est à la racine car il faudrat qu'il soit créer dans le répertoire debian où nous nous trouvons. | ||
| - | Comme je n'ai que deux répertoires don je me sert, inutile donner le répertoire parent du programme qui sera / | ||
| - | |||
| - | ==== rules ==== | ||
| - | |||
| - | Ouvrons maintenant le fichier rules: | ||
| - | emacs rules | ||
| - | |||
| - | A la ligne 59 nous avons: | ||
| - | | ||
| - | Changeons cette ligne pour la ligne qui correspondra au dossier de destination donné ci-dessus mais dans le répertoire debian: | ||
| - | | ||
| - | |||
| - | à la ligne 73 nous avons: | ||
| - | # | ||
| - | Enlevons le dièse qui commente donc la ligne dh_install. | ||
| - | dh_install va nous servir afin de créer notre arborescence dans le apckage debian afin de le retrouver une fois le jeu installé. | ||
| - | |||
| - | ==== mariosokoban.install ==== | ||
| - | |||
| - | Nous allons maintenant créer un fichier qui sera le nom du package donc ici mariosokoban avec l' | ||
| - | emacs mariosokoban.install | ||
| - | |||
| - | Nous allons mette dedans l' | ||
| - | En premier nous donnons le fichier, ensuite le répertoire de destination. | ||
| - | Nous avons donc: | ||
| - | | ||
| - | | ||
| - | |||
| - | La première ligne indique que le fichier mariosokoban résultant de la compilation se trouvera au final dans le répertoire usr/ | ||
| - | La seconde indique que tous les fichiers se trouvant dans le répertoires images seront dans usr/ | ||
| - | |||
| - | Ce fichier va permettre à dh_install à son éxécution de rechercher tous les fichiers du jeu et de les placer dans se répertoire. | ||
| - | |||
| - | |||
| - | ====== Création de notre package final ====== | ||
| - | |||
| - | Quittons le répertoire debian: | ||
| - | cd .. | ||
| - | |||
| - | Nous allons maintenant créer notre package en faisant: | ||
| - | | ||
| - | fakeroot sert à manipuler des fichiers comme si ont était root. | ||
| - | dpkg-buildpackage va servir à créer notre paquet. | ||
| - | les paramètres -us -uc vont indiquer la création d'un paquet source .tar.gz(-us) et un paquet binaire .deb(-uc). | ||
| - | |||
| - | Il nous affiche: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | rm -f build-stamp configure-stamp | ||
| - | # Add here commands to clean up after the build process. | ||
| - | / | ||
| - | | ||
| - | rm -rf *.o | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | # Add here commands to configure the package. | ||
| - | touch configure-stamp | ||
| - | | ||
| - | # Add here commands to compile the package. | ||
| - | / | ||
| - | | ||
| - | gcc -c main.c -o main.o | ||
| - | gcc -c cmdline.c -o cmdline.o | ||
| - | gcc main.o cmdline.o -o mariosokoban -lSDLmain -lSDL -lSDL_image | ||
| - | | ||
| - | # | ||
| - | touch build-stamp | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | # Add here commands to install the package into debian/ | ||
| - | / | ||
| - | | ||
| - | mkdir -p / | ||
| - | cp mariosokoban / | ||
| - | cp ./ | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | tar: -: file name read contains nul character | ||
| - | | ||
| - | | ||
| - | | ||
| - | |||
| - | Ce qui nous intéresse ici c'est: | ||
| - | | ||
| - | | ||
| - | Ces deux lignes nous informent que le package a bien été créé. | ||
| - | |||
| - | |||
| - | ==== Vérification de la bonne création du package ==== | ||
| - | |||
| - | Nous allons vérifier que le package est correct. Retournons dans le répertoire contenant le répertoire du jeu, vous savez celui qui s' | ||
| - | Ontva donc faire un simple: | ||
| - | cd .. | ||
| - | |||
| - | On va ensuite faire un ls pour afficher le résultat: | ||
| - | | ||
| - | | ||
| - | | ||
| - | |||
| - | Nous avons donc le répertoire contenant les sources et les informations pour créer notre package. | ||
| - | Un fichier .dsc servant à la création du binaire, un .changes pareil. | ||
| - | Puis nous avons un .deb, c'est notre jeu compilé et prêt à être utilisé. | ||
| - | Le .tar.gz quand à lui contient uniquement les fichiers sources du jeu. | ||
| - | |||
| - | Vérifions que nous avons tous ce que nous voulons dans le .deb, je rappel que nous voulons un répertoire usr/ | ||
| - | |||
| - | Nous faisons la vérification: | ||
| - | dpkg -c mariosokoban_0.0.1-0ubuntu1_i386.deb | ||
| - | |||
| - | Il nous affichera: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | |||
| - | Nous retrouvons bien ce que nous voulons, seule chose nous avons sur/ | ||
| - | |||
| - | Installons maintenant le jeu pour etre tous a fait sur: | ||
| - | sudo dpkg -i mariosokoban_0.0.1-0ubuntu1_i386.deb | ||
| - | |||
| - | Faisons maintenant: | ||
| - | ls / | ||
| - | Afin de vérifier que tout s'est bien passé, nous voyons bien notre répertoire mariosokoban, | ||
| - | ls / | ||
| - | |||
| - | Nous voyons un fichier éxécutable (mariosokoban) et un répertoire (images), listons ce répertore: | ||
| - | ls / | ||
| - | |||
| - | Nous voyons bien qu'il y a les images. | ||
| - | |||
| - | ===== Final ===== | ||
| - | |||
| - | Nous voyons donc que tous à fonctionné à la perfection. | ||
| - | si nous voulons désinstaller le jeu nous avons juste à faire: | ||
| - | | ||
| - | et APT supprimera donc l' | ||
| - | |||
| - | |||
| - | ===== Remerciements ===== | ||
| - | |||
| - | Merci d' | ||
| - | |||
| - | Si vous avez des suggestions, | ||
| - | Ce tutorial m'a pris quelques heures car je n' | ||
| - | Cela me permet d' | ||
| - | |||
| - | J' | ||
| - | |||
| - | |||
| - | ---- | ||
| - | // | ||
