Wie erstelle ich eine PPA für ein Arbeitsprogramm?

33

Nehmen wir an, ich habe eine funktionierende Anwendung in C, C ++ oder Python geschrieben. Ich möchte ein Launchpad PPA erstellen, damit andere es einfach aus einem Paket installieren können. Bitte geben Sie Schritt für Schritt Anweisungen, um dies von Anfang bis Ende zu tun. (Oder stellen Sie einen Link zur Verfügung, der das Gleiche tut;)

  • Ist die Programmiersprache wichtig? (Könnte es ein Bash-Skript sein?)
  • Muss ich meinem Build etwas hinzufügen?
  • Wo sollte sich der Build installieren?
  • Wie definiere ich Abhängigkeiten?
  • Wie verwende ich Abhängigkeiten?
  • Wie erstelle ich ein .deb?
  • Was muss ich vor dem Hochladen auf Launchpad tun?
d3vid 01.03.2011, 13:49

2 Antworten

31

Das ist eine sehr weit gefasste Frage. Ich werde versuchen so viel wie möglich zu antworten, aber es wird definitiv NICHT sein Schritt-für-Schritt-Anleitung. Dies liegt daran, dass es keinen Schritt-für-Schritt-Algorithmus zum Erstellen eines Pakets gibt. Die Art und Weise, wie Sie es tun, hängt von vielen Faktoren ab, vor allem von der Art des Pakets (Anwendung, Bibliothek), der Struktur der Quelle und vielen Details.

Zum Glück gibt es eine gründliche Anleitung auf dem Link

Ich werde versuchen, dir ein wenig dabei zu helfen, den ganzen Prozess zu verstehen, also wenn du ein bisschen mehr damit vertraut bist. Der Packaging Guide enthält Ressourcen für zusätzliche Hilfe.

