Bir kabuk komut dosyasından katılımsız yükseltmeleri etkinleştirme


17

Yeni Ubuntu sanal makinelerini otomatik olarak benim amacım için yapılandırmak için bir kabuk betiğim var. Bu komut dosyasının yüklenmesini ve etkinleştirilmesini istiyorum unattended-upgrades, ancak kullanıcı etkileşimi olmadan nasıl yapılacağını anlayamıyorum.

Yükseltmeleri etkinleştirmenin genel yolu dpkg-reconfigure unattended-upgrades, elbette interaktiftir. Etkileşimli olmayan ön uç, herhangi bir soru sormaktan kaçınır ve metin ön ucu, G / Ç'sini stdin / stdout ile değil, tty ile yapmaya bağlı ve kararlı görünüyor.


1
Bu aracı daha önce kullanmadım, ancak /etc/apt/apt.conf.d/20auto-upgrades dosyasındaki iki satıra 1 yazmasını sağlamak gibi görünüyor. Bu dosyayı manuel olarak yazarsanız çalışır mı?
mfisch

Yanıtlar:


20

İstediğiniz şekilde yapılandırdıktan sonra /etc/apt/apt.conf.d/20auto-upgrades kopyasını alın ve hedef makinenizde bırakın. Senaryonuza gömebilirsiniz ya da bir sunucudan ya da her neyse rsync ya da wget yapabilirsiniz.

Temel olarak betiğiniz böyle bir şey yapabilir:

apt-get install unattended-upgrades
wget -O /etc/apt/apt.conf.d/20auto-upgrades http://myserver.mytld/confs/20auto-upgrades
/etc/init.d/unattended-upgrades restart

Gerçekten dpkg-reconfigure betiği ile maymun olmanın hiçbir nedeni yok.

Conf dosyasını uzak bir sunucudan almak istemiyorsanız, ÇOK çok kısa ve basittir - yalnızca güvenlik güncelleştirmelerini getiren ve yükleyen varsayılan sürüm şu şekildedir:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Böylece bu satırları doğrudan aşağıdakilerle yapılandırma dosyasına yansıtabilirsiniz:

echo -e "APT::Periodic::Update-Package-Lists \"1\";\nAPT::Periodic::Unattended-Upgrade \"1\";\n" > /etc/apt/apt.conf.d/20auto-upgrades

1

Dpkg-reconfigure kullanmak istiyorsanız, değeri "debconf-set-selection" ile ayarlayabilir ve daha sonra etkileşimli olmayan bir şekilde yeniden yapılandırabilirsiniz.

echo "unattended-upgrades       unattended-upgrades/enable_auto_updates boolean true" | debconf-set-selections; dpkg-reconfigure -f noninteractive unattended-upgrades

0

Eko yapmak için sudo kullanmalısınız /etc/apt/apt.conf.d/20auto-upgrades

if [[ ! -f /etc/apt/apt.conf.d/20auto-upgrades.bak ]]; then
    sudo cp /etc/apt/apt.conf.d/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades.bak
    sudo rm /etc/apt/apt.conf.d/20auto-upgrades
    echo "APT::Periodic::Update-Package-Lists \"1\";
    APT::Periodic::Download-Upgradeable-Packages \"1\";
    APT::Periodic::AutocleanInterval \"30\";
    APT::Periodic::Unattended-Upgrade \"1\";" | sudo tee --append /etc/apt/apt.conf.d/20auto-upgrades
fi

0
dpkg-reconfigure -f noninteractive unattended-upgrades

0

Katılımsız yükseltmeleri yapılandırmak için yapılandırma parametreleri eklemenizi öneririm.

sudo touch /etc/apt/apt.conf.d/20auto-upgrades

echo "APT::Periodic::Update-Package-Lists "1"" >> /etc/apt/apt.conf.d/20auto-upgrades

echo "APT::Periodic::Unattended-Upgrade "1" " >> /etc/apt/apt.conf.d/20auto-upgrades

Aynı şekilde, conf dosyasındaki gereksiniminize göre parametreleri yapılandırabilir / ekleyebilirsiniz /etc/apt/apt.conf.d/50unattended-upgrades.

Değişiklikleri uygulamak için hizmeti yeniden başlatmayı unutmayın.

/etc/init.d/unattended-upgrades restart
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.