52 votes

Comment activer les mises à jour automatiques silencieuses pour n'importe quel dépôt ?

Je lis aquí Comment activer les mises à jour automatiques silencieuses pour Google Chrome. Cependant, j'ai d'autres dépôts comme spotify, docky et d'autres pour lesquels j'aimerais activer les mises à jour silencieuses.

J'essaie de le faire sur mon système Ubuntu 10.04. Mais cette question s'applique à toutes les versions d'Ubuntu. J'ai le paquet unattended-upgrades installés.

Comment faire ?

76voto

Bruno Pereira Points 70510

Installez d'abord gksu :

sudo apt-get install gksu

La façon la plus simple d'activer les mises à jour sans surveillance pour votre système est de modifier le fichier 50unattended-upgrades à l'intérieur /etc/apt/apt.conf.d/ avec votre éditeur de texte préféré, par exemple :

gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades

Dans ce document, vous devez commenter les sections commentées du fichier Allowed Origins bloc.

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 font pas partie du dépôt Ubuntu et que vous souhaitez mettre à jour, vous devez ajouter un fichier origine y archives au fichier. Pour les trouver dans vos PPA, ouvrez le dossier /var/lib/apt/lists/ qui est la zone de stockage des informations sur l'état de chaque ressource du paquet. Ce que vous recherchez, ce sont les fichiers qui se terminent par Libération dans le nom.

Ouvrez-en un avec votre éditeur de texte, par exemple pour Google Chrome :

gedit /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release

À l'intérieur, vous verrez quelque chose comme ce qui suit :

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 ce qui se trouve sous la ligne Suite ( Suite: stable ).

Si l'un ou l'autre Origin o Suite est manquante, ils seront la chaîne vide. Mais notez que si à la fois sont manquantes, il ne sera probablement pas possible d'utiliser cette source avec des mises à niveau sans surveillance sans inclure d'autres sources présentant le même problème.

Après avoir noté ces deux lignes, vous devez éditer le fichier 50unattended-upgrades et ajoutez les lignes en respectant le format suivant "<origin>:<archive>"; de pour les besoins de cet exemple "Google\, Inc.:stable"; .

L'origine de Google Chrome est assez délicate, car elle contient un espace, un point final et une virgule. Libération Les fichiers seront faciles à lire.

Autre exemple, Node JS source spécifie une origine ( Node Source ) mais pas une archive ; vous pouvez donc le faire correspondre à "Node Source:"; .

Origines autorisées est recherché à l'aide de caractères génériques de type Shell (plus précisément, avec les caractères génériques de Python fnmatch() ). Si vous êtes suffisamment prudent pour ne pas inclure de sources contradictoires, il est possible d'écrire des choses telles que "Node *:*"; .


N'oubliez pas de faire une sauvegarde de votre 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 y --debug .

  • --dry-run exécute un cycle de mise à niveau sans surveillance, sauf qu'il n'installe pas vraiment les mises à niveau, mais se contente de vérifier que tout est en ordre.

  • --debug permet d'activer le mode verbeux.

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 éditant le fichier /etc/apt/apt.conf.d/10periodic . Les options de configuration se trouvent dans la section /etc/cron.daily/apt En-tête script. Lisez-les pour configurer la fréquence des mises à jour sans surveillance.

14voto

Abhishek Bhatia Points 1004

Approche automatisée pour la réponse de @Bruno Pereira : (Si vous trouvez la réponse utile, pensez à mettre en ligne le repo github).

Lien du code : https://github.com/abhigenie92/unattended_upgrades_repos

  • Vérifier les dépôts à 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
  • Modifier maintenant /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 s'ils sont inclus :

    $ 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

10voto

Zac West Points 201

Édition /etc/apt/apt.conf.d/50unattended-upgrades ajouter ce qui suit :

Unattended-Upgrade::Origins-Pattern {
        "origin=*";
};

Cela permettra d'effectuer des mises à jour sans surveillance pour tous les paquets.

3voto

Eleanor Ellis Points 41

Des instructions pour forcer une réexécution afin que cron démarre la mise à jour automatique sont disponibles à l'adresse suivante enlace . 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 de redémarrer cron pour que la mise à jour automatique se fasse maintenant (ou au moins dans les minutes qui suivent), c'est

sudo service cron start
sudo anacron -fn

Comment cela fonctionne-t-il ?

Plusieurs éléments peuvent déclencher son exécution.

  • Il est déclenché par le fonctionnement de /etc/cron.daily par cron, en particulier /etc/cron.daily/apt . Cron exécute /etc/cron.daily à 6h25 (voir /etc/crontab )

  • Anacron fonctionne à partir du démarrage ? et il s'éteint. /etc/cron.daily après 5 minutes de temps de fonctionnement (voir /etc/anacrontab )

    Nota APT::Periodic::RandomSleep peut être définie dans /etc/apt/apt.conf.d/10periodic mais par défaut, il s'agit des années 1800 (30 minutes), ce qui signifie qu'il n'y en a pas. aucune mise à jour ne peut avoir lieu jusqu'à 30 minutes après /etc/cron.daily/apt fonctionne.

Journal

Si cela fonctionne, les choses devraient être enregistrées dans ce dossier, /var/log/unattended-upgrades .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X