GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione di APT Package Manager su Linux

In qualità di amministratore di sistema, sapendo come installare , aggiorna oppure elimina i pacchetti Linux è fondamentale per mantenere i tuoi host e server Linux.

Potrebbe essere necessario aggiornare i tuoi pacchetti attuali per ottenere le ultime patch di sicurezza per i tuoi server.

D'altra parte, potrebbe essere necessario configurare un intero server Web HTTP per distribuire un sito Web nuovo di zecca sviluppato dal team dell'applicazione.

A volte, potresti semplicemente voler testare un nuovo software per vedere se soddisfa le tue esigenze, solo per disinstallare i pacchetti in un secondo momento.

Di conseguenza, sapere come gestire i pacchetti Linux è fondamentale .

In questo tutorial, ci concentreremo sulla gestione dei pacchetti Linux utilizzando il gestore di pacchetti APT.

Innanzitutto, ripercorreremo un po' di storia sulle origine del software open source per comprendere i fondamenti dei pacchetti Linux.

Più avanti ci concentreremo un po' di più su APT (Strumento pacchetto avanzato ) e dobbiamo vedere come puoi compilare i tuoi programmi per avere installazioni personalizzate.

Pronto?

Cosa imparerai

Leggendo questo tutorial, imparerai i seguenti argomenti:

  • Il GNU /Linux progetto e le origini del software libero;
  • Come programmare installazione è progettato su Linux e come si differenzia dagli host Windows;
  • Quali repository software sono e quali sono i diversi tipi di repository che potresti incontrare;
  • Cache APT guida completa :come aggiornare la tua cache e come cercare programmi sul tuo sistema;
  • APT riceve comandi dettagliati :come installare e rimuovere correttamente i pacchetti Linux;

È un programma lungo, quindi, senza ulteriori indugi, entriamo subito nel merito.

Spiegazione delle origini GNU/Linux

Prima di descrivere in dettaglio come installare e disinstallare i pacchetti su Linux, è molto importante avere alcune nozioni di base su cosa sono GNU e Linux.

Quando si parla di Linux, è abbastanza comune fare riferimento a Linux come a un sistema operativo, ma non è del tutto vero .

Quando ci riferiamo ai sistemi operativi Linux, in realtà ci riferiamo ai sistemi operativi GNU/Linux.

Cos'è GNU?

GNU (abbreviazione di "GNU Not Unix ") è un sistema operativo progettato per fornire software gratuito facile da acquisire, distribuire e modificare da solo.

Oggi è abbastanza popolare pensare a Unix (o almeno a GNU) come a un sistema operativo libero, ma non è sempre stato così.

Ad esempio, se dovessi eseguire "uname ” sul tuo sistema, con l'opzione “-o” (per il sistema operativo), vedresti che molto probabilmente stai eseguendo un sistema operativo GNU/Linux.

$ uname -o

Interessante !

Agli albori di Unix, il sistema operativo Unix non era affatto un software open source gratuito:era sviluppato da aziende come IBM, HP o AT&T per esigenze aziendali.

Tuttavia, data l'ascesa del software protetto da copyright e delle distribuzioni con licenza, Richard Stallman, ricercatore del MIT, ha deciso di sviluppare un'alternativa UNIX:GNU.

GNU è stato progettato per essere un sistema operativo open source retrocompatibile con i sistemi operativi Unix.

Su un sistema operativo GNU, i comandi (come “ls”, “cat” o “gcc”) sono completamente open source.

Inoltre, GNU è definito “software libero”, ma stiamo parlando di denaro ?

Spiegazione del software libero

Come abbiamo spiegato prima, GNU si autoproclama software libero .

Ma il software "libero" non si riferisce letteralmente al denaro, si riferisce alle libertà fondamentali che sono fondamentali per GNU :

  • Libertà di eseguire i programmi come desideri , per qualsiasi scopo tu stia cercando di raggiungere;
  • Libertà di modificare il programma , precondizionando un accesso completo al codice sorgente del programma;
  • Libertà di ridistribuire le copie per aiutare i tuoi vicini;
  • Condivisione delle tue modifiche al mondo :in questo modo non sei limitato alle tue modifiche, ma puoi aiutare migliaia di sviluppatori in tutto il mondo.

Queste libertà fondamentali sono legate al concetto di copyleft .

Puoi aggiungere regole specifiche a questo insieme di regole fondamentali purché non interferiscano con le regole di base stesse.

Sarebbe ad esempio illegale prendere codice open source, modificarlo e venderlo senza fornire agli utenti finali il codice sorgente.

