Introduzione all'APT System: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(→‎Strumenti: aggiunto gdebi, modificato dpkg, rimosso apt-setup (non più esistente?), e modificato parte del resto)
(task di Revisione Wiki #63 - sandbox)
 
(39 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}{{Template:APT}}
{{Repository
 
|precedente=Gestione di un repository con debarchiver
==Introduzione==
}}
Il sistema APT (Advanced Packaging Tool) è, semplificando, un insieme di strumenti atti a permettere l'installazione e la successiva gestione di moltissimi programmi. Volendo essere più precisi l'apt-system creato dagli sviluppatori di Debian è un insieme di script che si appoggiano al comando <code>dpkg</code> allo scopo di snellire/agevolare la gestione di pacchetti e [[dipendenze]] nei sistemi Debian GNU/Linux. Notoriamente chi prende confidenza con Debian difficilmente sarà tentato di cambiare distribuzione, e questo anche grazie a questo splendido set di tool.<br>
{{Template:APT}}
{{Versioni compatibili}}
== Introduzione ==
Il sistema [[APT]] (Advanced Packaging Tool) è, semplificando, un insieme di strumenti atti a permettere l'installazione e la successiva gestione di moltissimi programmi. Volendo essere più precisi l'apt-system creato dagli sviluppatori di Debian è un insieme di strumenti che si interfacciano con il programma [[dpkg]] allo scopo di snellire/agevolare la gestione di pacchetti e [[dipendenze]] nei sistemi Debian GNU/Linux. Notoriamente chi prende confidenza con Debian difficilmente sarà tentato di cambiare distribuzione, e questo anche grazie a questo splendido set di tool.<br>
Esistono due strade per installare un programma sul proprio computer:
Esistono due strade per installare un programma sul proprio computer:
* tramite APT;
* tramite APT;
* scaricando e compilando manualmente i sorgenti dei vari programmi.
* scaricando e compilando manualmente i sorgenti dei vari programmi.
La prima soluzione è infinitamente più comoda e rapida, mentre la seconda in genere viene intrapresa solo se si hanno particolari necessità o se un certo programma non è disponibile tramite APT.
La prima soluzione è infinitamente più comoda e rapida, nonché l'unica sicura, in quanto ogni [[pacchetto]] scaricato dai [[repository]] da APT è autenticato, ha un'origine controllata e verrà poi aggiornato dal sistema in automatico assieme a tutti gli altri programmi, in base alla policy adottata dalla propria [[release]] riguardo gli aggiornamenti. La seconda invece viene intrapresa solo se si hanno particolari necessità o se un certo programma non è disponibile tramite APT, ma chiaramente tutte le responsabilità di aggiornamento e verifica dell'autenticità sono a carico dell'amministratore, motivo per cui è sconsigliata in tutti gli altri casi.


== Strumenti ==
== Strumenti ==
Esistono diversi strumenti per gestire il sistema APT, e di seguito sono presentati i principali, partendo da quelli presenti in ogni installazione di Debian:


Lungi dall'essere completa, questa brevissima panoramica ha lo scopo di fornire un piccolo vademecum per mantenere in forma il nostro sistema operativo senza far ricorso a tool grafici che, nella maggior parte dei casi, non hanno la necessaria "precisione".
* [[apt-get]], [[apt-cache]] e [[apt-mark]] sono i tre principali comandi contenuti nel pacchetto '''apt''', e insieme costituiscono il modo più basilare e diffuso di gestione dei pacchetti tramite linea di comando. Sono presenti in ogni installazione di Debian.
 
* [[apt]], introdotto con Debian 8 ([[Jessie]]) nel pacchetto omonimo assieme ai tre precedenti comandi, per svolgere in modo più semplice e intuitivo le funzioni più basilari di APT con la supervisione dell'utente.
Come anticipato esistono diversi strumenti per gestire il sistema APT:
* [[aptitude]], è lo strumento più avanzato per la gestione dei pacchetti, disponibile sia con interfaccia grafica a caratteri sia con interfaccia a linea di comando. Storico programma presente in ogni installazione standard di Debian dalla sua introduzione fino a [[Jessie]], a partire da Debian 9 ([[Stretch]]) va installato esplicitamente.
* [[Apt-get]], [[Apt-cache]] e [[Apt-mark]] sono i tre principali comandi contenuti nel pacchetto '''apt''', che è essenziale per un sistema Debian, e insieme costituiscono il modo più basilare e noto tramite [[guida ai comandi da terminale|linea di comando]].
* [[synaptic]], disponibile in ambienti grafici come GNOME, KDE, ecc. è tra gli strumenti più semplice da usare, consigliato a tutti ed in particolar modo agli utenti alle prime armi.
* [[Aptitude]], è lo strumento più avanzato per la gestione dei pacchetti, disponibile sia con interfaccia grafica a caratteri sia con interfaccia a linea di comando. Non è essenziale, ma è presente in ogni installazione standard di Debian.
e molti altri.
* [[Synaptic]], disponibile in ambienti grafici come GNOME, KDE, ecc. è tra gli strumenti più semplice da usare, consigliato a tutti ed in particolar modo agli utenti alle prime armi.
* [[Wajig]].
* [[dpkg]] e altri strumenti a riga di comando brevemente descritti nelle sezioni successive.
 
=== Ricerca e Informazioni sui pacchetti ===


;<code>apt-cache search [stringa da cercare]</code>: usando questo comando possiamo cercare pacchetti in base al nome, alla descrizione, ecc.;
== Breve sommario delle operazioni base di APT ==
In questa sezione si mostra brevemente come installare, aggiornare e rimuovere i programmi con APT tramite i comandi contenuti nel pacchetto '''apt''', gli unici sempre disponibili in un sistema Debian.


;<code>apt-cache show [nome pacchetto]</code>: questo comando visualizza una breve descrizione del pacchetto da noi richiesto, fornendo versione, uso, dipendenze e altre utili informazioni;
Per maggiori informazioni si rimanda invece a: [[Guida ai comandi da terminale - Gestione di repository e pacchetti]].


;<code>apt-file search ''nome-file''</code>: cerca in quali pacchetti è presente il file <code>''nome-file''</code>. Si noti che <code>apt-file</code> non è presente di default, ma va installato dal pacchetto omonimo. Vedere anche: [[Apt-file: ricerca all'interno dei pacchetti]].
=== Aggiorna informazioni ===
Aggiorna la lista dei pacchetti disponibili, recuperando le informazioni più aggiornate dai [[repository]]:
<pre># apt update</pre>
Sono richiesti [[privilegi di amministrazione]].


=== dpkg ===
L'operazione va sempre effettuata:
* prima dell'aggiornamento dei pacchetti;
* dopo ogni modifica dei repository, per renderla effettiva;
* prima dell'installazione di nuovi pacchetti, se non si è già effettuata di recente.


Può essere utilizzato come alternativa a basso livello per installare pacchetti Debian senza avvalersi di APT o per forzare la rimozione di pacchetti, ma è una pratica sconsigliata e riservata soltanto a utenti esperti perché può compromettere la funzionalità del sistema. Per installare pacchetti .deb che si sono scaricati manualmente si consiglia '''gdebi''', trattato in seguito, che si occupa di soddisfare automaticamente le dipendenze del pacchetto prima di procedere alla sua installazione.
=== Aggiornamento del sistema ===
Aggiorna il sistema (da effettuarsi periodicamente), eseguendo con [[privilegi di amministrazione]]:
<pre>
# apt update
# apt upgrade
</pre>
Come già visto il primo comando recupera le informazioni più recenti dai [[repository]], mentre il secondo installa le versioni più aggiornate dei pacchetti già installati, installandone di nuovi eventualmente ma senza rimuovere quelli non più necessari.


È invece utilizzabile senza rischi per ottenere informazioni da un pacchetto .deb che si è scaricato, o per estrarlo per navigarne il contenuto:
Per forzare un aggiornamento completo, se il comando precedente non funziona, sempre dopo aver ottenuto i [[privilegi di amministrazione]]:
<pre>
# apt full-upgrade
</pre>
Per una Debian [[stable]] non è in genere necessario, se non per effettuare il passaggio di versione alla successiva quando una nuova stable è rilasciata, preferibilmente dopo aver concluso l'aggiornamento con il metodo precedente. Questa operazione è chiaramente meno conservativa, pertanto va effettuata prestando maggiore attenzione ai pacchetti che saranno rimossi.


;<code>dpkg --contents ''pacchetto.deb''</code>: mostra il contenuto del pacchetto .deb;
=== Installazione e disinstallazione ===
Per installare un pacchetto e le sue dipendenze tramite APT, se la lista dei pacchetti è aggiornata:
<pre># apt install nomepacchetto</pre>


;<code>dpkg --info ''pacchetto.deb''</code>: visualizza informazioni sul pacchetto .deb;
Per rimuovere un pacchetto precedentemente installato:
<pre># apt remove nomepacchetto</pre>
E per rimuovere le sue dipendenze, se non richieste da altri pacchetti (e se non si è impostato un <code>AutomaticRemove</code>; si veda la sezione successiva):
<pre># apt autoremove</pre>


;<code>dpkg --vextract ''pacchetto.deb'' ''directory''</code>: estrae il contenuto del pacchetto .deb nella cartella scelta.
Tutte queste operazioni richiedono [[privilegi di amministrazione]].


Può essere utile per visualizzare informazioni sulla relazione tra un pacchetto e i file installati nel sistema:
==Configurazione==
Il principale file di configurazione, per tutti i principali strumenti di '''APT''' (<code>apt</code>, <code>apt-get</code>, <code>aptitude</code>, ecc...), è <code>/etc/apt/apt.conf</code>, eventualmente da creare per le proprie impostazioni personalizzate. <br/>
Le impostazioni di default generate in fase di installazione e quelle create da altri programmi installati sono invece contenute nei file presenti nella directory <code>/etc/apt/apt.conf.d</code>, in modo da non sovrapporsi, e non è generalmente necessario modificarle.


;<code>dpkg --search ''/percorso/file''</code>: cerca il pacchetto che ha installato il file, in genere un programma di cui non si ricorda la provenienza;
Per modificare il file principale, o crearlo se non esiste, basta utilizzare un editor di testo (per esempio [[nano]]) con [[privilegi di amministrazione]]:
<pre>
# nano /etc/apt/apt.conf
</pre>
(dopo aver apportato le modifiche, premere <code>Ctrl-o</code> per salvare e <code>Ctrl-x</code> per uscire)


;<code>dpkg --listfiles ''nomepacchetto''</code>: restituisce la lista dei file installati nel sistema da un dato pacchetto.
=== Esempio di <code>/etc/apt/apt.conf</code> ===
<pre>
APT::Clean-Installed "true";
APT::Get::AutomaticRemove "true";
APT::Get::Upgrade-Allow-New "true";
</pre>
Il valore '''"true"''' / '''"false"''' (oppure '''1''' / '''0''') abilita/disabilita un'impostazione.


E per mostrare le architetture supportate:
Di seguito una breve descrizione:
:; <code>APT::Clean-Installed</code> : elimina i pacchetti .deb non più scaricabili ma ancora conservati nella cache, anche se relativi a pacchetti ancora installati nel sistema;
:; <code>APT::Get::AutomaticRemove</code> : effettua in automatico la rimozione delle dipendenze non più necessarie, in seguito alla rimozione di un pacchetto; è equivalente a eseguire manualmente un <code>apt autoremove</code>;
:; <code>APT::Get::Upgrade-Allow-New</code> : rende l'esecuzione di <code>apt-get upgrade</code> equivalente a <code>apt upgrade</code>, permettendo l'installazione di nuovi pacchetti se richiesti per l'aggiornamento.
Tutte queste impostazioni erano disabilitate di default.


;<code>dpkg --print-architecture</code>: visualizza l'architettura di default dei pacchetti Debian che saranno installati;
Altre possibili impostazioni utili:
:; <code>APT::Sandbox::Seccomp</code> : a partire da Debian 10 ([[Buster]]), se abilitata, esegue '''APT''' in una sandbox fornita dal kernel Linux per restringere le chiamate di sistema permesse; non supporta tutti i metodi di '''APT''', ma è già utilizzabile come ulteriore forma di sicurezza se si usano i normali repository (per esempio ''http'', ''https'');
:; <code>APT::Install-Recommends</code> : disabilitarla (di default è abilitata) non installa le dipendenze raccomandate, ma non necessarie, al funzionamento di un pacchetto; disabilitare tale impostazione è '''sconsigliato''' per utenti inesperti, in quanto potrebbe ridurre le funzionalità di altri programmi, e utile soltanto per utenti già esperti e che vogliano mantenere un sistema il più possibile minimale.


;<code>dpkg --print-foreign-architectures</code>: visualizza tutte le altre architetture che possono essere selezionate per l'installazione.
{{Cautionbox | Si '''sconsiglia''' l'uso di '''<code>Default-Release</code>''', salvo si sappia cosa si sta facendo e si conosca approfonditamente il funzionamento dei [[repository]] di Debian, perché equivalente a impostare un [[pinning]] e potrebbe disabilitare inavvertitamente l'uso di altri repository secondari usati in fase di aggiornamento dei pacchetti.}}
Tutte le configurazioni sono impostabili anche a tempo di esecuzione, per esempio con l'opzione <code>--option</code>/<code>-o</code> di '''<code>apt-get</code>''' o con altre forme ancora più brevi (si rimanda alla [[apt-get|guida]] o alla pagina di manuale).


Per maggiori informazioni e altri utilizzi si legga [[dpkg | Guida a dpkg]].
==I pacchetti==
 
=== gdebi ===
 
;<code>gdebi ''nome-pacchetto.deb''</code>: installa il pacchetto dopo aver installato le sue dipendenze. Si noti che installare software esterno ai repository può compromettere la funzionalità e la sicurezza del sistema, se non si è più che certi della compatibilità con Debian (non assicurata dalla sola esistenza di un pacchetto con estensione .deb) e della sua provenienza. È necessario installare questo programma, in quanto non fa parte del sistema base. Si legga per maggiori informazioni: [[gdebi|guida a gdebi]].
 
=== Gestione delle fonti (o repository) ===
 
;<code>[[Apt-cdrom | apt-cdrom]]</code>: aggiunge alle fonti per i pacchetti il contenuto di un CD Debian.
 
==I Pacchetti==
Leggere la guida: [[Pacchetti binari e sorgenti]]
Leggere la guida: [[Pacchetti binari e sorgenti]]


Riga 70: Riga 100:


=== Manpages ===
=== Manpages ===
 
<code>man apt</code><br/>
<code>man apt-get</code><br/>
<code>man apt.conf</code>
<code>man apt.conf</code>


===Sitografia===
===Sitografia===
* [http://www.debian.org/doc/manuals/apt-howto/index.it.html#contents Apt HowTo], panoramica completa sulle funzionalità e sull'utilizzo del sistema APT
* [http://www.debian.org/doc/manuals/apt-howto/index.it.html#contents Apt HowTo], panoramica completa sulle funzionalità e sull'utilizzo del sistema APT
* [https://www.debian.org/releases/buster/amd64/release-notes/ch-whats-new.it.html#apt-sandboxing APT hardening], dalle note di rilascio di Debian 10 (buster)


{{Autori
{{Autori
|Autore = [[Utente:Keltik|Keltik]]
|Autore = [[Utente:Keltik|Keltik]]
|Estesa_da =
: [[Utente:Ferdybassi|Ferdybassi]]
: [[Utente:HAL 9000|HAL 9000]]
|Verificata_da =
|Verificata_da =
: [[Utente:Wtf|Wtf]]
: [[Utente:Wtf|Wtf]]
|Numero_revisori = 1
: [[Utente:S3v|S3v]] 12:22, 20 apr 2015 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 21:16, 11 ago 2019 (CEST)
|Numero_revisori = 3
}}
}}


[[Categoria:Apt]]
[[Categoria:Apt]]
[[Categoria:Introduzione a Debian]]
[[Categoria:Introduzione a Debian]]

Versione attuale delle 19:16, 11 ago 2019

I repository
Arrow left.png

Introduzione ai repository

Repository ufficiali di Debian

Repository esterni

Extra



APT

Gestori di pacchetti

Comandi utili

Configurazione del sistema

Altro



Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

Il sistema APT (Advanced Packaging Tool) è, semplificando, un insieme di strumenti atti a permettere l'installazione e la successiva gestione di moltissimi programmi. Volendo essere più precisi l'apt-system creato dagli sviluppatori di Debian è un insieme di strumenti che si interfacciano con il programma dpkg allo scopo di snellire/agevolare la gestione di pacchetti e dipendenze nei sistemi Debian GNU/Linux. Notoriamente chi prende confidenza con Debian difficilmente sarà tentato di cambiare distribuzione, e questo anche grazie a questo splendido set di tool.
Esistono due strade per installare un programma sul proprio computer:

  • tramite APT;
  • scaricando e compilando manualmente i sorgenti dei vari programmi.

La prima soluzione è infinitamente più comoda e rapida, nonché l'unica sicura, in quanto ogni pacchetto scaricato dai repository da APT è autenticato, ha un'origine controllata e verrà poi aggiornato dal sistema in automatico assieme a tutti gli altri programmi, in base alla policy adottata dalla propria release riguardo gli aggiornamenti. La seconda invece viene intrapresa solo se si hanno particolari necessità o se un certo programma non è disponibile tramite APT, ma chiaramente tutte le responsabilità di aggiornamento e verifica dell'autenticità sono a carico dell'amministratore, motivo per cui è sconsigliata in tutti gli altri casi.

Strumenti

Esistono diversi strumenti per gestire il sistema APT, e di seguito sono presentati i principali, partendo da quelli presenti in ogni installazione di Debian:

  • apt-get, apt-cache e apt-mark sono i tre principali comandi contenuti nel pacchetto apt, e insieme costituiscono il modo più basilare e diffuso di gestione dei pacchetti tramite linea di comando. Sono presenti in ogni installazione di Debian.
  • apt, introdotto con Debian 8 (Jessie) nel pacchetto omonimo assieme ai tre precedenti comandi, per svolgere in modo più semplice e intuitivo le funzioni più basilari di APT con la supervisione dell'utente.
  • aptitude, è lo strumento più avanzato per la gestione dei pacchetti, disponibile sia con interfaccia grafica a caratteri sia con interfaccia a linea di comando. Storico programma presente in ogni installazione standard di Debian dalla sua introduzione fino a Jessie, a partire da Debian 9 (Stretch) va installato esplicitamente.
  • synaptic, disponibile in ambienti grafici come GNOME, KDE, ecc. è tra gli strumenti più semplice da usare, consigliato a tutti ed in particolar modo agli utenti alle prime armi.

e molti altri.

Breve sommario delle operazioni base di APT

In questa sezione si mostra brevemente come installare, aggiornare e rimuovere i programmi con APT tramite i comandi contenuti nel pacchetto apt, gli unici sempre disponibili in un sistema Debian.

Per maggiori informazioni si rimanda invece a: Guida ai comandi da terminale - Gestione di repository e pacchetti.

Aggiorna informazioni

Aggiorna la lista dei pacchetti disponibili, recuperando le informazioni più aggiornate dai repository:

# apt update

Sono richiesti privilegi di amministrazione.

L'operazione va sempre effettuata:

  • prima dell'aggiornamento dei pacchetti;
  • dopo ogni modifica dei repository, per renderla effettiva;
  • prima dell'installazione di nuovi pacchetti, se non si è già effettuata di recente.

Aggiornamento del sistema

Aggiorna il sistema (da effettuarsi periodicamente), eseguendo con privilegi di amministrazione:

# apt update
# apt upgrade

Come già visto il primo comando recupera le informazioni più recenti dai repository, mentre il secondo installa le versioni più aggiornate dei pacchetti già installati, installandone di nuovi eventualmente ma senza rimuovere quelli non più necessari.

Per forzare un aggiornamento completo, se il comando precedente non funziona, sempre dopo aver ottenuto i privilegi di amministrazione:

# apt full-upgrade

Per una Debian stable non è in genere necessario, se non per effettuare il passaggio di versione alla successiva quando una nuova stable è rilasciata, preferibilmente dopo aver concluso l'aggiornamento con il metodo precedente. Questa operazione è chiaramente meno conservativa, pertanto va effettuata prestando maggiore attenzione ai pacchetti che saranno rimossi.

Installazione e disinstallazione

Per installare un pacchetto e le sue dipendenze tramite APT, se la lista dei pacchetti è aggiornata:

# apt install nomepacchetto

Per rimuovere un pacchetto precedentemente installato:

# apt remove nomepacchetto

E per rimuovere le sue dipendenze, se non richieste da altri pacchetti (e se non si è impostato un AutomaticRemove; si veda la sezione successiva):

# apt autoremove

Tutte queste operazioni richiedono privilegi di amministrazione.

Configurazione

Il principale file di configurazione, per tutti i principali strumenti di APT (apt, apt-get, aptitude, ecc...), è /etc/apt/apt.conf, eventualmente da creare per le proprie impostazioni personalizzate.
Le impostazioni di default generate in fase di installazione e quelle create da altri programmi installati sono invece contenute nei file presenti nella directory /etc/apt/apt.conf.d, in modo da non sovrapporsi, e non è generalmente necessario modificarle.

Per modificare il file principale, o crearlo se non esiste, basta utilizzare un editor di testo (per esempio nano) con privilegi di amministrazione:

# nano /etc/apt/apt.conf

(dopo aver apportato le modifiche, premere Ctrl-o per salvare e Ctrl-x per uscire)

Esempio di /etc/apt/apt.conf

APT::Clean-Installed "true";
APT::Get::AutomaticRemove "true";
APT::Get::Upgrade-Allow-New "true";

Il valore "true" / "false" (oppure 1 / 0) abilita/disabilita un'impostazione.

Di seguito una breve descrizione:

APT::Clean-Installed
elimina i pacchetti .deb non più scaricabili ma ancora conservati nella cache, anche se relativi a pacchetti ancora installati nel sistema;
APT::Get::AutomaticRemove
effettua in automatico la rimozione delle dipendenze non più necessarie, in seguito alla rimozione di un pacchetto; è equivalente a eseguire manualmente un apt autoremove;
APT::Get::Upgrade-Allow-New
rende l'esecuzione di apt-get upgrade equivalente a apt upgrade, permettendo l'installazione di nuovi pacchetti se richiesti per l'aggiornamento.

Tutte queste impostazioni erano disabilitate di default.

Altre possibili impostazioni utili:

APT::Sandbox::Seccomp
a partire da Debian 10 (Buster), se abilitata, esegue APT in una sandbox fornita dal kernel Linux per restringere le chiamate di sistema permesse; non supporta tutti i metodi di APT, ma è già utilizzabile come ulteriore forma di sicurezza se si usano i normali repository (per esempio http, https);
APT::Install-Recommends
disabilitarla (di default è abilitata) non installa le dipendenze raccomandate, ma non necessarie, al funzionamento di un pacchetto; disabilitare tale impostazione è sconsigliato per utenti inesperti, in quanto potrebbe ridurre le funzionalità di altri programmi, e utile soltanto per utenti già esperti e che vogliano mantenere un sistema il più possibile minimale.
Attention.png Avvertimento
Si sconsiglia l'uso di Default-Release, salvo si sappia cosa si sta facendo e si conosca approfonditamente il funzionamento dei repository di Debian, perché equivalente a impostare un pinning e potrebbe disabilitare inavvertitamente l'uso di altri repository secondari usati in fase di aggiornamento dei pacchetti.

Tutte le configurazioni sono impostabili anche a tempo di esecuzione, per esempio con l'opzione --option/-o di apt-get o con altre forme ancora più brevi (si rimanda alla guida o alla pagina di manuale).

I pacchetti

Leggere la guida: Pacchetti binari e sorgenti

Metapacchetti

Vedere la guida: Gestione dei metapacchetti

Approfondimenti

Manpages

man apt
man apt.conf

Sitografia

  • Apt HowTo, panoramica completa sulle funzionalità e sull'utilizzo del sistema APT
  • APT hardening, dalle note di rilascio di Debian 10 (buster)




Guida scritta da: Keltik Swirl-auth80.png Debianized 80%
Estesa da:
Ferdybassi
HAL 9000
Verificata da:
Wtf
S3v 12:22, 20 apr 2015 (CEST)
HAL 9000 21:16, 11 ago 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized