Mises à jour via gnome-software

Bonjour,

J’ai quelques questions sur le fonctionnement des mises à jour avec gnome-software.
Tout d’abord comment fait-il ses mises à jour? Par unattented-upgrades, apt-get, aptitude ou autre?
Les mises à jour incluent-elles tous les paquets ou seulement les mises à jour de sécurité?

Merci de m’éclairer

unattented-upgrades, apt-get, aptitude sont toutes des interfaces distinctes du systéme de paquet apt.
Chacune de ces interfaces ne fait que donner des ordres au coeur apt qui gére tout.

Gnome-software est aussi une interface qui fait appel au systéme de paquet de la machine, mais il est plus générique et pas spécifique debian:
il va piloter apt sous debian, mais ça peut piloter des rpm ou autre, je ne connais pas tous les systémes de paquet qu’il sait interfacer.

Donc pour ta question sur les paquets de sécurité, il les installera si tu as configuré apt pour qu’il aille les chercher.
Plus: man sources.list

Je me permet de poser cette question parce que j’ai récemment fait des mises à jour avec gnome-software et je me suis aperçu en faisant ensuite un “apt-get dist-uprade” qu’il restait des paquets qui n’avaient pas été mis à jour par gnome-software. Y a t-il un moyen pour qu’il fasse aussi l’équivalent d’un “dist-upgrade” voire d’un “autoremove” ?

Le fait qu’il reste des paquets, c’est parce qu’il ne fait par defaut qu’un simple upgrade pas un dist-upgrade.
Je ne peux pas te dire comment le configurer pour qu’il fasse des dist-upgrade plutôt que des upgrade, mais je ne le conseille pas:
un dist-upgrade est une mise à jour majeure qu’il vaut mieux faire en ligne de commande pour éviter tout risque et surveiller les erreurs…

Sous unstable je suis d’accord qu’un dist-upgrade est délicat mais je l’utilise régulièrement sous stretch sans aucun problème. C’est pour ça que je me demandais si c’est possible.

Moi aussi, sans aucun probléme.
Mais il m’est arrivé de me retrouver, sur des config ou je prenais un peu trop de dépots hors debian, d’avoir des conflits de dépendance à règler, et ça, on ne peut le faire qu’en ligne de commande.

La commande apt a évoluée,
https://manpages.debian.org/stretch/apt/apt.8.fr.html
pour faire un upgrade complet

apt full-upgrade

je l’utilise quotidiennement sans problème

Qu’est ce qu’on en a a faire de ce que dit l’académie ?
Tant que dist-upgrade fonctionne, c’est un équivalent du full upgrade, donc si on veut parler de dist-upgrade, on parle de dist-upgrade si on veut.
Et ça ne change rien au probléme…

NaméO !

Merci pour vos explications. En fait je cherche à automatiser au maximum les mises à jour et le nettoyage sur une stretch sans dépôt tiers pour le portable personnel de mon père qui ne souhaite pas trop s’y investir. Si vous avez des suggestions dans ce sens je suis preneur.

Personnellement je me suis affranchi de tous les dispositifs gnome et autres qui obligent à cliquer sur une application graphique à un moment donné.
Le script correspond à mes besoins , lancement uniquement au boot toutes les 8 heures et envoi d’un mail à root

root@debian:/opt# cat perso-apt 
#!/bin/sh
# pour tracer demasquer set -x
#set -x
#
#
# test si le fichier résultat existe sinon c'est le tout premier lancement et alors créer le fichier
if [ ! -f "/var/tmp/resul-opt-perso-apt.txt" ];
then touch /var/tmp/resul-opt-perso-apt.txt
fi
# comparaison de la date du jour et de la date de derniere modification du fichier
#
# date du jour
ddj=$(date +%s)
# date de la dernière modification du fichier
ddmf=$(stat -c %Y /var/tmp/resul-opt-perso-apt.txt)
# comparaison
comp=$(($ddj-$ddmf))
# référence 8 h = 28800 secondes
ref=28800
if [ $comp -lt $ref ]
then
	echo $comp "secondes depuis la dernière mise à jour" 
	exit
