3 581
contributi
m (→Introduzione) |
(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 | 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]] | |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]] |
contributi