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

15

Я знаю, что есть три команды для обновления, а затем обновления всей системы, это:

  • sudo apt-get update # Получает список доступных обновлений
  • sudo apt-get upgrade # Строго обновляет текущие пакеты
  • sudo apt-get dist-upgrade # Устанавливает обновления (новые)

Есть ли команда супер-обновления, которая объединяет все эти команды в одну?

JohnDoea
источник
1
Нет, вы можете сделать самое большееsudo apt-get update && sudo apt-get dist-upgrade
Heemayl
Это все еще одна командная строка! ;-)
Fabby
Для тех, кто когда-нибудь наткнется на этот вопрос, вот соответствующий, который нужно запустить, updateи в upgradeкачестве однострочников askubuntu.com/a/1086022/295286
Сергей Колодяжный

Ответы:

23

Есть 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

Несколько вариантов ...

Ссылка:

andrew.46
источник
6
Когда вы используете, 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"?
Карджедавпалаа
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
Да, но это единственный способ сделать это с помощью «единой команды». И ваш вопрос не исключил этого;)
Иззи
Tricky. В любом случае, единственная причина, по которой я спросил, была в том, что я хотел лучше понять, а не потому, что мне лень писать sudo aptitude update && sudo aptitude upgrade. Я спросил, потому что вы можете сделать это с помощью pacman ( sudo pacman -Syu --noconfirm).
Поландер
Если вам приходится делать это часто и на нескольких машинах, вы будете рады, что у вас будет хотя бы псевдоним. Однако: apt-get updateимеет параметр в -uсоответствии со страницей руководства, которая показывает доступные обновления. Не пытался ли он потом применить их (не располагайте Ubuntu / Debian рядом со мной, чтобы проверить прямо сейчас).
Иззи
3

К сожалению, две команды должны выполняться отдельно.

Кормак О'Брайен
источник
2
sudo apt install unattended-upgrades

Это лучшая линия еще. Для всех остальных решений вы должны набирать одну строку снова и снова каждый день. Это действительно решение с одной командой. Смотрите официальную документацию от Ubuntu!

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

Или просто и по электронной почте, включая уведомление, что обновление доступно со списком имен пакетов

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

не-а-coderp
источник