Ricerca nel sito web

Elementi essenziali della gestione dei pacchetti: apt, yum, dnf, pkg


introduzione

La maggior parte dei moderni sistemi operativi simili a Unix offre un meccanismo centralizzato per la ricerca e l'installazione del software. Il software viene solitamente distribuito sotto forma di pacchetti, conservati in repository. L'utilizzo dei pacchetti è noto come gestione dei pacchetti. I pacchetti forniscono i componenti principali di un sistema operativo, insieme a librerie condivise, applicazioni, servizi e documentazione.

Un sistema di gestione dei pacchetti fa molto di più di un'unica installazione di software. Fornisce inoltre strumenti per aggiornare i pacchetti già installati. I repository di pacchetti aiutano a garantire che il codice sia stato controllato per l'uso sul sistema e che le versioni installate del software siano state approvate dagli sviluppatori e dai manutentori dei pacchetti.

Quando si configurano server o ambienti di sviluppo, spesso è necessario guardare oltre i repository ufficiali. I pacchetti nel rilascio stabile di una distribuzione possono essere obsoleti, specialmente quando si tratta di software nuovo o che cambia rapidamente. Tuttavia, la gestione dei pacchetti è un'abilità vitale per gli amministratori di sistema e gli sviluppatori e la ricchezza di software in pacchetti per le principali distribuzioni è una risorsa enorme.

Questa guida è intesa come un riferimento rapido per i fondamenti della ricerca, installazione e aggiornamento dei pacchetti su una varietà di distribuzioni e dovrebbe aiutarti a trasferire tale conoscenza tra i sistemi.

Sistemi di gestione dei pacchetti: una breve panoramica

La maggior parte dei sistemi di pacchetti è costruita attorno a raccolte di file di pacchetti. Un file di pacchetto è in genere un archivio che contiene applicazioni compilate e altre risorse utilizzate dal software, insieme agli script di installazione. I pacchetti contengono anche metadati preziosi, comprese le loro dipendenze, un elenco di altri pacchetti necessari per installarli ed eseguirli.

Sebbene la loro funzionalità e i loro vantaggi siano sostanzialmente simili, i formati e gli strumenti di packaging variano in base alla piattaforma:

  • Per Debian/Ubuntu: pacchetti .deb installati da apt e dpkg
  • Per Rocky/Fedora/RHEL: pacchetti .rpm installati da yum
  • Per FreeBSD: pacchetti .txz installati da pkg

In Debian e nei sistemi basati su di essa, come Ubuntu, Linux Mint e Raspbian, il formato del pacchetto è il file .deb. apt, Advanced Packaging Tool, fornisce i comandi utilizzati per le operazioni più comuni: ricerca nei repository, installazione di raccolte di pacchetti e relative dipendenze e gestione degli aggiornamenti. I comandi apt operano come front-end per l'utility dpkg di livello inferiore, che gestisce l'installazione di singoli file .deb sul sistema locale , e talvolta viene richiamato direttamente.

I recenti rilasci della maggior parte delle distribuzioni derivate da Debian includono un singolo comando apt, che offre un'interfaccia concisa e unificata alle operazioni comuni che sono state tradizionalmente gestite dal più specifico apt-get e apt-cache.

Rocky Linux, Fedora e altri membri della famiglia Red Hat utilizzano i file RPM. Questi usavano un gestore di pacchetti chiamato yum. Nelle recenti versioni di Fedora e dei suoi derivati, yum è stato soppiantato da dnf, un fork modernizzato che conserva la maggior parte dell'interfaccia di yum.

Il sistema di pacchetti binari di FreeBSD è amministrato con il comando pkg. FreeBSD offre anche la collezione dei port, una struttura di directory locale e strumenti che consentono all'utente di recuperare, compilare e installare i pacchetti direttamente dai sorgenti utilizzando i Makefile. Di solito è molto più comodo usare pkg, ma a volte un pacchetto precompilato non è disponibile, o potresti aver bisogno di cambiare le opzioni in fase di compilazione.

Aggiorna gli elenchi dei pacchetti

La maggior parte dei sistemi mantiene un database locale dei pacchetti disponibili da repository remoti. È meglio aggiornare questo database prima di installare o aggiornare i pacchetti. Come parziale eccezione a questo modello, dnf verificherà la presenza di aggiornamenti prima di eseguire alcune operazioni, ma puoi chiedere in qualsiasi momento se sono disponibili aggiornamenti.

  • Per Debian/Ubuntu: sudo apt update
  • Per Rocky/Fedora/RHEL: dnf check-update
  • Per i pacchetti FreeBSD: sudo pkg update
  • Per i port di FreeBSD: sudo portsnap fetch update

Aggiorna i pacchetti installati

Assicurarsi che tutto il software installato su una macchina sia aggiornato sarebbe un'impresa enorme senza un sistema di pacchetti. Dovresti tenere traccia delle modifiche a monte e degli avvisi di sicurezza per centinaia di pacchetti diversi. Sebbene un gestore di pacchetti non risolva tutti i problemi che incontrerai durante l'aggiornamento del software, ti consente di mantenere la maggior parte dei componenti di sistema con pochi comandi.

