Güncelleştirmeleri komut satırıyla nasıl yükleyebilirim?


692

Web sunucuma SSH ile giriş yaptığımda şu bilgileri görüyorum:

88 packages can be updated.
80 updates are security updates

apt-get updateO apt-get upgradezaman denedim ama her giriş yaptığımda hala güncellemeler hakkındaki mesajı görüyorum. Onları nasıl kurarım?


1
Önce bunu denediniz mi: sudo apt-get clean bu önbelleği temizlemelidir.
user2635584

Yanıtlar:


868

Bunu kullan:

sudo apt update        # Fetches the list of available updates
sudo apt upgrade       # Installs some updates; does not remove packages
sudo apt full-upgrade  # Installs updates; may also remove some packages, if needed
sudo apt autoremove    # Removes any old packages that are no longer needed

Her aptseçenekle ilgili dokümanlar apt öğesinin man sayfalarında bulunabilir . Bunlara ayrıca man aptterminalinizde çalışarak da erişilebilir .

İkisinin upgradeve full-upgradebirlikte kullanılması genellikle gerekli değildir, ancak bazı durumlarda yardımcı olabilir: Debian 9'dan Yükseltmeler hakkında Debian belgelerine bakın .


29
Bundan sudo rebootsonra her zaman yeniden başlatmalı mıyım ?
hellboy

1
Çalışması için -y eklemeliydim . Ubuntu 17.10
T04435

124

sudoBir kez yazarak tüm komutları yürütün :

sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'

veya

sudo -s -- <<EOF
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y
apt-get autoclean -y
EOF

veya for döngüsü içinde daha kısa (Teşekkürler @ tatlı)

sudo bash -c 'for i in update {,dist-}upgrade auto{remove,clean}; do apt-get $i -y; done'

3
dist-upgradeVe autoremovetarafından birleştirebilirsiniz apt-get dist-upgrade --auto-remove.
jarno

3
Her iki çalıştırmak için gerek yoktur upgradeve dist-upgrade.
jarno

3
@ jarno dist-upgradepaketleri kaldırabilir. Kullanılması upgradeyeni paket versiyonları eskilerinden daha kolay bağımlılıkları tatmin zaman gibi bu, önleyebilir ilk. Ubuntu’nun kararlı bir sürümünde paketleri yükseltirken bunun ne kadar sıklıkla yardımcı olduğunu bilmiyorum, ancak bazı diğer durumlarda da öneriliyor . Şahsen, nadiren dist-upgradeUbuntu'da kullanırım ve yaptığım zaman asla geçemem -y. Fakat eğer koşup dist-upgradegeçmekse -y, önce upgradeeylemi gerçekleştirmenin makul olacağını düşünüyorum .
Eliah Kagan

1
@ jarno, seçtiğiniz --autoremoveyükseltme komutuyla birlikte zincirleme yapabilirken, paketlerden biri arızalandığında kirli olmayan bir durumla sonuçlanabileceği için tavsiye edilmez. Daha iyi bir şey, autoremovegüncelleme işlemi tamamlandıktan sonra tek başına ayrı bir satırda kullanmaktı , eski yapılandırma dosyalarını temizlemek istiyorsanız, bununla birlikte zincir oluşturabilirsiniz --purge.
Videonauth

@Videonauth oh, nasıl aptuygulandığına bağlı . Sistemin kirli durumda bırakılmaması için uygulanması gerektiğini düşünüyorum.
jarno

91

Bu normal bir davranış.

Giriş sırasında gördüğünüz mesaj, sadece her bir takvim günü (veya sunucu önyüklemesi / başlatması sırasında güncellenen) 'Günün Mesajı' sunucu durumuna eklenmiştir . Kullanarak içeriğe bir göz atın

cat /etc/motd

Çalıştıktan sonra da aynı güncellemeleri görmeye devam edin

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

beklenebilir. Sonra Eğer bu komutu yeniden çalıştırmak sadece daha da (daha yeni) güncellemeler serbest bırakıldı eğer başka güncellemeler için istenir.


