Je n'ai pas de serveur ou quoi que ce soit d'autre, mais j'ai un iMac fonctionnant sous Snow Leopard dans mon bureau, qu'un non-technicien utilise. J'aimerais qu'il installe automatiquement toutes les nouvelles mises à jour lorsqu'on lui demande d'éteindre l'ordinateur chaque jour. Je sais que je peux configurer la mise à jour logicielle pour qu'elle recherche les mises à jour quotidiennement et les télécharge si elles existent. Mais qu'en est-il de leur installation effective sans confirmation à chaque fois. Je ne veux pas faire une tâche cron, car si cette personne travaille tard, il ne serait pas bon qu'elle essaie de s'éteindre à sa place. De plus, cette personne fonctionne avec un compte utilisateur standard, donc pour installer les mises à jour, je dois entrer les informations d'identification de mon compte de niveau administrateur. Existe-t-il un moyen de faire cela ?
Réponse
Trop de publicités?Installer des mises à jour (ou faire quoi que ce soit d'autre, d'ailleurs) lors de l'arrêt de Mac OS X est problématique, car le système d'exploitation ne donne que huit secondes aux processus pour s'arrêter avant de les tuer, ce qui est loin d'être suffisant pour effectuer des mises à jour.
Néanmoins, il existe probablement des moyens de résoudre votre problème. En fonction de la concordance entre vos habitudes de travail et celles de votre utilisateur, vous pourriez attendre qu'il vous informe de l'existence de mises à jour et qu'il lui convienne de redémarrer, puis saisir votre mot de passe d'administrateur en personne ou par VNC/partage d'écran.
Alternativement, si vous avez SSH actif, vous pouvez vous connecter et utiliser le programme de ligne de commande softwareupdate
à la place.
Apple suggère que vous devez redémarrer votre ordinateur immédiatement après avoir exécuté softwareupdate
s'il y a une mise à jour qui le nécessite, mais vous pouvez peut-être permettre à l'ordinateur de redémarrer normalement à la fin de la journée - le redémarrage n'est certainement pas forcé par le programme de mise à jour, comme c'est le cas avec la version GUI. Si vous êtes prêt à prendre ce risque, vous pouvez alors script le faire : créer la liste de propriétés Launchd suivante.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.meaningful.name</string>
<key>ProgramArguments</key>
<array>
<string>softwareupdate</string>
<string>-i</string>
<string>-a</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>20</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
<key>RunAtLoad</key>
<false/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
Enregistrez ceci dans /Library/LaunchDaemons/some.meaningful.name.plist
puis, dans un terminal, faire :
sudo launchctl load /Library/LaunchDaemons/some.meaningful.name.plist
Cela va lancer softwareupdate
tous les jours à 20:00, et installer toutes les mises à jour disponibles.