Question Comment créer un PPA?


Comment créer mon propre PPA personnalisé à partager avec la communauté Ubuntu? J'essaie de créer mon propre ensemble de paquets personnalisés et j'aimerais vraiment le partager avec la communauté.


114
2017-10-24 15:54


origine


liés ou identiques: askubuntu.com/questions/28562/… - fossfreedom♦
Peut-être que cela aide packaging.ubuntu.com/html/getting-set-up.html - rubo77


Réponses:


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

Voici une explication détaillée.


86
2017-10-24 16:01



FWIW J'ai pu activer mon PPA avant de signer le code de conduite. - Sparhawk
C'est la meilleure réponse. On vous a juste dit comment créer un PPA. La réponse ci-dessous (par totti) n'est pas un PPA, mais un dépôt public. Les deux sont différents, même si (potentiellement) accomplissent la même chose. Il dit même 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 donne un hack facile." Parce que vous préférez le piratage facile ne fait pas la meilleure réponse. - lbaile200
OK, 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ériel beaucoup plus - rubo77
@ 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 un Q individuel avec une bonne réponse détaillée. - fossfreedom♦
La nouvelle réponse de Totti est déjà excellente - rubo77


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 donné. Dans ce tutoriel, nous créons d'abord un exemple de programme dans bash qui montre juste "BONJOUR DE PROGRAMME". Ensuite, nous créons un fichier de contrôle pour le programme afin de faire un installateur Debian. Enfin, ils sont emballés dans un .deb fichier.

Pas:

  1. créer un exemple de programme dans bash

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

    collez le code suivant dedans

    #!/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é control dossier intérieur DEBIAN

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

    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 postinst script, 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 prerm script, qui est exécuté avant la suppression du paquet

    #!/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éer des programmes de structure et de copie de paquets, des données, etc.
    Créez une structure de vos programmes installés et de ses 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. Construire le .deb fichier.

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

    le . nommera automatiquement le .deb fichier avec version, arch, etc. Ou votre nom personnalisé

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

    Ou si vous créez 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 (la source: créer un package .deb à partir de scripts ou de binaires)

  8. Installez le nouveau créé .deb paquet. Vous pouvez l'ouvrir avec software-center mais cela ne vous permettra peut-être pas d'installer. Je recommande donc d'utiliser gdebi directeur chargé d'emballage.

    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 correctement installé et tout va bien, vous devriez voir un dialogue GTK 

    BONJOUR DU PROGRAMME

  10. Enlever le paquet

    sudo apt-get remove zenity_hello
    

Publiez votre référentiel en 2 minutes

Comme le PO veut un moyen simple de publier ses paquets, je donne un hack facile.

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

  1. Créez un dossier dans votre dossier de dépôt public où vous placez vos fichiers * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

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

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

    gedit import.sh  
    

    mettez ceci dedans:

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

    rendez-le exécutable:

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

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

    Cela devrait créer le soi-disant Packages.gz Fichier que apt recherche pour savoir quels paquets sont situés dans ce référentiel.


C'est tout

Maintenant, attendez que Dropbox synchronise le dossier et récupère le URL publique de la Packages.gz. Ça devrait ressembler a quelque chose comme ca:

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

Débarrassez-vous de la fin de ce lien, ajoutez-y quelques mots et vous pouvez maintenant utiliser et renseigner la ligne suivante pour les sources.list:

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

C'est ça que vous avez votre propre dépôt Deb en cours d'exécution. Toujours synchronisé localement, mais accessible à tous, à tout moment et en tout lieu.

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


74
2017-07-09 11:16



+1 génial! Cela a fonctionné: j'ai utilisé Github et là le répertoire raw pour un dossier releases/ voir github.com/rubo77/mouse-speed/blob/master/release/… - rubo77
Cela décrit un PPA auto-hébergé, mais comment puis-je Construire un paquet Debian Ubuntu - rubo77
Si vous générez le fichier .deb à l'étape 7 avec debuild -us -uc -k'your GPG key here' alors vous pouvez le télécharger avec dput ppa:<lp-username>/<ppa-name> packet-source.changes à Launchpad comme décrit ici (la source: créer un package .deb à partir de scripts ou de binaires) - rubo77
@ rubo77, merci, je vous invite à ajouter cette information en fin de réponse. - totti
OK, je l'ai juste fait, j'ai également découvert que vous avez besoin d'autres paramètres pour Launchpad pour ne pas créer le fichier .deb maintenant (juste -S): debuild -k'your GPG key here' -S parce que Launchpad créera le fichier deb (s’il n’est pas rejeté) - à quoi servirait le -us -uc`? - rubo77


Vous aurez besoin d'un compte Launchpad.net pour créer un PPA. Cliquez simplement sur votre utilisateur sur Launchpad (cliquez sur votre nom en haut à gauche) et créez un PPA. Vous devrez peut-être d'abord signer le code de conduite et faire enregistrer une clé GPG sur votre compte.


2
2017-10-24 16:03