Questa è un'affermazione importante perché significa che non è vietato vendere codice di per sé, è illegale impedire agli utenti finali i diritti fondamentali.

Di conseguenza, GNU non solo definisce tali regole di libertà fondamentali, ma garantisce anche che tali diritti siano diffusi su tutte le versioni successive del software.

In questo contesto e al fine di trattare i contenuti protetti da copyright, la licenza GPL (GNU General Public License) è stato creato.

La licenza GPL aiuta ad aggregare le diverse regole intrinseche dedicate al software libero ea definire le violazioni delle licenze. Una FAQ completa sulla GPL può essere trovata in questa pagina.

Accesso ai pacchetti GNU

Come probabilmente hai già capito, i pacchetti GNU sono pacchetti progettati per essere condivisi , modificato e corri dove vuoi, per qualsiasi scopo.

In questo contesto, è possibile accedere ai pacchetti GNU direttamente dal sito Web GNU.

Se vai alla pagina del software del sito Web ufficiale di GNU, potresti vedere l'intero elenco dei pacchetti GNU a tua disposizione.

Come puoi vedere, questa è una lunga lista di pacchetti.

Uno dei pacchetti più popolari è quello core-utils, che fornisce i comandi Linux più popolari come "ls “, “gatto ” o “trova “.

E quei comandi possono essere modificati ed eseguiti a piacimento!

Tutti questi pacchetti arrivano ogni volta che hai installato un sistema operativo GNU/Linux, ma cosa succede se volessi installare software di terze parti?

Per questo, Linux è progettato per comunicare con quelli che chiamiamo repository software.

Cosa sono i repository di software Linux?

Prima di descrivere i repository di software Linux, è molto importante avere un po' di background su come è progettato il sistema di packaging di Linux.

Se provieni da un ambiente Windows, sei abituato a scaricare file eseguibili (.exe) da Internet, apri una procedura guidata di installazione e fai clic su "Avanti" un paio di volte per installare il tuo programma.

Su Linux, non è così.

Su Linux, i pacchetti vengono scaricati e installati da repository online da un gestore di pacchetti.

Gestione pacchetti APT su Linux

Nelle distribuzioni basate su Debian, i pacchetti vengono scaricati tramite il gestore di pacchetti APT.

Quando ci riferiamo ai pacchetti, abbiamo essenzialmente a che fare con file di archivio che contengono più file deb che vengono utilizzati dall'utilità dpkg per installare i programmi.

Allora perché dovremmo aver bisogno di APT?

APT, acronimo di Advanced Package Manage, è responsabile del download, dell'installazione, dell'aggiornamento e della rimozione dei pacchetti dal tuo sistema.

Ma perché dovremmo aver bisogno di un gestore di pacchetti per questo?

Non potremmo installare i programmi da soli?

Sarebbe difficile perché i pacchetti sono legati insieme tramite le dipendenze dei pacchetti.

Concetto di dipendenze dei pacchetti

Prendiamo ad esempio l'editor VIM su Linux.

Se stai usando una distribuzione Debian, la pagina VIM per i repository Debian è disponibile qui.

Qui è dove potresti trovare informazioni su questo pacchetto specifico: quali funzionalità fornisce, chi lo ha creato ma soprattutto da quali pacchetti dipende.

Su Linux, la maggior parte dei pacchetti non sono pacchetti "puri":dipendono da un'ampia varietà di pacchetti diversi per fornire funzionalità di terze parti al programma effettivo.

Come puoi vedere scorrendo la pagina, il pacchetto VIM dipende da molti altri pacchetti.

Come puoi vedere qui, le dipendenze sono suddivise in quattro diverse categorie:

  • dipende :come dice il nome, questa dipendenza è necessaria per l'esecuzione del programma. Senza di essa, il programma non può iniziare affatto;
  • consiglia :senza questa dipendenza, il programma sarebbe in grado di funzionare ma non fornirebbe tutte le funzionalità che questo strumento è progettato per fornire;
  • suggerisce :senza questa dipendenza, il programma sarebbe in grado di funzionare e fornire funzionalità di base ma non sarebbe la versione finale dello strumento;
  • miglioramenti :questa dipendenza può potenziare lo strumento reale migliorando le prestazioni o la visualizzazione ma non è affatto necessaria.

Ora sai perché utilizziamo lo strumento APT:le dipendenze dei pacchetti vengono risolte per te al momento dell'installazione.

Ora che sai di più sui pacchetti, diamo un'occhiata a cosa sono i repository software .

Architettura di distribuzione del software Linux

Su Linux, il software viene distribuito tramite repository software.

I repository di software vengono utilizzati per aggregare il software gratuito fornito dalla comunità.

