Как установить обновления через командную строку?
Когда я захожу на свой веб-сервер через 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
Мое (очень поздно, мне нравятся значки некроманта:-)):
Установите Wajig (один раз):
sudo apt-get install wajig
Когда вы хотите обновить / полностью обновить вашу систему
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