Wie erstelle ich ein PPA?

123

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

Jebeld17
quelle
Verwandte oder die gleichen: askubuntu.com/questions/28562/…
fossfreedom
Vielleicht hilft dies packaging.ubuntu.com/html/getting-set-up.html
rubo77

Antworten:

97

Mit einem Personal Package Archive ( 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 in Ihrem eigenen Apt-Repository.

Hier ist eine detaillierte Erklärung .

hhlp
quelle
5
FWIW Ich konnte meine PPA aktivieren, bevor ich den Verhaltenskodex unterschrieb.
Sparhawk
2
Das ist die beste Antwort. Sie haben gerade erfahren, wie Sie eine PPA erstellen. Die Antwort unten (von totti) ist kein PPA, sondern ein öffentliches Repository. Die beiden sind unterschiedlich, obwohl sie (möglicherweise) dasselbe erreichen. Er sagt sogar in der ersten Zeile seiner Antwort: "Diese Frage hat eine gut geschriebene, akzeptierte Antwort. Da das OP eine einfache Möglichkeit zur Veröffentlichung seiner Pakete wünscht, gebe ich einen leichten Hack." Weil Sie es vorziehen, ist der einfache Hack 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 gemacht, die schon in das material viel mehr
einfließen
1
@ rubo77 - Das "Wie erstelle ich" ist streng zu weit gefasst, um es beantworten zu können. Es hängt alles davon ab, was Sie zu verpacken versuchen. In der Tat kann jeder der Schritte in der obigen Antwort individuelle Fragen mit jeweils einer guten detaillierten Antwort sein.
fossfreedom
1
Tottis
86

So erstellen Sie eine .deb-Datei

Dies ist ein Tutorial zum Erstellen einer grundlegenden .deb-Datei aus einem bestimmten Beispielskript. In diesem Tutorial erstellen wir zunächst ein Beispielprogramm in Bash, das nur 'HALLO FROM PROGRAM' zeigt. Dann erstellen wir eine Steuerdatei für das Programm, um ein Debian-Installationsprogramm zu erstellen . Schließlich werden sie in eine .debDatei gepackt.

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 controlim OrdnerDEBIAN

    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 hier und hier mehr über das Format dieser Datei .

  4. Erstellen Sie ein postinstSkript, das sofort 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 ausführbar machen

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

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

    und ausführbar machen

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    

  6. Erstellen Sie eine Paketstruktur und kopieren Sie Programme, Daten usw. Erstellen Sie eine Struktur Ihrer installierten Programme und ihrer Daten. In diesem Beispiel setzen wir die Datei auf /bin.

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Erstellen Sie die DEB- Datei.

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

    Der .wird die .debDatei automatisch mit Version, Bogen usw. benennen. Oder Ihren benutzerdefinierten Namen

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

    Oder wenn du die .deb Datei mit erstellst

    debuild -k'your GPG key here' -S
    

    dann kannst du es mit auf Ubuntu Launchpad hochladen

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

    wie hier beschrieben (Quelle: Erstellen eines .deb-Pakets aus Skripten oder Binärdateien )

  8. Installieren Sie das neu erstellte .debPaket. Sie können es mit öffnen, software-centeraber möglicherweise können Sie es nicht installieren. Daher empfehle ich die Verwendung des gdebiPaketmanagers.

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

    Jetzt können Sie es installieren. Während der Installation sollte ein GTK-Dialog angezeigt werden

    Installationsprogramm: zenity_hello.sh ......

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

    HALLO VOM PROGRAMM

  10. Paket entfernen

    sudo apt-get remove zenity_hello
    

Veröffentlichen Sie Ihr Repository in 2 Minuten

Da der OP eine einfache Möglichkeit zur Veröffentlichung seiner Pakete wünscht, gebe ich einen leichten Hack.

Voraussetzung: Dropbox-Konto (oder ein anderer Dienst, z. B. Github ) mit einem öffentlichen Ordner.

  1. Erstellen Sie einen Ordner in Ihrem Public-Dropbox-Ordner, in dem Sie Ihre * .deb-Dateien ablegen:

    mkdir ~/Dropbox/Public/deb-packages  
    

    oder erstellen Sie diesen 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 der Ausführung die Datei Packages.gz erstellt, die alle erforderlichen Informationen zu Ihren Deb-Paketen enthält. erstellen:

    gedit import.sh  
    

    lege dies hinein:

    #!/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. Könnten Ihre eigenen oder einige sein, die nicht über andere Repositorys verfügbar sind. Dann gehe in den Ordner und führe das Skript aus, das wir dort abgelegt haben:

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

    Damit sollte die so genannte Packages.gz- Datei erstellt werden, in der nach Informationen gesucht wird, welche Packages sich in diesem Repository befinden.


Das ist es

Warten Sie nun, bis Dropbox den Ordner synchronisiert hat, und rufen Sie die öffentliche URL von abPackages.gz . Es sollte ungefähr so ​​aussehen:

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

Wenn Sie das Ende dieses Links loswerden, fügen Sie weitere Wörter hinzu, und Sie können nun die folgende Zeile für die sources.list verwenden und füllen:

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

Das ist es, was Sie Ihr eigenes Deb-Repository zum Laufen gebracht haben. Immer lokal synchronisiert, aber jederzeit und überall für jedermann verfügbar.

HINWEIS: dpkg-scanpackages ist unter der dpkg-dev
Referenznummer erhältlich

Totti
quelle
3
+1 Großartig! Das hat funktioniert: Ich habe Github verwendet und dort das Raw-Verzeichnis für einen Ordner. releases/Siehe github.com/rubo77/mouse-speed/blob/master/release/…
rubo77
Dies beschreibt eine selbst gehostete PPA, aber wie kann ich ein Ubuntu-Debian-Paket erstellen
rubo77
3
Wenn Sie die .deb-Datei in Schritt 7 mit erstellen,debuild -us -uc -k'your GPG key here' können Sie sie dput ppa:<lp-username>/<ppa-name> packet-source.changeswie hier beschrieben mit auf Launchpad hochladen (Quelle: Erstellen eines .deb-Pakets aus Skripten oder Binärdateien )
rubo77
@ rubo77, Danke, ich begrüße Sie, diese Infos am Ende meiner Antwort hinzuzufügen.
Totti
1
OK, ich habe gerade herausgefunden, dass Sie andere Parameter für Launchpad benötigen, um die .deb-Datei gerade nicht zu erstellen (nur -S): debuild -k'your GPG key here' -Sweil Launchpad die deb-Datei erstellt (wenn sie nicht abgelehnt wird) - was Wäre das "-us -uc" für?
Rubo77
2

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

GTRsdk
quelle