Sistemdeki herhangi bir dosya değişikliğinin bir sonraki takvim gününe kadar göstermediğini, değişiklikleri hemen görmeye başlamak için "yenile" gibi bir yöntem olduğunu fark ediyorum.
aljuaid86,

Günün Mesajı içeriği ile ilgili güncellemeler mi , yoksa çalıştırdıktan sonra istediklerinizi almadığınız sudo apt-get update && sudo apt-get upgrademı?
david6,

3
Bu, 16.04'te artık doğru değil. "Apt-get dist-upgrade" ve yeniden başlatma sonrasında "0 paket yükseltilebilir" ifadesini görüyorum.
Bogdan Calmac

1
'.. ya da sunucu yeniden başlatmada ..' ifadesi Yukarıdaki kapağı yok.
david6

3
cat: / etc / motd: Böyle bir dosya veya dizin yok
xApple

11

Sunucunuz oturum açtıktan sonra aşağıdaki komutu çalıştırın.

sudo apt-get upgrade

Hile yapmalı. Belki de sunucunuzu yeniden başlatmanız gerekir.


3
Cevabınız için teşekkür ederim ama sudo apt-get upgrade denedim. Sunucuyu yeniden başlatmak söz konusu değil, çünkü sitelerim var.
Marlin

3
Çekirdeği doğrudan etkileyen bir güncelleştirme yüklediyseniz ya da bir sürücü güncelleştirmesiyse ya da kritik bir güvenlik güncelleştirmesiyse, sunucuyu yeniden başlatmanız gerekir.
Evandro Silva

Belki bir dakika için 503 hatasını düşünmelisin. Bunun ne tür bir güncelleme olduğunu biliyor musunuz?
NorTicUs

1
Sunucu çevrimdışıysa 503'ü nasıl verebilirsiniz?
saat

8

Benim durumumda, ben bir yanlış veya erişilemiyor vardı URL'yi içinde /etc/apt/sources.list 'dosyanıza. Bu URL’yi kaldırdıktan sonra tüm paketleri başarıyla güncelleyebildim.

Komutlar:

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade

7

Benim (gerçekten geç, necromancer rozetlerini severim :-)) çözümüm:

  1. Wajig'i kurun (bir kez):

    sudo apt-get install wajig 
    
  2. Sisteminizi tamamen güncellemek / yükseltmek istediğinizde

    wajig dailyupgrade
    

    (gerekirse parola isteyecektir ve tüm güncelleme, yükseltme, yükseltme, otomatik yükseltme adımlarını sizin için yapacaktır).



1

Bu komut, gereksiz paketlerin kaldırılması ve yalnızca işletim sistemi bir tane isterse yeniden başlatmanın yapılması dahil olmak üzere güncellemeleri otomatikleştirmek için kullanışlıdır

remote_user=usernamehere
remote_host=example.com

ssh -A -n -o StrictHostKeyChecking=no ${remote_user}@${remote_host} && \
sudo apt-get update && \
sudo apt-get -f install -y && \
sudo apt-get -o Dpkg::Options::="--force-confnew" -yy dist-upgrade -y && \
sudo apt-get autoremove -y && \
[ -f /var/run/reboot-required ] && \
echo "sudo reboot now" && \
sudo reboot now 

Yerel kutunuzda koşmak için sadece ssh yapan ilk satırdan çıkın.

Burada ~ / .bashrc 'de sakladığım takma ad var

alias doit='echo; kill $( ps -eafww|grep update-manager|grep -v grep | grep update-manager | tr -s " " |cut -d" "  -f2 ) > /dev/null 2>&1;  echo "sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo";echo;sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo '

sonra terminalde sadece sorun doit


0

Eğer çalıştırırsanız apt-get updatesonra yeniden apt-get upgradesonucuna ulaşılmıştır, ssh giriş sırasında bu mesajlar yok olacaktır.

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.