Controllare se un programma è installato

()

Controllare se un programma è installato

Per controllare se un programma è installato possiamo utilizzare il comando aptitude. Se ad esempio vogliamo controllare se è installato zenity possiamo usare il comando

aptitude search zenity

Il comando restituirà un output simile al seguente:

p octave-zenity – simple graphical user interfaces using zen i A zenity – Display graphical dialog boxes from shell i A zenity-common – Display graphical dialog boxes from shell

La “i” all’inizio della riga indica che il programma è installato per cui possiamo utilizzare questa forma per vedere tutti i pacchetti installati:

aptitude search ‘~i’

Quindi possiamo filtrare maggiormente il risultato: nell’esempio sotto vedremo tutti i pacchetti installati che contengono la parola zenity:

aptitude search ‘~i zenity’

Possiamo controllare se un programma è installato anche con il comando dpkg tuttavia, mentre aptitude permette di effettuare una vera e propria ricerca sul nome del pacchetto, con dpkg, per avere una risposta sensata dobbiamo scrivere il nome esatto del pacchetto.

dpkg -s zenity

Se il programma è installato il comando restituirà tutti i dettagli del programma (architettura, maintainer, dipendeze ecc). La cosa interessante è che se dopo il comando dpkg eseguiamo il comando

echo $?

otterremo il codice di uscita di dpkg che sarà 0 se il programma è installato e 1 se il programma non è installato.

Pertanto dpkg si presta molto bene ad essere utilizzato all’interno di script bash per individuare se un programma è installato o no. Un esempio potrebbe essere il seguente:

dpkg -s zenity &> /dev/null echo $?

che restituisce 0 se zenity è installato e 1 se non è installato

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?