Introduzione all'APT System: differenze tra le versioni

task di Revisione Wiki #63 - sandbox
(task di Revisione Wiki #63 - sandbox)
 
(76 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{Repository
L' apt-system creato dagli sviluppatori di debian è un insieme di script che si appoggiano al comando 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 tools.  
|precedente=Gestione di un repository con debarchiver
}}
{{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:
* 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.


Il sistema APT (Advanced Packaging Tool) permette di installare qualsiasi programma gestendo in maniera automatica le [[dipendenze]]. Ma è anche in grado di fornire una lista di pacchetti consigliati, e di pacchetti suggeriti. Può rimuovere un programma conservandone i file di configurazione, oppure eliminandolo totalmente. Può mostrare la descrizione di ogni pacchetto o ricercare quale pacchetto contiene una certa parola chiave nella descrizione. Può aggiornare in blocco l'intero sistema usando varie politiche di aggiornamento.  Può installare i sorgenti di un pacchetto e gestire le dipendenze necessarie alla compilazione. E molto altro ancora. Nonostante la sua complessità usare l'APT è molto semplice e intuitivo una volta imparati i comandi basilari.
== 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:


Per chi si avvicina per la prima volta a debian o per chi preferisce una via totalmente grafica per la gestione dei pacchetti si consiglia di usare [[Synaptic]] (che non è altro che una interfaccia grafica costruita sulle basi dell'[[APT]]). Il più potente strumento grafico per la gestione dei pacchetti (anche se l'interfaccia è a caratteri) rimane comunque [[Aptitude]].
* [[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.


==Elenco comandi principali==
== Breve sommario delle operazioni base di APT ==
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 tools grafici che, nella maggior parte dei casi, non hanno la necessaria "precisione".
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.
Vediamo brevemente i principali comandi (ovviamente dovete essere root):


=== Installazione, Rimozione, Aggiornamento ===
Per maggiori informazioni si rimanda invece a: [[Guida ai comandi da terminale - Gestione di repository e pacchetti]].


;dpkg -i ''nome-pachetto.deb'': installa un pacchetto debian già scaricato e presente nella directory corrente.
=== Aggiorna informazioni ===
Aggiorna la lista dei pacchetti disponibili, recuperando le informazioni più aggiornate dai [[repository]]:
<pre># apt update</pre>
Sono richiesti [[privilegi di amministrazione]].


;apt-get install [pacchetto1, pacchetto2, pacchettoN, ...]: il comando scarica e installa/aggiorna i pacchetti indicati, risolvendo le [[dipendenze]].
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.


;apt-get remove [pacchetto1, pacchetto2, pacchettoN, ...]: e' l' esatto opposto del comando precedente, rimuove i pacchetti indicati.
=== 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.


;aptitude purge [pacchetto1, pacchetto2, pacchettoN, ...]: rimuove i pacchetti indicati ed elimina anche i file di configurazione.
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.


;apt-get update: aggiorna la lista dei pacchetti e le relative informazioni (versione disponibile, descrizione, ecc... ).
=== Installazione e disinstallazione ===
Per installare un pacchetto e le sue dipendenze tramite APT, se la lista dei pacchetti è aggiornata:
<pre># apt install nomepacchetto</pre>


;apt-get upgrade: aggiorna i pacchetti installati sul nostro sistema (se sono disponibili versione piu' recenti). Non installa nuovi pacchetti.
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>


;apt-get dist-upgrade: è simile al precedente, ma aggiorna tutti i pacchetti anche a costo di installare nuovi pacchetti e rimuoverne di presenti, per soddisfare le dipendenze.
Tutte queste operazioni richiedono [[privilegi di amministrazione]].


;apt-get install [pacchetto] -s: simula (stampando l'output) il processo di installazione di un pacchetto. Utili per controllare se il paccheto che stiamo installando/aggiornando modifichera' altri pacchetti da noi installati.
==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.


''Vedere anche la [[Aptitude|Guida ad Aptitude]].''
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)


=== 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.


=== Ricerca e Informazioni sui pacchetti ===
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.


;apt-cache search [stringa da cercare]: usando questo comando possiamo cercare pacchetti in base al nome, alla descrizione, ecc ...
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.


;apt-cache show [nome pacchetto]: questo comando visualizza una breve descrizione del pacchetto da noi richiesto, fornendo versione, uso, dipendenze e altre utili informazioni.
{{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).


;apt-file search ''nome-file'': cerca in quali pacchetti è presente il file ''nome-file''. Vedere anche: [[Apt-file: ricerca all'interno dei pacchetti]].
==I pacchetti==
Leggere la guida: [[Pacchetti binari e sorgenti]]


=== Gestione delle fonti (o repository) ===
===Metapacchetti===
Vedere la guida: [[Gestione dei metapacchetti]]


;apt-setup: serve per aggiungere/aggiornare le fonti (o [[repository]]) da cui scaricare i pacchetti.
==Approfondimenti==


;[[Apt-cdrom | apt-cdrom]]: aggiunge alle fonti per i pacchetti il contenuto di un CD debian.
=== Manpages ===
<code>man apt</code><br/>
<code>man apt.conf</code>


=== Pacchetti sorgenti e compilazione ===
===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
* [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)


;apt-get source [pacchetto]: questo è il comando da utilizzare nel caso volessimo installare i sorgenti di un pacchetto. NOTA BENE: i sorgenti così scaricati, una volta compilati, daranno origine ad un pacchetto .deb che andra' a sua volta installato!I sorgenti vengono scaricati nella directory da cui si è lanciato il comando.
{{Autori
|Autore = [[Utente:Keltik|Keltik]]
|Estesa_da =
: [[Utente:Ferdybassi|Ferdybassi]]
: [[Utente:HAL 9000|HAL 9000]]
|Verificata_da =
: [[Utente:Wtf|Wtf]]
: [[Utente:S3v|S3v]] 12:22, 20 apr 2015 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 21:16, 11 ago 2019 (CEST)
|Numero_revisori = 3
}}


;apt-get build-dep [pacchetto]: questo è un pacchetto fondamentale, specie se si lavora molto con i sorgenti. Si preoccupa di soddisfare le dipendenze del pacchetto che andremo a compilare dopo aver eseguito apt-get source.
;apt-get source [pacchetto] --compile: e' il passo finale per la compilazione di un pacchetto deb. Lanciatelo dalla stessa directory in cui avete scaricato i sorgenti da compilare.
=== Altro ===
;apt-get autoclean: i pacchetti scaricati vengono memorizzati in /var/cache/apt/archive/ che col passare del tempo tende a gonfiarsi notevolmente. Con questo comando e' possibile dire all' apt-system di cancellare questi pacchetti. Notare che, se fatta a mano, questa operazione causera' un certo "disorientamento" da parte di apt convinto di avere una copia di eventuali pacchetti in locale.
;apt-get clean: elimina tutti i pacchetti dalla cache.
;apt-get moo: Have you mooed today ?
;E per concludere con le easter-eggs:
*aptitude mooo
*aptitude -v moo
*aptitude -vv moo
*aptitude -vvvvvvvvv moo
==Link==
Per una panoramica completa sulle funzionalità e sull'utilizzo del sistema APT vedere:
* [http://www.debian.org/doc/manuals/apt-howto/index.it.html#contents Apt HowTo]
----
Autore: [[Utente:Keltik|Keltik]]
[[Categoria:Apt]]
[[Categoria:Apt]]
[[Categoria:Introduzione a Debian]]
3 581

contributi