Qual è la differenza tra un PPA e un repository?


46

Di recente ho pubblicato una risposta in cui ho scritto aggiungere il PPA . Ma ora capisco che non ho idea di quale sia la differenza tra un PPA e un repository . Qualcuno può spiegarmelo, per favore?


Risposte:


14

repository

Su sistemi come Ubuntu, la maggior parte dei software è confezionata in file .deb (o .rpm, come in Red Hat) che contengono i programmi e le librerie di cui hai bisogno. Questi file possono essere scaricati o disponibili in CD (il CD di Ubuntu ne è pieno). I repository sono server che contengono set di pacchetti .

PPA

Archivi della confezione Personal (PPA) permettono voi di caricare pacchetti sorgente di Ubuntu da costruire e pubblicate come un repository APT da Launchpad .

Vedi anche Cosa sono i PPA e come li uso?

Riassumendo:

  • Un repository ha pacchetti.
  • I PPA sono pacchetti (/ raccolte di software).
  • Launchpad ha un repository che contiene PPA (/ collezioni di software).

4
Un PPA non è solo un repository o un software selezionato e gestito da un individuo o un gruppo? (che non sono direttamente correlati ai devlop Ubuntu canonici o ufficiali). Un PPA è come un repository e non un singolo pacchetto.
Fahad Yousuf,

11
Un PPA non è un pacchetto, è un repository. Ogni PPA può contenere più pacchetti. Launchpad è (o meglio ospita) una raccolta di repository chiamati PPA.
Gilles 'SO-smetti di essere malvagio'

una spiegazione così chiara. Quindi, una spiegazione più chiara sarebbe Repository è C: // ProgramFiles e PPA sono le cartelle dei programmi installati in questo
Abhimanyu Aryan,

@AbhimanyuAryan No, C: \ ProgramFiles non ha nulla a che vedere con un repository, e le directory al suo interno non assomigliano a PPA. A meno che tu non stia creando una metafora, nel qual caso devo aver perso il punto.
wjandrea,

Questa risposta è sbagliata I PPA non sono pacchetti, sono repository. Devo ripararlo?
Reinier Post

66

Non sono d'accordo con la risposta accettata a questa domanda. Avrei scritto quanto segue come commento a quella risposta, ma è troppo lungo.

  • Un repository è una raccolta di pacchetti, ospitata su un server arbitrario.
  • Un PPA è anche una raccolta di pacchetti, ospitati sui server Launchpad.

    In particolare, un PPA non è un singolo pacchetto, in quanto quel punto formulato in modo molto ambiguo "I PPA sono pacchetti (/ raccolte di software)". nella risposta accettata può portare a credere. Inoltre, un pacchetto non è (necessariamente) una raccolta di software , il che rende questo punto ancora più confuso.

  • Pertanto, un PPA è un tipo speciale di repository. Come un quadrato è un tipo speciale di rettangolo.

La differenza principale è l'hoster. Fondamentalmente, se sei un programmatore e vuoi sviluppare e distribuire i tuoi pacchetti e hai il tuo server di root su Internet, puoi impostare il tuo repository su di esso. Grande! Ma cosa succede se non si dispone di un server root e non si desidera pagare per uno, ma si desidera ancora sviluppare e distribuire i propri pacchetti? Bene, allora c'è Launchpad. Offre PPA come servizio proprio per quel caso d'uso. Fondamentalmente puoi creare il tuo repository su Launchpad e gestire i tuoi pacchetti lì.

