0Pricing
Linux Server Deployment & SSH Mastery · Lezione

Gestione dei repository software

Aggiungete repository di terze parti, comprendete le origini dei pacchetti e risolvete i conflitti tra dipendenze per installazioni software complesse.

Gestione dei repository software è una lezione Linux Server Deployment & SSH Mastery gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Server Deployment & SSH Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.

Cosa sono i repository software?

Quando installa software su Linux, il sistema non lo scarica semplicemente da una fonte casuale. Utilizza i repository software.

Un repository (o «repo») è una posizione centralizzata in cui i pacchetti software vengono archiviati e mantenuti. È come un app store per il server Linux!

  • Affidabilità: i pacchetti vengono generalmente testati per funzionare con la distribuzione Linux specifica.
  • Aggiornamenti: i repository semplificano il mantenimento del software aggiornato.
  • Dipendenze: gestiscono l'installazione di tutto il software di supporto necessario (le dipendenze).

Fonti ufficiali e di terze parti

I repository rientrano generalmente in due categorie:

  • Repository ufficiali: sono gestiti dalla distribuzione Linux (ad esempio Ubuntu o CentOS). Contengono software stabile e ampiamente testato. La maggior parte degli strumenti comuni proviene da qui.
  • Repository di terze parti: sono gestiti da singoli sviluppatori o organizzazioni, non dalla distribuzione. Possono offrire versioni più recenti del software, strumenti specializzati o versioni beta.

Sebbene i repository di terze parti possano essere utili, presti sempre attenzione. Aggiunga solo repository provenienti da fonti affidabili per evitare rischi per la sicurezza.

Aggiunta di repository con APT (Debian/Ubuntu)

Nei sistemi basati su Debian e Ubuntu, l'Advanced Package Tool (APT) gestisce il software. I repository sono elencati nei file presenti in /etc/apt/, principalmente /etc/apt/sources.list e nei file di /etc/apt/sources.list.d/.

Per i repository di terze parti, si utilizza spesso il comando add-apt-repository, in particolare per i Personal Package Archives (PPA).

Dopo aver aggiunto un nuovo repository, esegua sempre sudo apt update per recuperare da esso le informazioni più recenti sui pacchetti.

Repository APT: esempio di aggiunta di un PPA

Vediamo come aggiungere un PPA comune. Questo esempio aggiunge un PPA che fornisce una versione più recente di Neovim, un editor di testo. Aggiorneremo quindi l'elenco dei pacchetti.

# Add the Neovim stable PPA
sudo add-apt-repository -y ppa:neovim-ppa/stable

# Update your package list to include the new repo's packages
sudo apt update

echo "Neovim PPA added and package lists updated!"

Aggiunta di repository con YUM/DNF (RHEL/CentOS)

Nei sistemi Red Hat, CentOS o Fedora, yum (o il suo successore dnf) gestisce i pacchetti. Questi sistemi utilizzano file .repo per definire i repository.

Questi file si trovano generalmente nella directory /etc/yum.repos.d/. Ogni file .repo definisce uno o più repository con dettagli quali nome, URL di base e informazioni sulla chiave GPG.

Dopo aver creato o modificato un file .repo, potrebbe essere necessario eseguire sudo dnf clean all (o yum clean all) e poi sudo dnf update (o yum update) per aggiornare i metadati dei pacchetti.

Repository YUM/DNF: creazione di un file .repo

Ecco un esempio di creazione di un file .repo per Google Chrome, che non è incluso nei repository ufficiali RHEL/CentOS. Si utilizza tee per scrivere nel file con i privilegi sudo.

# Create a .repo file for Google Chrome
echo "[google-chrome]" | sudo tee /etc/yum.repos.d/google-chrome.repo
echo "name=Google Chrome" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgkey=https://dl.google.com/linux/linux_signing_key.pub" | sudo tee -a /etc/yum.repos.d/google-chrome.repo

echo "Google Chrome repository file created!"

Verifica dei pacchetti con le chiavi GPG

Quando aggiunge repository di terze parti, è fondamentale importare anche le relative chiavi GPG (GNU Privacy Guard). Queste chiavi vengono utilizzate per verificare crittograficamente l'autenticità dei pacchetti.

