Güncelleştirilmesi gereken paketlerin sayısını komut satırından nasıl bulabilirim?


34

Kumaş kullanarak bazı sistem yöneticisi otomasyonu üzerinde çalışıyorum ve belirli bir makinede yükseltilmesi gereken paket sayısını izleyebilmek istiyorum. Bu, bir makineye ilk giriş yaptığımda görebildiğim bilgilerin aynısı, yani bu kısım:

35 packages can be updated.
22 updates are security updates.

sudoSadece bu bilgiyi veren (tercihen olmadan ) çalıştırabileceğim bir komut var mı ?

Apt-python bağlarına baktım, ancak yüksek bir öğrenme eğrisi var gibi görünüyorlar ve aynı zamanda çok fazla değişmiş gibi görünüyorlar - En azından ihtiyaç duymadan en az olduğu kadar çalışacak bir şey istiyorum farklı Ubuntu sürümlerinde farklı şeyler yapın.

Yanıtlar:


33

Bu çıktıyı elde etmek için, komutu kullanabilirsiniz.

sudo /usr/lib/update-notifier/update-motd-updates-available

veya kullanmak istemiyorsanız sudo,

cat /var/lib/update-notifier/updates-available

açıklama

loginUygulama gösterileri dosyada bulunan çıkış /etc/motdiçin bir sembolik bağ, /var/run/motd.

Bu son dosya mounted-varrunservis tarafından güncellenir (bkz. /etc/init/mounted-varrun.conf) /etc/update-motd.d/Ve içindeki tüm komut dosyalarını çağırarak

/etc/update-motd.d/90-updates-available

sırayla betiği çağırıyor

/usr/lib/update-notifier/update-motd-updates-available

Bu komut çeşitli eylemleri yürütür ve sonunda çıktıyı metin dosyasına yazar.

/var/lib/update-notifier/updates-available

DÜZENLE

Sorunun yeniden başlatılma kısmıyla ilgili olarak, bu komutu çalıştırın

/usr/lib/update-notifier/update-motd-reboot-required

Eğer yeniden başlatma gerekli değilse, çıkış vermeyecektir.


Sadece 11.04 çalışan bir makineyi kontrol ediyorum ve byobu 44 güncellemenin gerekli olduğunu gösteriyor. catönerdiğiniz dosya boş ve ilk işaret ettiğiniz komut dosyası bu makinede mevcut değil - yüklenmesi gereken bir paketin içinde mi? Bende dizin var /usr/lib/update-managerama yok update-notifier.
KayEss

11.04 masaüstünde test edilmiştir. Bu dosyalar update-notifier-common, yeni bir yüklemede otomatik olarak yüklenenlere aittir (10.10'dan yükseltme yapılmaz).
enzotib

Daha fazla makineye baktım. Buna /var/lib/update-notifier/apt-checkbenzeyenlere, iki sayıyı, yani 43; 24 (43 güncelleme, 24 güvenlik) geliyor, ancak bu bile tüm makinelerimde görünmüyor. Bu dosyanın farklı sürümlerdeki paketler arasında taşınmış olabileceğini düşünüyorum.
KayEss

21

Neden bunu yönetemiyorsun?

/usr/lib/update-notifier/apt-check --human-readable

Bu, / usr / lib / update-notifier / update-motd-updates-available komutunun en azından kullandığım Ubuntu sürümünde bilgi toplamak için yaptığı şeydir (12.10).


Sadece
Lucid'i

2
Çıktısını stderr'ye yazar. Bunu kim yapar?
KayEss

2
Tüm yaklaşımı update-motdve düşüncesini tamamen kenara çektiği için bu yaklaşımı tercih edin . Direkt komutu verdiğin için teşekkürler.
jefflunt

3

Ayrıca, bir yorum bulduğumda, minimal docker kapsayıcılarının içinde bir güncelleme kontrolü için komut dosyası oluşturulmuş bir yöntem araştırıyorum /usr/lib/update-notifier/apt-check:

apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst

Bu, update-notifier-commonpaketi yüklemeye gerek kalmadan komut dosyası güncelleme kontrolüne izin verir


0

check_aptEklentiyi, monitoring-plugins-basic( Nagios ) adresinden güncellemelerin mevcut olup olmadığına bağlı olarak farklı dönüş kodları alma avantajıyla kullanabilirsiniz:

$ /usr/lib/nagios/plugins/check_apt
APT WARNING: 18 packages available for upgrade (0 critical updates). |available_upgrades=18;;;0 critical_updates=0;;;0
$ echo $?
1

Dönüş kodları aşağıdaki anlamlara gelir:

  • 0 -> yükseltme için uygun paket yok
  • 1 -> kritik olmayan paketler yükseltme için kullanılabilir
  • 2 -> kritik güncellemeler mevcut

Referanslar:

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.