Comment savoir si des mises à jour sont disponibles?

J’utilise un serveur Ubuntu 12.04 LTS. Et je pense que ce serait bien si je pouvais être informé des mises à jour disponibles. Mais je ne trouve pas comment savoir …

J’ai essayé de regarder la page de manuel d’ apt-get . Cela m’a permis d’utiliser apt-get -s upgrade pour obtenir la sortie d’apt-get dans un script sans bloquer les questions.

Maintenant, je vois clairement la différence:

Les mises à jour sont disponibles:

 apt-get -s upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dpkg dpkg-dev libdpkg-perl 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Inst dpkg [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [amd64]) Conf dpkg (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [amd64]) Inst dpkg-dev [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all]) [] Inst libdpkg-perl [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all]) Conf libdpkg-perl (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all]) Conf dpkg-dev (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all]) 

Les mises à jour ne sont pas disponibles:

 apt-get -s upgrade Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

Mais je ne sais pas comment procéder à partir de là. Comment puis-je savoir, à partir d’un script bash (ou script php), que des mises à jour sont disponibles ou non?

Modifier :

Voici mon code bash actuel. Ça ne marche pas.

 updates_available=`/etc/update-motd.d/90-updates-available` if [ "${updates_available}" = "0 packages can be updated. 0 updates are security updates." ]; then echo "No updates are available" else echo "There are updates available" fi 

Lisez les pages de motd(5) de motd(5) , pam_motd(8) et update-motd(5) . Sur mon système, /etc/update-motd.d/90-updates-available appelle /usr/lib/update-notifier/update-motd-updates-available qui affiche ceci lorsque je me connecte:

 19 packages can be updated. 12 updates are security updates. 

En approfondissant un peu, le script “…-updates-available” appelle /usr/lib/update-notifier/apt-check --human-readable . Si vous lisez cela (python), vous verrez que si vous omettez l’indicateur lisible par l’homme, il produira “19; 12” dans stderr. Nous pouvons saisir cela avec ceci:

 IFS=';' read updates security_updates < <(/usr/lib/update-notifier/apt-check 2>&1) echo $updates echo $security_updates 
 19 12 

Maintenant vous pouvez dire:

 if (( updates == 0 )); then echo "No updates are available" else echo "There are updates available" fi