Comment créer un PPA?

Réponses:

97

À l'aide d'une archive de paquet personnel ( PPA ), vous pouvez distribuer des logiciels et des mises à jour directement aux utilisateurs Ubuntu. Créez votre paquet source, téléchargez-le et Launchpad construira des fichiers binaires, puis les hébergera dans votre propre référentiel apt.

Voici une explication détaillée .

hhlp
la source
5
FWIW J'ai pu activer mon PPA avant de signer le code de conduite.
Sparhawk
2
C'est la meilleure réponse. On vient de vous dire comment créer un PPA. La réponse ci-dessous (par totti) n'est pas un PPA, mais un référentiel public. Les deux sont différents, malgré (potentiellement) accomplir la même chose. Il a même dit dans la première ligne de sa réponse: "Cette question a une réponse bien écrite et acceptée. Comme le PO veut un moyen simple de publier ses paquets, je lui donne un hack facile." Parce que vous préférez le hack facile ne fait pas la meilleure réponse.
lbaile200
Bien, mais aucun des liens dans cette réponse ne décrit vraiment comment le faire à partir de zéro. tous les liens ici sont faits pour les développeurs, qui sont déjà dans le matériau beaucoup plus
rubo77
1
@ rubo77 - le "comment créer" est strictement trop large pour pouvoir répondre. Tout dépend de ce que vous essayez d’emballer. En effet, chacune des étapes de la réponse ci-dessus peut être une question individuelle avec une bonne réponse détaillée.
fossfreedom
1
La nouvelle réponse de Totti est déjà excellente
rubo77
86

Comment créer un fichier .deb

Ceci est un tutoriel sur la création d'un fichier .deb de base à partir d'un exemple de script. Dans ce tutoriel, nous créons d’abord un exemple de programme dans bash qui affiche simplement «HELLO FROM PROGRAM». Ensuite, nous créons un fichier de contrôle pour le programme afin de créer un programme d’installation Debian. Enfin, ils sont emballés dans un .debfichier.

Pas:

  1. créer un exemple de programme dans bash

    mkdir "$HOME/create_deb/pgmdir"
    gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
    

    coller le code suivant

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Rendre le programme exécutable

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Créer un fichier de contrôle pour le paquet Debian

    Faire un fichier nommé controldans le dossierDEBIAN

    mkdir "$HOME"/create_deb/DEBIAN
    gedit "$HOME"/create_deb/DEBIAN/control
    

    coller et coller les détails suivants

    Package: hellodeb
    Version: 0.1
    Architecture: all
    Maintainer: totti
    Installed-Size: 6
    Depends: zenity, bash
    Section: testing
    Priority: optional
    Homepage: http://askubuntu.com
    Description: This is my first debian package.
     Guided by Totti Torvalds.
     In Description new line start with a space.
    

    Vous pouvez modifier le contenu si vous le souhaitez. En savoir plus sur le format de ce fichier ici et ici .

  4. Créer un postinstscript, qui est exécuté immédiatement après l'installation du package

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    puis coller

    #!/bin/sh
    set -e
    echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
    

    et le rendre exécutable

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Créer un prermscript qui est exécuté avant la suppression du package

    #!/bin/sh
    set -e
    echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
    

    et le rendre exécutable

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Créez la structure du paquet et copiez les programmes, les données, etc.
    Créez une structure de vos programmes installés et de leurs données. Dans cet exemple, nous mettons le fichier à /bin.

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Construisez le fichier .deb .

    dpkg-deb --build "$HOME"/create_deb .
    

    Le .nommera automatiquement le .debfichier avec la version, l'arch, etc. Ou votre nom personnalisé

    dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
    

    Ou si vous construisez le fichier .deb avec

    debuild -k'your GPG key here' -S
    

    alors vous pouvez le télécharger sur Ubuntu Launchpad avec

    dput ppa:<lp-username>/<ppa-name> packet-source.changes
    

    comme décrit ici (source: créer un paquet .deb à partir de scripts ou de fichiers binaires )

  8. Installez le .debpaquet nouvellement créé . Vous pouvez l'ouvrir avec software-centermais cela ne vous permettra peut-être pas de l'installer. Je recommande donc d'utiliser le gdebigestionnaire de paquets.

    sudo apt-get install gdebi
    
    gdebi "$HOME"/create_deb/hellodeb.deb
    

    Maintenant, vous pouvez l'installer. Pendant l'installation, vous devriez voir un dialogue gtk

    Programme d'installation: zenity_hello.sh ......

  9. Après l'installation, ouvrez un terminal et tapez zenity_hello. Si le programme est correctement installé et que tout va bien, vous devriez voir un dialogue gtk

    BONJOUR DU PROGRAMME

  10. Retrait du paquet

    sudo apt-get remove zenity_hello
    

