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

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

88 packages can be updated.
80 updates are security updates

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

812
задан 14 February 2016 в 22:29

9 ответов

Выполните все команды, набрав 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'

Дополнительные сведения см. В документации по командам обслуживания APT для управления пакетами.

147
ответ дан 14 February 2016 в 22:29

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

Сообщение, которое вы видите при входе в систему, было добавлено к статусу сервера 'Message-Of-The-Day', который только обновляется каждый календарный день (или при загрузке/запуске сервера). Взгляните на содержимое, используя

cat /etc/motd

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

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

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

95
ответ дан 14 February 2016 в 22:29

Используйте следующее:

sudo apt update        # Fetches the list of available updates
sudo apt upgrade       # Installs some updates; does not remove packages
sudo apt full-upgrade  # Installs updates; may also remove some packages, if needed
sudo apt autoremove    # Removes any old packages that are no longer needed

Документация по каждой опции apt находится в manpages for apt. Они также доступны при запуске apt в вашем терминале.

Использование обоих вариантов upgrade и full upgrade вместе обычно не требуется, но в некоторых случаях это может помочь: см. документацию по обновлению Debian с Debian 9.

981
ответ дан 14 February 2016 в 22:29

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

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

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

     wajig dailyupgrade
     

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

8
ответ дан 14 February 2016 в 22:29

После входа на сервер, запустите команду ниже.

sudo apt-get upgrade

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

13
ответ дан 14 February 2016 в 22:29

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

Команды:

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade
9
ответ дан 14 February 2016 в 22:29

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

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

0
ответ дан 14 February 2016 в 22:29

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

0
ответ дан 14 February 2016 в 22:29

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

sudo touch /etc/motd.tail

Из - Ubuntu сообщает мне, что у меня есть пакеты для обновления, когда я этого не делаю

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

4
ответ дан 14 February 2016 в 22:29

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

Похожие вопросы: