Jedno polecenie, aby zaktualizować wszystko w Ubuntu?

15

Wiem, że istnieją trzy polecenia, aby zaktualizować, a następnie zaktualizować cały system, są to:

  • sudo apt-get update # Pobiera listę dostępnych aktualizacji
  • sudo apt-get upgrade # Ściśle aktualizuje bieżące pakiety
  • sudo apt-get dist-upgrade # Instaluje aktualizacje (nowe)

Czy istnieje polecenie super-upgrade, które łączy wszystkie te polecenia w jedno?

JohnDoea
źródło
1
Nie, możesz zrobić co najwyżejsudo apt-get update && sudo apt-get dist-upgrade
heemayl
To wciąż jedna linia poleceń! ;-)
Fabby
Dla tych, którzy pewnego dnia natkną się na to pytanie, oto pokrewny do uruchomienia updatei upgradejako linijki askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Odpowiedzi:

24

Istnieją 3 przyzwoite opcje:

  1. Możesz utworzyć skrypt podobny do następującego:

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

    Nazwij to jak update.shi umieść w nim, /usr/local/bina następnie uruchom skrypt, uruchamiając:

    sudo chmod +x /usr/local/bin/update.sh
  2. Inną metodą byłoby utworzenie aliasu bash (in ~/.bashrc) lub gdziekolwiek zwykle przechowujesz swoje aliasy:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Ostatnią metodą byłoby po prostu napisanie 3 poleceń razem w wierszu poleceń:

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

Kilka możliwości ...

Odniesienie:

andrew.46
źródło
7
Kiedy używasz, dist-upgradenie ma sensu robić tego upgradewcześniej ...
heemayl
3
@heemayl: Teoretycznie tak. W praktyce istnieją przypadki narożne, w których bezpośrednie dist-upgrademoże się nie powieść, ale upgradepotem dist-upgradenie. Jest to w dużej mierze spowodowane błędami definicji zależności pakietów lub mieszaniem pakietów z różnych wydań / dystrybucji / umów PPA. Jeśli używa się tylko pakietów z oficjalnych repozytoriów Canonical dla dokładnie jednego wydania (domyślne), takie błędy powinny być niezwykle rzadkie i szybko naprawiane.
David Foerster,
2
Istnieje również wariant # 3 dla for x in update {,dist-}upgrade; do sudo apt $x; done
imponujących
1
W kroku 1, co robi „set -e”?
karjedavpalaa
8

Możemy mieć jedno-liniowe polecenie (bez potrzeby skryptów, wystarczy skopiować i wkleić)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - aktualizuje listę pakietów, ale nie instaluje się
  • upgrade - zainstaluj nowe wersje pakietów, jeśli są dostępne nowe wersje
  • full-upgrade - wykonuje funkcję aktualizacji, ale usunie aktualnie zainstalowane pakiety, jeśli będzie to konieczne do aktualizacji systemu jako całości (wówczas naprawiając złe zależności)
  • autoremove, autocleanI clean- czyste starych pakietów, które nie są już potrzebne
  • opcja -ynie prosi o pozwolenie na każdym kroku
João Pimentel Ferreira
źródło
7

Jeśli denerwuje Cię zbyt dużo pisania, możesz zdefiniować siebie jako „alias”. Można to zrobić np. Dodając wiersz na końcu swojego w $HOME/.profileten sposób:

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

(oczywiście możesz zastąpić „sau” czymś innym - dla mnie to skrót od Sudo Apt-get Update). Po zapisaniu pliku otwórz nową powłokę (lub „źródło” .profile, ponownie działający . $HOME/.profile. Teraz możesz po prostu wpisać „sau”, aby wykonać całą pracę. Działa świetnie dla mnie na wielu komputerach.

Izzy
źródło
Hm Chyba właśnie
prosiłam
Tak, ale to jedyny sposób, aby to zrobić za pomocą „pojedynczego polecenia”. I twoje pytanie tego nie wykluczyło;)
Izzy
Zdradliwy. W każdym razie, jedynym powodem Poprosiłem dlatego chciałem zrozumieć apt lepiej, a nie dlatego, że jestem zbyt leniwy, aby napisać sudo aptitude update && sudo aptitude upgradePowodem Poprosiłem było, ponieważ można to zrobić z Pacman ( sudo pacman -Syu --noconfirm).
polandeer
Jeśli musisz to robić często i na wielu komputerach, ciesz się, że możesz mieć przynajmniej alias. Jednak: apt-get updatema parametr -u, zgodnie ze stroną podręcznika, która pokazuje dostępne aktualizacje. Nie próbowałem, czy następnie poprosi o ich zastosowanie (nie mam Ubuntu / Debian w pobliżu, aby sprawdzić teraz).
Izzy
3

Niestety te dwa polecenia muszą być wykonane osobno.

Cormac O'Brien
źródło
2
sudo apt install unattended-upgrades

To najlepsza jak dotąd linia. Wszystkie pozostałe rozwiązania wymagają ciągłego wpisywania tej samej linii każdego dnia. To jest naprawdę jedno polecenie. Zobacz oficjalną dokumentację apt Ubuntu!

Edytując .confpliki tego pakietu /etc, możesz ustawić częstotliwość update, install, clean, autoremove...

Lub po prostu e-mailem, w tym powiadomieniem, że aktualizacja jest dostępna z listą nazw pakietów

Przy każdej zmianie generowany jest ładny mały plik dziennika i wyobrażam sobie, że można napisać mały skrypt jako rozszerzenie GUI, które pojawiałoby się również w powiadomieniach na pulpicie (poza tematem haha)

nie-koder
źródło