Одна команда оновити все в Ubuntu?


15

Я знаю, що є три команди для оновлення та оновлення всієї системи, це:

  • sudo apt-get update # Вилучає список доступних оновлень
  • sudo apt-get upgrade # Суворо оновлення поточних пакетів
  • sudo apt-get dist-upgrade # Встановлює оновлення (нові)

Чи є команда супер-оновлення, яка поєднує всі ці команди в одну?


1
Ні, ви можете зробити щонайбільшеsudo apt-get update && sudo apt-get dist-upgrade
heemayl

Це ще один командний рядок! ;-)
Fabby

Для тих, хто коли-небудь спіткнеться з цим питанням, ось який, пов'язаний з ним, updateі upgradeяк однолінійки askubuntu.com/a/1086022/295286
Сергій Колодяжний

Відповіді:


24

Є 3 гідних варіанти:

  1. Ви можете створити сценарій на зразок наступного:

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

    Назвіть це щось на зразок update.shі помістіть його, /usr/local/binа потім зробіть сценарій виконуваним, запустивши:

    sudo chmod +x /usr/local/bin/update.sh
  2. Іншим методом може бути створення псевдоніму bash (in ~/.bashrc) або там, де ви зазвичай зберігаєте псевдоніми:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Остаточним методом буде просто скріплення 3 команд разом у командному рядку:

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

Кілька варіантів ...

Довідка:


7
Коли ви користуєтесь dist-upgrade, немає сенсу робити це upgradeзаздалегідь ..
heemayl

3
@heemayl: Теоретично так. На практиці існують кутові випадки, коли прямий dist-upgradeможе зазнати невдачі, але upgradeслідом за цим dist-upgradeне буде. Багато в чому це пов’язано з помилками визначення залежності пакунків або змішуванням пакетів з різних випусків / дистрибутивів / PPA. Якщо ви використовуєте лише пакети з офіційних сховищ Canonical протягом точно одного випуску (за замовчуванням), такі помилки мають бути надзвичайно рідкісними та швидко виправлятись.
Девід Фоерстер

2
Є також варіант враження від друзів №3:for x in update {,dist-}upgrade; do sudo apt $x; done
Елі Барзілай

1
На кроці 1, що робить "set -e"?
karjedavpalaa

8

У нас може бути команда з одним лайнером (не потрібно сценаріїв, просто скопіювати та вставити)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - оновлює список пакунків, але не встановлює
  • upgrade - встановити нові версії пакетів, якщо є нові версії
  • full-upgrade - виконує функцію оновлення, але видалить встановлені пакети, якщо це потрібно для оновлення системи в цілому (виправлення поганих залежностей тоді)
  • autoremove, autocleanта clean- очистити старі пакунки, які вже не потрібні
  • опція -yне вимагає дозволу на кожному кроці

7

Якщо вас дратує занадто багато введення тексту, ви можете визначити себе "псевдонімом". Це можна зробити, наприклад, додавши рядок до кінця $HOME/.profileподібного:

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

(звичайно, ви можете замінити "sau" чимось іншим - для мене це абревіатура до Sudo Apt-get Update). Після збереження файлу відкрийте нову оболонку (або "джерело" .profile знову запущений . $HOME/.profile. Тепер ви завжди можете просто набрати "sau", щоб виконати повну роботу. Для мене це чудово підходить для декількох машин.


Гм. Напевно, я просто просив когось сказати мені його псевдонім: P
polandeer

Так, але це єдиний спосіб зробити це "єдиною командою". І ваше запитання цього не виключало;)
Іззи

Хитрий. У будь-якому випадку, єдина причина, яку я запитав, - це тому, що я хотів краще зрозуміти влучну, а не тому, що я лінивий писати sudo aptitude update && sudo aptitude upgrade. Причину, про яку я попросив, це те, що ти можеш це зробити з Pacman ( sudo pacman -Syu --noconfirm).
polandeer

Якщо вам доводиться це робити часто і на декількох машинах, ви раді, що принаймні можете мати псевдонім. Однак: apt-get updateмає параметр -uвідповідно до сторінки man, яка показує доступні оновлення. Не намагався, чи просить тоді застосувати їх (не майте біля мене Ubuntu / Debian, щоб перевірити зараз).
Іззі


2
sudo apt install unattended-upgrades

Це найкраща лінія досі. У всіх інших рішеннях вам потрібно щодня вводити один рядок щоразу. Це справді єдине рішення. Дивіться офіційну підходящу документацію від ubuntu!

Редагуючи .confфайли цього пакету, /etcви можете встановити частоту update, install, clean, autoremove...

Або просто та надіслати електронною поштою, включаючи Повідомлення про доступність оновлення зі списком назв пакетів

При кожній зміні генерується гарний маленький файл журналу, і я думаю, що невеликий сценарій може бути записаний як розширення gui, щоб також з’являтися сповіщення на робочому столі (поза темою, ха-ха)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.