Мы запускаем производственный сервер на базе Ubuntu 9.10 Кармическая коала, ядро почти обновлено (2.6.38.2-grsec-xxxx-grs-ipv6-64), но репозиторий кармических пакетовсейчас до смешного устарело, например. Nginx - 0.7.62 - действительно глючит - а последняя стабильная версия 1.0.x !!
Вдобавок жизнь Кармики подошла к концу.
Этот вопрос: Лучшие практики для поддержания пакетов UNIX в актуальном состоянии? выглядит похоже, но на самом деле включает только некоторые предложения по менеджерам пакетов; совсем не то что мне нужно!
Итак, варианты, которые я вижу:
Недостатки 1. достаточно очевидны.
Однако я не осмеливаюсь выбирать путь dist-upgrade, так как простои и возможные катастрофические последствия для производственного сервера просто невозможно предсказать, и в настоящее время я в основном перестраиваю свои собственные необходимые пакеты. Но я уверен, что некоторых мне не хватает.
Мне не совсем понятно, каковы риски (стабильность / совместимость) использования бэкпортов ubuntu, кроме того, для 9.10 больше официально ничего не предусмотрено. Launchpad - это индивидуальные сборки, аналогичный вопрос - что лучше, чем компилировать собственную.
Сборка пакетов кажется прекрасной, но: 1. Иногда у меня возникают проблемы с воспроизведением правильных параметров ./configure, чтобы повторно использовать мои существующие файлы конфигурации. 1. Я уверен, что существует множество пакетов и зависимостей, которые сейчас довольно устарели и могут быть источником ошибок
Наконец ... как насчет "старых" пакетов в недавнем дистрибутиве? Думаю, нет другого выхода, кроме как восстановить их самому? Является ли комбинация 2 и 4, наконец, лучшим путем?
Есть ли задача консенсус относительно того, как лучше всего это сделать, или причины, по которым некоторые из моих вариантов подходят / не подходят?
Если на самом деле нет, я соглашусь, что вопрос будет закрыт, прежде чем создавать бесконечный поток!
Поддержание собственного дистрибутива - это большая работа. Даже если вы сохраните бэкпорты, вскоре вы столкнетесь с проблемами безопасности, которые нужно исправить, и вам придется вытаскивать низкоуровневые библиотеки, чтобы продолжать обновлять свое программное обеспечение, что может сломать другие вещи (я поддерживаю серверы с дистрибутивами 6-летней давности, это не смешно).
Обновление - вообще хорошее решение. do-release-upgrade
сделан хорошо, и вы сможете обновиться без проблем (особенно если вы использовали только официальные пакеты).
Моим любимым решением может быть путь переустановки. В частности, вашими серверами следует управлять с помощью системы управления конфигурацией, такой как Puppet, Cfengine или Chef. Если все ваши потребности в конфигурации / пакете указаны с помощью такого инструмента и ваши данные находятся в безопасности на отдельном разделе, гораздо проще быстро переустановить. Вы просто устанавливаете новый дистрибутив, не стирая разделы данных, а затем запускаете инструмент управления конфигурацией, чтобы сбросить ваши пакеты / конфигурации. Я считаю, что это самый чистый способ, особенно если вам нужно управлять несколькими серверами.
Если вы используете неофициальные пакеты, вы можете идентифицировать их перед обновлением / переустановкой. проверка обслуживания может помочь вам определить пакеты, которые официально не поддерживаются Ubuntu:
$ bzr branch lp:ubuntu-maintenance-check
$ cd ubuntu-maintenance-check
$ ./maintenance-check -f n
Если вы хотите переустановить, вы также можете экспортировать список установленных пакетов:
$ dpkg --get-selections > myinstall.txt
и ваша база данных debconf:
$ debconf-get-selections > debconf.txt # from the debconf-utils package
В качестве примечания, поскольку в настоящее время вы используете Karmic, обновление до Lucid, которое является выпуском LTS, все еще поддерживается до 2015 года для основных серверных пакетов, может быть не слишком жестким. Это должно оставить у вас достаточно времени для настройки жизнеспособной автоматической установки в будущем.
Когда вы спрашиваете о пакетах Launchpad, я полагаю, вы имеете в виду PPA. Есть масса разных PPA. Некоторые экспериментальные, некоторые стабильные. Некоторые из них поддерживаются официальными разработчиками Ubuntu, некоторые - людьми, которые не знают, как правильно создавать пакеты. В целом трудно сказать, хороши ли пакеты, которые вы найдете в PPA, нет общего правила. Лучшим намеком в этом случае может быть слишком пристальный взгляд на владельца PPA, чтобы получить представление о возможном качестве их пакетов.
Единственный реальный путь вперед - это обновление дистрибутива. Я понимаю, что вы нервничаете по этому поводу, поскольку к настоящему времени вы будете прыгать на несколько выпусков вперед (11.04 только что вышла).
Я бы порекомендовал сделать клон дисков на этой машине, а затем использовать отдельный компьютер для работы с клонами и использовать его для выполнения серии тестовых обновлений. Запишите все возникшие проблемы и повторяйте их, пока не получите четкую процедуру для всех. Затем примените это к своему живому серверу.
Если вы не можете позволить себе простои, миграция - ваш единственный выход. Забудьте о закреплении и обратных портах, которые сохранят вашу жизнь только в течение ограниченного периода времени. А вариант «раскатать сам» даже не стоит рассматривать. Всего мои 2 гроша.
Если сервер не виден миру, и вы полностью доверяете своим пользователям (как правило, это не очень хорошая идея), то, если он работает, вы можете просто оставить его в покое.
Если он каким-либо образом подвергается воздействию внешнего мира и / или вы считаете, что законный пользователь играет с ним незаконным образом, то вам абсолютно необходимы исправления и патчи для установленного программного обеспечения.
В этом случае у вас есть два варианта:
Запустите поддерживаемый дистрибутив и получайте обновления для своего программного обеспечения, или
Сохраните все исправления в неподдерживаемом дистрибутиве, что, откровенно говоря, не представляется возможным.
Я не пользователь Ubuntu, поэтому я не могу комментировать полноту патчей, которые вы получите с помощью вашего варианта 3, но если у вас есть какие-либо сомнения, я предполагаю, что у вас не будет полного покрытия.
Лучшее решение - перейти на LTS-версию Ubuntu, которая обеспечит вам поддержку данных версий пакетов в течение некоторого времени. Со временем некоторые из пакетов устареют, но ваша среда будет иметь исправления безопасности и будет стабильной (без изменений версии пакета). По моему опыту, стабильность известной рабочей среды обычно более ценна, чем новые функции.
Кажется, что ваше текущее положение не подлежит ремонту, и вам нужно двигаться. Единственный безопасный способ - получить вторую машину (или виртуальную машину) и протестировать миграции до тех пор, пока у вас не будет повторяемой успешной процедуры, а затем применить ее к производственной машине. Если вы используете свои резервные копии для выполнения тестовых миграций, у вас также будет хорошая возможность протестировать процедуры резервного копирования.