Introduzione

Quando si installano i pacchetti utilizzando Ubuntu Software Center o le utilità della riga di comando come apt o apt-get i pacchetti vengono scaricati da uno o più repository software apt. Un repository APT è un server di rete o una directory locale contenente pacchetti deb e file di metadati leggibili dagli strumenti APT.

Mentre ci sono migliaia di applicazioni disponibili nei repository Ubuntu predefiniti, a volte potrebbe essere necessario installare software da un repository di terze parti.

In questo tutorial, ti mostreremo due modi per aggiungere un repository apt su sistemi Ubuntu e Debian. Il primo metodo consiste nell'utilizzare il comando add-apt-repository e il secondo è aggiungere manualmente il repository utilizzando un editor di testo.

Fonti Apt

Su Ubuntu e su tutte le altre distribuzioni basate su Debian, i repository software apt sono definiti nel file /etc/apt/sources.list o in file separati nella directory /etc/apt/sources.list.d/.

I nomi dei file del repository all'interno della directory /etc/apt/sources.list.d/ devono terminare con .list.

La sintassi generale del file  /etc/apt/sources.list assume il seguente formato:

deb http://repo.tld/ubuntu distro component...
  • La prima voce nella riga definisce il tipo di archivio. Il tipo di archivio può essere deb o deb-src . Deb implica che il repository contiene pacchetti .deb mentre deb-src implica pacchetti di origine.
  • La seconda voce è l'URL del repository.
  • La terza voce specifica il nome del codice di distribuzione, come beaver, xenial e così via.
  • Le ultime voci sono i componenti o le categorie del repository. I repository Ubuntu predefiniti sono suddivisi in quattro componenti: main, restricted, universe e multiverse. In genere, i repository di terze parti hanno solo una categoria.

Il formato per i file nella directory /etc/apt/sources.list.d/ è lo stesso del file sources.list.

La maggior parte dei repository fornisce una chiave pubblica per autenticare i pacchetti scaricati che devono essere scaricati e importati.

Per poter aggiungere o rimuovere un repository è necessario aver effettuato l'accesso come utente con accesso sudo o root.

Di solito, le istruzioni su come abilitare un determinato repository sono incluse nella documentazione del software.

Installare add-apt-repository

add-apt-repository è uno script Python che consente di aggiungere un repository APT al file /etc/apt/sources.list o a un file separato nella directory /etc/apt/sources.list.d. Il comando può anche essere usato per rimuovere un repository già esistente.

Se add-apt-repository non è disponibile sul tuo sistema, riceverai un messaggio di errore che dice "add-apt-repository command not found".

L'utilità add-apt-repository è inclusa nel pacchetto software-properties-common Per installarlo esegui i seguenti comandi:

sudo apt update
sudo apt install software-properties-common

Aggiungere un repository con add-apt-repository

La sintassi di base del comando add-apt-repository è la seguente:

add-apt-repository [options] repository

Dove repository può essere una voce di repository regolare che può essere aggiunta al file sources.list simile a deb http://repo.tld/ubuntu distro component o un repository PPA nel formato ppa:<user>/<ppa-name>.

Per vedere tutte le opzioni disponibili del comando  add-apt-repository digita il seguente comando:

man add-apt-repository

Per impostazione predefinita, su Ubuntu 18.04 e versioni successive add-apt-repository aggiornerà anche l'indice del pacchetto se viene importata la chiave pubblica del repository.

L'indice dei pacchetti è un database che contiene i record dei pacchetti disponibili dai repository abilitati nel sistema.

Supponiamo che tu voglia installare MongoDB dai loro repository ufficiali.

Innanzitutto importare la chiave pubblica del repository:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

Aggiungi il repository MongoDB usando il comando seguente.

sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Il repository verrà aggiunto al file sources.list.

Ora puoi installare uno qualsiasi dei pacchetti dal repository appena abilitato:

sudo apt install mongodb-org

Se per qualsiasi motivo si desidera rimuovere un repository precedentemente abilitato, utilizzare l'opzione --remove:

sudo add-apt-repository --remove 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Aggiugere un repository PPA

Personal Package Archives (PPA) è un servizio che consente agli utenti di caricare pacchetti sorgente Ubuntu creati e pubblicati con Launchpad come repository apt.

Quando si aggiunge un repository PPA il comando add-apt-repository crea un nuovo file nella directory /etc/apt/sources.list.d/.

Ad esempio, per aggiungere il PPA di Jonathon F che fornisce FFmpeg versione 4.x dovresti eseguire:

sudo add-apt-repository ppa:jonathonf/ffmpeg-4

Quando richiesto, premere Enter e il repository verrà abilitato.

Press [ENTER] to continue or Ctrl-c to cancel adding it.

La chiave pubblica del repository PPA verrà automaticamente scaricata e registrata.

Una volta aggiunto il PPA al sistema è possibile installare i pacchetti del repository:

sudo apt install ffmpeg

Il comando apt installerà il pacchetto e tutte le sue dipendenze.

Aggiungere un repository manualmente

Se si desidera avere un maggiore controllo sull'organizzazione delle origini, è possibile modificare manualmente il file /etc/apt/sources.list e aggiungere la riga del repository apt al file.

Per la dimostrazione, abiliteremo il repository CouchDB e installeremo il software. CouchDB è un database NoSQL gratuito e open source con tolleranza agli errori gestito da Apache Software Foundation.

Per aggiungere il repository aprire il file sources.list con l'editor di testo:

sudo nano /etc/apt/sources.list

Aggiungi la riga del repository alla fine del file:

deb https://apache.bintray.com/couchdb-deb bionic main

Invece di modificare il file con un editor di testo è possibile utilizzare il comando seguente per aggiungere la riga del repository al file sources.list:

echo "deb https://apache.bintray.com/couchdb-deb $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list

$(lsb_release -cs) stamperà il nome in codice di Ubuntu. Ad esempio, se si dispone di Ubuntu versione 18.04 il comando verrà stampato bionic.

Un'altra opzione è quella di creare un nuovo file repository nella directory /etc/apt/sources.list.d/.

Quando si configura manualmente un repository, è inoltre necessario importare manualmente la chiave del repository pubblico nel proprio sistema. Per farlo usa wget o curl:

curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -

Il comando sopra dovrebbe generare OK che significa che la chiave GPG è stata importata con successo e i pacchetti da questo repository saranno considerati affidabili.

Prima di installare i pacchetti dal repository appena aggiunto, è necessario aggiornare l'indice dei pacchetti:

sudo apt update

Una volta aggiornato l'indice dei pacchetti, è possibile installare i pacchetti dal repository appena aggiunto:

sudo apt install couchdb

Conclusione

Ti abbiamo mostrato come aggiungere repository apt in Ubuntu. Le stesse istruzioni si applicano a qualsiasi distribuzione basata su Debian, inclusi Kubuntu, Linux Mint e Elementary OS.