Frage Wie erstelle ich eine PPA?


Wie erstelle ich mein eigenes benutzerdefiniertes PPA, um es mit der Ubuntu-Community zu teilen? Ich versuche mein eigenes Paket zu erstellen und möchte es gerne mit der Community teilen.


114
2017-10-24 15:54


Ursprung


verwandt oder gleich: askubuntu.com/questions/28562/ ... - fossfreedom♦
Vielleicht hilft das packaging.ubuntu.com/html/getting-set-up.html - rubo77


Antworten:


Verwenden eines persönlichen Paketarchivs (PPA), können Sie Software und Updates direkt an Ubuntu-Benutzer verteilen. Erstellen Sie Ihr Quellpaket, laden Sie es hoch, und Launchpad erstellt Binärdateien und hostet sie dann in Ihrem eigenen Apt-Repository.

Hier ist ein ausführliche Erklärung.


86
2017-10-24 16:01



FWIW Ich konnte meine PPA aktivieren, bevor ich den Verhaltenskodex unterzeichnete. - Sparhawk
Dies ist die beste Antwort. Ihnen wurde gerade gesagt, wie man eine PPA erstellt. Die folgende Antwort (totti) ist kein PPA, sondern ein öffentliches Repository. Die beiden sind verschieden, obwohl sie (möglicherweise) dasselbe erreichen. Er sagt sogar in der ersten Zeile seiner Antwort: "Diese Frage hat eine gut geschriebene, akzeptierte Antwort. Da der OP eine einfache Möglichkeit wünscht, seine Pakete zu veröffentlichen, gebe ich einen einfachen Hack." Weil Sie den einfachen Hack bevorzugen, ist es nicht die beste Antwort. - lbaile200
OK, aber keiner der Links in dieser Antwort beschreibt wirklich, wie es von Grund auf neu gemacht wird. Alle Links hier sind für Entwickler gedacht, die schon viel mehr im Material haben - rubo77
@ rubo77 - das "how to create" ist strikt zu breit um beantwortbar zu sein. Alles hängt davon ab, was Sie zu verpacken versuchen. In der Tat kann jeder der Schritte in der obigen Antwort individuelle Q's mit jeweils einer guten detaillierten Antwort sein. - fossfreedom♦
Tottis neue Antwort ist schon großartig - rubo77


So erstellen Sie eine .deb-Datei

Dies ist ein Lernprogramm zum Erstellen einer einfachen .deb-Datei aus einem bestimmten Beispielskript. In diesem Tutorial erstellen wir zuerst ein Beispielprogramm in bash, die nur 'HALLO FROM PROGRAM' anzeigen. Dann erstellen wir ein Steuerdatei für das Programm, um einen Debian-Installer zu machen. Schließlich sind sie in einem verpackt .deb Datei.

Schritte:

  1. Erstellen Sie ein Beispielprogramm in bash

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

    fügen Sie den folgenden Code ein

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Machen Sie das Programm ausführbar

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Erstellen Sie eine Steuerdatei für das Debian-Paket

    Erstellen Sie eine Datei mit dem Namen control innerhalb des Ordners DEBIAN

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

    und fügen Sie die folgenden Details ein

    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.
    

    Sie können den Inhalt bearbeiten, wenn Sie möchten. Lesen Sie mehr über das Format dieser Datei Hier und Hier.

  4. Erstellen postinst Skript, das unmittelbar nach der Installation des Pakets ausgeführt wird

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    dann einfügen

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

    und mache es ausführbar

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Erstellen prerm Skript, das vor dem Entfernen des Pakets ausgeführt wird

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

    und mache es ausführbar

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Paketstruktur erstellen und Programme, Daten usw. kopieren.
    Erstellen Sie eine Struktur Ihrer installierten Programme und ihrer Daten. In diesem Beispiel legen wir die Datei an /bin.

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Baue die .deb Datei.

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

    Das . wird den Namen automatisch benennen .deb Datei mit Version, Arch usw. Oder Ihr benutzerdefinierter Name

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

    Oder wenn Sie die .deb-Datei mit erstellen

    debuild -k'your GPG key here' -S
    

    dann kannst du es mit Ubuntu Launchpad hochladen

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

    wie beschrieben Hier (Quelle: Erstellen Sie ein .deb-Paket aus Skripts oder Binärdateien)

  8. Installiere das neu erstellte .deb Paket. Sie können es mit öffnen software-center aber möglicherweise können Sie nicht installieren. Also ich empfehle zu verwenden gdebi Paket-Manager.

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

    Jetzt können Sie es installieren. Während der Installation sollten Sie a GTK-Dialog 

    Installationsprogramm: zenity_hello.sh ......

  9. Nach der Installation öffnen Sie ein Terminal und tippen Sie zenity_hello. Wenn das Programm korrekt installiert ist und alles in Ordnung ist, sollten Sie a sehen GTK-Dialog 

    Hallo vom Programm

  10. Paket entfernen

    sudo apt-get remove zenity_hello
    

