Korzystam z serwera Ubuntu 12.04 LTS. I myślę, że byłoby miło, gdybym mógł być informowany o dostępności aktualizacji. Ale nie mogę znaleźć, jak się dowiedzieć ...
Próbowałem spojrzeć na apt-get
stronę podręcznika. Z tego byłem w stanie apt-get -s upgrade
uzyskać wynik apt-get w skrypcie bez blokowania pytań.
Teraz wyraźnie widzę różnicę:
Dostępne są aktualizacje:
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])
Aktualizacje nie są dostępne:
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.
Ale nie wiem, jak to zrobić. Jak mogę stwierdzić po skrypcie bash (lub skrypcie php), że dostępne są aktualizacje, czy nie?
Edytować :
Oto mój obecny kod bash. To nie działa.
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
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
jeśli nie ma aktualizacji.Odpowiedzi:
Przeczytaj strony podręcznika dla
motd(5)
,pam_motd(8)
iupdate-motd(5)
. W moim systemie/etc/update-motd.d/90-updates-available
wywołuje się,/usr/lib/update-notifier/update-motd-updates-available
co wyświetla to po zalogowaniu:Zagłębiając się nieco głębiej, wywołuje skrypt „...- aktualizacje dostępne”
/usr/lib/update-notifier/apt-check --human-readable
. Jeśli to czytasz (python), zobaczysz, że jeśli pominiesz flagę czytelną dla człowieka, wyświetli „19; 12” do stderr. Możemy to złapać w ten sposób:Teraz możesz powiedzieć:
źródło
if [
/ etc / update-motd.d / 90-updates-available` = "Można zaktualizować 0 pakietów. 0 aktualizacji to aktualizacje bezpieczeństwa." ]; potem ... fi`