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

Вопрос или проблема

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

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

Есть 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 (в ~/.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
    

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

Ссылка:

Мы можем использовать команду в одну строку (не нужно скриптов, просто скопируйте и вставьте)

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 не запрашивает разрешение на каждом шаге
  • && указывает, что следующая команда будет выполнена только в том случае, если предыдущая была успешно выполнена

Алиас

Вы также можете создать алиас. Добавьте следующую строку в свой ~/.bashrc или ~/.bash_aliases (если у вас есть)

alias upev='sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y'

Запустите source ~/.bashrc или source ~/.bash_aliases соответственно, чтобы получить ваш новый алиас, и теперь просто выполните

upev 

замечание: я выбрал upev для UPgrade EVerything, но вы можете выбрать что угодно.

Если вас раздражает чрезмерное количество ввода, вы можете определить себе “алиас”. Это можно сделать, например, добавив строку в конец вашего $HOME/.profile следующим образом:

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

(конечно, вы можете заменить “sau” на что-то другое — для меня это акроним для Sudo Apt-get Update). После сохранения файла откройте новую оболочку (или “source” снова .profile, выполнив . $HOME/.profile. Теперь вы всегда можете просто ввести “sau”, чтобы выполнить всю работу. Работает отлично для меня на нескольких машинах.

sudo apt install unattended-upgrades

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

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

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

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

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

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

Что ж, плохое известие в том, что нет, такого нет. Но хорошая новость в том, что я собрал одно.

И продолжая идею упрощения, я превратил его создание в “одну” командную строку. Вот она:

echo "sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade && sudo apt -y autoremove && sudo apt autoclean" > update && sudo mv update /usr/local/bin/update && sudo chmod +x /usr/local/bin/update

Теперь, когда возникает необходимость в обновлении, вы просто вводите update в терминале, вводите свой пароль и вуаля.


Это может выглядеть как одна из тех неразборчивых вещей, которые вы просто копируете и вставляете. Но на самом деле так быть не должно!
Смотрите, это на самом деле довольно просто, так что..

Что это такое :

  1. Каждая команда обновления (а затем дополнительные команды) были объединены с помощью && (включая apt autoremove для удаления больше не используемых зависимостей).
  2. -y была добавлена ко всем командам apt, которые в противном случае запрашивали бы положительный ответ для выполнения своих действий.
  3. echo была помещена перед командой, и строка была обрамлена "", чтобы ее символы не экранировались.
  4. > использовалось для перенаправления/записи вывода echo (нашей строки) в файл “update”.
  5. Файл перемещается в /usr/local/bin/, чтобы его можно было выполнить откуда угодно. Запись в этот путь требует прав суперпользователя, поэтому это невозможно сделать на предыдущем шаге.
  6. Файл стал исполняемым с помощью chmod.

Просто скопируйте и вставьте следующую команду alias и выполните ее:

alias fup='sudo apt-get -y update;sudo apt-get -y full-upgrade;sudo apt-get -y autoremove; sudo apt-get -y autoclean'

Теперь, выполняя fup, автоматически будут выполнены все задачи, определенные в alias.

Если вам нужно использовать это часто, выполните следующее.

  1. Создайте файл с именем .bash_aliases в вашем $HOME каталоге. Вы можете сделать это в терминале с помощью следующей команды:

    touch ./.bash_aliases
    
  2. В файл .bash_aliases вставьте команду alias, упомянутую выше.

  3. Теперь сохраните файл и выйдите.

  4. Отредактируйте файл .bashrc, чтобы экспортировать ваш файл .bash_aliases. Запустите:

    gedit .bashrc
    

    и вставьте следующий код в конец файла:

    if [ -f /home/abhyam/.bash_aliases ];then
    source /home/abhyam/.bash_aliases
    fi
    
  5. Сохраните файл и выйдите.

  6. Запустите:

    source .bashrc
    
  7. Теперь вы можете выполнять команду fup, чтобы полностью обновить и улучшить вашу систему в любое время.

Преимущество создания файла .bash_aliases заключается в том, что вы также можете создавать пользовательские алиасы в этом файле для других действий, и он будет автоматически загружаться каждый раз, когда вы открываете терминал.

Нашел это где-то еще:

    sudo -- sh -c "apt update && apt upgrade -y"

Также можно сделать алиас, чтобы использовать ‘upgrade’ в вашем ~/.bash_aliases с чем-то вроде:

    alias upgrade="sudo -- sh -c 'apt update && apt upgrade -y'"

и выполнить ‘source ~/.bash_aliases’, чтобы это работало

Я нашел эту тему, искал тот же клад. Если кто-то все еще заинтересован, я работал над проектом git, который проходит через те же команды.

#!/usr/bin/bash
    RED='\033[0;31m'
    GREEN='\033[0;32m'
    PURPLE='\033[0;35m'
    NC='\033[0m' # Без цвета

#Регион --- Обновления
    echo -e "${PURPLE}Выполняется: sudo apt update --fix-missing${NC}"

for i in {1..100}
do  
    sudo apt clean
    sudo apt update --fix-missing
    status=$?
if test $status -eq 0
then 
    echo -e "${GREEN}Успех: sudo apt update --fix-missing${NC}\n"
    break
else 
    echo -e "${RED}Неудача: sudo apt update --fix-missing${NC}\n"
    sleep 1m
fi
done

#Регион --- Обновления
for i in {1..100}
do  
echo -e "${PURPLE}Выполняется: sudo apt upgrade -y${NC}"
    sudo apt full-upgrade -y
    status=$?
if test $status -eq 0
then
    echo -e "${GREEN}Успех: sudo apt upgrade -y${NC}\n"
    break
else 
    echo -e "${RED}Неудача: sudo apt upgrade -y${NC}\n"
    sleep 1m
fi
done

#Регион
for i in {1..100}
do  
echo -e "${PURPLE}Выполняется: sudo apt autoremove -y${NC}"
    sudo apt autoremove -y
    status=$?
if test $status -eq 0
then 
    echo -e "${GREEN}Успех: sudo apt autoremove -y${NC}\n"
    break
else
    echo -e "${RED}Неудача: sudo apt autoremove -y${NC}\n"
    sleep 1m
fi
done

#Регион --- Выход из BasherUpdate
    echo -e "${PURPLE}Выход из BasherUpdate...${NC}\n"
    exit 0

Обратите внимание, что я использовал цикл по команде apt update, потому что я получал ошибки mirror sync in progress и хотел, чтобы он продолжал пытаться. Надеюсь, это поможет, и дайте мне знать, если у вас есть предложения!

Мне обычно нравится иметь файл, например clean.sh, и запускать его, когда я хочу обновить, улучшить и очистить все.

#!/bin/bash

run_command() {
    echo "  > $1"
    eval "$1"
}

# apt clean
run_command "sudo apt-get update"
run_command "sudo apt-get upgrade -y"
run_command "sudo apt-get dist-upgrade -y"
run_command "sudo apt-get clean"
run_command "sudo apt-get autoclean"
run_command "sudo apt-get autoremove -y"
run_command "sudo apt-get purge -y"
run_command "sudo apt-get autoremove --purge -y"

# bun (удалить, если у вас не установлен bun)
run_command "bun upgrade"

# сиротские пакеты
run_command "sudo apt-get autoremove --purge -y"

# журналы
run_command "sudo journalctl --vacuum-time=3d"

# snap
run_command "sudo snap refresh"
run_command "sudo snap remove --purge $(snap list --all | awk '/^disabled/{print $1}')"

# кэш apt
run_command "sudo rm -rf /var/lib/apt/lists/*"

# flatpak
run_command "flatpak update -y"
run_command "flatpak uninstall --unused"

# кэш npm
run_command "npm cache clean --force"

# старые ядра
run_command "sudo apt-get autoremove --purge -y"

echo "Очистка завершена"
sudo ./clean.sh

Ответ или решение

Вопрос обновления системы Ubuntu — это ключевая тема для пользователей, стремящихся поддерживать актуальность своих программ и безопасности системы. Чтобы успешно обновить все компоненты системы Ubuntu одним командным вызовом, существует несколько методов, которые можно использовать. В этом ответе представим наиболее подходящие способы в контексте командной строки и создания алиасов.

Однокомандное обновление системы Ubuntu

На данный момент не существует единой команды, которая бы полностью заменила последовательное выполнение команд update, upgrade и full-upgrade. Тем не менее, вы можете комбинировать несколько команд в одну строку для достижения желаемого результата. Вот как можно это сделать:

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y

Разбор команд:

  1. sudo apt update -y: обновляет список доступных пакетов и их версий, загружая данные из репозиториев.

  2. sudo apt full-upgrade -y: производит обновления для установленных пакетов, разрешая конфликтные зависимости. Используйте full-upgrade вместо upgrade, так как он может удалять неподходящие пакеты, обеспечивая систему максимально актуальной.

  3. sudo apt autoremove -y: удаляет ненужные пакеты, которые были установлены автоматически и больше не требуются.

  4. sudo apt clean -y: очищает локальный репозиторий скачанных пакетов.

  5. sudo apt autoclean -y: удаляет пакеты, которые больше не могут быть загружены.

Плюсы:

  • Эффективность: Все команды выполняются последовательно, и при удачном завершении предыдущей команды запускается следующая.
  • Автоматизация: Параметр -y позволяет избежать повторных запросов на подтверждение выполнения операций.

Создание алиаса для упрощения процесса

Если вы часто проводите обновления и хотите еще больше упростить процесс, вы можете создать алиас. Это позволит вам выполнять все действия одним словом.

  1. Откройте файл ~/.bashrc или ~/.bash_aliases в текстовом редакторе.

  2. Добавьте следующую строчку:

alias upev='sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y'
  1. Сохраните изменения и выйдите из редактора.

  2. Активируйте алиас, запустив команду:

source ~/.bashrc

Теперь вам просто нужно ввести upev в терминале для выполнения всех вышеперечисленных команд.

Альтернативный подход: автоматическое обновление

Если вы хотите полностью автоматизировать процесс обновления, рассмотрите возможность установки пакета unattended-upgrades. Это позволит системе автоматически устанавливать обновления, не требуя вашего вмешательства.

sudo apt install unattended-upgrades

Изучите конфигурационные файлы, расположенные в /etc/apt/apt.conf.d/, чтобы настроить частоту и тип обновлений согласно вашим предпочтениям.

Заключение

Хотя прямой команды для одновременного выполнения всех действий по обновлению в Ubuntu не существует, вы можете создать собственное решение, комбинируя команды и используя алиасы. Это значительно упростит процесс обновления системы, сохраняя её актуальной и безопасной. Регулярные обновления — важный аспект управления системой, и следуя вышеуказанным шагам, вы сможете сделать этот процесс эффективным и минимизировать время, затрачиваемое на него.

Оцените материал
Добавить комментарий

Капча загружается...