Apt-mark: differenze tra le versioni

aggiunta sezione per script e controllo singolo pacchetto
(aggiunta sezione per script e controllo singolo pacchetto)
Riga 1: Riga 1:
{{Versioni compatibili}}{{Template:APT}}
{{Versioni compatibili}}{{Template:APT}}
== Introduzione ==
== Introduzione ==
'''apt-mark''' è un comando per visualizzare e modificare lo stato dei pacchetti installati nel sistema, in particolare se sono stati installati in automatico (stato: '''auto''') o manualmente (stato: '''manual'''), e se futuri aggiornamenti sono bloccati (stato: '''hold''') oppure no.
'''apt-mark''' è un comando per visualizzare e modificare lo stato dei pacchetti installati nel sistema, in particolare se sono stati installati in automatico (stato: '''auto''') o manualmente (stato: '''manual'''), e se futuri aggiornamenti sono bloccati (stato: '''hold''') oppure no.


Fa parte del pacchetto '''apt''', assieme per esempio ad <code>apt-get</code> e <code>apt-cache</code>, ed è uno strumento essenziale di Debian. Lascia ad [[apt-get]] le operazioni di installazione, aggiornamento e rimozione dei pacchetti, e ad [[apt-cache]] quelle di ricerca.
Fa parte del pacchetto '''apt''', assieme per esempio a:
* <code>apt-get</code> per svolgere le operazioni di installazione, aggiornamento e rimozione dei pacchetti;
* <code>apt-cache</code> per effettuare operazioni di ricerca su tutti i pacchetti di Debian.


== Comandi principali ==
== Comandi principali ==
;auto:
;auto:
<blockquote>
<blockquote>
Riga 49: Riga 49:
Lista tutti i pacchetti installati sul sistema per i quali sono impediti futuri aggiornamenti.
Lista tutti i pacchetti installati sul sistema per i quali sono impediti futuri aggiornamenti.
</blockquote>
</blockquote>
== Controllare lo stato di un pacchetto ==
I comandi <code>showauto</code>, <code>showmanual</code> e <code>showhold</code> possono essere usati con degli argomenti, per specificare l'insieme di pacchetti tra cui limitare la selezione degli stati desiderati.
Quindi per esempio:
<pre>$ apt-mark showauto nomepacchetto</pre>
restituisce ''nomepacchetto'' soltanto se è stato installato in automatico, e niente altrimenti (pacchetto non installato oppure installato manualmente).
Mentre per controllare se è installato manualmente, il seguente comando deve restituire ''nomepacchetto'':
<pre>$ apt-mark showmanual nomepacchetto</pre>
=== In uno script ===
Per controllare lo stato di un pacchetto (''nomepacchetto'') in uno script quindi è sufficiente controllare se viene restituito il nome del pacchetto oppure no:
<pre>if [ "$(apt-mark showauto nomepacchetto)" = "nomepacchetto" ]; then
  echo "Pacchetto installato automaticamente"
elif [ "$(apt-mark showmanual nomepacchetto)" = "nomepacchetto" ]; then
  echo "Pacchetto installato manualmente"
else
  echo "Pacchetto non installato"
fi</pre>
Purtroppo non esiste un altro modo, se non ricorrendo ad [[aptitude]], dato che per <code>apt-mark</code> non c'è nemmeno un valore di ritorno da controllare.
Alternativamente si può controllare l'installazione con [[dpkg|dpkg-query]], contenuto in un pacchetto essenziale del sistema, in modo da usare soltanto una volta <code>apt-mark</code> per leggere gli stati, che è più lento di <code>dpkg-query</code>:
<pre>
if [ "$(dpkg-query -f '${db:Status-Abbrev}' -W nomepacchetto)" != "ii" ]; then
  echo "Pacchetto non installato"
elif [ "$(apt-mark showauto nomepacchetto)" = "nomepacchetto" ]; then
  echo "Pacchetto installato automaticamente"
else
  echo "Pacchetto installato manualmente"
fi
</pre>


== Manpages ==
== Manpages ==
<code>man apt-mark</code>
<code>man apt-mark</code>


{{Autori
{{Autori
|Autore = [[Utente:HAL 9000|HAL 9000]] 18:57, 26 mar 2015 (CET)
|Autore = [[Utente:HAL 9000|HAL 9000]] 19:04, 8 apr 2015 (CEST)
|Estesa_da =
|Estesa_da =
|Verificata_da =
|Verificata_da =
|Numero_revisori = 0
|Numero_revisori = 0
}}
}}


[[Categoria:Apt]]
[[Categoria:Apt]]
3 581

contributi