Sadece güvenlik güncellemelerini komut satırından nasıl yükleyebilirim?

286

sudo apt-get upgrade , yalnızca güvenlik güncellemelerini değil tüm güncellemeleri yükler. Sadece önemli güvenlik güncellemelerini seçmek için Güncelleme Yöneticisi'ni kullanabileceğimi biliyorum, ancak bunu komut satırından yapmanın bir yolu var mı?

    
sordu mac9416 29.07.2010 00:50

7 cevap

266

katılımsız yükseltmeler paketi, güvenlik güncellemelerini otomatik olarak yüklemek için işlevsellik sağlar.

Bunu kullanabilirsiniz, ancak otomatik parçayı yapılandırmak yerine manuel olarak çağırabilirsiniz. Bu durumda, aşağıdakiler sessizce yapılmalıdır:

sudo unattended-upgrade
Nasıl gittiğini kontrol etmek için

veya daha ayrıntılı sürüm

sudo unattended-upgrade -d

NOT: Katılımsız yükseltmeyi çağırdığınızda "s" harfini sonlandırırsınız.

Bu, paketin varsayılan olarak yüklenmiş olduğunu varsayar. Değilse, sadece yapın:

sudo apt-get install unattended-upgrades

Ayrıca bkz. /usr/share/doc/unattended-upgrades/README.md .

    
verilen cevap blueyed 29.07.2010 19:28
104

Güncellemeleri Yönetmek Üzere Birkaç İpucu

Bu hem Debian hem de Ubuntu için geçerlidir, ancak Ubuntu için daha spesifik talimatlar geçerlidir.

  • Yalnızca güvenlik güncellemelerini göster:

    apt-get -s dist-upgrade |grep "^Inst" |grep -i securi 
    

    veya

    sudo unattended-upgrade --dry-run -d
    

    veya

    /usr/lib/update-notifier/apt-check -p
    
  • Tüm yükseltilebilir paketleri göster

    apt-get -s dist-upgrade | grep "^Inst"
    
  • Yalnızca güvenlik güncellemelerini yükle

    apt-get -s dist-upgrade | grep "^Inst" | 
        grep -i securi | awk -F " " {'print '} | 
        xargs apt-get install
    

Notlar:

  • Bazen Ubuntu, güvenlik güncellemelerini $ yayın güncelleme havuzlarından geliyormuş gibi gösterir. Bu yüzden söylüyorum, çünkü Ubuntu geliştiricileri güvenlik güncellemelerini $ sürüm güncelleme havuzuna da itip kullanılabilir olmalarını hızlandırıyor.

    Durum buysa, yalnızca güvenlik güncellemelerini göstermek için aşağıdakileri yapabilirsiniz:

    sudo sh -c 'grep ^deb /etc/apt/sources.list | 
        grep security > /etc/apt/sources.security.only.list'
    

    ve

    apt-get -s dist-upgrade -o Dir::Etc::SourceList=/etc/apt/sources.security.only.list -o Dir::Etc::SourceParts=/dev/null  | 
        grep "^Inst" | awk -F " " {'print '}
    
  • Paket yükseltmelerinden sonra hangi hizmetlerin yeniden başlatılması gerektiğini kontrol edin. Hangi paketleri önceden yükselteceğinizi ve yeniden başlatmanızı / yeniden başlatmanızı planlayın. Buradaki sorun, bir hizmeti yeniden başlatmadığınız sürece, bir güvenlik açığını ya da her hangi bir sorunu gideren yeni bir paket yüklemeden önce belleğe yüklenen eski bir kitaplığın (en yaygın neden) eski bir sürümünü kullanıyor olabilir.

    checkrestart -v
    

    Ancak, checkrestart öğesinin zorunlu olarak yeniden başlatılmaması gereken işlemleri listeleyebileceğini unutmayın. Örneğin, PostgreSQL hizmeti, bellek referansını, hizmeti yeniden başlatmak için geçerli bir neden olmayan, zaten silinmiş bir xlog dosyasına tutuyor olabilir.

    Dolayısıyla, standart araçları kullanarak bunu kontrol etmenin bir başka, daha güvenilir yolu, utanmadan çaldığım İşte

    Bir sistemde çalışan işlemlerin, etkin belleğe sahip olanların kopyalarını tutması nedeniyle silinmiş kitaplıkları kullanmaya devam edip etmediğini kontrol eder.

    ps xh -o pid |
    while read PROCID; do
           grep 'so.* (deleted)$' /proc/$PROCID/maps 2> /dev/null
           if [ $? -eq 0 ]; then
                   CMDLINE=$(sed -e 's/\x00/ /g' < /proc/$PROCID/cmdline)
                   echo -e "\tPID $PROCID $CMDLINE\n"
           fi
    done
    
