Aptitude: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
→‎File di configurazione: sconsigliato ancor più l'uso di Default-Release
m (→‎File di configurazione: sconsigliato ancor più l'uso di Default-Release)
 
(27 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}{{Template:APT}}
{{Template:APT
 
|precedente=apt-get
|successivo=apt-cache
}}
{{Versioni compatibili|Jessie|Stretch|Buster}}
= Introduzione =
= Introduzione =
Questa guida è dedicata all'uso di Aptitude.
Questa guida è dedicata all'uso di Aptitude.


Il completissimo '''Manuale Utente di Aptitude''' in formato html si può trovare in <code>/usr/share/doc/aptitude/html/en/index.html</code>, installando il pacchetto <code>aptitude-doc-en</code>. Oppure on-line al seguente indirizzo: [http://people.debian.org/~dburrows/aptitude-doc/en/ aptitude user's manual]. Purtroppo il manuale è solo in inglese.
Il completissimo '''Manuale Utente di Aptitude''' in formato html si può trovare in <code>/usr/share/doc/aptitude/html/en/index.html</code>, installando il [[pacchetto]] '''aptitude-doc-it''' (oppure ''aptitude-doc-en'' per la versione in lingua inglese).


= Cos'è Aptitude =
= Cos'è Aptitude =
Aptitude è un frontend per la gestione avanzata dei pacchetti di una distribuzione Debian, ma risulta valido per tutte le distribuzioni che supportano APT (http://www.debian.org/doc/manuals/apt-howto/ch-distros.it.html).
Aptitude è un frontend per la gestione avanzata dei [[pacchetto|pacchetti]] di una distribuzione Debian, ma risulta valido per tutte le distribuzioni che supportano [[APT]] ([http://www.debian.org/doc/manuals/apt-howto/ch-distros.it.html link]).


Aptitude è ormai lo strumento preferenziale per l'amministrazione dei pacchetti su Debian, in quanto non solo raggruppa in un unico semplice programma le funzionalità di molti tool (apt-get, apt-cache, etc.) ma anche perché permette di gestire in modo molto più facile (ed efficace) situazioni complesse (dipendenze, dipendenze inverse, rimozione pacchetti non utilizzati, etc).
È lo strumento preferito da molti per l'amministrazione dei pacchetti su Debian in quanto non solo raggruppa in un unico semplice programma le funzionalità di molti tool ([[apt-get]], [[apt-cache]], [[apt-mark]], etc.) ma anche perché permette di gestire in modo molto più facile (ed efficace) situazioni complesse ([[dipendenze]], dipendenze inverse, rimozione pacchetti non utilizzati, etc).


Aptitude è un frontend a dpkg esattamente come apt-get, che sembra essere destinato a sostituire integralmente lo stesso [[Introduzione_all%27_Apt_System | apt-get (e affini)]], tanto che nelle release notes di Sarge si legge:
Aptitude è un frontend a [[dpkg]] esattamente come <code>apt-get</code> e può essere utilizzato in due modi: da linea di comando, cioè come <code>apt-get</code> (con la stessa sintassi per i comandi principali), oppure tramite l'interfaccia visuale basata sulle librerie ncurses.


{{Box|Citazione:|Il metodo di aggiornamento raccomandato fra le release Debian GNU/Linux prevede l'utilizzo dello strumento di gestione dei pacchetti Aptitude. Tale strumento rende le decisioni riguardanti le installazioni dei pacchetti più sicure che l'esecuzione diretta di apt-get.}}
L'interfaccia visuale verrà trattata più diffusamente, perché si ritiene che sia uno strumento fondamentale per la gestione dei pacchetti e soprattutto per la diagnostica e la risoluzione degli eventuali problemi riscontrati.


ed anche:
{{Box|Prima di iniziare|Prima di iniziare a mettere le mani sulla tastiera, notiamo che Aptitude, a differenza della maggior parte delle opzioni di [[apt-get]], si può lanciare anche con i diritti di utente comune.


{{Box|Citazione:|Test di aggiornamento hanno mostrato che la versione di Sarge di Aptitude è migliore sia di apt-get sia della versione di Woody di Aptitude nella risoluzione di dipendenze complesse durante un aggiornamento.}}
Poiché per l'effettiva installazione o rimozione dei pacchetti è necessario possedere i [[privilegi di amministrazione]], è possibile e caldamente consigliato usare questa possibilità per effettuare qualunque prova.}}


Si può utilizzare Aptitude in due modi: da linea di comando, cioè come apt-get (la sintassi e le opzioni sono identiche, o quasi), oppure tramite l'interfaccia visuale basata sulle librerie ncurses.
= Installazione =
A partire da Debian 9 ([[Stretch]]) l'omonimo [[pacchetto]] è diventato opzionale, per cui può essere necessario installare '''<code>aptitude</code>''' prima di poterlo utilizzare. Per esempio con [[apt]] e [[privilegi di amministrazione]] basta:
<pre>
# apt install aptitude
</pre>


L'interfaccia visuale verrà trattata più diffusamente, perché si ritiene che sia uno strumento fondamentale per la gestione dei pacchetti e soprattutto per la diagnostica e la risoluzione degli eventuali problemi riscontrati.
In particolare ne è ancora raccomandabile l'installazione per:
 
* gestire Debian con molti repository diversi per poter gestire più facilmente possibili conflitti;
{{Box|Prima di iniziare|Prima di iniziare a mettere le mani sulla tastiera, notiamo che Aptitude, a differenza della maggior parte delle opzioni di apt-get, si può lanciare anche con i diritti di utente comune.
* per avvalersi dell'ineguagliata funzione di ricerca avanzata;
 
* oppure ancora per disporre di un'interfaccia visuale ad APT anche senza server grafico attivo.
Poiché per l'effettiva installazione o rimozione dei pacchetti è necessario possedere i diritti di root, è possibile e caldamente consigliato usare questa possibilità per effettuare qualunque prova, visto che non si sarà in grado di modificare neanche una virgola del sistema prima di aver inserito la password di root.}}


= Uso da linea di comando =
= Uso da linea di comando =
Riga 36: Riga 41:


=== update ===
=== update ===
<pre># aptitude update</pre>
<pre># aptitude update</pre>


Riga 42: Riga 46:


=== safe-upgrade ===
=== safe-upgrade ===
<pre># aptitude safe-upgrade</pre>
<pre># aptitude safe-upgrade</pre>


Aggiorna tutti i pacchetti aggiornabili senza che nascano conflitti. Per conflitto si intende una situazione in cui l'aggiornamento di un pacchetto richide la rimozione di uno o più differenti pacchetti, ergo l'uso di safe-upgrade causa l'aggiornamento di tutti quei pacchetti che possono essere aggiornati senza che sia necessario rimuovere contestualmente altri pacchetti. Da manuale: ''Quando si verificano problemi di dipendenze dei pacchetti, usa un algoritmo «sicuro» per risolverli. Questo risolutore cerca di preservare il maggior numero possibile delle scelte dell'utente; non rimuove mai un pacchetto e non installa mai una versione di un pacchetto che non sia la versione candidata predefinita''.
Aggiorna tutti i pacchetti aggiornabili senza che nascano conflitti. Per conflitto si intende una situazione in cui l'aggiornamento di un pacchetto richide la rimozione di uno o più differenti pacchetti, ergo l'uso di safe-upgrade causa l'aggiornamento di tutti quei pacchetti che possono essere aggiornati senza che sia necessario rimuovere contestualmente altri pacchetti. Da manuale: ''Quando si verificano problemi di dipendenze dei pacchetti, usa un algoritmo «sicuro» per risolverli. Questo risolutore cerca di preservare il maggior numero possibile delle scelte dell'utente; non rimuove mai un pacchetto e non installa mai una versione di un pacchetto che non sia la versione candidata predefinita''.
L'utilizzo di questo comando implica necessariamente l'opzione <code>--safe-resolver</code> (l'opzione <code>--full-resolver</code> viene sempre automaticamente rigettata).
L'utilizzo di questo comando implica necessariamente l'opzione <code>--safe-resolver</code> (l'opzione <code>--full-resolver</code> viene sempre automaticamente rigettata).
Una sintassi del tutto equivalente è <code># aptitude upgrade</code>.
Una sintassi del tutto equivalente, ma mantenuta solo per ragioni storiche, è:
<pre># aptitude upgrade</pre>
 
Si noti che l'uso non è intercambiabile con <code>apt-get upgrade</code>, poiché <code>apt-get</code> in questo caso non effettuerà nemmeno l'installazione di nuovi pacchetti, mentre <code>aptitude safe-upgrade</code> permette l'installazione di nuovi pacchetti, se necessari per l'aggiornamento di altri, e impedisce soltanto la rimozione di pacchetti precedentemente installati. È invece equivalente, se non per la mancanza di un risolutore di conflitti, al comando <code>apt upgrade</code> .
 
==== Esempio ====
<pre># aptitude safe-upgrade $(aptitude search '?origin(Unofficial Multimedia Packages) ?upgradable' -F '%p')</pre>
 
Questo comando mostra un esempio d'uso avanzato che permette di aggiornare i soli pacchetti provenienti dal repository ''deb-multimedia''.


=== full-upgrade ===
=== full-upgrade ===
<pre># aptitude full-upgrade</pre>


<pre>aptitude full-upgrade</pre>
Anche questo comando aggiorna tutti i pacchetti, ma è più aggressivo nella risoluzione delle dipendenze: nuovi pacchetti saranno installati e altri rimossi, fino a quando tutte le dipendenze non saranno soddisfatte. Questo comando potrebbe fare cose non desiderate (come, appunto, installare nuovi pacchetti o rimuoverne altri) quindi deve essere usato con cautela (specialmente nei casi in cui segnala esplicitamente problemi nella risoluzione delle dipendenze). Si noti che questo comando implica l'opzione <code>--full-resolver</code>, a meno che l'utente non specifichi l'opzione <code>--safe-resolver</code>, nel qual caso ''full-upgrade'' funziona esattamente come ''safe-upgrade''. Una sintassi del tutto equivalente, mantenuta per ragioni storiche, è:
 
<pre># aptitude dist-upgrade</pre>
Anche questo comando aggiorna tutti i pacchetti, ma è più aggressivo nella risoluzione delle dipendenze: nuovi pacchetti saranno installati e altri rimossi, fino a quando tutte le dipendenze non saranno soddisfatte. Questo comando potrebbe fare cose non desiderate (come, appunto, installare nuovi pacchetti o rimuoverne altri) quindi deve essere usato con cautela (specialmente nei casi in cui segnala esplicitamente problemi nella risoluzione delle dipendenze). Si noti che questo comando implica l'opzione <code>--full-resolver</code>, a meno che l'utente non specifichi l'opzione <code>--safe-resolver</code>, nel qual caso ''full-upgrade'' funziona esattamente come ''safe-upgrade''. Una sintassi del tutto equivalente è <code># aptitude dist-upgrade</code>.


=== install, remove, purge, reinstall ===
=== install, remove, purge, reinstall ===
<pre>
<pre>
# aptitude install pacchetto/i
# aptitude install pacchetto/i
Riga 67: Riga 77:


=== search ===
=== search ===
<pre>$ aptitude search espressione/i</pre>
<pre>$ aptitude search espressione/i</pre>


Elenca i pacchetti che contengono nel nome una delle espressioni fornite. Le espressioni possono essere semplici stringhe (ad esempio il nome di un pacchetto) o anche espressioni più complesse ("Search Patterns").
Elenca i pacchetti che contengono nel nome una delle espressioni fornite. Le espressioni possono essere semplici stringhe (ad esempio il nome di un pacchetto) o anche espressioni più complesse ("Search Patterns").
==== Esempi ====
<pre>$ aptitude search iceweasel</pre>
Mostrerà tutti i pacchetti che contengono ''iceweasel'' nel loro nome.
<pre>$ aptitude search '~S ~i (!~stable ~Atesting !~Aunstable ~O"Unofficial Multimedia Packages")'</pre>
Mostrerà tutti i pacchetti installati appartenenti alla sola [[suite]] (detta anche ''archive'') testing e solo se provenienti dal repository di ''deb-multimedia'' (identificato attraverso l'attributo "origine"). Se nel proprio <code>sources.list</code> non sono specificati repository relativi ad altre [[suite]] i parametri <code>!~stable</code> e <code>!~Aunstable</code> possono essere omessi. In sintesi è necessario esplicitare sia i repositori disponibili che si vuole escludere che quelli da includere nel risultato della ricerca.
<pre>$ aptitude search '?installed?origin(Unofficial Multimedia Packages)?not(?origin(Debian))'</pre>
Sintassi simile alla precedente, ma in questo caso si è usato un comando che mostra tutti i pacchetti, a prescindere dalla [[suite]], appartenenti a ''deb-multimedia'', ma non appartenenti al repository principale. Per filtrare in base alla [[suite]] è sufficiente usare ''archive'', che ne è un sinonimo, e specificarne il nome, invece di ''origin''. Si veda la pagina "[[I repository ed il loro utilizzo]]" per capire dove dove trovare i parametri relativi al nome della release, all'origine e altro.
<pre>$ aptitude search '?origin(Unofficial Multimedia Packages) ?upgradable' -F '%p %v %V'</pre>
Mostra tutti i pacchetti aggiornabili del solo repository deb-multimedia (posto naturalmente di averlo specificato nel proprio <code>sources.list</code>), visualizzando anche versione attualmente installata e candidata.


=== show ===
=== show ===
<pre>$ aptitude show pacchetto/i</pre>
<pre>$ aptitude show pacchetto/i</pre>


Riga 79: Riga 104:


=== versions ===
=== versions ===
<pre>$ aptitude versions espressione</pre>
<pre>$ aptitude versions espressione</pre>


Elenca, per ogni pacchetto cui corrisponde l'espressione specificata, lo stato (installato o meno), il numero di verisone, la distribuzione di appartenenza e il valore di pin (si veda la guida dedicata al pinning).
Elenca, per ogni pacchetto cui corrisponde l'espressione specificata, lo stato (installato o meno), il numero di verisone, la [[release]] di appartenenza e il valore di pin (si veda la guida dedicata al [[Repository %26 pinning | pinning]]).


{{Suggerimento|Se si teme che un comando in grado di installare o rimuovere pacchetti effettui delle azioni indesiderate eseguire il suddetto comando una prima volta in modalità simulazione (si veda la sezione dedicata alle opzioni).}}
{{Suggerimento|Se si teme che un comando in grado di installare o rimuovere pacchetti effettui delle azioni indesiderate eseguire il suddetto comando una prima volta in modalità simulazione (si veda la sezione dedicata alle opzioni).}}


=== Opzioni ===
=== Opzioni ===
==== -s, --simulate ====
==== -s, --simulate ====
Nessuna azione; effettua una simulazione degli eventi che si verificherebbero, ma non cambia realmente il sistema. Esempio di comando: <code># aptitude install pacchetto -s</code>
Nessuna azione; effettua una simulazione degli eventi che si verificherebbero, ma non cambia realmente il sistema. Esempio di comando: <code># aptitude install pacchetto -s</code>


==== -t, --target-release ====
==== -t, --target-release ====
 
Permette in genere di aggiornare/installare i pacchetti specificati e le relative dipendenze in base alla [[release]] bersaglio. Per esempio:
Permette in genere di aggiornare/installare i pacchetti specificati e le relative dipendenze in base alla distribuzione bersaglio, es.: <code># aptitude install pacchetto -t unstable</code>. Si veda la guida dedicata al pinning per maggiori, ma soprattutto fondamentali, informazioni. Non usare questa opzione se non si a chiaro in cosa consiste.
<pre># aptitude -t stretch-backports install pacchetto</pre>


==== -V, --verbose-versions ====
==== -V, --verbose-versions ====
Mostra il numero di versione completo dei pacchetti aggiornati e installati.
Mostra il numero di versione completo dei pacchetti aggiornati e installati.


=== Easter eggs ===
=== Easter eggs ===
<pre>
<pre>
$ aptitude mooo
$ aptitude mooo
Riga 110: Riga 130:


== File di configurazione ==
== File di configurazione ==
È possibile definire le opzioni di ''aptitude'' non solo da riga di comando, ma anche specificando i corrispondenti parametri in appositi file di configurazione, ad esempio in un unico file <code>/etc/apt/apt.conf</code>, in più file dal nome arbitrario in <code>/etc/apt/apt.conf.d/</code> o ancora in <code>~/.aptitude/config</code>.
È possibile definire le opzioni di ''aptitude'' non solo da riga di comando, ma anche specificando i corrispondenti parametri in appositi file di configurazione, ad esempio in un unico file <code>/etc/apt/apt.conf</code>, in più file dal nome arbitrario in <code>/etc/apt/apt.conf.d/</code> o ancora in <code>~/.aptitude/config</code>.
A prescindere dal, o dai, file di configurazione è possibile usare in tutti i casi due tipi di sintassi, ad esempio:
A prescindere dal, o dai, file di configurazione è possibile usare in tutti i casi due tipi di sintassi, ad esempio:
Riga 123: Riga 142:
Autoclean-After-Update "true";
Autoclean-After-Update "true";
Auto-Fix-Broken "true";
Auto-Fix-Broken "true";
        CmdLine::Ignore-Trust-Violations "true";
Purge-Unused "true";
Purge-Unused "true";
}
}
Riga 133: Riga 151:
Aptitude::Autoclean-After-Update "true";
Aptitude::Autoclean-After-Update "true";
Aptitude::Auto-Fix-Broken "true";
Aptitude::Auto-Fix-Broken "true";
Aptitude::CmdLine::Ignore-Trust-Violations "true";
Aptitude::Purge-Unused "true";
Aptitude::Purge-Unused "true";
</pre>
</pre>
Questa configurazione definisce quanto segue:
Questa configurazione definisce quanto segue:
* La target relase è ''testing''; in pratica qualora nel file <code>/etc/apt/sources.list</code> siano disponibili più repository relativi a differenti distribuzioni apt saprà di dover dare la precedenza alla versione presente in testing. Se si usa solo il repository principale della propria distribuzione (non confondere "repository principale" con "sezione principale", ovvero main, di un repository, che è tutt'altro discorso), ed eventualmente ove presente anche quello di sicurezza, questo parametro può essere ignorato e/o omesso (si veda la pagina dedicata al [http://guide.debianizzati.org/index.php/Repository_%26_pinning pinning] per maggiori informazioni su come APT decide la priorità dei pacchetti da installare).
* La target release è ''testing''; in pratica qualora nel file <code>/etc/apt/sources.list</code> siano disponibili più repository relativi a differenti [[release]] (pratica che è sconsigliata, se non si è utenti esperti e si sa cosa si sta facendo, qui trattata a solo titolo di esempio) apt saprà di dover dare la precedenza alla versione presente in testing. Se si usa solo il repository principale della propria [[release]] (non confondere "repository principale" con "sezione principale", ovvero main, di un repository, che è tutt'altro discorso), ed eventualmente ove presente anche quello di sicurezza, questo parametro può essere ignorato e/o omesso, ed è in genere preferibile non impostarlo, per non alterare il funzionamento di default degli altri repository (si veda la pagina dedicata al [[Repository %26 pinning|pinning]] per maggiori informazioni su come APT decide la priorità dei pacchetti da installare). Attenzione che a partire da Debian 11 ([[Bullseye]]), per via del cambiamento a [[codename]]/[[suite]] del repository di sicurezza, ciò disabiliterà anche il repository di sicurezza, per cui è un'opzione ancora più '''sconsigliata'''!
* La massima dimensione in byte per memorizzare le informazioni dei pacchetti disponibili nei vari sorgenti; maggiore il numero di repository specificato in <code>source.list</code> maggiore sarà lo spazio occupato (questo parametro NON definisce lo spazio riservato alla memorizzazione dei pacchetti installati e/o scaricati).
* La massima dimensione in byte per memorizzare le informazioni dei pacchetti disponibili nei vari sorgenti; maggiore il numero di repository specificato in <code>source.list</code> maggiore sarà lo spazio occupato (questo parametro NON definisce lo spazio riservato alla memorizzazione dei pacchetti installati e/o scaricati). Ora di default è impostato a 0, corrispondente a un valore illimitato, per cui non è più necessario configurare questo parametro come in passato.
* Da specificare SOLO e soltanto se si è installato e configurato correttamente un proxy per la gestione dei pacchetti, come <code>apt-cacher</code> per esempio.
* Da specificare SOLO e soltanto se si è installato e configurato correttamente un proxy per la gestione dei pacchetti, come <code>apt-cacher</code> per esempio.
* Le opzioni figlie di ''Aptitude'' influenzano evidentemente solo il comportamento di ''Aptitude''
* Le opzioni figlie di ''Aptitude'' influenzano evidentemente solo il comportamento di ''Aptitude''
** Ogni volta che viene aggiornato l'elenco dei pacchetti disponibili, ad esempio tramite <code>aptitude update</code> vengono anche rimossi tutti i pacchetti che sono stati installati automaticamente per soddisfare delle dipendenze per altri pacchetti e che non sono più necessari.
** Ogni volta che viene aggiornato l'elenco dei pacchetti disponibili, ad esempio tramite <code>aptitude update</code> vengono anche rimossi tutti i pacchetti che sono stati installati automaticamente per soddisfare delle dipendenze per altri pacchetti e che non sono più necessari.
** Corregge se possibile le dipendenze non soddisfatte.
** Corregge se possibile le dipendenze non soddisfatte, come se fosse usata l'opzione <code>-f</code>.
** Permette l'installazione di pacchetti da repository di cui non si è installata la chiave di autenticazione.
** Quando un pacchetto viene rimosso questo viene completamente eliminato, come se si fosse usato il comando <code>aptitude purge</code>.
** Quando un pacchetto viene rimosso questo viene completamente eliminato, come se si fosse usato il comando <code>aptitude purge</code>.


Riga 149: Riga 165:


= Interfaccia grafica =
= Interfaccia grafica =
== Descrizione dell'interfaccia grafica ==
== Descrizione dell'interfaccia grafica ==
La prima schermata che Aptitude ci presenta, dopo che l'abbiamo lanciato da linea di comando, e dopo il caricamento delle informazioni attuali sui pacchetti ("caricamento della cache"), è divisa orizzontalmente in due parti.
La prima schermata che Aptitude ci presenta, dopo che l'abbiamo lanciato da linea di comando, e dopo il caricamento delle informazioni attuali sui pacchetti ("caricamento della cache"), è divisa orizzontalmente in due parti.
Riga 160: Riga 175:


Ogni riga che mostra il nome di un pacchetto riporta anche molte informazioni.  
Ogni riga che mostra il nome di un pacchetto riporta anche molte informazioni.  
Per esempio, riporta lo stato di alcuni pacchetti nel mio sistema (nota: il mio sistema è una Sarge, ma ho installato diversi pacchetti da testing e anche alcuni da unstable. Per informazioni sul pinning vedere [[APT_uso_avanzato:_mixare_releases_diverse | APT uso avanzato: mixare releases diverse ]]):
Per esempio, riporta lo stato di alcuni pacchetti nel mio sistema (nota: il mio sistema ha [[codename]] Sarge, ma ho installato diversi pacchetti dalla [[suite]] testing e anche alcuni da unstable. Per informazioni sul [[pinning]] si legga la guida [[Repository %26 pinning]]):
<pre>
<pre>
stato    nome                vers. attuale    vers. aggiornata
stato    nome                vers. attuale    vers. aggiornata
Riga 212: Riga 227:
Dopo aver fatto l'update potremmo trovare una, due, o tre voci nuove nell'albero dei pacchetti: "Aggiornamenti di sicurezza", "Pacchetti aggiornabili", e "Pacchetti nuovi". Per fare scomparire le prime due è necessario aggiornare tutti i pacchetti contenuti nei rispettivi rami, mentre per far sparire la terza è sufficiente premere <code>f</code> (forget).
Dopo aver fatto l'update potremmo trovare una, due, o tre voci nuove nell'albero dei pacchetti: "Aggiornamenti di sicurezza", "Pacchetti aggiornabili", e "Pacchetti nuovi". Per fare scomparire le prime due è necessario aggiornare tutti i pacchetti contenuti nei rispettivi rami, mentre per far sparire la terza è sufficiente premere <code>f</code> (forget).


Una buona regola per l'amministratore è quella di far sì che alla fine dell'aggiornamento queste tre voci non siano presenti. Se ci sono dei pacchetti che risultano aggiornabili, ma che non volete aggiornare, probabilmente dovreste bloccarli alla versione desiderata con <code>=</code>, oppure dovreste leggere la guida già citata sul pinning.
Una buona regola per l'amministratore è quella di far sì che alla fine dell'aggiornamento queste tre voci non siano presenti. Se ci sono dei pacchetti che risultano aggiornabili, ma che non volete aggiornare, probabilmente dovreste bloccarli alla versione desiderata con <code>=</code>, oppure dovreste leggere la guida già citata sul [[pinning]].


Ora torniamo ai pacchetti mostrati prima e supponiamo di voler aggiornare amule: lo selezioniamo e premiamo <code>+</code>. Questo marcherà in verde, cioè per l'installazione, sia amule che amule-common.  
Ora torniamo ai pacchetti mostrati prima e supponiamo di voler aggiornare amule: lo selezioniamo e premiamo <code>+</code>. Questo marcherà in verde, cioè per l'installazione, sia amule che amule-common.  
Riga 231: Riga 246:
premiamo invio su udev, e ci appare la schermata con tutte le informazioni su udev stesso, comprese le dipendenze: selezioniamo module-init-tools e premiamo invio. Ora ci appaiono tutte le versioni disponibili di module-init-tools, tra cui vediamo che è presente la 3.2pre9-1: non ci resta che selezionarla e marcarla per l'installazione :-D.
premiamo invio su udev, e ci appare la schermata con tutte le informazioni su udev stesso, comprese le dipendenze: selezioniamo module-init-tools e premiamo invio. Ora ci appaiono tutte le versioni disponibili di module-init-tools, tra cui vediamo che è presente la 3.2pre9-1: non ci resta che selezionarla e marcarla per l'installazione :-D.


Quello che è successo è semplicemente che nel mio sistema udev è in testing, e fino alla versione 0.070 funzionava bene con module-init-tools-3.2pre1-2, che invece è in stable. Aggiornando tutto abbiamo marcato per l'installazione il nuovo udev, versione 0.074, che però dipende da module-init-tools >= 3.2pre9-1. Poiché questo pacchetto è in testing, APT non ha potuto risolvere la dipendenza automaticamente: se un pacchetto è in una distribuzione (e APT è configurato nel modo giusto) non verrà mai passato ad un'altra, a meno che non siamo noi a farlo manualmente.
Quello che è successo è semplicemente che nel mio sistema udev è in testing, e fino alla versione 0.070 funzionava bene con module-init-tools-3.2pre1-2, che invece è in stable. Aggiornando tutto abbiamo marcato per l'installazione il nuovo udev, versione 0.074, che però dipende da module-init-tools >= 3.2pre9-1. Poiché questo pacchetto è in testing, APT non ha potuto risolvere la dipendenza automaticamente: se un pacchetto è in una [[release]] (e APT è configurato nel modo giusto) non verrà mai passato ad un'altra, a meno che non siamo noi a farlo manualmente.


Si prega di notare che questo comportamento non è un bug, ma una cosa voluta: APT ha ricevuto un comando ambiguo e lo segnala generando un errore, proprio come noi ci aspettiamo da lui ;-).
Si prega di notare che questo comportamento non è un bug, ma una cosa voluta: APT ha ricevuto un comando ambiguo e lo segnala generando un errore, proprio come noi ci aspettiamo da lui ;-).


In effetti, i reali colpevoli della generazione dell'errore siamo noi. Infatti, per permettere ad APT di gestire correttamente delle dipendenze in testing, dobbiamo semplicemente usare "testing" come distribuzione predefinita.  
In effetti, i reali colpevoli della generazione dell'errore siamo noi. Infatti, per permettere ad APT di gestire correttamente delle dipendenze in testing, dobbiamo semplicemente usare "testing" come [[suite]] predefinita.  


Ricordate che abbiamo lanciato Aptitude semplicemente con il comando <code>aptitude</code>? E ricorderete anche che il mio sistema è una Sarge (stable). Questo equivale a lanciare Aptitude con il comando <code>aptitude -t stable</code>, da cui il nostro problema.  
Ricordate che abbiamo lanciato Aptitude semplicemente con il comando <code>aptitude</code>? E ricorderete anche che il mio sistema è una Sarge (stable). Questo equivale a lanciare Aptitude con il comando <code>aptitude -t stable</code>, da cui il nostro problema.  


Se avessimo usato <code>aptitude -t testing</code> Aptitude avrebbe risolto correttamente la dipendenza, ma attenzione: in questo modo diciamo ad Aptitude che testing è la nostra release predefinita (che non è vero) e lui ci mostrerà come aggiornabili tutti i pacchetti che lo sono in testing, cioè anche tutti quelli in stable (come peraltro ci aspettiamo che faccia ;-)).
Se avessimo usato <code>aptitude -t testing</code> Aptitude avrebbe risolto correttamente la dipendenza, ma attenzione: in questo modo diciamo ad Aptitude che testing è la nostra [[release]] predefinita (che non è vero) e lui ci mostrerà come aggiornabili tutti i pacchetti che lo sono in testing, cioè anche tutti quelli in stable (come peraltro ci aspettiamo che faccia ;-)).


Il fatto è che Aptitude, per quanto avanzato, ancora non legge il pensiero dell'amministratore, e fa solo il suo mestiere: prende tutte le decisioni ovvie autonomamente, e genera un errore quando non sa cosa decidere.
Il fatto è che Aptitude, per quanto avanzato, ancora non legge il pensiero dell'amministratore, e fa solo il suo mestiere: prende tutte le decisioni ovvie autonomamente, e genera un errore quando non sa cosa decidere.
Riga 299: Riga 314:


<pre>$ aptitude search ~deditor~ssound</pre>
<pre>$ aptitude search ~deditor~ssound</pre>
Cerca i pacchetti installati e contenuti nella [[sezione|sezioni]] [[contrib]]:
<pre>$ aptitude search '~i ~scontrib'</pre>
o in [[non-free]] :
<pre>$ aptitude search '~i ~snon-free'</pre>
Così verranno mostrati i pacchetti installati e appartenenti a [[contrib]] o a [[non-free]] :
<pre>$ aptitude search '~i ~scontrib' '~i ~snon-free'</pre>
oppure:
<pre>$ aptitude search '~i (~scontrib|~snon-free)'</pre>
Cerca i pacchetti installati che non fanno parte di [[stable]] o che non fanno parte di [[testing]]:
<pre>
$ aptitude search '~i !~Astable'
$ aptitude search '~i !~Atesting'
</pre>


= File di configurazione =
= File di configurazione =
 
È possibile definire le opzioni di aptitude, sia che lo si usi da riga di comando che tramite interfaccia visuale, in diversi modi, per esempio tramite un file [[Introduzione all'APT System| apt.conf]].
È possibile definire le opzioni di aptitude, sia che lo si usi da riga di comando che tramite interfaccia visuale, in diversi modi, per esempio tramite un file [http://guide.debianizzati.org/index.php/Introduzione_all%27_Apt_System#apt.conf_e_apt.conf.d.2F apt.conf].


= Approfondimenti =
= Approfondimenti =
== Manpages ==
== Manpages ==
 
<code>$ man aptitude</code> (si noti che la maggior parte delle opzioni influiscono solo sull'utilizzo a riga di comando, non sull'interfaccia visuale).
<code>man aptitude</code> (si noti che la maggior parte delle opzioni influiscono solo sull'utilizzo a riga di comando, non sull'interfaccia visuale).


== Sitografia ==
== Sitografia ==
* [http://www.luv.asn.au/overheads/aptitude/aptitude-intro.html Aptitude Introduction]: ottima introduzione ad Aptitude (in inglese) che tratta (tra le altre cose) molte più opzioni della linea di comando rispetto alla presente guida (per vedere tutte le diapositive cliccare sullo 0 che appare in basso al centro al passaggio del mouse).
* [http://www.luv.asn.au/overheads/aptitude/aptitude-intro.html Aptitude Introduction]: ottima introduzione ad Aptitude (in inglese) che tratta (tra le altre cose) molte più opzioni della linea di comando rispetto alla presente guida (per vedere tutte le diapositive cliccare sullo 0 che appare in basso al centro al passaggio del mouse).


* [http://people.debian.org/~dburrows/aptitude-doc/en/ '''Aptitude User's Manual''']: completissimo manuale di riferimento di Aptitude (disponibile solo in inglese). Lo stesso manuale si può trovare in <code>/usr/share/doc/aptitude/html/en/index.html</code> installando il pacchetto <code>aptitude-doc-en</code>, oppure in italiano in <code>/usr/share/doc/aptitude/html/it/index.html</code> installando il pacchetto <code>aptitude-doc-it</code>.
* [https://www.debian.org/doc/manuals/aptitude/index.it.html Manuale di riferimento]: traduzione italiana del manuale completo, trattante in modo dettagliato ogni possibile opzione di Aptitude, in particolare utilissimo per tutte le opzioni di ricerca avanzata. Lo stesso manuale si può trovare in <code>/usr/share/doc/aptitude/html/it/index.html</code> installando il pacchetto <code>aptitude-doc-it</code>, oppure in inglese in <code>/usr/share/doc/aptitude/html/en/index.html</code> installando il pacchetto <code>aptitude-doc-en</code>.


{{Autori
{{Autori
|Autore = [[Utente:Tindal|Tindal]]  
|Autore = [[Utente:Tindal|Tindal]]  
|Estesa_da =
: [[Utente:TheNoise|TheNoise]]
: [[Utente:Stemby|Stemby]]
: [[Utente:Wtf|Wtf]]
|Verificata_da =
|Verificata_da =
: [[Utente:Nydebianized|Nydebianized]]
: [[Utente:Nydebianized|Nydebianized]]
: [[Utente:Achille cotone|Achille cotone]]
: [[Utente:Achille cotone|Achille cotone]]
: [[Utente:Wtf|Wtf]]
: [[Utente:Wtf|Wtf]]
|Estesa_da =
: [[Utente:HAL 9000|HAL 9000]] 13:44, 27 giu 2017 (CEST)
: [[Utente:TheNoise|TheNoise]]
|Numero_revisori = 4
: [[Utente:Stemby|Stemby]]
: [[Utente:Wtf|Wtf]]
|Numero_revisori = 3
}}
}}
[[Categoria:Apt]]
[[Categoria:Apt]]
3 581

contributi

Menu di navigazione