Les paquets
De Wiki EELL.
m (Mise à jour) |
m (OK après modif du bandeau) |
||
(3 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
<!--<center><big>'''EN COURS D'ECRITURE'''</big></center> | <!--<center><big>'''EN COURS D'ECRITURE'''</big></center> | ||
- | [[Fichier:Mkd-256x256.png|thumb|80px|left|''Make documents'']]--> | + | [[Fichier:Mkd-256x256.png|thumb|80px|left|''Make documents'']]--><div class="site-header noprint"> |
- | {{Méta-bandeau| | + | {{Méta-bandeau|border-left=green|titre= '''Exercice de construction d'un paquet debian.'''|Cet exercice a pour but de se familiariser avec la construction d'un paquet debian.<br />Ce paquet est construit à titre d"essai<br />[https://fr.wikibooks.org/wiki/Mkd_(Extracteur_de_documents)/D%C3%A9p%C3%B4t_parrain%C3%A9_du_paquet_%27%27original%27%27_mkd-13121 Voyez la construction d'un paquet mkd officiel (version 131215)] |
- | Cette page a été optimisée pour la "{{bleu|Version imprimable}}". Si vous désirez imprimer cette page {{rouge|assurez-vous que les textes déroulants ne sont pas masqués.}} }} | + | Cette page a été optimisée pour la "{{bleu|Version imprimable}}". Si vous désirez imprimer cette page {{rouge|assurez-vous que les textes déroulants ne sont pas masqués.}} }}</div> |
<!--{{Cadre/source}}--> | <!--{{Cadre/source}}--> | ||
Les [[wikipedia:fr:Paquet_(logiciel)|paquets]] d'installation des logiciels pour les systèmes d'exploitation [[linux]] permettent de sécuriser les systèmes grâce à des clés numériques. Ils permettent aussi de faciliter l'installation des applications. | Les [[wikipedia:fr:Paquet_(logiciel)|paquets]] d'installation des logiciels pour les systèmes d'exploitation [[linux]] permettent de sécuriser les systèmes grâce à des clés numériques. Ils permettent aussi de faciliter l'installation des applications. | ||
La description qui suit ne conduit pas à la construction d'un paquet sécurisé | La description qui suit ne conduit pas à la construction d'un paquet sécurisé | ||
- | |||
== Créer un paquet debian == | == Créer un paquet debian == | ||
Ligne 38 : | Ligne 37 : | ||
'''"./"''' est le '''répertoire conteneur''' que nous pouvons appeler '''projet-mkmaintainerdocu''' Il contient nos utilitaires et les fichiers d'installation. | '''"./"''' est le '''répertoire conteneur''' que nous pouvons appeler '''projet-mkmaintainerdocu''' Il contient nos utilitaires et les fichiers d'installation. | ||
- | '''"./mkmaintainerdocu"''' est le '''répertoire racine''' de notre paquet. Ce qui nous intéresse se trouve DANS ce répertoire | + | '''"./mkmaintainerdocu"''' est le '''répertoire racine''' de notre paquet. Ce qui nous intéresse se trouve DANS ce répertoire. |
- | < | + | <div style="color: darkblue; background-color:#FFFFD0;font-size: 8pt"> |
- | ./mkmaintainerdocu/usr/share | + | '''Créer le contenu de l'archive.''' Les fichiers à créer sont décrits ci-après : <br /> |
- | ./mkmaintainerdocu/usr/share/doc | + | ./mkmaintainerdocu/usr <br /> |
- | ./mkmaintainerdocu/usr/share/doc/changelog.debian - fichier à créer | + | ./mkmaintainerdocu/usr/share <br /> |
- | ./mkmaintainerdocu/usr/share/doc/copyright - fichier à créer | + | ./mkmaintainerdocu/usr/share/doc <br /> |
- | ./mkmaintainerdocu/usr/share/doc/changelog - fichier à créer | + | ./mkmaintainerdocu/usr/share/doc/changelog.debian - {{rouge|fichier à créer}} <br /> |
- | ./mkmaintainerdocu/usr/share/doc/README - fichier à créer | + | ./mkmaintainerdocu/usr/share/doc/copyright - {{rouge|fichier à créer}} <br /> |
- | ./mkmaintainerdocu/usr/local | + | ./mkmaintainerdocu/usr/share/doc/changelog - {{rouge|fichier à créer}} <br /> |
- | ./mkmaintainerdocu/usr/local/bin | + | ./mkmaintainerdocu/usr/share/doc/README - {{rouge|fichier à créer}} <br /> |
- | ./mkmaintainerdocu/usr/local/bin/mkmaintainerdocu - fichier à créer | + | ./mkmaintainerdocu/usr/local <br /> |
- | ./mkmaintainerdocu/DEBIAN | + | ./mkmaintainerdocu/usr/local/bin <br /> |
- | ./mkmaintainerdocu/DEBIAN/postrm - fichier à créer | + | ./mkmaintainerdocu/usr/local/bin/mkmaintainerdocu - {{rouge|fichier à créer}} <br /> |
- | ./mkmaintainerdocu/DEBIAN/control - fichier à créer | + | ./mkmaintainerdocu/DEBIAN <br /> |
- | ./mkmaintainerdocu/DEBIAN/postinst - fichier à créer | + | ./mkmaintainerdocu/DEBIAN/postrm - {{rouge|fichier à créer}} <br /> |
- | + | ./mkmaintainerdocu/DEBIAN/control - {{rouge|fichier à créer}} <br /> | |
- | + | ./mkmaintainerdocu/DEBIAN/postinst - {{rouge|fichier à créer}} <br /> | |
- | ./empaqueter - pour créer le paquet | + | '''On y ajoutera les utilitaires décrits ci-après :''' <br /> |
- | ./installer - pour installer l'application | + | ./empaqueter - pour créer le paquet - {{rouge|fichier à créer}} <br /> |
- | ./desinstaller - pour désinstaller le paquet | + | ./installer - pour installer l'application - {{rouge|fichier à créer}} <br /> |
- | ./KONSOLE - utilitaire pour créer une console locale | + | ./desinstaller - pour désinstaller le paquet - {{rouge|fichier à créer}} <br /> |
- | + | ./KONSOLE - utilitaire pour créer une console locale - {{rouge|fichier à créer}} <br /> | |
- | + | '''Fichiers qui seront créés à l'empaquetage :''' <br /> | |
- | ./mkmaintainerdocu.deb | + | ./mkmaintainerdocu.deb |
- | + | </div> | |
- | + | ||
- | + | ||
- | + | ||
==== changelog.debian ==== | ==== changelog.debian ==== | ||
Ligne 118 : | Ligne 114 : | ||
project-functions-maintainers-doc.txt' " | project-functions-maintainers-doc.txt' " | ||
mkd -Cjwnt P project-prj ./maintainer-documentation/project-functions-maintainers-doc.txt | mkd -Cjwnt P project-prj ./maintainer-documentation/project-functions-maintainers-doc.txt | ||
+ | |||
+ | # Get all strings and select strings for translations (add 2012-02-13) | ||
+ | echo " make list of strings for tranlations" | ||
+ | mkd -pnjs '**' project-prj ./maintainer-documentation/strings.txt | grep gettext > ./maintainer-documentation/strings-for-translations.txt | ||
echo " Make mkd tests : " | echo " Make mkd tests : " |
Version actuelle en date du 19 février 2014 à 16:35
Les paquets d'installation des logiciels pour les systèmes d'exploitation linux permettent de sécuriser les systèmes grâce à des clés numériques. Ils permettent aussi de faciliter l'installation des applications.
La description qui suit ne conduit pas à la construction d'un paquet sécurisé
Sommaire[masquer]
|
Créer un paquet debian
La lecture de la documentation sur le sujet est si obscure qu'il est bien difficile de créer son premier paquet.
L'objet de cet article est de voir, au travers d'un exemple simple, comment sortir de l'obscurité.
Le paquet debian que nous allons créer ne sera pas sécurisé et ne pourra pas être installé par le gestionnaire de la logithèque. Il sera simplement installé et désinstallé par des commandes shell.
Le paquet
- L'idée de la démonstration est de créer un utilitaire très simple à l'usage des programmeurs avec l'aide de la commande mkd.
- Nous nous sommes inspirés de l'article myecho[1] pour vous proposer cette commande que nous appellerons mkmaintainerdocu (Make maintainer documentation)
- Cette commande n'a pas pour ambition de persister dans les répertoires des commandes binaires (/bin, /usr/bin, etc.)
Que doit-il faire ?
- créer un fichier de projet pour une application écrite en langage C
- générer le fichier d'entête de l'application "<projet>.h
- générer la documentation des fonctions
- générer la documentation destinée aux programmeurs
- Si possible afficher les fichier à la fin de leur création ou modification.
Choix de l'exécutable
Le plus simple est de créer une commande shell bash, facile à maîtriser et inspirée par myecho cité dans les références.
Structure de l'archive projet-mkmaintainerdocu.tar.gz
"./" est le répertoire conteneur que nous pouvons appeler projet-mkmaintainerdocu Il contient nos utilitaires et les fichiers d'installation. "./mkmaintainerdocu" est le répertoire racine de notre paquet. Ce qui nous intéresse se trouve DANS ce répertoire.
Créer le contenu de l'archive. Les fichiers à créer sont décrits ci-après :
./mkmaintainerdocu/usr
./mkmaintainerdocu/usr/share
./mkmaintainerdocu/usr/share/doc
./mkmaintainerdocu/usr/share/doc/changelog.debian - fichier à créer
./mkmaintainerdocu/usr/share/doc/copyright - fichier à créer
./mkmaintainerdocu/usr/share/doc/changelog - fichier à créer
./mkmaintainerdocu/usr/share/doc/README - fichier à créer
./mkmaintainerdocu/usr/local
./mkmaintainerdocu/usr/local/bin
./mkmaintainerdocu/usr/local/bin/mkmaintainerdocu - fichier à créer
./mkmaintainerdocu/DEBIAN
./mkmaintainerdocu/DEBIAN/postrm - fichier à créer
./mkmaintainerdocu/DEBIAN/control - fichier à créer
./mkmaintainerdocu/DEBIAN/postinst - fichier à créer
On y ajoutera les utilitaires décrits ci-après :
./empaqueter - pour créer le paquet - fichier à créer
./installer - pour installer l'application - fichier à créer
./desinstaller - pour désinstaller le paquet - fichier à créer
./KONSOLE - utilitaire pour créer une console locale - fichier à créer
Fichiers qui seront créés à l'empaquetage :
./mkmaintainerdocu.deb
changelog.debian
* fichier nécessaire à la création du paquet, peut être vide. First version : 1.0 (2013-12-15)
copyright
* fichier nécessaire à la création du paquet, peut être vide. First version : 1.0 (2013-12-15) (c) Demo <demo@demo.com>
changelog
* fichier nécessaire à la création du paquet, peut être vide. First version : 1.0 (2013-12-15)
README
* fichier utile à la construction du paquet This demo command is writed to create a self debian package.
mkmaintainerdocu
- notre fichier shell qui va exécuter nos commandes de création des documents
#!/bin/bash # File mkmaintainerdocu writed by Clara Jimenez 2013-12-15 # Demo : Create any simple debian package for mkd and C programming language # remove old files : rm *.c~ # ATTENTION ! # create project file only with C files : ls -1 *.c > project-prj # create ./maintainer-documentation directory if not exist : install -d ./maintainer-documentation # Make header file project.h and header document; style C, overwrite, text only echo " make header file './maintainer-documentation/project.h' " mkd -Cjwt H project-prj ./maintainer-documentation/project.h echo " make fuctions documentation './maintainer-documentation/project-functions-documentation.txt' " mkd -Cjwt D project-prj ./maintainer-documentation/project-functions-documentation.txt # Make individuals tests directives document; style C, overwrite, add line number, text only echo " make tests document, directives for all functions './maintainer-documentation/\ project-functions-directives.txt' " mkd -Cjwnt T project-prj ./maintainer-documentation/project-functions-directives.txt # Make functions updates documentation; style C, overwrite, add line number, text only echo " make functions maintainers documentation '/maintainer-documentation/\ project-functions-maintainers-doc.txt' " mkd -Cjwnt P project-prj ./maintainer-documentation/project-functions-maintainers-doc.txt # Get all strings and select strings for translations (add 2012-02-13) echo " make list of strings for tranlations" mkd -pnjs '**' project-prj ./maintainer-documentation/strings.txt | grep gettext > ./maintainer-documentation/strings-for-translations.txt echo " Make mkd tests : " echo " See in working directory. "
postrm
- shell exécuté après la suppression du paquet (si nécessaire)
- cet exécutable peut exécuter des mises à jour comme 'cat', 'whatis', et d'autres ...
#!/bin/bash echo " If this message appears then 'mkmaintainerdocu' is now removed "
control
- fichier nécessaire à la construction du paquet
Version: 1.0 Section: devel Priority: optional architecture: all Depends: bash, mkd Maintainer: Demo <demo@demo.com> Description: Make maintainer documentation for C files. See mkd manual. Suggests: mkdcppw Recommends: mkd
- Le classement des paquets doit être choisi dans une des sections :
admin, devel, doc, graphics, libs, misc, net, otherofs, pyton, shells, sound, text, utils, x11.
postinst
- shell exécuté après la création du paquet (si nécessaire)
- cet exécutable peut exécuter des mises à jour comme 'cat', 'whatis', et d'autres ...
#!/bin/bash echo " Use 'mkmaintainerdocu' in your working directory " echo " Then type 'mkmaintainerdocu' in your terminal or konsole " echo " See manual man1 'mkd' and, or, 'mkmaintainerdocu' "
utilitaires
empaqueter
#!/bin/bash fakeroot chmod 755 mkmaintainerdocu/usr/local/bin/mkmaintainerdocu fakeroot chmod 755 mkmaintainerdocu/DEBIAN/post* fakeroot chmod 755 mkmaintainerdocu/DEBIAN/pre* fakeroot rm *.deb fakeroot dpkg-deb --build mkmaintainerdocu
installer
#!/bin/bash sudo dpkg -i mkmaintainerdocu.deb
desinstaller
#!/bin/bash sudo dpkg --remove mkmaintainerdocu ou : # sudo dpkg --purge mkmaintainerdocu
KONSOLE
#!/bin/bash echo -e '\E['32';'01'm'"click on New Line to 'start' the Konsole" # echo -e '\E['31';'01'm' "not 'start in a terminal'" echo -e '\E['32';'01'm'"click on Ctrl-C to exit" tput sgr0 # Reset text attributes to normal without clear read pwd pwd echo $pwd tput sgr0 # Reset text attributes to normal without clear /usr/bin/konsole background-mode --workdir pwd dir read
Contenu extrait du paquet
- L'extraction recrée les répertoires avec la même structure.
./mkmaintainerdocu ./mkmaintainerdocu/usr ./mkmaintainerdocu/usr/share ./mkmaintainerdocu/usr/share/doc ./mkmaintainerdocu/usr/share/doc/changelog.debian ./mkmaintainerdocu/usr/share/doc/copyright ./mkmaintainerdocu/usr/share/doc/changelog ./mkmaintainerdocu/usr/share/doc/README ./mkmaintainerdocu/usr/local ./mkmaintainerdocu/usr/local/bin ./mkmaintainerdocu/usr/local/bin/mkmaintainerdocu ./mkmaintainerdocu/DEBIAN ./mkmaintainerdocu/DEBIAN/postrm ./mkmaintainerdocu/DEBIAN/control ./mkmaintainerdocu/DEBIAN/postinst
Tests
Sécurisation des paquets
Les paquets non sécurisés sont à proscrire.
Suggestions
- Si vous utilisez souvent les mêmes codes d'extraction, vous pouvez créer un shell pour la maintenance dans le répertoire /usr/local/bin, sans pour cela créer un paquet ....
- Les paquets sont réellement utiles lorsque l'installation est complexe ou pour une meilleure sécurité par un dépôt officiel (Voir Launchpad)
Liens utiles
Liste 'complète' ? des pages décrivant l'utilisation des paquets sous Ubuntu