verilen cevap ILIV 16.11.2012 12:35
46

/etc/apt/preferences değerini aşağıdakiyle değiştirin:

Package: *
Pin: release a=lucid-security
Pin-Priority: 500

Package: *
Pin: release o=Ubuntu
Pin-Priority: 50

Artık basit bir apt-get upgrade tüm güvenlik güncellemelerini yalnızca yeni sürüme geçirecektir.

Neden (ve nasıl) bu işe yarar: Tercihler dosyası, Ubuntu dağıtımından tüm paketleri, önceden kurulu paketlerden daha az cazip hale getirecek önceliğe 50 getirecektir. Güvenlik deposundan çıkan dosyalara varsayılan (500) önceliği verilir, böylece yükleme için dikkate alınırlar. Bu, yalnızca yüklü olanlardan daha fazla tercih edilen paketlerin güvenlik güncelleştirmeleri olduğu anlamına gelir. apt_preferences manpage 'da sabitleme hakkında daha fazla bilgi.

Güncellemeler için belirli bir dağıtımı, --target-release ve apt-get (en az) ile çalışan aptitude seçeneğiyle geçici olarak yükseltebilirsiniz. Bu, belirli sürümleri yükseltmeye uygun olacak şekilde ayarlamanıza olanak tanır.

Bunu yalnızca komut dosyaları için kullanmak ve sistem için varsayılan yapmamak istiyorsanız, kuralları başka bir konuma yerleştirebilir ve bunun yerine aşağıdakileri kullanabilirsiniz:

apt-get -o Dir::Etc::Preferences=/path/to/preferences_file upgrade

Bu, tercihler dosyasını varsayılan olmayan bir konumdan arayacak.

Örnek olarak verilen tercihler dosyası, üçüncü taraf depoları için geçerli değildir, eğer bunları sabitlemek isterseniz, apt-cache policy 'yi, sabitleme için gerekli anahtarları kolayca belirlemek için kullanabilirsiniz.

    
verilen cevap Ressu 29.07.2010 06:12
9

Ubuntu 14.04 LTS'de aşağıdakiler onaylanmıştır.

unattended-upgrade paketini kullanın.

/etc/apt/apt.conf.d/50unattended-upgrades dosyasına bakın. Üstte bir bölüm bulunmalıdır:

// 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";
};

Varsayılan olarak yalnızca güvenlik paketleri için katılımsız yükseltmelere izin verecek şekilde nasıl yapılandırıldığını unutmayın.

/etc/apt/apt.conf.d/10periodic dosyasına benzer:

dosyasını değiştirin
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Bu, günde bir kez otomatik katılımsız güvenlik yükseltmeleri çalıştırır.

Şimdi, manuel olarak çalıştırmak için: sudo unattended-upgrade .

Herhangi bir şey yapmadan kuru çalışma olarak test etmek için: sudo unattended-upgrade --dry-run .

Kaynak: İşte

    
verilen cevap vcardillo 03.10.2016 19:18
5

Oldukça çirkin olsa da, güvenlik deposundan ayrı olarak tüm depoları devre dışı bırakabilir ve ardından şunları yapabilirsiniz:

sudo apt-get update && sudo apt-get upgrade

Ben test etmedim, ama teoride sadece güvenlik repolarındaki güncellemeleri bulabilir ve uygular ...

    
verilen cevap Stephen RC 29.07.2010 02:00
3
  • % Co_de%: sadece depodaki girdileri oku - mevcut listeye göre. Neyin yeni olduğunu kontrol etmek gerekiyor.
  • apt-get update : Çekirdek modülleri olmayan yüklü paketler için tüm güncellemeler. Yayınlama güncellemesi yok.
  • apt-get upgrade : yüklü paketler için tüm güncellemeler de çekirdek modülleri ile. Yayınlama güncellemesi yok.
  • apt-get dist-upgrade parametresiyle apt-get : yalnızca test, değişiklik yapılmadı.
verilen cevap fuser 02.08.2013 11:49
0

Ya apt-get veya aptitude'da bir seçenek bulamıyorum, ancak birisi aynı soruya . Tek cevap:

  

/etc/apt/apt.conf.d/50unattended-upgrade öğesini kontrol edip ayarlayın. 'Karmic'i Ubuntu'nuzun kod adıyla değiştirdiniz mi?

Bununla birlikte çalışıp çalışmadığına dair bir cevap yok.

    
verilen cevap Ross 29.07.2010 01:04

Etiketlerdeki diğer soruları oku