I repository possono essere legati a una distribuzione specifica.

Ubuntu, Debian, CentOS o RHEL hanno i propri repository che vengono aggiornati quotidianamente.

Di conseguenza, quando vuoi installare un nuovo programma, stai interrogando quei repository di base per recuperare i pacchetti da essi.

Se desideri installare pacchetti che non si trovano su repository basati sulla distribuzione, dovresti aggiungere i tuoi repository attendibili al tuo sistema per installare nuovi pacchetti.

Questo è essenzialmente il motivo per cui si dice che Linux sia più sicuro di Windows quando si tratta di installare nuovi programmi.

A meno che tu non stia installando pacchetti ombreggiati, comunichi per la maggior parte del tempo con repository attendibili dove centinaia di sviluppatori diversi esaminano il codice che stai eseguendo sul tuo computer.

Non impedisce la diffusione di virus o malware, ma sarebbe improbabile perché più revisori indipendenti hanno ispezionato il codice del pacchetto.

Nota che i repository sono suddivisi in diverse categorie e potresti dover prendere il repository corretto per garantire che stai eseguendo versioni sicure.

Tali versioni includono "stabile ” repository, “test ” repository e “unstable archivi”.

Nota :in altre distribuzioni, quei repository possono avere un nome diverso (Ubuntu ha multiverso, universo, principale e così via)

Per impostazione predefinita, la tua distribuzione è molto probabilmente collegata al repository stabile (chiamato anche "principale") tramite il file di configurazione sources.list.

$ cat /etc/apt/sources.list

Ora che sai di più sui repository software e su come interagisce il tuo gestore di pacchetti, vediamo qual è la cache del tuo gestore di pacchetti.

Spiegazione della cache APT

Come discusso in precedenza, il gestore di pacchetti APT è responsabile del download dei pacchetti da Internet (o dai repository di pacchetti locali) per installarli.

Tuttavia, le operazioni eseguite dal gestore di pacchetti APT non vengono eseguite sempre online.

APT gestisce un database interno chiamato cache.

La cache APT viene utilizzata per fornire informazioni offline sui pacchetti attualmente installati sul tuo sistema. In sostanza garantisce che sei in grado di accedere alle informazioni sul pacchetto senza dover essere connesso a Internet.

Ricerca dei pacchetti nella cache

Ad esempio, puoi cercare tutti i pacchetti relativi a Python che potrebbero essere archiviati nella tua cache APT.

Per questo, devi eseguire il comando "apt-cache" con "cerca opzione ".

$ apt-cache search <search string>

$ apt-cache search python

Suggerimento :puoi reindirizzare la tua ricerca nella cache con "meno" per vedere tutti i risultati forniti.

apt-cache ricerca python | meno

Oltre a cercare pacchetti specifici, la cache APT può anche mostrare dettagli completi su un pacchetto.

Visualizzazione delle informazioni sul pacchetto

Per mostrare le informazioni sul pacchetto, devi eseguire il comando "apt-cache" con "show opzione ".

$ apt-cache show <package_name>

Ad esempio, per avere maggiori informazioni sul pacchetto gcc (che è un compilatore GNU), dovresti digitare

$ apt-cache show gcc

Quindi, se non abbiamo bisogno di una connessione Internet per mostrare alcuni dettagli, significa che sono archiviati da qualche parte nella nostra istanza.

Diciamo ad esempio che voglio cercare la pagina della documentazione della cache per il comando nano.

Per impostazione predefinita, le informazioni sul pacchetto sono archiviate in "/var/lib/apt/lists

$ ls /var/lib/apt/lists

In questa directory, hai accesso a una serie di file diversi che memorizzano informazioni sui pacchetti archiviati nel tuo sistema.

Per dimostrarlo, cerchiamo il file che fornisce le informazioni per il comando nano.

$ sudo grep -r -A 3 -B 3 -E "Package: nano$" . | less

Come puoi vedere, molti file contengono un riferimento al pacchetto nano, ma quello che mi interessa è sicuramente contenuto nel file "main amd64" (come promemoria, "main ” sta per stabile e "amd64 ” alla architettura del mio processore )

Se hai dei dubbi sull'architettura della tua CPU, esegui il comando "lscpu".

$ lscpu

Aggiornamento della cache APT

Come probabilmente avrai già capito, la cache di APT funziona offline.

Di conseguenza, la cache APT deve essere aggiornata periodicamente per assicurarsi che :

  • Stai indicando i repository corretti;
  • Stai ricevendo gli ultimi aggiornamenti per il software installato sul tuo computer .