Publiez votre référentiel en 2 minutes

Comme l'OP veut un moyen simple de publier ses paquets, je lui donne un hack facile.

exigence: compte dropbox (ou tout autre service, par exemple github ) avec un dossier public.

  1. Créez un dossier dans votre dossier Public-Dropbox dans lequel vous placerez vos fichiers * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    ou créez ce dossier ailleurs et mettez un lien symbolique dans votre dossier Public:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Accédez à ce dossier et créez un script qui, une fois exécuté, crée le fichier Packages.gz, contenant toutes les informations nécessaires sur vos deb-packages. créer:

    gedit import.sh  
    

    mettez ceci dedans:

    #!/bin/bash
    dpkg-scanpackages . /dev/null |gzip > Packages.gz
    

    le rendre exécutable:

    chmod  x import.sh
    
  3. Copiez quelques fichiers * .deb dans le dossier. Peut-être le vôtre ou certains qui ne sont pas disponibles via d'autres référentiels. Ensuite, allez dans le dossier et exécutez le script que nous avons mis là:

    cd ~/deb-packages/ 
    ./import.sh
    

    Cela devrait créer ce que l’on appelle le fichier Packages.gz , que apt cherche à savoir quels paquets sont situés dans ce référentiel.


C'est ça

Maintenant, attendez que Dropbox synchronise le dossier et récupérez l’ URL publique dans le répertoirePackages.gz . Ça devrait ressembler a quelque chose comme ca:

http://dl.getdropbox.../Packages.gz

Débarrassez-vous de la fin de ce lien, mettez quelques mots supplémentaires et vous pouvez maintenant utiliser et renseigner la ligne suivante pour le fichier sources.list:

deb http://dl.getdropbox.../deb-packages ./

Voilà, vous avez votre propre référentiel deb en cours d'exécution. Toujours synchronisé localement, mais disponible pour tout le monde, à tout moment, n'importe où.

NOTE: dpkg-scanpackages est disponible à partir de dpkg-dev
référence

totti
la source
3
+1 super! cela a fonctionné: J'ai utilisé Github et là , le répertoire brut pour un dossier releases/voir github.com/rubo77/mouse-speed/blob/master/release/...
rubo77
Ceci décrit un PPA auto-hébergé, mais comment puis-je construire un paquet debian Ubuntu
rubo77
3
Si vous construisez le fichier .deb à l'étape 7. avec debuild -us -uc -k'your GPG key here'alors vous pouvez le télécharger dput ppa:<lp-username>/<ppa-name> packet-source.changesdans Launchpad comme décrit ici (source: créer un paquet .deb à partir de scripts ou de fichiers binaires )
rubo77
@ rubo77, merci, je vous invite à ajouter ces informations à la fin de ma réponse.
Totti
1
OK, je viens de le faire, j'ai aussi découvert que vous aviez besoin d'autres paramètres pour que Launchpad ne crée pas le fichier .deb maintenant (juste -S): debuild -k'your GPG key here' -Sparce que Launchpad créera le fichier deb (s'il n'est pas rejeté) - quoi le `-us -uc` aurait-il été pour?
rubo77
2

Vous aurez besoin d'un compte Launchpad.net pour créer un PPA. Il suffit de cliquer sur votre utilisateur dans le tableau de bord (cliquez sur votre nom en haut à gauche) et de créer un PPA. Vous devrez peut-être d'abord signer le code de conduite et disposer d'une clé GPG enregistrée avec votre compte.

GTRsdk
la source