web-dev-qa-db-fra.com

Comment créer un PPA pour un programme de travail?

Supposons que j'ai une application de travail écrite en C, C++ ou Python. Je souhaite créer un PPA Launchpad afin que d'autres personnes puissent facilement l'installer à partir d'un package. S'il vous plaît donner des instructions étape par étape pour le faire du début à la fin. (Ou fournissez un lien qui fait la même chose;)

  • Le langage de programmation est-il important? (Pourrait-il s'agir d'un script bash?)
  • Dois-je ajouter quelque chose à ma construction?
  • Où la compilation doit-elle s'installer?
  • Comment définir des dépendances?
  • Comment utiliser les dépendances?
  • Comment créer un fichier .deb?
  • Que dois-je faire avant de télécharger sur Launchpad?
36
david.libremone

C'est une question très vaste. Je vais essayer de répondre autant que je peux, mais définitivement NE SERAIT PAS une instruction pas à pas. En effet, il n’existe pas d’algorithme pas à pas pour la création d’un package. La façon dont vous le ferez dépend de nombreux facteurs, principalement du type de package (application, bibliothèque), de la structure de la source et de nombreux détails.

Heureusement, il existe un guide complet sur http://packaging.ubuntu.com

Je vais essayer de vous aider un peu à comprendre l'ensemble du processus, donc vous serez un peu plus au courant. Le Guide d'emballage contient des ressources pour une aide supplémentaire.


Tout d’abord, vous devez comprendre que la création d’un package (fichier .deb) est un processus distinct de la création d’un PPA. Pour créer un PPA, il suffit d'aller dans le profil de votre tableau de bord et de cliquer sur le lien "Créer un nouveau PPA". C'est tout. C'est créé, ça marche, mais c'est vide. Pour télécharger un paquet, vous devez d'abord en créer un. Mais laissez-moi d'abord répondre à certaines de vos questions mineures.

  • Le langage de programmation N'EST PAS important. Il peut s'agir d'une application C++, d'un script Bash, de Brainfuck Hello World, d'un seul fichier README ou d'un ensemble de superbes photos. Les packages peuvent contenir n’importe quel fichier. Lors de l’installation, le package est extrait à la racine ("/") de votre système de fichiers. De cette façon, ils peuvent placer certains fichiers dans le dossier des fichiers binaires, ajouter des fonds d'écran au jeu par défaut de GNOME ou fournir à l'utilisateur un script Bash.
  • Vous FAITES devez ajouter quelque chose à la source. Il doit s'agir d'un répertoire de niveau supérieur nommé "debian". Il y aura quelques fichiers avec les détails du paquet - ils seront utilisés pour définir le type de paquet, etc.
  • Les dépendances sont répertoriées dans l'un de ces fichiers (parmi d'autres détails). D'où les obtenir? Ce sont simplement d'autres packages utilisés par votre application. Le développeur de l'application connaîtra les bibliothèques et les ressources requises par son programme, il ne devrait donc pas avoir de difficulté à les répertorier.
    • Certains outils utilisés pour construire un paquet (pbuilder) peuvent remplir les dépendances automatiquement, probablement en déterminant ce que votre application nécessite lors de la compilation.
  • Il est également fortement recommandé d'utiliser AutoTools . Vous devrez peut-être ajouter quelque chose, mais presque tous les logiciels les utilisent déjà. AutoTools est un ensemble de programmes extrêmement utiles - automake, autoconf et autoscan, pour n'en nommer que quelques-uns. Lorsque vous compilez et installez un programme avec le célèbre ./ configure && make && make install , les outils automatiques sont utilisés pour traiter automatiquement le code source, pour préparer d'autres ressources incluses avec le code à l'installation. , et d’extraire le résultat de la compilation au bon endroit (pour répondre à votre question: la construction extraira vers BEAUCOUP d’endroits séparés. Les binaires iront dans/usr/local/bin, les docs dans/usr/local/share/docs De plus, les fichiers binaires d'un paquet iront même à des endroits différents, par exemple les fichiers binaires de/usr/bin. Comment gérer cette mise en page de répertoires compliquée? Utilisez AutoTools - il s'en souciera automatiquement, et c'est pourquoi ils le sont utile).

Construire un paquet .deb peut sembler être un processus très compliqué, mais ce n’est pas si difficile. Je vous recommande fortement le guide officiel Ubuntu pour la création de paquets: http://packaging.ubuntu.com

C'est énorme, mais vous verrez que vous pouvez probablement ignorer la plupart des parties de ce texte (en fonction du paquet que vous allez créer). Fondamentalement, le processus d’emballage se compose de ces parties (toutes sont clairement expliquées dans le Guide) :

  1. Initiez quelques outils utilisés pour construire des packages.
  2. Obtenir la source
  3. Créez le répertoire ./debian et remplissez-le avec les données requises
  4. Construisez le paquet avec debuild [Cela devrait créer un ensemble de fichiers, y compris * .dsc, * _source.build, * _source.changes, qui sont responsables des données concernant le paquet et de la manière de les gérer. avec elle (vous aurez aussi une source .tar.gz)]
  5. Vérifiez si tout fonctionne en exécutant pbuilder localement (il faudra tous les fichiers mentionnés ci-dessus et essayez de les combiner dans un paquet .deb, en créant automatiquement le code source à l’aide d’AutoTools - c’est pourquoi ils sont essentiels pour l’emballage [franchement - pas - vous pouvez vous en passer, ou avec certaines alternatives, mais c’est l’approche la plus simple, et une autre peut nécessiter une configuration avancée, car vous devrez indiquer au constructeur comment construire le source ( en utilisant le fichier ./debian/rules) - mais ce n’est pas pour les débutants] () - si vous voulez juste obtenir un paquet .deb, c’est fait.

Maintenant, vous devez le télécharger sur votre PPA, ce qui est expliqué sur cette page d'aide: https: //help.launchpad. net/emballage/PPA/téléchargement

  1. Utilisez dput pour télécharger ces fichiers sur le Launchpad
  2. Launchpad exécutera pbuilder sur leurs ordinateurs et générera des packages dans un environnement propre
  3. Enfin, les packages devraient apparaître dans le PPA.

Comme vous le voyez, créer un PPA n’est pas aussi simple . Mais n'ayez pas peur , ce n'est pas si difficile. De plus, je vous recommande de ne pas encourager les développeurs à utiliser un PPA, car ils ne vous écouteront probablement pas, car ils auraient besoin de faire un travail supplémentaire (et s'ils le voulaient, ils l'auraient déjà fait), mais vous pouvez vouloir essayer de soutenir les développeurs Ubuntu et l'ensemble de la communauté et de leur fournir les packages que vous avez préparés :)

Je vous souhaite bonne chance pour la création de packages, j'espère que vous trouverez ma réponse utile :)

Votre ami, Rafał Cieślak

32
Rafał Cieślak
  • Avant de pouvoir télécharger votre paquet, vous devez le configurer pour l’emballage .deb, voir Ubuntu PackagingGuide .

  • Une fois que vous pouvez créer un package pour votre logiciel, voir Launchpad's Documentation PPA . Il vous guidera de la création du PPA au téléchargement de votre paquet.

5
Isaiah