Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:comment_publier_une_application_java [Le 01/10/2014, 22:14] ladeche |
tutoriel:comment_publier_une_application_java [Le 11/09/2022, 12:25] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ---[ le modèle commence ICI ]--- | + | {{tag>tutoriel java publier application ppa launchpad}} |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ---- | + | |
- | + | ||
- | <note tip>Les [[:wiki:tags|tags]] d'une page "tutoriel" sont à introduire dans l'ordre suivant :\\ ''Versions((versions d'Ubuntu pour lesquelles la page est valide)) tutoriel autres_tags((facultatif, à choisir parmi les [[:thesaurus|tags existants]])) BROUILLON''\\ | + | |
- | //Pour en savoir plus sur l'usage des tags : [[:wiki:tags|voir ici]].// | + | |
- | </note> | + | |
====== Comment publier une application java ====== | ====== Comment publier une application java ====== | ||
+ | ===== Introduction ===== | ||
Ce tutoriel décrit une méthode pour publier une application java et la rendre installable via un ppa. | Ce tutoriel décrit une méthode pour publier une application java et la rendre installable via un ppa. | ||
+ | |||
+ | A noter que cette méthode peut également être utilisée pour publier une application réalisée dans un autre langage et dont l'installation ne requiert pas une re-compilation des sources. | ||
===== Pré-requis ===== | ===== Pré-requis ===== | ||
- | |||
- | <note tip>Si des pré-requis sont nécessaires pour la suite des opérations, indiquez-les. Citons quelques exemples :</note> | ||
- | * Disposer des [[:sudo|droits d'administration]]. | ||
- | * Disposer d'une connexion à Internet configurée et activée. | ||
- | * Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **[[apt>//cafe|cafe]]**. | ||
===== Compte launchpad et ppa ===== | ===== Compte launchpad et ppa ===== | ||
Il est indispensable de créer un ppa sur launchpad.net. Cette [[http://developer.ubuntu.com/publish/apps/other-forms-of-submitting-apps/ppa/|page]] vous y aidera. | Il est indispensable de créer un ppa sur launchpad.net. Cette [[http://developer.ubuntu.com/publish/apps/other-forms-of-submitting-apps/ppa/|page]] vous y aidera. | ||
- | Pour ce faire il faut : | + | Pour ce faire il faut : |
* Se créer un compte sur launchpad.net | * Se créer un compte sur launchpad.net | ||
* Se créer une clef gpg (à l'aide de SeaHorse ou Kgpg) | * Se créer une clef gpg (à l'aide de SeaHorse ou Kgpg) | ||
* Créer le ppa et le configurer. | * Créer le ppa et le configurer. | ||
- | ===== Build ===== | + | Pour la suite nous considérons que le launchpad créé est "monlaunchpad" et le ppa "monppa". |
+ | L'email associé est moi@email.com. | ||
- | Puis... | + | ===== Préparation en local ===== |
+ | * Créer un répertoire local ou seront construits les builds. Par exemple /home/user/ppa. Appelons le $PPA_HOME. | ||
+ | * Dans $PPA_HOME, créer un sous-répertoire avec le nom de l'application (monappli) | ||
+ | * Puis dans ce dernier répertoire un sous-répertoire avec la version de l'application. A noter que le nom de ce sous-répertoire est formaté : nomappli-version. Ici par exemple monappli-0.1.0. | ||
+ | A l'arrivée on a : | ||
- | ===== Conclusion ===== | + | /home/user/ppa |
+ | |__ monappli | ||
+ | | |___monappli-0.1.0 | ||
+ | | |___monappli-0.2.0 | ||
+ | |__ monapplibis | ||
- | Voila, vous savez maintenant faire le café avec Ubuntu ! | ||
- | ===== Problèmes connus===== | + | Pour la suite nous allons essayer de packager monappli. |
- | Si votre café est trop fort, saisissez la commande suivante dans un [[:terminal]]: ... | + | ===== dh_make : initialisation des fichiers debian ===== |
- | ===== Voir aussi ===== | + | Dans le répertoire $PPA_HOME/monappli/monappli-0.1.0 : |
+ | <code> | ||
+ | dh_make --single --native --copyright apache --email moi@email.com | ||
+ | </code> | ||
+ | A noter que le paramètre "copyright" indique la licence sous laquelle vous souhaitez publier votre oeuvre (ici apache). Pour plus de détails : [[http://developer.ubuntu.com/publish/apps/choosing-a-license/|ici]] | ||
+ | Il est également important que l'email soit le même que celui avec lequel vous avez la clef GPG. | ||
+ | Ceci va créer un sous-répertoire debian contenant différents fichiers. Les fichiers avec les extensions .ex et .EX sont sans intérêts. Donc sous $PPA_HOME/monappli/monappli-0.1.0 : | ||
+ | <code> | ||
+ | rm debian/*.ex debian/*.EX | ||
+ | </code> | ||
- | * **(en)** [[http://bidule.org/projects/bidule/|un autre tutoriel intéressant à propos du café sous linux]] | + | Voyons maintenant les fichiers importants sous $PPA_HOME/monappli/monappli-0.1.0/debian. |
- | * **(fr, en)** [[http://www.bidule.org|Manuel d'utilisation du logiciel Bidule]] | + | ==== Fichier changelog ==== |
- | * [[http://forum.ubuntu-fr.org/viewtopic.php?id=64840|Discussion "Tutoriel pour faire le café"]] sur le forum ubuntu-fr | + | Ce fichier contient les informations décrivant les changements opérés depuis la dernière version. Vous devez avoir cela : |
+ | <code> | ||
+ | monappli (0.1.0) unstable; urgency=low | ||
- | ---- | + | * Initial Release. |
- | <note help>Si vous considérez que votre contribution à la page de documentation est significative et/ou que vous souhaitez pouvoir être contacté par les lecteurs, vous avez la possibilité de la signer en ajoutant votre identifiant dans la ligne ci-dessous. Vous pouvez aussi vous abonner aux modifications de la page en cliquant sur "S'abonner à la page" (menu en haut à gauche). | + | -- Moi <moi@email.com> Sat, 04 Oct 2014 19:07:31 +0200 |
- | </note> | + | </code> |
+ | A modifier pour obtenir quelque chose de plus pertinent : | ||
+ | * Remplacer "unstable" par une version d'ubuntu ("trusty" par exemple pour la 14.04). | ||
+ | * Compléter les éléments de modification. | ||
+ | * Changer éventuellement la date en conservant le formalisme. | ||
+ | Finalement : | ||
+ | <code> | ||
+ | monappli (0.1.0) trusty; urgency=low | ||
- | //Contributeurs principaux : [[:utilisateurs:votre_identifiant|votre nom ou pseudonyme]], [[:utilisateurs:autre_identifiant|nom ou pseudo autre]].// | + | * Initial Release. |
+ | * Ma première publication | ||
- | <note help>Si vous vous êtes basé sur un document existant pour écrire votre article, citez la source originale ! Ceci est indispensable afin de respecter les droits d'auteur.</note> | + | -- Moi <moi@email.com> Sun, 05 Oct 2014 21:00:00 +0200 |
+ | </code> | ||
- | //Basé sur [[http://www.document_source.com|« Titre original de l'article »]] par Auteur Original.// | + | ==== Fichier control ==== |
+ | Ce fichier est un descriptif de l'application et ressemble à cela : | ||
+ | <code> | ||
+ | Source: monappli | ||
+ | Section: unknown | ||
+ | Priority: optional | ||
+ | Maintainer: Moi <moi@email.com> | ||
+ | Build-Depends: debhelper (>= 8.0.0) | ||
+ | Standards-Version: 3.9.4 | ||
+ | Homepage: <insert the upstream URL, if relevant> | ||
+ | #Vcs-Git: git://git.debian.org/collab-maint/test.git | ||
+ | #Vcs-Browser: http://git.debian.org/?p=collab-maint/test.git;a=summary | ||
+ | Package: test | ||
+ | Architecture: any | ||
+ | Depends: ${shlibs:Depends}, ${misc:Depends} | ||
+ | Description: <insert up to 60 chars description> | ||
+ | <insert long description, indented with spaces> | ||
+ | </code> | ||
- | ---[ Modèle à copier/coller ]--- | + | Il convient de changer la section. Typiquement on peut mettre "utils". Plus de détails [[https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections|ici]]. |
+ | Le plus important est la zone "depends" qui décrit les dépendances d'autres paquets. Pour une application java, manifestement on doit dépendre du paquet java. | ||
+ | Au final on a quelque chose comme ça : | ||
<code> | <code> | ||
+ | Source: monappli | ||
+ | Section: utils | ||
+ | Priority: optional | ||
+ | Maintainer: Moi <moi@email.com> | ||
+ | Build-Depends: debhelper (>= 8.0.0) | ||
+ | Standards-Version: 3.9.4 | ||
+ | Homepage: <insert the upstream URL, if relevant> | ||
+ | #Vcs-Git: git://git.debian.org/collab-maint/test.git | ||
+ | #Vcs-Browser: http://git.debian.org/?p=collab-maint/test.git;a=summary | ||
+ | Package: test | ||
+ | Architecture: any | ||
+ | Depends: ${shlibs:Depends}, ${misc:Depends}, openjdk-7-jre (>=7) | ||
+ | Description: Simple tool. | ||
+ | Simple tool to do whatever you want. | ||
+ | </code> | ||
+ | ==== Fichier install ==== | ||
+ | Ce fichier décrit la destination des différents fichiers composant le paquet lors de l'installation par apt-get install. S'il n'a pas été créé par dh_make il faut le créer. | ||
+ | A l'installation le shell lanceur devra se trouver dans /usr/bin, les autres élements nécessaires à l'exécution dans /usr/lib/monappli. | ||
+ | Typiquement pour une application java on va trouver un jar (monappli-0.1.0.jar) contenant le bytecode, un shell (monappli) pour lancer le programme, éventuellement des ressources comme des images (monappli.png). | ||
+ | |||
+ | Egalement à l'installation on voudra créer un raccourci (monappli.desktop) dans le menu et y associer une icône (monappli_icon.png). | ||
+ | <code> | ||
+ | monappli /usr/bin | ||
+ | monappli-0.1.0.jar /usr/lib/monappli | ||
+ | monappli.png /usr/lib/monappli | ||
+ | monappli.desktop /usr/share/applications | ||
+ | monappli_icon.png /usr/share/pixmaps | ||
</code> | </code> | ||
+ | |||
+ | Ci-dessous un exemple de fichier monappli.desktop | ||
+ | <code> | ||
+ | Version=0.1.0 | ||
+ | Name=monappli | ||
+ | Comment=Simple tool | ||
+ | Exec=monappli | ||
+ | Icon=monappli_icon | ||
+ | Terminal=false | ||
+ | Type=Application | ||
+ | Categories=Utility | ||
+ | Keywords=Utility | ||
+ | StartupNotify=true | ||
+ | </code> | ||
+ | |||
+ | ==== Autres éléments ==== | ||
+ | Il reste à copier dans le répertoire $PPA_HOME/monappli/monappli-0.1.0 tous les fichiers nécessaires au fonctionnement de l'application (jar, shell, ressources, icône, .desktop, ...). | ||
+ | Vous pouvez également prévoir un répertoire src pour le source. | ||
+ | |||
+ | L'ensemble est désormais prêt à être packagé. | ||
+ | |||
+ | |||
+ | ===== debuild : construction du package ===== | ||
+ | Sous $PPA_HOME/monappli/monappli-0.1.0 : | ||
+ | <code> | ||
+ | debuild -S | ||
+ | </code> | ||
+ | L'exécution de cette commande crée un ensemble de fichier sous $PPA_HOME/monappli : | ||
+ | * monappli_0.1.0.dsc : descriptif technique du paquet | ||
+ | * monappli_0.1.0_source.build : journal d'exécution du build | ||
+ | * monappli_0.1.0_source.changes : autre descriptif technique du paquet | ||
+ | * monappli_0.1.0.tar.gz : le package proprement dit | ||
+ | |||
+ | A noter que lors de l'exécution le programme vous demandera la passphrase que vous avez utilisé pour créer la clef GPG. | ||
+ | |||
+ | ===== dput : upload sur launchpad ===== | ||
+ | Il ne reste plus qu'à uploader le package sur launchpad.net. Sous $PPA_HOME/monappli/monappli-0.1.0: | ||
+ | <code> | ||
+ | dput ppa:monlaunchpad/monppa ../monappli_0.1.0_source.changes | ||
+ | </code> | ||
+ | A la suite de cette commande, les fichiers (.tar.gz, .dsc, .changes) sont chargés sur launchpad.net. Un mail vous est envoyé sur moi@email.com pour vous indiquer que la paquet a été accepté dans launchpad.net. En vous connectant sur https://launchpad.net/~monlaunchpad/+archive/ubuntu/monppa vous devez voir votre package. | ||
+ | |||
+ | Par contre il n'est pas forcément directement opérationnel car des process en background sur launchpad vont construire des paquets .deb directement opérationnels (1 en amd64, 1 en i386) ce qui peut prendre un peu de temps (de quelques minutes à 1h). | ||
+ | |||
+ | Cliquer sur le lien "view package details". | ||
+ | |||
+ | Une liste cliquable des paquets apparait. En cliquant sur le lien "monappli-0.1.1", vous voyez apparaitre le détail du package : au minimum un fichier .dsc et un .tar.gz. Si launchpad a déjà effectué son travail vous voyez également un fichier amd64.deb et un i386.deb, sinon il faut attendre. | ||
+ | |||
+ | ===== Installation du package par le gestionnaire de logiciel ===== | ||
+ | Pour pouvoir installer l'application monappli il faut ajouter le ppa à votre liste : | ||
+ | <code> | ||
+ | sudo add-apt-repository ppa:monlaunchpad/monppa | ||
+ | sudo apt-get update | ||
+ | </code> | ||
+ | |||
+ | Il reste à installer l'application via le gestionnaire de logiciel ou via la ligne de commande : | ||
+ | <code> | ||
+ | sudo apt-get install monappli | ||
+ | </code> | ||
+ | |||
+ | ===== Mise à jour des versions ===== | ||
+ | Si vous faites évoluer votre application, pour publier la version suivante, il suffit de copier le sous-répertoire de la dernière version, d'en actualiser le contenu (fichiers changelog, control, install, ...) et de reprendre les commandes depuis l'étape "debuild : construction du package". | ||
+ | Par exemple sous $PPA_HOME/monappli : | ||
+ | <code> | ||
+ | cp -r monappli_0.1.0 monappli_0.2.0 | ||
+ | </code> | ||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * **(en)** [[http://developer.ubuntu.com/publish/apps/other-forms-of-submitting-apps/ppa/|sur le site des développeurs ubuntu]] | ||
+ | * **(en)** [[https://www.ebower.com/docs/ubuntu-ppa/|Tutoriel en anglais dont cette page est largement inspirée]] | ||
+ | |||
+ | ---- | ||
+ | |||
+ | //Contributeurs principaux : [[:utilisateurs:ladeche|ladeche]]// | ||
+ | |||
+ |