Veröffentlichen Sie Ihr Repository in 2 Minuten

Da das OP eine einfache Möglichkeit hat, seine Pakete zu veröffentlichen, gebe ich einen einfachen Hack.

Voraussetzung: Dropbox (oder eine andere Dienstleistung, z. B. Github) Konto mit einem öffentlichen Ordner.

  1. Erstellen Sie einen Ordner in Ihrem Public-Dropbox-Ordner, in den Sie Ihre * .deb-Dateien einfügen:

    mkdir ~/Dropbox/Public/deb-packages  
    

    Oder erstellen Sie den Ordner woanders und fügen Sie einen Symlink in Ihren öffentlichen Ordner ein:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Gehen Sie in diesen Ordner und erstellen Sie ein Skript, das bei seiner Ausführung die Packages.gz erstellt, die alle erforderlichen Informationen über Ihre Deb-Pakete enthält. erstellen:

    gedit import.sh  
    

    lege das drin:

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

    Mach es ausführbar:

    chmod  x import.sh
    
  3. Kopieren Sie einige * .deb-Dateien in den Ordner. Dies können Ihre eigenen oder einige sein, die nicht durch andere Repositories verfügbar sind. Gehe dann in den Ordner und führe das Skript aus, das wir dort hingelegt haben:

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

    Das sollte das so genannte erstellen Pakete.gz Datei, die apt sucht, um zu wissen, welche Pakete sich in diesem Repository befinden.


Das ist es

Warten Sie nun auf Dropbox, um den Ordner zu synchronisieren und greifen Sie nach Public-URL von der Packages.gz. Es sollte ungefähr so ​​aussehen:

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

Entfernen Sie das Ende dieses Links, fügen Sie ihm weitere Wörter hinzu, und Sie können jetzt die folgende Zeile für die sources.list verwenden und ausfüllen:

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

Das ist es, Sie haben Ihr eigenes Deb-Repository laufen. Immer lokal synchronisiert, aber für jeden jederzeit und überall verfügbar.

HINWEIS:  dpkg-scanpackages ist verfügbar von dpkg-dev
Referenz


74
2017-07-09 11:16



+1 Großartig! Das funktionierte: Ich benutzte Github und dort das rohe Verzeichnis für einen Ordner releases/ sehen github.com/rubo77/mouse-speed/blob/master/release/... - rubo77
Dies beschreibt eine selbst gehostete PPA, aber wie kann ich Erstellen Sie ein Debian-Paket von Ubuntu - rubo77
Wenn Sie die .deb-Datei in Schritt 7 mit erstellen debuild -us -uc -k'your GPG key here' dann kannst du es mit hochladen dput ppa:<lp-username>/<ppa-name> packet-source.changes zu Launchpad mögen hier beschrieben (Quelle: Erstellen Sie ein .deb-Paket aus Skripts oder Binärdateien) - rubo77
@ rubo77, Danke, ich begrüße Sie, um diese Informationen am Ende meiner Antwort hinzuzufügen. - totti
OK, ich habe es gerade getan, ich habe auch herausgefunden, dass Sie andere Parameter für Launchpad benötigen, um die .deb-Datei jetzt nicht zu erstellen (nur -S): debuild -k'your GPG key here' -S weil Launchpad die deb-Datei erstellt (wenn sie nicht zurückgewiesen wird) - wofür wäre die -us -uc? - rubo77


Sie benötigen ein Launchpad.net-Konto, um ein PPA zu erstellen. Klicken Sie einfach auf Ihren Benutzer auf Launchpad (klicken Sie auf Ihren Namen oben links) und erstellen Sie eine PPA. Möglicherweise müssen Sie zuerst den Verhaltenskodex unterschreiben und einen GPG-Schlüssel bei Ihrem Konto registrieren lassen.


2
2017-10-24 16:03