J'ai lu ici comment activer les mises à jour automatiques silencieuses pour Google Chrome. Cependant, j'ai d'autres référentiels comme Spotify, Docky et d'autres pour lesquels je souhaite activer les mises à jour silencieuses.
J'essaie de faire cela dans mon système Ubuntu 10.04. Mais cette question s'applique à toutes les versions d'Ubuntu. J'ai le paquet sans surveillance (upgrades) installé.
Comment puis-je faire ceci?
Commencez par installer gksu
:
Sudo apt-get install gksu
Le plus simple pour activer les mises à jour sans surveillance pour votre système consiste à modifier le fichier 50unattended-upgrades
dans /etc/apt/apt.conf.d/
avec votre éditeur de texte préféré, par exemple:
gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades
Vous devez y commenter les sections commentées du bloc autorisé Origines .
Changement
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
// "${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
à
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
"${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
Pour les logiciels qui ne figurent pas dans les dépôts Ubuntu que vous souhaitez mettre à jour, vous devez ajouter une archive Origin et . dans le fichier. Pour trouver ce que sont vos PPA, ouvrez le dossier /var/lib/apt/lists/
, c'est-à-dire la zone de stockage des informations d'état pour chaque ressource de package. Ce que vous recherchez, ce sont les fichiers qui se terminent par . Libérez dans le nom.
Ouvrez-en un avec votre éditeur de texte, c'est-à-dire pour Google Chrome:
gedit /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release
Origin: Google, Inc.
Label: Google
Suite: stable
Codename: stable
Version: 1.0
Date: Thu, 17 Nov 2011 19:09:01 +0000
Architectures: i386 AMD64
Components: main
Description: Google chrome-linux repository.
L'origine est évidente (Origin: Google, Inc.
) et l'archive sera celle qui se trouve sous la ligne Suite (Suite: stable
).
Si Origin
ou Suite
est manquant, il s'agira de la chaîne vide. Mais notez que si les deux sont manquants, il ne sera probablement pas possible d'utiliser cette source avec des mises à niveau sans surveillance sans inclure d'autres sources avec le même problème.
Après avoir noté ces 2 lignes, vous devez éditer le fichier 50unattended-upgrades
et les ajouter à l’aide de ce format "<Origin>:<archive>";
of pour cet exemple sakis "Google\, Inc.:stable";
.
Origine de Google Chrome est un peu délicate, car elle comporte un espace, un point final et une virgule, mais la plupart est activée les fichiers seront faciles à lire.
Comme autre exemple, source du noeud JS spécifie une origine (Node Source
) mais pas une archive; afin que vous puissiez le faire correspondre avec "Node Source:";
.
Les origines autorisées sont mises en correspondance à l'aide de caractères génériques de style shell (plus précisément, avec Python fnmatch () ). Si vous êtes assez prudent pour ne pas inclure les sources en conflit, il est possible d'écrire des choses comme "Node *:*";
.
N'oubliez pas de faire une sauvegarde de votre fichier 50unattended-upgrades
avant de le modifier, faites-le avec Sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
.
Pour tester les modifications apportées au fichier, vous pouvez utiliser Sudo unattended-upgrades
avec les paramètres --dry-run
et --debug
.
--dry-run
lancera un cycle de mises à jour sans assistance, sauf qu'il n'installera pas vraiment les mises à niveau, mais vérifiera et vérifiera que tout va bien.
--debug
activera le mode prolixe.
Vous pouvez toujours vérifier les journaux pour unattended-upgrades
à /var/log/unattended-upgrades/unattended-upgrades.log
.
Vous pouvez modifier la configuration des mises à niveau sans surveillance en modifiant le fichier /etc/apt/apt.conf.d/10periodic
. Les options de configuration se trouvent dans l'en-tête de script /etc/cron.daily/apt
. Lisez-les pour configurer la fréquence des mises à niveau sans assistance.
Approche automatisée pour la réponse de @Bruno Pereira: (envisagez de mettre en vedette le dépôt github si vous trouvez la réponse utile.)
Lien de code: https://github.com/abhigenie92/unattended_upgrades_repos
Vérifiez les dépôts pour ajouter:
$ python automatic_upgrade.py
Add repos:
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
Skipping files due to not present Origin or suite. Or Origin being a url.:
packagecloud.io_slacktechnologies_slack_debian_dists_jessie_InRelease
tiliado.eu_nuvolaplayer_repository_deb_dists_xenial_InRelease
Maintenant, éditez /etc/apt/apt.conf.d/50unattended-upgrades
pour les inclure:
// Automatically upgrade packages from these (Origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
};
....
....
Vérifiez si elles sont incluses:
$ Sudo unattended-upgrade --dry-run --debug
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: ['o=Ubuntu,a=xenial-security', 'o=Ubuntu,a=xenial-updates', 'o=Ubuntu,a=xenial-proposed', 'o=Ubuntu,a=xenial-backports', 'o=Ubuntu,a=xenial', 'o=LP-PPA-kubuntu-ppa-backports,a=xenial', 'o=LP-PPA-tuxonice,a=xenial', 'o=LP-PPA-webupd8team-sublime-text-3,a=xenial']
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: []
whitelist: []
No packages found that can be upgraded unattended and no pending auto-removals
Editer /etc/apt/apt.conf.d/50unattended-upgrades
, ajoutez ce qui suit:
Unattended-Upgrade::Origins-Pattern {
"Origin=*";
};
Cela permettra des mises à niveau sans surveillance pour tous les packages.
Il existe des instructions pour forcer une nouvelle exécution à forcer cron à démarrer la mise à jour automatique à l’installation suivante lien . La procédure pour arrêter cron est la suivante
Sudo service anacron stop
Sudo service cron stop
Sudo rm -rf /var/run/unattend* /var/run/cron* /var/run/anacron*
Sudo rm -rf /var/lib/apt/periodic/*
et redémarrer cron pour que la mise à jour automatique se produise maintenant (ou du moins dans quelques minutes)
Sudo service cron start
Sudo anacron -fn
Comment ça marche
Plusieurs choses vont déclencher son exécution.
Il est lancé à partir de l'exécution de /etc/cron.daily
par cron, plus précisément /etc/cron.daily/apt
. Cron exécute /etc/cron.daily
à 6h25 (voir /etc/crontab
)
Anacron fonctionne de parvenu? et il se déclenchera /etc/cron.daily
après 5 minutes de disponibilité (voir /etc/anacrontab
)
Remarque: APT::Periodic::RandomSleep
peut être défini dans /etc/apt/apt.conf.d/10periodic
, mais la valeur par défaut est 1800s (30 minutes); aucune mise à jour ne peut donc se produire jusqu'à 30 minutes après l'exécution de /etc/cron.daily/apt
.
Journal
Si cela fonctionne, les choses devraient être enregistrées dans ce dossier, /var/log/unattended-upgrades
.