Diamo un'occhiata a un esempio illustrativo.

  1. Innanzitutto, supponi di voler installare MATE Desktop Environment (un fork di Gnome 2) su Ubuntu Saucy Salamander. Non è contenuto nei repository ufficiali, né gli sviluppatori mantengono un PPA. Invece, hanno il loro repository. Puoi aggiungerlo in questo modo:

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

    Ciò comporterebbe l'aggiunta della seguente voce a /etc/apt/sources.list:

    deb http://packages.mate-desktop.org/repo/ubuntu saucy main
    
  2. Secondo, supponiamo che tu voglia dare un'occhiata anche a Cinnamon (un altro fork di Gnome 2). Questo è contenuto nei repository ufficiali dal 13.04, ma c'è ancora un PPA gestito dagli sviluppatori, utile ad esempio se sei interessato a ottenere nuove versioni più velocemente. Puoi aggiungerlo in questo modo:

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

    Ciò comporterebbe l'aggiunta della seguente voce a /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
    

    Come puoi vedere, quest'ultima voce è abbastanza simile a quella fatta al punto (1). In effetti, entrambi sono solo URL di repository dal punto di vista di Ubuntu.

  3. In effetti, potresti persino aggiungere il PPA Cinnamon con la stessa sintassi del punto (1) , anche se questo non è il modo tipico per aggiungere PPA:

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

    Ciò comporterebbe l'aggiunta della seguente voce a /etc/apt/sources.list:

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

    Questa è esattamente la stessa voce di cui al punto (2). Solo i file in cui sono scritte queste voci sono gestiti in modo leggermente diverso, ma alla fine non fa alcuna differenza. In entrambi i casi, finirai con i pacchetti del PPA Cinnamon disponibili sul tuo sistema, sempre sudo apt-get updateovviamente dopo il canonico .


Secondo il manuale di add-apt-repositoryin Xenial, se il ppa:<user>/<ppa-name>modulo viene utilizzato, "Anche la chiave pubblica GPG del PPA appena aggiunto verrà scaricata e aggiunta al portachiavi di apt". Suppongo che non sia così, se viene utilizzato il modulo URL. In realtà, il manuale non dice che potresti usare il tipo di modulo URL che usi in 1 e 3, ma "una linea che può essere aggiunta direttamente a sources.list". Tuttavia, la forma che usi sembra funzionare.
jarno,

1
@jarno Sì, la manpage di add-apt-repositoryè davvero incompleta al riguardo. Si prega di utilizzare add-apt-repository --helpper vedere che il modulo URL che ho usato in 1 e 3 è effettivamente corretto e un'opzione possibile prevista. Inoltre, il tuo presupposto è assolutamente corretto: la chiave pubblica GPG di un PPA non verrà aggiunta quando si utilizza il modulo URL. È un'aggiunta utile, grazie! :) Si prega di notare che non consiglio di utilizzare il modulo descritto in 3 per aggiungere PPA. Era solo un esempio per dimostrare che in realtà un PPA è semplicemente un tipo specifico di repository.
Malte Skoruppa,

10

Non ci sono differenze tecniche tra un repository e un PPA per quanto riguarda l'APT. Entrambi sono repository software che offrono pacchetti, dal punto di vista APT sono gli stessi meccanismi di installazione dei pacchetti.

PPA è un repository di pacchetti che utilizza Launchpad come backend. È solo un altro nome per la stessa cosa, che è (almeno in linea di principio) normalmente utilizzato per motivi personali, che automatizza la maggior parte delle operazioni che altrimenti dovresti fare manualmente o impostare i tuoi servizi.

I repository sono ovunque ci sia software, in questo caso elenchi di pacchetti e pacchetti da installare in distribuzioni basate su Debian.

Puoi avere il tuo repository personale, senza l'uso di Launchpad e potrebbe essere chiamato PPA, perché è personale.

L'unica differenza nell'uso sta solo nella sintassi di add-apt-repositorychi usa la parola chiave magica ppa:invece di forzare l'utente a scrivere l'URL completo richiesto per i repository non Launchpad.


9

Un repository è una raccolta di vari software che consente a software come apt-get, aptitude ecc di scaricare e installare detto software. Il loro contenuto è visibile per l'ispezione da parte di tutti. Leggi la pagina di aiuto di Ubuntu sui repository per l'illuminazione.

I PPA sono repository speciali per software che non sono ancora stati adottati per l'intera comunità dalla leadership della distribuzione. Il software PPA può presentare difetti e può persino essere utilizzato per malware perché non viene ampiamente rivisto come repository generale. Per ulteriori informazioni, consultare la spiegazione dei PPA di Launchpad e questa discussione sui PPA .


8

Il repository è un luogo in cui i pacchetti vengono archiviati o gestiti per il download o l'aggiornamento. Si tratta di server che contengono set di pacchetti.

Un Personal Package Archive (PPA) è un repository software speciale per il caricamento di pacchetti sorgente da creare e pubblicare come repository APT da Launchpad o un'applicazione simile. Principalmente è gestito da persone che non sono sviluppatori Ubuntu ufficiali

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.