Когда я захожу на свой веб-сервер через SSH, я вижу информацию:
88 packages can be updated.
80 updates are security updates
Я пробовал apt-get update
, затем apt-get upgrade
, но каждый раз, когда я захожу, я все еще вижу сообщение об обновлениях. Как мне их установить?
Выполните все команды, набрав 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 для управления пакетами.
Это нормальное поведение.
Сообщение, которое вы видите при входе в систему, было добавлено к статусу сервера 'Message-Of-The-Day', который только обновляется каждый календарный день (или при загрузке/запуске сервера). Взгляните на содержимое, используя
cat /etc/motd
Все те же обновления, которые доступны, после запуска
sudo apt-get update && sudo apt-get upgrade
следует ожидать. Если вы затем повторно запустите эту команду, вам будет предложено только получить любые дальнейшие обновления, если были выпущены еще более новые (новые).
Используйте следующее:
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.
Мои (очень поздно, мне нравятся значки некромантов: -)) решение:
Установить wajig (один раз):
sudo apt-get install wajig
Если вы хотите полностью обновить / обновить свою систему
wajig dailyupgrade
(при необходимости он запросит пароль и выполнит все шаги по обновлению, обновлению, dist-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
этот сценарий удобен для автоматизации обновлений, включая удаление ненужных пакетов и выполнение перезагрузки, только если ОС хочет, чтобы один
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
Если вы снова запустите apt-get update
после завершения apt-get upgrade
, эти сообщения при входе в систему ssh должны исчезнуть.
Вам также может потребоваться это сделать -
sudo touch /etc/motd.tail
Из - Ubuntu сообщает мне, что у меня есть пакеты для обновления, когда я этого не делаю
У меня это сработало 14.04