Introduzione all'APT System: differenze tra le versioni

task di Revisione Wiki #63 - sandbox
(task di Revisione Wiki #63 - sandbox)
 
(78 versioni intermedie di 7 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:


==Elenco comandi principali==
* [[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.
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".
* [[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.
Vediamo brevemente i principali comandi (ovviamente dovete essere root):
* [[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.


=== Installazione, Rimozione, Aggiornamento ===
== 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.


;dpkg -i ''nome-pachetto.deb'': installa un pacchetto debian già scaricato e presente nella directory corrente.
Per maggiori informazioni si rimanda invece a: [[Guida ai comandi da terminale - Gestione di repository e pacchetti]].


;apt-get install [pacchetto1, pacchetto2, pacchettoN, ...]: il comando scarica e installa/aggiorna i pacchetti indicati, risolvendo le [[dipendenze]].
=== 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 remove [pacchetto1, pacchetto2, pacchettoN, ...]: e' l' esatto opposto del comando precedente, rimuove i pacchetti indicati.
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.


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


;apt-get update: aggiorna la lista dei pacchetti e le relative informazioni (versione disponibile, descrizione, ecc... ).
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 upgrade: aggiorna i pacchetti installati sul nostro sistema (se sono disponibili versione piu' recenti). Non installa nuovi pacchetti.
=== 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 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.
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 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.
Tutte queste operazioni richiedono [[privilegi di amministrazione]].


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


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)


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


;apt-cache search [stringa da cercare]: usando questo comando possiamo cercare pacchetti in base al nome, alla descrizione, ecc ...
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 show [nome pacchetto]: questo comando visualizza una breve descrizione del pacchetto da noi richiesto, fornendo versione, uso, dipendenze e altre utili informazioni.
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-file search ''nome-file'': cerca in quali pacchetti è presente il file ''nome-file''. Vedere anche: [[Apt-file: ricerca all'interno dei pacchetti]].
{{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).


=== Gestione delle fonti (o repository) ===
==I pacchetti==
Leggere la guida: [[Pacchetti binari e sorgenti]]


;apt-setup: serve per aggiungere/aggiornare le fonti (o [[repository]]) da cui scaricare i pacchetti.
===Metapacchetti===
Vedere la guida: [[Gestione dei metapacchetti]]


;[[Apt-cdrom | apt-cdrom]]: aggiunge alle fonti per i pacchetti il contenuto di un CD debian.
==Approfondimenti==


=== Pacchetti sorgenti e compilazione ===
=== Manpages ===
<code>man apt</code><br/>
<code>man apt.conf</code>


;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.
===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 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.
{{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 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 ?
==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