Per recuperare gli aggiornamenti per la tua cache, devi eseguire il comando "apt-get update".

$ sudo apt-get update

Nota:devi essere sudo per aggiornare la cache di sistema.

Come puoi vedere, il comando esegue un paio di chiamate GET a repository distanti per recuperare nuove informazioni.

Quando aggiorni i tuoi repository, è importante notare che nessun software è stato aggiornato sul tuo computer.

Esecuzione di "apt-get update Il comando ” aggiorna solo la cache per avere le ultime informazioni sul software, non aggiorna direttamente i tuoi programmi.

Per aggiornare i tuoi programmi, devi eseguire il "aggiornamento comando ".

Aggiornare (aggiornare) i tuoi pacchetti locali

Per aggiornare i tuoi programmi locali, devi eseguire "apt-get" con "upgrade opzione ".

$ sudo apt-get upgrade

Ad un certo punto durante il comando, ti verrà chiesto se desideri installare gli aggiornamenti.

Premi "Y ” e premi Invio.

Al momento della conferma, i tuoi programmi verranno aggiornati all'ultima versione stabile.

Simpatico!

Hai aggiornato con successo i tuoi pacchetti usando il comando upgrade.

Aggiornare la cache e aggiornare i pacchetti attuali è davvero utile, ma se volessi installare nuovi pacchetti sul tuo sistema?

Nella prossima sezione, vedrai come installare nuovi programmi sul tuo sistema usando APT.

Installazione di nuovi pacchetti con APT

Quando installi nuovi pacchetti con APT, hai essenzialmente due opzioni:

  • Il pacchetto si trova già in uno dei repository a cui sei collegato;
  • Il pacchetto si trova in un repository distante e devi aggiungerlo.

Per vedere se un pacchetto si trova già nella tua cache APT, devi cercare nella tua cache.

In questo esempio, fingeremo di voler installare il pacchetto "gcc".

Per prima cosa, vediamo se GCC si trova già nella nostra cache APT.

$ apt-cache search --names-only ^gcc$

Come puoi vedere, il pacchetto GCC è direttamente disponibile con i miei repository locali predefiniti.

Installazione del software trovato nella cache

Quando il pacchetto è direttamente disponibile nei repository predefiniti, puoi installarlo eseguendo il comando "apt-get" con "install opzione ".

Nota:avrai bisogno dei privilegi sudo per installare nuovi pacchetti sul tuo sistema.

$ sudo apt-get install gcc

Ti potrebbe anche essere chiesto se accetti di installare questo pacchetto sul tuo sistema.

Premi "Y" ogni volta che ti viene richiesta questa domanda.

Poco dopo, il tuo programma dovrebbe essere installato e utilizzabile.

Per verificare che il comando sia stato installato correttamente, puoi eseguire il comando "whereis".

$ whereis gcc

Fantastico, hai installato correttamente il compilatore GCC sul tuo sistema!

Installazione software non disponibile nella cache

In alcuni casi, potresti voler installare software che non è memorizzato direttamente nella cache di APT.

Per questa sezione installeremo Grafana, un dashboard open source che non è direttamente disponibile nei pacchetti predefiniti.

Nota:questo non è un tutorial dedicato a Grafana, questa parte tratterà solo i comandi relativi ad APT.

Per prima cosa, dobbiamo assicurarci che il pacchetto non sia già contenuto nella nostra cache APT.

$ apt-cache search --names-only ^grafana$
<empty>

In questo caso, nessun pacchetto predefinito è installato per Grafana, dobbiamo aggiungerlo da soli.

Aggiunta di repository APT personalizzati

Per aggiungere repository APT personalizzati, è necessario comprendere la struttura della directory dei sorgenti APT.

Per impostazione predefinita, i repository sono archiviati nella cartella "/etc/apt".

$ ls -l /etc/apt

In questa directory hai più voci :

  • apt.conf.d :le cartelle di configurazione di APT contenenti i file di configurazione per configurare ad esempio i proxy;
  • auth.conf.d :può essere utilizzato per memorizzare i dettagli di autenticazione relativi ai proxy;
  • preferenze.d :può essere utilizzato per impostare priorità su repository o pacchetti specifici;
  • fonti. elenco :contiene il set predefinito di repository per la tua distribuzione;
  • sources.list.d :una directory che può contenere repository APT personalizzati;
  • trusted.gpg.d :un set di chiavi GPG di cui ti fidi per certificare l'autenticità del download.

Il "sources.list" è già pieno di repository predefiniti, quindi potremmo non voler modificare questo file.

Invece, aggiungeremo un repository personalizzato alla directory sources.list.d.

