Ubuntu'daki her şeyi güncellemek için tek bir komut mu?


15

Tüm sistemi güncellemek ve yükseltmek için üç komut olduğunu biliyorum, bunlar:

  • sudo apt-get update # Mevcut güncellemelerin listesini getirir
  • sudo apt-get upgrade # Geçerli paketleri kesinlikle yükseltir
  • sudo apt-get dist-upgrade # Güncellemeleri yükler (yenileri)

Tüm bu komutları biriyle birleştiren bir süper yükseltme komutu var mı?


1
Hayır, en fazla yapabilirsinizsudo apt-get update && sudo apt-get dist-upgrade
heemayl

Hala bir komut satırı! ;-)
Fabby

Bir gün bu soruya rastlayacak olanlar için, ilgili bir tane var updateve upgradetek gömlekli askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Yanıtlar:


25

3 iyi seçenek vardır:

  1. Aşağıdaki gibi bir komut dosyası oluşturabilirsiniz:

    #!/bin/bash
    set -e
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    Buna benzer bir şey çağırın update.shve yerleştirin /usr/local/binve betiği çalıştırarak çalıştırılabilir yapın:

    sudo chmod +x /usr/local/bin/update.sh
  2. Başka bir yöntem, bir bash takma adı (in ~/.bashrc) veya normal olarak takma adlarınızı sakladığınız her yerde oluşturmaktır :

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Son yöntem, komut satırında 3 komutu bir araya getirmektir:

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

Birkaç seçenek ...

Referans:


7
Kullanırken önceden dist-upgradeyapmanın bir anlamı yoktur upgrade..
heemayl

3
@heemayl: Teorik olarak evet. Uygulamada, bir direktin dist-upgradebaşarısız olabileceği, ancak upgradetakip dist-upgradeedemeyeceği köşe vakaları vardır . Bunun nedeni büyük ölçüde paket bağımlılığı tanımlama hatalarından veya farklı sürümlerden / dağıtımlardan / PPA'lardan gelen karıştırma paketlerinden kaynaklanmaktadır. Canonical'ın resmi depolarından paketler yalnızca bir sürüm (varsayılan) için kullanılıyorsa, bu tür hatalar son derece nadir olmalı ve hızlı bir şekilde düzeltilmelidir.
David Foerster

2
Ayrıca # 3'ün etkileyici arkadaş varyantı var:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay

1
1. adımda, "set -e" ne yapar?
karjedavpalaa

8

Tek satırlık bir komutumuz olabilir (komut dosyalarına gerek yok, sadece kopyala yapıştır)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - paketlerin listesini günceller ancak yüklemez
  • upgrade - yeni sürümler varsa paketlerin yeni sürümlerini yükleyin
  • full-upgrade - yükseltme işlevini gerçekleştirir, ancak sistemi bir bütün olarak yükseltmek gerekirse şu anda yüklü paketleri kaldırır (kötü bağımlılıkları düzeltmek)
  • autoremove, autocleanVe clean- daha fazla gerekli değildir temiz eski paketler
  • seçeneği -yher adımda izin istemez

7

Çok fazla yazarak rahatsız olursanız, kendinize bir "takma ad" tanımlayabilirsiniz. Bu, örneğin, istediğiniz $HOME/.profilegibi bir satır ekleyerek yapılabilir :

alias sau='sudo aptitude update && sudo aptitude upgrade'

(tabii ki "sau" yu başka bir şeyle değiştirebilirsiniz - bu benim için Sudo Apt-get Güncellemesinin kısaltmasıdır). Dosyayı kaydettikten sonra, yeni bir kabuk açın (veya ".profile" kaynağını "yeniden açın . $HOME/.profile. Artık işi tamamlamak için her zaman" sau "yazabilirsiniz. Birden fazla makinede benim için harika çalışıyor.


Hm. Sanırım sadece birisinden bana takma ad
vermemi istedim

Evet, ama bunu "tek bir komut" ile yapmanın tek yolu bu. Ve sorunuz bunu dışlamadı;)
Izzy

Zor. Her neyse, sorduğum tek neden, yazmayı çok tembel olduğum için değil, daha iyi anlamak istedim çünkü sudo aptitude update && sudo aptitude upgradeSorduğum neden pacman ( sudo pacman -Syu --noconfirm) ile yapabileceğinizdi .
polandeer

Bunu sık sık ve birden fazla makinede yapmanız gerekiyorsa, en azından bir takma adınız olabileceğine sevinirsiniz. Ancak: mevcut güncellemeleri gösteren kılavuz sayfasına göre apt-get updatebir parametresi vardır -u. Daha sonra bunları uygulamak isteyip istemediğini denemedim (şu anda kontrol etmek için yakınımda hiçbir Ubuntu / Debian yok).
Izzy


2
sudo apt install unattended-upgrades

Bu henüz en iyi çizgi. Diğer tüm çözümler her gün bir satır tekrar tekrar yazmak zorunda. Bu gerçekten tek komutlu bir çözümdür. Ubuntu'dan resmi apt belgelerine bakın !

.confBu paketin dosyalarını düzenleyerek /etcsıklığını ayarlayabilirsiniz update, install, clean, autoremove...

Veya basitçe ve e-posta dahil Paket adları listesiyle bir güncelleme olduğunu bildiren bir bildirim

Her değişiklikle güzel bir küçük günlük dosyası oluşturulur ve küçük bir komut dosyasının masaüstü bildirimlerinde de görüntülenmesi için bir gui uzantısı olarak yazılabileceğini hayal ediyorum (konu haha)

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.