Когда я подключаюсь по ssh к серверу Ubuntu, на котором запущен действующий веб-сайт, я вижу следующие сообщения:
2 packages can be updated.
2 updates are security updates.
В этот момент я могу обновить и обновить с помощью следующей команды:
sudo apt-get update
sudo apt-get upgrade
Рекомендуется ли запускать вышеуказанное на реальном сервере с критически важными приложениями?
Короткий ответ - нет.
Лучше тщательно выбирать и тестировать обновления, прежде чем применять их в производственной среде. Перед запуском и обновлением на производственных машинах они сначала применяются в среде контроля качества и проходят через набор тестов, чтобы убедиться, что они работают должным образом.
Если ты бежишь apt-get --just-print upgrade
и apt-get --just-print update
он покажет вам пакеты.
Я вижу, вы используете 10.04. Все, что они вкладывают в эти репо, тщательно проверяется, поэтому вы должны быть в безопасности.
По моему опыту, ни одна из моих служб никогда не была прервана из-за apt-get update
/apt-get upgrade
. Однако, если это критически важно, вы должны принять меры предосторожности и предупредить пользователей о предстоящем техническом обслуживании и запланировать его на время наименьших сбоев. Вряд ли что-нибудь пойдет не так, но сделайте это, если хотите быть в безопасности.
Также послушайте шраймер внизу (или вверху), если он действительно критически важно, сначала обязательно протестируйте его на непроизводственной системе.
Вот почему у нас есть тестовый сервер с той же средой и теми же приложениями, чтобы мы могли видеть, что происходит при обновлении, и убедиться, что все по-прежнему работает.
Без этого вам нужно будет сказать, какие пакеты нужно обновить, и посмотреть, используются ли эти пакеты вашими критически важными приложениями. Если это веб-сервер, и он хочет обновить apache, вам нужно ожидать в лучшем случае минуту или две простоя, пока он останавливает сервер, обновляет файлы, а затем запускает его снова. Некоторые библиотеки требуют перезапуска некоторых серверов, другие - нет.
В общем, всегда полезно иметь тестовую среду. Даже с небольшими проектами, когда это возможно, я стараюсь сохранить копию своей среды в виде образа EC2, чтобы я мог сломать вещи, не опасаясь за производство.
Отсутствие тестовой среды: запуск apt-get --just-print upgrade должен показать вам список. Обновляйте только те пакеты, которые вы не ожидаете коснуться вашего приложения.
У меня были проблемы с выполнением aptitude safe-upgrade
на живом (некритичном) сервере. Иногда, когда пакеты обновляются, например postgesql, mysql или другие службы, они перезапускаются. Если приложения, использующие эти службы, плохо реагируют на исчезновение базы данных из-под них, могут возникнуть проблемы.
В частности, я обнаружил, что мои приложения rails 3, использующие сиквел в качестве ORM и postgresql в качестве базы данных, зависают, когда postgresql перезапускается без предварительной остановки rails. Это ошибка, но бывает.