$ sudo touch /etc/apt/sources.list.d/custom.list

In questo file appena creato, aggiungi una voce per il repository personalizzato che desideri installare.

$ sudo nano /etc/apt/sources.list.d/custom.list

deb https://packages.grafana.com/oss/deb stable main

Per installare i pacchetti in modo sicuro, potrebbe essere necessario importare le chiavi GPG.

$ sudo wget -q -O https://packages.grafana.com/gpg.key | sudo apt-key add -
OK

Nota :potrebbe non essere necessario aggiungere una chiave GPG per ogni pacchetto, ma garantisce che il pacchetto sia installato in modo sicuro.

Ora che il tuo repository è stato aggiunto correttamente, aggiorna la tua cache APT per applicare le modifiche.

$ sudo apt-get update

Ora, se cerchi il tuo pacco, dovresti riuscire a trovarlo.

$ sudo apt-cache show grafana

Di conseguenza, ora sei pronto per installare il tuo pacchetto.

Per installare il tuo pacchetto, esegui semplicemente "apt-get ” con il comando “installa opzione ".

$ sudo apt-get install grafana

Fantastico !

Ora il tuo pacchetto è stato installato correttamente.

Come puoi vedere, l'installazione di software personalizzato è molto diversa dall'installazione di software disponibile nella cache:devi aggiungere repository personalizzati ed eventualmente aggiungere chiavi GPG.

Ora che sai come installare i pacchetti, vediamo come disinstallarli.

Disinstallazione dei pacchetti con APT

Quando si disinstallano i pacchetti utilizzando il gestore di pacchetti APT, si hanno essenzialmente due opzioni:rimuovere o elimina .

Rimuovere i pacchetti usando apt-get remove

Il primo modo per disinstallare il pacchetto è utilizzare apt-get remove comando.

$ sudo apt-get remove <package>

Usando il pacchetto grafana che abbiamo installato in precedenza, questo darebbe

$ sudo apt-get remove grafana

Allora perché avremmo bisogno di una funzione di eliminazione?

Quando si utilizza apt-get remove , i pacchetti vengono rimossi ma i file associati al pacchetto vengono lasciati intatti.

Per vederlo, prova a elencare i file associati a un pacchetto sul tuo sistema usando il comando dpkg.

$ dpkg -L <package>

Come puoi vedere, i file di configurazione sono ancora presenti, ecco perché devi utilizzare l'eliminazione comando.

Eliminazione dei pacchetti utilizzando apt-get purge

Per utilizzare il comando purge, esegui semplicemente “apt-get " con "elimina opzione ".

$ sudo apt-get purge <package>

Ora, se provi a vedere i file associati al tuo pacchetto, non sarai in grado di trovarne nessuno.

$ dpkg -L <package>
<empty>

Rimuovere le dipendenze con la rimozione automatica

Come probabilmente hai capito, lo scopo dell'utilizzo di APT è che recupera le dipendenze dei pacchetti per te e le installa correttamente.

Di conseguenza, ogni volta che installi nuovi pacchetti, corri il rischio di lasciare dipendenze penzolanti sul tuo sistema.

Per rimuovere le dipendenze penzolanti (cioè le dipendenze non più utilizzate), devi utilizzare l'opzione di rimozione automatica.

Puoi farlo durante la disinstallazione un pacchetto

$ sudo apt-get autoremove <package>

Oppure puoi farlo dopo eseguendo autoremove opzione senza argomenti.

$ sudo apt-get autoremove

Conclusione

In questo lungo tutorial hai imparato come installare e disinstalla pacchetti utilizzando il gestore di pacchetti APT.

Hai anche imparato di più sulle origini del software open source , da dove viene e come GNU/Linux sistema operativo emerso dai sistemi operativi Unix standard.

Se sei interessato all'amministrazione del sistema Linux , abbiamo una sezione completa dedicata ad esso sul sito Web, quindi assicurati di dare un'occhiata.


Linux
  1. Come utilizzare XBPS Package Manager su Void Linux

  2. Installazione e utilizzo di Homebrew Package Manager su Linux

  3. Come installare e utilizzare Yarn Package Manager in Linux

  4. Nix:un potente gestore di pacchetti per Linux e Unix

  5. comando whoami in Linux spiegato con esempi

15 esempi di comandi apt in Ubuntu / Debian Linux

Aptitude - Strumento di gestione dei pacchetti Debian GNU/Linux

Installa Synaptic Package Manager su Linux

Come utilizzare Yum Package Manager su Rocky Linux 8

Come installare Snap Package Manager su Rocky Linux 8

Come installare Snap Package Manager nelle distribuzioni Linux