Was ist der Unterschied zwischen einem PPA und einem Repository?

46

Ich habe kürzlich eine Antwort gepostet, in der ich geschrieben habe , und die PPA hinzugefügt . Aber jetzt ist mir klar, dass ich keine Ahnung habe, was der Unterschied zwischen einem PPA und einem Repository ist. Kann mir das bitte jemand erklären?

Alvar
quelle
Für PPA siehe: askubuntu.com/questions/4983/…
Takkat

Antworten:

14

Repositories

Auf Systemen wie Ubuntu ist die meiste Software in netten .deb-Dateien (oder .rpm-Dateien, wie in Red Hat) gepackt, die die Programme und Bibliotheken enthalten, die Sie benötigen. Diese Dateien können heruntergeladen oder auf CDs geliefert werden (Ubuntus CD ist voll davon). Repositorys sind Server, die Paketsätze enthalten .

PPA

Mit Personal Package Archives (PPA) können Sie Ubuntu-Quellpakete hochladen, die von Launchpad als passendes Repository erstellt und veröffentlicht werden .

Siehe auch Was sind PPAs und wie verwende ich sie?

Etwas zusammenfassen:

  • Ein Repository enthält Pakete.
  • PPAs sind Pakete (/ Sammlungen von Software).
  • Launchpad verfügt über ein Repository, das PPAs (/ Sammlungen von Software) enthält.
Rinzwind
quelle
4
Ist ein PPA nicht nur ein Repository oder eine Software, die von einer Einzelperson oder einer Gruppe ausgewählt und verwaltet wird? (die nicht direkt mit den Entwicklern von Canonical oder Official Ubuntu verwandt sind). Ein PPA ist wie ein Repository und kein einzelnes Paket.
Fahad Yousuf
11
Ein PPA ist kein Paket, sondern ein Repository. Jede PPA kann mehrere Pakete enthalten. Launchpad ist eine Sammlung von Repositorys, die als PPAs bezeichnet werden.
Gilles 'SO - hör auf böse zu sein'
so eine klare Erklärung.
Abhimanyu Aryan
@AbhimanyuAryan Nein, C: \ ProgramFiles ist nichts wie ein Repo, und die Verzeichnisse darin sind nichts wie PPAs. Es sei denn, Sie machen eine Metapher. In diesem Fall muss ich den Punkt verpasst haben.
wjandrea
Diese Antwort ist falsch. PPAs sind keine Pakete, sondern Repositories. Soll ich es reparieren?
Reinier Post
66

Ich muss der akzeptierten Antwort auf diese Frage nicht zustimmen . Ich hätte folgendes als Kommentar zu dieser Antwort geschrieben, aber es ist zu lang.

  • Ein Repository ist eine Sammlung von Paketen, die auf einem beliebigen Server gehostet werden.
  • Ein PPA ist auch eine Sammlung von Paketen, die auf den Launchpad-Servern gehostet werden.

    Insbesondere ist ein PPA kein einzelnes Paket, da dieser sehr zweideutig formulierte Punkt "PPAs sind Pakete (/ Sammlungen von Software)". in der akzeptierten Antwort kann zu glauben führen. Außerdem ist ein Paket (nicht unbedingt) eine Sammlung von Software , was diesen Punkt noch verwirrender macht.

  • Ein PPA ist also eine besondere Art von Repository. Wie ein Quadrat ist eine besondere Art von Rechteck.

Der Hauptunterschied ist der Hoster. Grundsätzlich können Sie als Programmierer, der eigene Pakete entwickeln und vertreiben möchte und über einen eigenen Stammserver im Internet verfügt, ein eigenes Repository einrichten. Toll! Aber was ist, wenn Sie keinen Root-Server haben und keinen bezahlen möchten, aber dennoch Ihre eigenen Pakete entwickeln und vertreiben möchten? Dann gibt es da noch Launchpad. Es bietet PPAs als Service für genau diesen Anwendungsfall an. Sie können im Grunde Ihr eigenes Repository auf Launchpad erstellen und dort Ihre eigenen Pakete verwalten.

Schauen wir uns ein anschauliches Beispiel an.

  1. Nehmen wir zunächst an, Sie möchten die MATE-Desktop-Umgebung (ein Gnome 2-Zweig) auf Ubuntu Saucy Salamander installieren . Es ist weder in den offiziellen Repos enthalten, noch unterhalten die Entwickler ein PPA. Stattdessen haben sie ein eigenes Repo. Sie könnten es so hinzufügen:

    $ sudo add-apt-repository http://packages.mate-desktop.org/repo/ubuntu
    

    Dies würde dazu führen, dass der folgende Eintrag hinzugefügt wird /etc/apt/sources.list:

    deb http://packages.mate-desktop.org/repo/ubuntu saucy main
    
  2. Angenommen, Sie möchten sich auch Cinnamon (eine andere Gnome 2-Gabel) ansehen . Dies ist seit 13.04 in den offiziellen Repos enthalten, aber es gibt immer noch eine von den Entwicklern gepflegte PPA, die zum Beispiel nützlich ist, wenn Sie daran interessiert sind, neue Releases schneller zu bekommen. Sie könnten es so hinzufügen:

    $ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
    

    Dies würde dazu führen, dass der folgende Eintrag hinzugefügt wird /etc/apt/sources.list.d/gwendal-lebihan-dev-cinnamon-stable-saucy.list:

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    Wie Sie sehen können, ist der letztere Eintrag dem in Punkt (1) gemachten ziemlich ähnlich. Tatsächlich sind beide aus Ubuntus Sicht nur URLs von Repositories.

  3. Sie können sogar das PPA Cinnamon mit der gleichen Syntax wie in Punkt (1) hinzufügen, obwohl dies nicht die typische Methode zum Hinzufügen von PPAs ist:

    $ sudo add-apt-repository http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu
    

    Dies würde dazu führen, dass der folgende Eintrag hinzugefügt wird /etc/apt/sources.list:

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    Dies ist genau derselbe Eintrag wie in Punkt (2). Nur die Dateien, in die diese Einträge geschrieben werden, werden etwas anders behandelt, aber am Ende macht es keinen wirklichen Unterschied. In beiden Fällen werden die Pakete von der Cinnamon PPA auf Ihrem System verfügbar sein sudo apt-get update, natürlich immer nach der kanonischen Version.

