Мы работаем с производственным сервером на основе Ubuntu 9.10 Karmic Koala , ядро практически обновлено (2.6.38.2-grsec-xxxx-grs-ipv6-64), но хранилище пакетов karmic теперь просто устарело, например. Nginx - 0.7.62 - действительно глючит - в то время как последняя стабильная версия 1.0.x !!
Кроме того, Кармик только что достиг конца жизни.
Этот вопрос: передовые методы поддержания актуальности пакетов UNIX? выглядит аналогично, но на самом деле содержит только некоторые предложения о менеджерах пакетов; совсем не то что мне нужно!
Итак, варианты, которые я вижу:
- получить новую машину, установить ее с нуля, перенести
- обновление дистрибутива
- использовать другой репозиторий ( панель запуска / ppa / backport / pinning )
- Построй свой собственный
Недостатки 1. вполне очевидны.
Однако я не осмелюсь пойти по пути dist-upgrade, поскольку простои и возможные катастрофические последствия просто невозможно предсказать для производственного сервера, и в настоящее время я в основном перестраиваю собственные требуемые пакеты. Но я уверен, что я мог бы пропустить некоторые.
Мне не совсем понятно, каковы риски (стабильность / совместимость) использования бэкпортов ubuntu, кроме того, официально для 9.10 больше ничего не предусмотрено. Launchpad - это индивидуальная сборка, похожий вопрос - насколько это лучше, чем компилировать вашу собственную.
Сборка пакетов выглядит нормально, но: 1. иногда у меня возникают проблемы с воспроизведением правильных параметров ./configure для повторного использования моих существующих файлов конфигурации 1. Я уверен, что есть тонны пакетов и зависимостей, которые в настоящее время довольно устарели и являются возможным источником ошибок
Наконец ... как насчет «старых» пакетов в недавнем дистрибутиве? Я полагаю, нет другого пути, чем восстановить их сам? Является ли комбинация 2. и 4. наконец лучшим путем?
Есть ли какой-то объективный консенсус в отношении того, что является лучшим способом сделать это, или причины, по которым некоторые из моих вариантов хороши / не хороши?
Если на самом деле нет, я приму, что вопрос закрывается перед созданием бесконечной темы!
Ответы:
Поддержание собственного дистрибутива - это большая работа. Даже если вы поддерживаете бэкпорт, вы скоро будете захвачены проблемами безопасности, которые нужно будет исправить, и вам придется использовать низкоуровневые библиотеки, чтобы постоянно обновлять ваше программное обеспечение, что может привести к поломке (я поддерживаю серверы с 6-летними дистрибутивами, это не весело).
Обновление, как правило, хорошее решение.
do-release-upgrade
хорошо сделано, и вы должны иметь возможность обновиться без проблем (особенно если вы использовали только официальные пакеты).Мое любимое решение, хотя может быть путь переустановки. Более конкретно, ваши серверы должны управляться с использованием системы управления конфигурацией, такой как Puppet, Cfengine или Chef. Если все ваши требования к конфигурации / пакету указаны с помощью такого инструмента и ваши данные находятся в безопасности на отдельном разделе, их намного проще быстро переустановить. Вы просто устанавливаете новый дистрибутив, не стирая разделы данных, а затем запускаете инструмент управления конфигурацией для сброса ваших пакетов / конфигураций. Я считаю, что это самый чистый способ, особенно если у вас есть несколько серверов для управления.
Если вы используете неофициальные пакеты, вы можете определить их перед обновлением / переустановкой. техобслуживание может помочь вам определить пакеты, которые официально не поддерживаются Ubuntu:
Если вы хотите переустановить, вы также можете экспортировать список установленных пакетов:
и ваша база данных debconf:
В качестве примечания, поскольку в настоящее время вы используете Karmic, обновление не будет слишком жестоким, чтобы перейти на Lucid, который является выпуском LTS, который до 2015 года все еще поддерживается для пакетов основного сервера. Это должно дать вам достаточно времени для настройки жизнеспособной автоматической установки на будущее.
Когда вы спрашиваете о пакетах Launchpad, я предполагаю, что вы имеете в виду PPA. Есть тонны разных PPA. Некоторые экспериментальные, некоторые стабильные. Некоторые поддерживаются официальными разработчиками Ubuntu, некоторые поддерживаются людьми, которые едва знают, как сделать пакет правильно. Трудно сказать в общем, если пакеты, которые вы найдете на PPA, хороши, общего правила нет. Лучшим советом в этом случае может быть слишком взглянуть на владельца PPA, чтобы получить представление о возможном качестве их пакетов.
источник
maintenance-check
может помочь вам в этом (см. мое редактирование).Если сервер не подвержен влиянию окружающего мира, и вы абсолютно доверяете своим пользователям (как правило, это не очень хорошая идея), то, если он работает, вы можете просто оставить все как есть.
Если он каким-либо образом подвергается воздействию внешнего мира, и / или вы поддерживаете идею, что законный пользователь играет с ним нелегитимным образом, то вам абсолютно необходимы исправления и исправления для установленного программного обеспечения.
В этом случае у вас есть два варианта:
Запустите поддерживаемый дистрибутив и получите обновления для вашего программного обеспечения, или
Бэкпорт все исправления в ваш неподдерживаемый дистрибутив, что, честно говоря, не представляется возможным.
Я не пользователь Ubuntu, поэтому я не могу комментировать полноту патчей, которые вы получите через ваш вариант 3, но если у вас есть какие-либо сомнения, я бы предположил, что у вас не будет полного покрытия.
Лучшее решение - перейти на LTS-версию Ubuntu, которая на некоторое время предоставит вам поддержку для указанных версий пакетов. Со временем некоторые пакеты будут устаревшими, но ваша среда будет иметь исправления безопасности и будет стабильной (без изменений версии пакета). По моему опыту, стабильность известной рабочей среды обычно более ценна, чем новые функции.
Кажется, что ваша текущая позиция не подлежит ремонту, и вы должны двигаться. Единственный безопасный способ - это получить вторую машину (или виртуальную машину) и тестировать миграции, пока не получится повторить успешную процедуру, а затем применить ее к рабочей машине. Если вы используете резервные копии для выполнения тестовых миграций, у вас также будет хорошая возможность протестировать процедуры резервного копирования.
источник
Единственный реальный путь вперед - это обновление дистрибутива. Я могу понять, что вы нервничаете по этому поводу, поскольку к настоящему времени вы будете прыгать на несколько выпусков вперед (11.04 только что выпущен).
Я бы порекомендовал сделать клон дисков на этом компьютере, а затем использовать отдельный компьютер для работы с клонами и использовать его для серии тестовых обновлений. Запишите все возникшие проблемы и повторяйте, пока у вас не будет четкой процедуры для всех из них. Затем примените это к вашему живому серверу.
Если вы не можете позволить себе простои, миграция - ваш единственный выход. Забудьте о пиннинге и бэкпортах, которые будут поддерживать вас в течение ограниченного периода времени. И вариант «катайся сам» даже не стоит рассматривать. Просто мои 2 копейки.
источник