In questo modo si garantisce che i pacchetti scaricati non siano stati manomessi e provengano realmente dalla fonte dichiarata, proteggendo il sistema dal software dannoso.

  • APT: le chiavi vengono spesso gestite da add-apt-repository oppure importate manualmente con apt-key add.
  • YUM/DNF: le chiavi sono specificate nel file .repo con gpgkey= e importate con rpm --import.
wget -qO - https://example.com/KEY.gpg | sudo apt-key add -
# Or for YUM/DNF:
sudo rpm --import https://example.com/KEY.gpg

Gestione dei conflitti tra dipendenze

A volte repository diversi possono offrire versioni differenti dello stesso pacchetto o pacchetti con dipendenze in conflitto. Questo può causare conflitti tra dipendenze.

Il gestore di pacchetti generalmente avvisa di questi conflitti e potrebbe suggerire delle soluzioni. Tra gli strumenti comuni per la diagnosi vi sono:

  • APT: apt policy <package-name> mostra le versioni disponibili nei diversi repository.
  • YUM/DNF: dnf deplist <package-name> elenca le dipendenze e i provider.

È preferibile attenersi ai repository ufficiali, a meno che non si abbia una necessità specifica di utilizzare una versione di terze parti e se ne comprendano i potenziali rischi.

apt policy firefox
# Or for YUM/DNF:
dnf deplist firefox

Definizione delle priorità dei repository

Se più repository forniscono lo stesso pacchetto, è possibile indicare al gestore di pacchetti quale preferire. Questa operazione è chiamata definizione delle priorità dei repository.

  • APT: utilizzi il «pinning» creando file in /etc/apt/preferences.d/. Assegni un «Pin-Priority» ai pacchetti provenienti da fonti specifiche. Numeri di priorità più elevati (superiori a 500) indicano una preferenza.
  • YUM/DNF: yum-plugin-priorities (o la funzionalità integrata di DNF) consente di impostare un valore priority= nei file .repo (un numero più basso indica una priorità maggiore).

In questo modo è possibile utilizzare in sicurezza una combinazione di repository stabili e più recenti.

# Example for APT pinning:
# File: /etc/apt/preferences.d/my-app
Package: my-app
Pin: origin "example.com"
Pin-Priority: 900

Verifica sulla gestione dei repository

Verifichiamo la sua comprensione della gestione dei repository software.

Riepilogo: padronanza dei repository

Congratulazioni! Ha imparato a gestire i repository software, una competenza fondamentale per qualsiasi amministratore Linux.

  • Ora comprende la differenza tra repository ufficiali e di terze parti.
  • Sa aggiungere repository usando add-apt-repository (Debian/Ubuntu) e creando file .repo (RHEL/CentOS).
  • Conosce l'importanza delle chiavi GPG per verificare l'autenticità dei pacchetti.
  • Ha acquisito le nozioni di base per gestire i conflitti tra dipendenze e definire le priorità dei repository.

Ricordi sempre di dare la priorità alla sicurezza e di aggiungere solo repository provenienti da fonti affidabili!

Domande Frequenti

La lezione «Gestione dei repository software» è gratuita?

Sì — il testo completo di «Gestione dei repository software» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Server Deployment & SSH Mastery, passa a CoddyKit PRO. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.

Cosa imparerò in «Gestione dei repository software»?

Aggiungete repository di terze parti, comprendete le origini dei pacchetti e risolvete i conflitti tra dipendenze per installazioni software complesse. Eserciti Linux Server Deployment & SSH Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Linux Server Deployment & SSH Mastery?

Non è richiesta alcuna esperienza precedente. Linux Server Deployment & SSH Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Gestione dei repository software»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Linux Server Deployment & SSH Mastery?

Sì. Ogni lezione Linux Server Deployment & SSH Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Gestori di pacchetti APT e YUM
  2. Installazione e aggiornamento del software
  3. Gestione dei repository software
  4. Compilare dal codice sorgente e usare Snap/Flatpak
← Torna a Linux Server Deployment & SSH Mastery