web-dev-qa-db-fra.com

Comment créer un programme PPA pour C ++?

MyAgenda 1.0 screenshot

Si j'ai un projet c ++/gtkmm créé avec NetBean, comment puis-je créer un package pour PPA à partir de cela?

J'ai créé une structure de fichiers cible (* .desktop, iconfile, fichiers glade ui).

Le binaire va à /opt/extras.ubuntu.com/myagenda/bin/myagenda.

Il y a aussi un dossier de fichiers glade, qui doit aller à /opt/extras.ubuntu.com/myagenda/bin/myagenda/ui.

Le fichier de bureau passe à /usr/share/applications/myagenda.desktop. Icône va à /usr/share/icons/hicolor/scalable/apps/myagenda.svg

Comme vous le voyez, il n'y a qu'un petit nombre de fichiers.

Maintenant, comment gérer tout ça, créer un paquet sur PPA, qui sait où et comment mettre ces fichiers à leurs cibles?

├── opt
│   └── extras.ubuntu.com
│       └── myagenda
│           ├── bin
│           │   └── myagenda
│           └── ui
│               ├── item_btn_delete.png
│               ├── item_btn_edit.png
│               ├── myagenda.png
│               ├── myagenda.svg
│               ├── reminder.png
│               └── ui.glade
└── usr
    └── share
        ├── applications
        │   └── myagenda.desktop
        └── icons
            └── hicolor
                └── scalable
                    └── apps
                        └── myagenda.svg

Mise à jour:

  1. Créé le fichier install dans le répertoire debian avec les cibles suivantes:

    data/myagenda /opt/extras.ubuntu/com/myagenda/bin
    data/ui/* /opt/extras.ubuntu/com/myagenda/ui
    data/myagenda.desktop /usr/share/applications
    data/myagenda.svg /usr/share/icons/hicolor/scalable/apps
    

Après dpkg-buildpackage, il est construit, mais pour l’architecture AMD64. Maintenant, en essayant de changer cela en i386.

6
piotr

La création de PPA est un processus très simple et en même temps assez complexe dépendant de la complexité du paquet (binaire simple, binaire multiple, etc.). Mais pour une application simple comme votre MyAgenda, créer un PPA est très simple.

Installez d'abord les paquets nécessaires.

Sudo apt-get install build-essential devscripts ubuntu-dev-tools debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian pbuilder piuparts. La plupart d'entre eux sont probablement déjà installés par défaut.

Maintenant, configurez votre clé gpg et votre clé ssh. Suivez les instructions de ici & ici .


ÉTAPE 1: Présentation du paquet source

Maintenant, allez dans le dossier source de votre application. Voici la présentation de votre paquet source de base:

 MyAgenda-1.0/
    -- data/
          -- myagenda
          -- myagenda.desktop
          -- myagenda.svg
          --ui
             -- myagenda.glade
             -- otherfiles
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

ÉTAPE 2: Connaissez votre ID et format de clé GPG

Première exécution:

gpg --list-keys. Cela vous donnera une sortie comme celle-ci:

   pub: YOURGPG-KEY
   uid: YOURUSERNAME <YOURMAIL-ID>   #note your username & email.
   sub: --------

ÉTAPE 3: Créer un dossier Debian

Pour créer le dossier debian et tous les autres fichiers nécessaires lors de l'exécution du dossier debian (, utilisez le même nom d'utilisateur et le même email-id que ci-dessus ):

DEBFULLNAME="YOURUSERNAME" dh_make -n -s -e YOUREMAIL-ID. Cela aidera à signer le paquet avec la clé gpg.

Cependant, cela ne créera pas le fichier "install" dans le dossier debian. Créez le fichier manuellement et enregistrez-le avec les données suivantes:

        data/myagenda /opt/extras.ubuntu/com/myagenda/bin
        data/ui/* /opt/extras.ubuntu/com/myagenda/ui
        data/myagenda.desktop /usr/share/applications
        data/myagenda.svg /usr/share/icons/hicolor/scalable/apps

ÉTAPE 4: Mise à jour du journal des modifications

Pour mettre à jour le journal des modifications, exécutez:

dch -i

Voici un exemple de journal des modifications:

package (version) distribution; urgency=urgency

 * change details
   more change details
 * even more change details

 -- maintainer name <email address>[two spaces]  Sun, 8 July 2012 18:14:08 +0530

Assurez-vous que le format ci-dessus est préservé. Une fois l’édition terminée, appuyez sur CTRL + O pour écrire. Supprimer
. dch part & écraser le fichier changelog.Appuyez sur CTRL + X pour quitter.

Vous voudrez peut-être supprimer des fichiers .ex supplémentaires sous debian.Entrez dans le dossier debian et supprimez les fichiers .ex et .EX.

cd debian
rm *.ex *.EX

ÉTAPE 5: Créer un package DEB

Ensuite, pour créer le paquet deb, exécutez:

debuild --no-tgz-check # Optional.it ne vérifiera pas l'archive tar source.


ÉTAPE 6: Upload To PPA

Pour télécharger le paquet source sur un PPA, vous devez exécuter:

debuild -S

L’indicateur -S indique à debuild de créer un paquet source en utilisant un autre script, dpkg-buildpackage, associé à fakeroot, qui nous accorde de faux privilèges root lors de la création du paquet. Il prendra le fichier .orig.tar.gz et produira un fichier .diff.gz (la différence entre l'archive d'origine de l'auteur et le répertoire créé, debian/et son contenu) et un fichier .dsc contenant la description. et md5sums pour le paquet source. Les fichiers .dsc et * _source.changes (utilisés pour le téléchargement du package source) sont signés à l'aide de votre clé GPG.

debuild -S créera un fichier source.changes en dehors de votre répertoire source. Allez dans le tableau de bord et créez un PPA. Téléchargez maintenant les modifications source.change sur ce PPA (( changez le nom du fichier en conséquence ):

dput ppa:YOUR-LAUNCHPAD-USERNAME/myagenda myagenda-1.0-ubuntu1.changes 

TERMINÉ!


Remarques:

Si vous souhaitez télécharger un package pour plusieurs versions d'ubuntu, obtenez l'aide de ici .

Sources: Wiki Guide d'emballage complet.

7
Khurshid Alam