Su FreeBSD, l'aggiornamento delle porte installate può introdurre cambiamenti sostanziali o richiedere passaggi di configurazione manuali. È meglio leggere /usr/ports/UPDATING prima di aggiornare con portmaster.

  • Per Debian/Ubuntu: sudo apt upgrade
  • Per Rocky/Fedora/RHEL: sudo dnf upgrade
  • Per i pacchetti FreeBSD: sudo pkg upgrade

Trova un pacchetto

La maggior parte delle distribuzioni offre un front-end grafico o basato su menu per le raccolte di pacchetti. Questi possono essere un buon modo per navigare per categoria e scoprire nuovi software. Spesso, tuttavia, il modo più rapido ed efficace per individuare un pacchetto è cercare con gli strumenti della riga di comando.

  • Per Debian/Ubuntu: apt search search_string
  • Per Rocky/Fedora/RHEL: dnf search search_string
  • Per i pacchetti FreeBSD: pkg search search_string

Nota: su Rocky, Fedora o RHEL, puoi cercare titoli e descrizioni dei pacchetti insieme usando dnf search all. Su FreeBSD, puoi cercare le descrizioni usando pkg search -D

Visualizza informazioni su un pacchetto specifico

Quando si decide cosa installare, spesso è utile leggere le descrizioni dettagliate dei pacchetti. Insieme al testo leggibile dall'uomo, spesso includono metadati come i numeri di versione e un elenco delle dipendenze del pacchetto.

  • Per Debian/Ubuntu: apt show pacchetto
  • Per Rocky/Fedora/RHEL: dnf info pacchetto
  • Per i pacchetti FreeBSD: pkg info pacchetto
  • Per i port di FreeBSD: cd /usr/ports/category/port && cat pkg-descr

Installa un pacchetto dai repository

Una volta che conosci il nome di un pacchetto, di solito puoi installarlo e le sue dipendenze con un singolo comando. In generale, puoi fornire più pacchetti da installare contemporaneamente elencandoli tutti.

  • Per Debian/Ubuntu: sudo apt install pacchetto
  • Per Rocky/Fedora/RHEL: sudo dnf install pacchetto
  • Per i pacchetti FreeBSD: sudo pkg install pacchetto

Installa un pacchetto dal filesystem locale

A volte, anche se il software non è ufficialmente confezionato per un determinato sistema operativo, uno sviluppatore o un fornitore offrirà i file del pacchetto per il download. Di solito puoi recuperarli con il tuo browser web o tramite curl sulla riga di comando. Una volta che un pacchetto si trova sul sistema di destinazione, spesso può essere installato con un singolo comando.

Sui sistemi derivati da Debian, dpkg gestisce i singoli file dei pacchetti. Se un pacchetto ha dipendenze non soddisfatte, gdebi può spesso essere usato per recuperarle dai repository ufficiali.

Su Rocky Linux, Fedora o RHEL, dnf viene utilizzato per installare singoli file e gestirà anche le dipendenze necessarie.

  • Per Debian/Ubuntu: sudo dpkg -i package.deb
  • Per Rocky/Fedora/RHEL: sudo dnf install package.rpm
  • Per i pacchetti FreeBSD: sudo pkg add package.txz

Rimuovi uno o più pacchetti installati

Poiché un gestore di pacchetti sa quali file sono forniti da un determinato pacchetto, di solito può rimuoverli in modo pulito da un sistema se il software non è più necessario.

  • Per Debian/Ubuntu: sudo apt remove pacchetto
  • Per Rocky/Fedora/RHEL: sudo dnf erase pacchetto
  • Per i pacchetti FreeBSD: sudo pkg delete pacchetto

Ottenere aiuto

Oltre alla documentazione basata sul Web, tieni presente che le pagine man Unix (di solito chiamate pagine man) sono disponibili per la maggior parte dei comandi dalla shell. Per leggere una pagina, usa man:

  1. man page

In man puoi navigare con i tasti freccia. Premere/per cercare testo all'interno della pagina e q per uscire.

  • Per Debian/Ubuntu: man apt
  • Per Rocky/Fedora/RHEL: man dnf
  • Per i pacchetti FreeBSD: man pkg
  • Per i port di FreeBSD: man port

Conclusione e ulteriori letture

Questa guida fornisce una panoramica delle operazioni che possono essere incrociate tra i sistemi, ma graffia solo la superficie di un argomento complesso. Per maggiori dettagli su un determinato sistema, è possibile consultare le seguenti risorse:

  • Questa guida copre in dettaglio la gestione dei pacchetti Ubuntu e Debian.
  • Esiste un manuale ufficiale per dnf stesso.
  • Questa guida copre la gestione dei pacchetti di FreeBSD usando pkg.
  • La sezione sull'utilizzo della raccolta dei port.