Zunächst sollten Sie feststellen, dass das Erstellen eines Pakets (einer .deb-Datei) ein separater Prozess zum Erstellen eines PPA ist. Beim Erstellen eines PPA müssen Sie zum Profil Ihres Launchpads gehen und auf den Link "Neuen PPA erstellen" klicken. Das ist alles. Es ist erstellt, es funktioniert, aber es ist leer. Um ein Paket hochzuladen, müssen Sie zuerst ein Paket erstellen. Aber lassen Sie mich zuerst einige Ihrer kleinen Fragen beantworten.

  • Die Programmiersprache IST NICHT wichtig. Es kann eine C ++ - Anwendung, ein Bash-Skript, Brainfuck Hello World, eine einzelne README-Datei oder eine Reihe cooler Fotos sein. Pakete können jede Datei enthalten. Während der Installation wird das Paket in den Root ("/") Ihres Dateisystems extrahiert. Auf diese Weise können sie einige Dateien in den Binärdateien-Ordner einfügen, einige Hintergrundbilder zum GNOME-Standardsatz hinzufügen oder dem Benutzer ein Bash-Skript zur Verfügung stellen.
  • Sie DO müssen etwas zur Quelle hinzufügen. Es muss ein Verzeichnis der obersten Ebene namens "debian" sein. Es wird einige Dateien mit den Paketdetails geben - sie werden verwendet, um den Typ des Pakets usw. zu definieren.
  • Abhängigkeiten sind in einer dieser Dateien aufgelistet (neben anderen Details). Woher kommen sie? Sie sind einfach andere Pakete, die Ihre Anwendung verwendet. Der Entwickler der Anwendung wird wissen, welche Bibliotheken und Ressourcen sein Programm benötigt, also sollte er nicht viel Mühe haben, sie aufzulisten.
    • Einige Tools, die zum Erstellen eines Pakets (pbuilder) verwendet werden, können die Abhängigkeiten automatisch ausfüllen, indem Sie möglicherweise bestimmen, was Ihre App während der Kompilierung benötigt.
  • Es wird auch empfohlen, AutoTools zu verwenden. Das ist eine andere Sache, die Sie hinzufügen müssen, aber wahrscheinlich verwendet fast jede Software diese bereits. AutoTools ist eine Sammlung extrem hilfreicher Programme - Automake, Autoconf und Autoscan, um nur einige zu nennen. Wenn Sie ein Programm mit dem bekannten ./ configure & amp; & amp; & amp; machen & amp; & amp; make install dann werden die Autotools verwendet, um automatisch mit der Quelle umzugehen, andere Ressourcen vorzubereiten, die in der Quelle zur Installation enthalten sind, und das Ergebnis der Kompilierung an einen geeigneten Ort zu extrahieren (um Ihre Frage zu beantworten: Der Build wird extrahiert Die Binärdateien werden an / usr / local / bin, die Dokumente an / usr / local / share / docs usw. übergeben. Darüber hinaus werden Binärdateien aus einem Paket auch an andere Stellen gehen, zB an die Binärdateien nach / usr / bin. Wie geht man mit diesem komplizierten Verzeichnis-Layout um? Verwenden Sie AutoTools - es wird sich automatisch darum kümmern, und deshalb sind sie so nützlich.

Das Erstellen eines .deb-Pakets mag ein wirklich komplizierter Prozess sein, aber es ist nicht so schwierig. Ich empfehle Ihnen den offiziellen Ubuntu-Leitfaden zum Erstellen von Paketen: Link

Es ist RIESIG, aber Sie werden sehen, dass Sie wahrscheinlich die meisten Teile dieses Textes überspringen können (abhängig davon, welches Paket Sie erstellen werden). Grundsätzlich besteht der Verpackungsprozess aus diesen Teilen (alle sind in The Guide klar erklärt) :

  1. Init einige Tools zum Erstellen von Paketen.
  2. Erhalte die Quelle
  3. Erstellen Sie das Verzeichnis ./debian und füllen Sie es mit den erforderlichen Daten
  4. Erstellen Sie das Paket mit debuild [Das sollte eine Gruppe von Dateien erstellen, einschließlich * .dsc, * _source.build, * _source.changes, die für die Daten über das Paket verantwortlich sind und wie Sie damit umgehen es (Sie haben auch eine Quelle .tar.gz)]
  5. Testen Sie, ob alles funktioniert, indem Sie pbuilder lokal ausführen (es werden all diese oben genannten Dateien benötigt und versuchen, sie zu einem .deb-Paket zu kombinieren, indem Sie die Quelle automatisch mit Hilfe von AutoTools erstellen em> [ehrlich gesagt - nicht - Sie können ohne sie oder mit einigen Alternativen auskommen, aber das ist der einfachste Weg, und andere erfordern möglicherweise einige erweiterte Setup, wie Sie den Builder, wie man die Quelle erstellen müssen (mit ./debian/rules Datei) - aber das ist nicht für Anfänger] ) - wenn Sie nur ein .deb Paket bekommen wollen, ist es fertig.

Nun müssen Sie es auf Ihre PPA hochladen, die auf dieser Hilfeseite erläutert wird: link

  1. Verwenden Sie dput, um diese Dateien in Launchpad hochzuladen
  2. Launchpad führt pbuilder auf seinen Computern aus und generiert Pakete in einer sauberen Umgebung
  3. Schließlich sollten die Pakete im PPA erscheinen.

Wie Sie sehen, ist das Erstellen einer PPA nicht so einfach . Aber habt keine Angst , es ist auch nicht so schwierig. Außerdem empfehle ich Ihnen, die Entwickler nicht dazu zu ermutigen, eine PPA zu verwenden, da sie wahrscheinlich nicht auf Sie hören werden, da sie etwas zusätzliche Arbeit erledigen müssten (und wenn sie es gewollt hätten, hätten sie es bereits getan), aber Sie können Ich möchte versuchen, die Ubuntu-Entwickler und die gesamte Community zu unterstützen und sie mit Paketen auszustatten, die Sie vorbereitet haben:)

Ich wünsche Ihnen viel Glück beim Erstellen von Paketen, hoffe, Sie werden meine Antwort hilfreich finden:)

Dein Freund, Rafał Cieślak

    
Rafał Cieślak 01.03.2011, 20:47
5
  • Bevor Sie Ihr Paket hochladen können, müssen Sie es für .deb packaging einrichten, siehe den Ubuntu PackagingGuide .

  • Sobald Sie ein Paket für Ihre Software erstellen können, lesen Sie die Launchpad-PPA-Dokumentation . Es führt Sie von der PPA-Erstellung zum Hochladen Ihres Pakets.

Isaiah 01.03.2011 20:27