Raspberry Pi'mi otomatik olarak güncelleme / yükseltme yapmaya nasıl ayarlarım?


34

Şu anda, benim Ahududu Pi güncel şeyler kalkmak, içeri türüne sahip sudo apt-get updateve sudo apt-get upgrade. Bunu otomatik olarak yapacak şekilde ayarlamanın bir yolu var mı? Raspbian Jessie'yi yönetiyorum.

Yanıtlar:


47

Bir manuel cron yerine, unattended-upgradesen son çekirdeklerin yüklenmesini sağlamak için kullanışlıdır. Çoğunlukla güvenlik için tasarlanmıştır.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Ayarlanabilen / konfigüre edilebilen bazı bitler vardır, ancak varsayılan değer iyidir.


5
Benim için varsayılan iyi değildi. Hiçbir şey yapmadı: /var/log/unattended-upgrades/unattended-upgrades.logDosya Allowed origins are: []çok /etc/apt/apt.conf.d/50unattended-upgrades"origin=Raspbian,codename=${distro_codename},label=Raspbian";
basit bir şekilde raporda

Kemik stoğum (Eylül 2017 itibariyle) 50unattended-upgradeslisteleniyor "origin=Debian,codename=${distro_codename},label=Debian-Security";ve ilgili paketleri doğru buluyor gibi görünüyor. Elbette birçoğunu yok sayar. Herhangi bir beyaz veya kara liste oluşturmadım.
Jon V

3
Varsayılan 50unattended-upgradesayar gerçekten aptalca ve bunun Raspian'da çalışması için değiştirilmesi gerekiyor. Yok Raspian-Security. Güvenlik güncellemeleri etiketli değil. Hem eklemek için önemlidir "origin=Raspbian,codename=${distro_codename},label=Raspbian";ve "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";hiç/etc/apt/apt.conf.d/50unattended-upgrades
user643011

23

Bir terminalde şunu yazın:

sudo su

Kök seviyesi istemine erişmek için. O zaman koş:

crontab -e

Crontab'ınızı düzenlemeye başlamak için, belirli bir zamanda otomatik olarak çalıştırılacak bir görevler tablosu. Tercih ettiğiniz metin editöründe açılacaktır. Aşağıdaki satırları içerecek şekilde değiştirin:

0 7 * * 1 apt update && apt upgrade -y

Uygulamalarınızı her pazartesi saat 07: 00'de otomatik olarak güncellemek ve yükseltmek için. İsteğinize göre nasıl ayarlanacağını görmek için crontab'da okuma.


2
komutları &&birbirleriyle aynı satıra koymak muhtemelen daha iyidir ve 'güncelleme' başarısız olursa 'yükseltme' yapmak için bir neden yoktur.
Tedder42

crontab'da 0Pazar anlamına gelir, ancak kodunuzda bunu koydunuz, 1böylece komut Pazar günü değil Pazar günü çalıştırılacak
rav_kr

3
dist-upgradedaha iyi upgrade, sadece kullanarak kırık bağımlılıkları ile sonuçlanacaktır upgrade. Ayrıca, iletişim onaylarını gerektiren güncellemeleri almayacaksınız. @ tedder42 Debian tarafından tercih edilen metodu işaret etti (kullanıyor unattended-upgrades).
ryanpcmcquen

&& öğesini ekledikten sonra ikinci sudoyu kaçırdınız. Yine de kök crontab'da olmasına rağmen.
user643011

1
Orada hiç olmamalı sudo; rootkullanarak hesaba geçtiniz su. Süper kullanıcının crontab'ı, süper kullanıcı ayrıcalıklarıyla çalıştırılır.
goldilocks

8

Cron-apt'yi yükleyebilir ve yapılandırabilirsiniz. Aşağıdakileri yaparak yükleyin:

apt-get install cron-apt

ana yapılandırma dosyası / etc / cron-apt / config'dir

Konfigürasyonuma eklediğim bir şey:

MAILON="always"

bu, yalnızca bir hatayla karşılaştığında değil, her çalıştırıldığında bir e-posta gönderir.

Varsayılan ayarın güncelleştirmeleri otomatik olarak yüklemeyeceğini unutmayın (bunu yapmamanın bazı iyi nedenleri vardır), ancak bunu yapılandırabilirsiniz. Bu programın basit bir cron çözümü üzerinden sağladığı avantajlardan biri, ne yükleneceği üzerinde kontrol sağlamanızdır (yalnızca yeni paketler indirin, güvenlik güncellemelerini yükleyin veya tüm güncellemeleri yükleyin).

Çalıştığı zamanı ayarlamak için /etc/cron.d/cron-apt dosyasını düzenleyin.

Daha fazla bilgi ve konfigürasyon seçeneklerini burada bulabilirsiniz.

Paket çok iyi belgeler içeriyor, ancak paket içeriyor. Dosyayı çıkarmak için:

  1. çalışmak için bir dizin oluşturun - mkdir cron-apt_documentation
  2. yeni dizine geç - cd cron-apt_documentation
  3. sıkıştırılmış dosyayı kopyala - cp /usr/share/doc/cron-apt/README.gz. (sondaki noktaya dikkat edin)
  4. dosyayı aç - gunzip README.gz
  5. dosyayı oku - cat README | az

veyazcat /usr/share/doc/cron-apt/README.gz | less

5

Varsayılan yapılandırmasında, unattended-upgradesRaspbian Buster'da bozuldu. Çekirdek ve diğer yazılımlar için önemli güncellemeleri yüklemez. Seçenekleriniz:

Önerilen Seçenek:

sudo apt install unattended-upgrades

echo 'Unattended-Upgrade::Origins-Pattern {
//      Fix missing Rasbian sources.
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian

Daha hızlı güvenlik güncellemeleri için (ancak paketler rasbian için onaylanmadığı için daha az kararlılık olması), uygun fiyatlı debian güvenlik paketleri ekleyebilirsiniz:

echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list

Debian deposu için büyük olasılıkla yeni apt anahtarları yüklemeniz gerekecek .

Diğer seçenekler:

  • Cron-apt kullanarak bununla çalışın: sudo apt install cron-apt

  • Etrafında çalışmak için başka yollar.

Katılımsız güncellemeleri kullanmanız ve paketi düzeltmeniz önerilir, çünkü amaç için en uygunudur. Cron-apt, ikinci en iyi seçeneğinizdir, çünkü aynı zamanda benzer bir amaç için tasarlanmıştır. Bir çekirdek güncellemesinden sonra sisteminizi otomatik olarak yeniden başlatabileceğinden emin değilim. Katılımsız yükseltmeler genellikle bu seçeneğe sahiptir, ancak yukarıdaki düzeltmeyle çalıştığından emin değilim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.