Comment activer les mises à jour automatiques silencieuses pour tout référentiel?

37

Je lis ici comment Activez les mises à jour automatiques silencieuses pour Google Chrome. Cependant, j'ai d'autres référentiels comme Spotify, Docky et d'autres pour lesquels j'aimerais 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 installé le package mises à niveau sans surveillance .

Comment puis-je le faire?

    
posée nik90 14.12.2011 - 23:47
la source

4 réponses

59

D'abord, installez gksu :

sudo apt-get install gksu

Le plus simple d’activer les mises à jour sans surveillance de votre système consiste à modifier le fichier 50unattended-upgrades inside /etc/apt/apt.conf.d/ avec votre éditeur de texte favori, par exemple:

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

Vous devez commenter les sections commentées du bloc Origines autorisées

Modifier

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 sont pas sur les dépôts Ubuntu que vous souhaitez mettre à jour, vous devez ajouter une origine et une archive au fichier. Pour trouver ceux qui correspondent à 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 Release .

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

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

Si Origin ou Suite est manquant alors ils seront 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 ajouter les lignes en utilisant ce format "<origin>:<archive>"; de cet exemple sake "Google\, Inc.:stable"; .

L’origine de Google Chrome est assez délicate car elle contient un espace d’extrémité et une virgule, mais la plupart des fichiers Release seront faciles à lire.

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

Origines autorisées correspond à l'aide de caractères génériques de type shell (plus précisément, avec fnmatch de Python) () ). Si vous êtes suffisamment prudent pour ne pas inclure de sources en conflit, vous pouvez é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 exécutera un cycle de mises à niveau sans surveillance, sauf qu'il n'installe pas vraiment les mises à niveau, vérifie uniquement et vérifie que tout va bien.

--debug activera le mode verbeux.

Vous pouvez toujours vérifier les journaux pour unattended-upgrades at /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 la configuration se trouvent dans l’en-tête du script /etc/cron.daily/apt . Lisez-les pour configurer la fréquence des mises à niveau sans surveillance.

    
réponse donnée Bruno Pereira 15.12.2011 - 00:17
la source
11

Approche automatisée pour la réponse de @Bruno Pereira: (S'il vous plaît envisager de mettre en vedette le dépôt github si vous trouvez la réponse utile.)

Lien de code: lien

  • Vérifier les référentiels à 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
    
réponse donnée Abhishek Bhatia 29.06.2016 - 08:41
la source
3

Il existe des instructions pour forcer une nouvelle exécution à faire démarrer automatiquement la mise à jour par cron au 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 au moins dans quelques minutes) est

sudo service cron start
sudo anacron -fn

Comment ça marche

Plusieurs choses vont le déclencher.

  • Il est déclenché par l’exécution de /etc/cron.daily par cron, spécifiquement /etc/cron.daily/apt . Cron exécute /etc/cron.daily à 6h25 (voir /etc/crontab )

  • Anacron fonctionne depuis le début? et il 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 par défaut au 1800 (30 minutes), donc non des mises à jour peuvent se produire jusqu'à 30 minutes après que /etc/cron.daily/apt s'exécute.

Journal

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

    
réponse donnée Eleanor Ellis 01.08.2013 - 21:50
la source
2

Modification de /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.

    
réponse donnée Zachary West 11.04.2018 - 01:35
la source

Lire d'autres questions sur les étiquettes