else echo 'Au moins 8 heures depuis le dernier update'
fi
# mise a jour des listes
echo "****************************************************************" > /var/tmp/resul-opt-perso-apt.txt
date >> /var/tmp/resul-opt-perso-apt.txt
echo " Mise à jour des listes apt" >> /var/tmp/resul-opt-perso-apt.txt 
apt update >> /var/tmp/resul-opt-perso-apt.txt 2> /dev/null
echo "resultat de la commande apt update ="$? >> /var/tmp/resul-opt-perso-apt.txt
# 
# mise à jour des paquets
echo "****************************************************************" >> /var/tmp/resul-opt-perso-apt.txt
echo " Mise à jour" >> /var/tmp/resul-opt-perso-apt.txt
export DEBIAN_FRONTEND=noninteractive 
# 
apt full-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" >> /var/tmp/resul-opt-perso-apt.txt 2> /dev/null
echo "resultat de la commande apt-full-upgrade ="$? >> /var/tmp/resul-opt-perso-apt.txt 
dpkg --audit >> /var/tmp/resul-opt-perso-apt.txt 2> /dev/null
echo "****************************************************************" >> /var/tmp/resul-opt-perso-apt.txt
# envoi du mail de résultat nb pas possible de lancer thunderbird dans le script puisque la session utilisateur n'est pas ouverte
date >> /var/tmp/resul-opt-perso-apt.txt
/usr/bin/mailx -s "résul opt/perso-apt" root@localhost.localdomain < /var/tmp/resul-opt-perso-apt.txt &> /dev/null
echo "mail envoyé à root par /opt/perso-apt"
echo "temporisation"
sleep 10


Tout ça peut se simplifier en fonction de tes besoins.

Pour lancer le script au boot, j’ai créé un service systemd

 cat /lib/systemd/system/update-perso.service
[Unit]
Description=update-perso
After=exim4.service

[Service]
Type=oneshot
ExecStart=/opt/perso-apt

[Install]
WantedBy=multi-user.target

Pour l’activer

systemctl enable update-perso.service

Pour vérifier l’exécution

systemctl status update-perso.service

Le mail n’est pas obligatoire, il me sert simplement a garder une trace de l’exécution des commandes.
Sinon on peut se contenter de l’historique dans les logs apt

root@debian:/var/log/apt# tail -f history.log
Start-Date: 2018-02-20  09:06:59
Commandline: apt-get purge --autoremove -y
Purge: libmagick++-6.q16-7:amd64 (8:6.9.7.4+dfsg-16.1), libmagickwand-6.q16-3:amd64 (8:6.9.7.4+dfsg-16.1), libmagickcore-6.q16hdri-3:amd64 (8:6.9.7.4+dfsg-16.1), libmagickwand-6.q16hdri-3:amd64 (8:6.9.7.4+dfsg-16.1), libmagickcore-6.q16-3:amd64 (8:6.9.7.4+dfsg-16.1), libmagickcore-6.q16-3-extra:amd64 (8:6.9.7.4+dfsg-16.1), libmagickcore-6.q16hdri-3-extra:amd64 (8:6.9.7.4+dfsg-16.1)
End-Date: 2018-02-20  09:07:22

Start-Date: 2018-02-21  08:57:48
Commandline: apt full-upgrade -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold
Install: libargon2-0:amd64 (0~20161029-1.1, automatic), libcryptsetup12:amd64 (2:2.0.1-1, automatic)
Upgrade: cryptsetup-bin:amd64 (2:1.7.5-1, 2:2.0.1-1), libsystemd0:amd64 (236-3, 237-3), libsystemd0:i386 (236-3, 237-3), console-setup-linux:amd64 (1.177, 1.178), libthai-data:amd64 (0.1.27-1, 0.1.27-2), udev:amd64 (236-3, 237-3), console-setup:amd64 (1.177, 1.178), libudev1:amd64 (236-3, 237-3), libudev1:i386 (236-3, 237-3), libinput-bin:amd64 (1.9.4-2, 1.10.0-1), libnss-myhostname:amd64 (236-3, 237-3), systemd-sysv:amd64 (236-3, 237-3), libpam-systemd:amd64 (236-3, 237-3), systemd:amd64 (236-3, 237-3), libthai0:amd64 (0.1.27-1, 0.1.27-2), libthai0:i386 (0.1.27-1, 0.1.27-2), keyboard-configuration:amd64 (1.177, 1.178), libinput10:amd64 (1.9.4-2, 1.10.0-1)
End-Date: 2018-02-21  08:59:29