Malte Skoruppa
quelle
Laut Handbuch von add-apt-repositoryXenial wird bei Verwendung des ppa:<user>/<ppa-name>Formulars "der öffentliche GPG-Schlüssel des neu hinzugefügten PPA ebenfalls heruntergeladen und dem Schlüsselbund von apt hinzugefügt". Ich nehme an, dass dies nicht der Fall ist, wenn das URL-Formular verwendet wird. Tatsächlich sagt das Handbuch nicht, dass Sie die Art von URL-Formular verwenden könnten, die Sie in 1 und 3 verwenden, sondern "eine Zeile, die direkt zu sources.list hinzugefügt werden kann". Trotzdem scheint das von Ihnen verwendete Formular zu funktionieren.
jarno
1
@jarno Ja, die Manpage von add-apt-repositoryist in dieser Hinsicht tatsächlich unvollständig. Bitte benutzen Sie, um add-apt-repository --helpzu sehen, dass das URL-Formular, das ich in 1 und 3 verwendet habe, in der Tat korrekt ist und eine beabsichtigte mögliche Option darstellt. Außerdem ist Ihre Annahme absolut richtig: Der öffentliche GPG-Schlüssel eines PPA wird bei Verwendung des URL-Formulars nicht hinzugefügt. Das ist eine nützliche Ergänzung, danke! :) Bitte beachten Sie, dass ich nicht empfehle, das in 3 beschriebene Formular zum Hinzufügen von PPAs zu verwenden. Es war nur als Illustration gedacht, um zu zeigen, dass ein PPA in der Tat einfach eine bestimmte Art von Aufbewahrungsort ist.
Malte Skoruppa
10

In Bezug auf APT gibt es keine technischen Unterschiede zwischen einem Repository und einem PPA. Beide sind Software-Repositorys, die Pakete anbieten. Aus Sicht von APT handelt es sich um dieselben Mechanismen zum Installieren von Paketen.

PPA ist eine Sammlung von Paketen, die Launchpad als Backend verwenden. Ist nur ein anderer Name für dasselbe, der (zumindest im Prinzip) normalerweise aus persönlichen Gründen verwendet wird, wodurch die meisten Vorgänge automatisiert werden, die Sie ansonsten manuell ausführen oder Ihre eigenen Dienste einrichten mussten.

Repositories sind überall dort, wo es Software gibt, in diesem Fall Paketlisten und Pakete, die in Debian-basierten Distributionen installiert werden sollen.

Sie können Ihr persönliches Repository ohne die Verwendung von Launchpad haben und es könnte als PPA bezeichnet werden, da es sich um Personal handelt.

Der einzige Unterschied in der Verwendung besteht lediglich in der Syntax des, das add-apt-repositorydas Schlüsselwort magic verwendet, ppa:anstatt den Benutzer zu zwingen, die vollständige URL zu schreiben, die für Nicht-Launchpad-Repositorys erforderlich ist.

Braiam
quelle
9

Ein Repository ist eine Sammlung verschiedener Software, die es Software wie apt-get, aptitude usw. ermöglicht, diese Software herunterzuladen und zu installieren. Ihr Inhalt ist für alle sichtbar. Weitere Informationen finden Sie auf der Ubuntu-Hilfeseite zu Repositorys.

PPAs sind spezielle Repositories für Software, die von der Distributionsleitung noch nicht für die gesamte Community übernommen wurden. PPA-Software kann Mängel aufweisen und sogar für Malware verwendet werden, da sie als allgemeine Repositorys nicht ausführlich überprüft wird. Weitere Informationen finden Sie in der Erläuterung der PPAs in Launchpad und in dieser Erläuterung der PPAs .

mr2k
quelle
8

Das Repository ist ein Ort, an dem Pakete zum Herunterladen oder Aktualisieren gespeichert oder verwaltet werden. Hierbei handelt es sich um Server, die Paketsätze enthalten.

Ein Personal Package Archive (PPA) ist ein spezielles Software-Repository zum Hochladen von Quellpaketen, die von Launchpad oder einer ähnlichen Anwendung als APT-Repository erstellt und veröffentlicht werden sollen. Meist wird es von Leuten gepflegt, die keine offiziellen Ubuntu-Entwickler sind

g_p
quelle