web-dev-qa-db-fra.com

Comment créer un PPA?

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

122
Jebeld17

En utilisant une archive de paquets personnels (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 construira des fichiers binaires, puis hébergez-les dans votre propre référentiel apt.

Voici un explication détaillée .

96
hhlp

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 en 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 regroupés dans un fichier .deb.

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

    Créez un fichier nommé controldans le dossier DEBIANname__

    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éez le script postinstqui 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 le script prermqui 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éer une structure de paquet et copier des programmes, des données, etc.
    Créez une structure de vos programmes installés et de leurs données. Dans cet exemple, nous plaçons 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 fichier .deb avec la version, 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 package .deb nouvellement créé. Vous pouvez l'ouvrir avec software-center mais cela ne vous permettra peut-être pas de l'installer. Je recommande donc d'utiliser le gestionnaire de paquets gdebiname__.

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

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

    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 gtk dialogue

    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 , qu’apt cherche à savoir quels sont les packages situés dans ce référentiel.


C'est tout

Maintenant, attendez que Dropbox synchronise le dossier et récupérez l'URL publique du Packages.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ù.

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

86
totti

Vous aurez besoin d’un compte Launchpad.net pour créer un PPA. Il suffit de cliquer sur votre utilisateur dans Launchpad (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 faire enregistrer une clé GPG avec votre compte.

2
GTRsdk