Apt-mark: differenze tra le versioni

m
Riga 62: Riga 62:
=== In uno script ===
=== 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:
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
<pre>
# inserire il nome del pacchetto nella variabile
pacchetto="nomepacchetto"
 
if [ "$(apt-mark showauto "$pacchetto")" = "$pacchetto" ]; then
   echo "Pacchetto installato automaticamente"
   echo "Pacchetto installato automaticamente"


elif [ "$(apt-mark showmanual nomepacchetto)" = "nomepacchetto" ]; then
elif [ "$(apt-mark showmanual "$pacchetto")" = "$pacchetto" ]; then
   echo "Pacchetto installato manualmente"
   echo "Pacchetto installato manualmente"


Riga 77: Riga 81:
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>:
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>
<pre>
if [ "$(dpkg-query -f '${db:Status-Abbrev}' -W nomepacchetto 2> /dev/null)" != "ii" ]; then
# inserire il nome del pacchetto nella variabile
pacchetto="nomepacchetto"
 
# stato del pacchetto (eliminando il secondo carattere)
stato=$(dpkg-query -f '${db:Status-Abbrev}' -W "$pacchetto" 2> /dev/null) &&
stato=${stato%?} ||
  stato=""
if [ "$stato" != "i" ]; then
   echo "Pacchetto non installato"
   echo "Pacchetto non installato"


elif [ "$(apt-mark showauto nomepacchetto)" = "nomepacchetto" ]; then
elif [ "$(apt-mark showauto "$pacchetto")" = "$pacchetto" ]; then
   echo "Pacchetto installato automaticamente"
   echo "Pacchetto installato automaticamente"


3 581

contributi