Как установить обновления через командную строку?

Когда я захожу на свой веб-сервер через SSH, я вижу информацию:

88 packages can be updated.
80 updates are security updates

Я старался apt-get update затем apt-get upgrade но каждый раз, когда я вхожу, я все еще вижу сообщение об обновлениях. Как мне их установить?

9 ответов

Попробуй это:

sudo apt-get update        # Fetches the list of available updates
sudo apt-get upgrade       # Strictly upgrades the current packages
sudo apt-get dist-upgrade  # Installs updates (new ones)

Документация о каждом apt-get опцию можно найти в man-страницах для apt-get. Они также доступны, запустив man apt-get на твоем компьютере.

Выполните все команды, набрав sudo один раз:

sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'

или же

sudo -s -- <<EOF
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y
apt-get autoclean -y
EOF

или даже короче в цикле for (спасибо @dessert)

sudo bash -c 'for i in update {,dist-}upgrade auto{remove,clean}; do apt-get $i -y; done'

Это нормальное поведение.

Сообщение, которое вы видите при входе в систему, было добавлено к состоянию сервера "Сообщение дня", которое обновляется только каждый календарный день (или при загрузке / запуске сервера). Посмотрите на содержимое, используя

cat /etc/motd

Все еще вижу те же обновления доступны после запуска

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

следует ожидать. Если вы затем повторно запустите эту команду, вам будет предложено ввести дополнительные обновления только в том случае, если были выпущены еще более новые (более новые) обновления.

Как только вы войдете в свой сервер, выполните команду ниже.

sudo apt-get upgrade

Это должно сделать свое дело. Может быть, вам просто нужно перезагрузить сервер.

В моем случае у меня был неправильный или недоступный URL в /etc/apt/sources.list. После удаления этого URL я смог успешно обновить все пакеты.

Команды:

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade

Мое (очень поздно, мне нравятся значки некроманта:-)):

  1. Установите Wajig (один раз):

    sudo apt-get install wajig 
    
  2. Когда вы хотите обновить / полностью обновить вашу систему

    wajig dailyupgrade
    

    (при необходимости он запрашивает пароль и выполняет все действия по обновлению, обновлению, dist-upgrade и автоматическому удалению).

Вам также может понадобиться сделать это -

sudo touch /etc/motd.tail

От - Ubuntu говорит мне, что у меня есть пакеты для обновления, когда я не

У меня сработало 14.04

Если вы бежите apt-get update снова после apt-get upgrade было сделано заключение, что эти сообщения при входе в систему через ssh должны исчезнуть.

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

remote_user=usernamehere
remote_host=example.com

ssh -A -n -o StrictHostKeyChecking=no ${remote_user}@${remote_host} && \
sudo apt-get update && \
sudo apt-get -f install -y && \
sudo apt-get -o Dpkg::Options::="--force-confnew" -yy dist-upgrade -y && \
sudo apt-get autoremove -y && \
[ -f /var/run/reboot-required ] && \
echo "sudo reboot now" && \
sudo reboot now 

чтобы запустить на вашем локальном окне просто оставить эту первую строку, делая SSH

вот псевдоним, который я сохраняю в ~/.bashrc

alias doit='echo; kill $( ps -eafww|grep update-manager|grep -v grep | grep update-manager | tr -s " " |cut -d" "  -f2 ) > /dev/null 2>&1;  echo "sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo";echo;sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo '

тогда на терминале я просто выдаю doit

Другие вопросы по тегам