Je pensais à quelque chose de plus simple:

#!/bin/bash
gksu apt-get update
apt -y full-upgrade
apt clean
apt autoremove --purge
exit
exit 0

dans /etc/cron.weekly/ pour une exécution hebdomadaire automatique.
Qu’en pensez vous?

Pourquoi ce gksu , pourquoi apt-get update plutôt que apt update, et surtout, pourquoi deux fois exit (alors que 0 auraient suffit)?

Bon, mais sinon, avec cette auto install, ton père ne comprendra pas pourquoi sa machine ne fonctionne pas le jour ou un paquet restera non configuré.

Sinon, tu as cron-apt, aussi.

En y réfléchissant, le plus sûr, ça serait que tu te connectes de temps en temps pour faire toi même les mises à jour par ssh. Quitte à lui configurer un vpn permanent vers ta machine ou un de tes serveur en ligne, pour pouvoir accéder à sa machine quand tu veux et où qu’elle soit.

-Le gksu pour que s’affiche une fenêtre lui demandant son mot de passe.
-Le apt parce que j’ai voulu essayer ce que disait grandtoubab
-exit c’est une erreur. je pensais qu’il fallait quitter le mode su comme en ligne de commande.

Une fois modifié ça donne ça:
#!/bin/bash
gksu apt update
apt -y upgrade
apt clean
apt autoremove --purge

Je vais jeter un œil à cron-apt.

Ca, tu fais un gksu sur le script tout entier, plutôt.

Dans ce cas, généralise: apt a aussi sa commande update :wink:

Là, j’ai dit une connerie, car avec un simple upgrade, jamais il n’y aura une seule demande de configuration.
Par contre, en ne faisant que les upgrade, ton systéme va doucement se désynchroniser jusqu’au dist-upgarde suivant.

Par contre, en ne faisant que les upgrade, ton systéme va doucement se désynchroniser

En plus ça n’apporte rien par rapport aux mises à jour de gnome-software.
Je pense que tu as raison, il serait peut-être préférable que je lui fasse ses mises à jour à distance. Par contre je ne suis pas familier avec les sessions distantes. Aurais-tu des conseils pour l’utilisation de vinagre sachant que mon père est sous Xubuntu 16.04?

Nan, je ne peux rien te dire pour vinagre que je ne connaissais même pas.
Pour administrer ma machine, je n’utilise aucune interface graphique, ça complique tout, et ça fait perdre du temps, et à distance entre deux clients FAI, c’est souvent trop lent à l’affichage pour être utilisable.

A mon avis, le plus simple, c’est de te connecter en ssh, et faire le taf en console avec apt.
D’ailleurs, si tu te connectes avec ssh -X, tu pourras même lancer des applis graphiques, et les fenètres s’ouvriront chez toi.

Dans tous les cas, ça pose le problème de l’ip à laquelle tu vas te connecter.

C’est pour ça que je parlais de vpn, c’est un truc que tu peux configurer en permanent depuis la machine de ton père et qui va la connecter jusqu’à ta machine ou à ton réseau.
Aprés, tu n’auras plus qu’à utiliser son ip de vpn pour accéder à sa machine.

Aprés, si ton pére a une machine fixe, c’est aussi simple de faire une redirection de port ssh chez lui sur sa box pour ouvrir son port ssh sur le réseau.

C’est au choix.