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

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

88 packages can be updated.
80 updates are security updates

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

578 голосов | спросил Marlin 5 +04002012-10-05T17:44:26+04:00312012bEurope/MoscowFri, 05 Oct 2012 17:44:26 +0400 2012, 17:44:26

10 ответов


726

Попробуйте следующее:

 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-pages для apt-get . Они также доступны при запуске man apt-get на вашем компьютере.

ответил SirCharlo 5 +04002012-10-05T18:05:25+04:00312012bEurope/MoscowFri, 05 Oct 2012 18:05:25 +0400 2012, 18:05:25
82

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

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

cat /etc/motd

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

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

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

ответил david6 6 +04002012-10-06T00:26:57+04:00312012bEurope/MoscowSat, 06 Oct 2012 00:26:57 +0400 2012, 00:26:57
70

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

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

sudo bash -c 'for i in update {,dist-}upgrade auto{remove,clean}; do apt-get $i -y; done'
ответил Benny 8 22016vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2016 12:28:49 +0300 2016, 12:28:49
10

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

sudo apt-get upgrade

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

ответил Benny 8 22016vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2016 12:28:49 +0300 2016, 12:28:49
8

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

Команды

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade
ответил burtsevyg 20 PMpSat, 20 Apr 2013 13:29:49 +040029Saturday 2013, 13:29:49
7

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

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

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

    wajig dailyupgrade
    

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

ответил Rmano 26 AM000000100000005131 2015, 10:47:51
4

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

sudo touch /etc/motd.tail

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

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

ответил John Behan 12 +04002014-10-12T06:22:40+04:00312014bEurope/MoscowSun, 12 Oct 2014 06:22:40 +0400 2014, 06:22:40
1

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

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

ответил Scott Stensland 16 SatEurope/Moscow2017-12-16T21:47:31+03:00Europe/Moscow12bEurope/MoscowSat, 16 Dec 2017 21:47:31 +0300 2017, 21:47:31
0

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

ответил Francisco Luz 13 PM00000030000004231 2014, 15:27:42
-2

Вы можете попробовать все:

sudo apt-get install software-center (gets the software center)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
ответил user2805313 18 AM00000050000004631 2014, 05:36:46

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132