23.4. Использование ветви разработки

Во FreeBSD имеется две ветки разработки: FreeBSD-CURRENT и FreeBSD-STABLE. Этот раздел описывает каждую из них и объясняет, как синхронизировать вашу систему с любой из веток. Сначала будет обсуждаться ветка FreeBSD-CURRENT, затем FreeBSD-STABLE.

23.4.1. Как следовать текущим разработкам во FreeBSD

Пока вы читаете этот текст, помните, что FreeBSD-CURRENT является ''передовым краем'' работ над FreeBSD. Предполагается, что пользователи FreeBSD-CURRENT технически более грамотны и могут решать проблемы с системой самостоятельно. Если вы являетесь во FreeBSD новичком, вам лучше сначала дважды подумать, прежде чем её устанавливать.

23.4.1.1. Что такое FreeBSD-CURRENT?

FreeBSD-CURRENT является последними рабочими версиями исходных текстов FreeBSD. Сюда включаются неоконченные работы, экспериментальные изменения и промежуточные механизмы, которые могут присутствовать, а могут и отсутствовать в следующем официальном релизе программного обеспечения. Хотя многие из разработчиков FreeBSD выполняют компиляцию из исходных текстов FreeBSD-CURRENT ежедневно, случаются периоды, когда исходные тексты заведомо не могут быть откомпилированы. Такие проблемы обычно решаются так быстро, как это возможно, но всё-таки момент, когда вы загрузили исходные тексты FreeBSD-CURRENT, может повлиять на то, содержат они мину замедленного действия или очень нужную функциональность!

23.4.1.2. Кому нужна FreeBSD-CURRENT?

FreeBSD-CURRENT предназначается трём основным заинтересованным группам:

  1. Участники проекта FreeBSD, активно работающие над некоторой частью дерева исходных текстов и для кого работа в ''current'' является абсолютной необходимостью.

  2. Участники проект FreeBSD, которые являются активными тестерами. Они тратят свое время на исправление проблем для того, чтобы FreeBSD-CURRENT оставалась, насколько это возможно, нормально работающей системой. Есть также люди, которые вносят важные предложения по изменениям и общему направлению развития FreeBSD и присылают свои патчи, реализующие эти изменения.

  3. Те, кто просто хотят быть в курсе всех изменений или используют текущие исходные тексты для ознакомительных целей (к примеру, для чтения, но не для использования). Такие люди также иногда высказывают замечания или предоставляют код.

23.4.1.3. Чем FreeBSD-CURRENT не является?

  1. Быстрым способом получить предварительную версию, в случае, если вы услышали, что здесь появилась некая крутая возможность, и вы хотите быть первым в вашем микрорайоне, у кого она есть. Здесь быть первым из тех, кто имеет это программное обеспечение означает также быть первым из тех, кто столкнулся с ошибками в нём.

  2. Быстрым способом получения исправлений. Любая версия FreeBSD-CURRENT является в равной мере как источником исправлений существующих ошибок, так и источником появления новых.

  3. ''Официально поддерживаемой'' каким бы то ни было способом. Мы прилагаем все усилия, чтобы помочь тем, кто изначально принадлежит одной из трех ''признанных'' групп пользователей FreeBSD-CURRENT, но у нас просто нет времени на техническую поддержку. Это не потому, что мы гадкие и злые люди, которые ни за что не будут помогать другим (если бы это было так, мы бы не создали FreeBSD). Мы просто не в силах отвечать на сотни сообщений в день и работать над FreeBSD! Если бы стоял выбор между тем, отвечать ли на множество вопросов об экспериментально коде или продолжать работу над совершенствованием FreeBSD, большинство разработчиков проголосовало бы за последнее.

23.4.1.4. Использование FreeBSD-CURRENT

  1. Подпишитесь на списки рассылки freebsd-current и svn-src-head. Это не просто хорошая идея, это необходимость. Если вы не являетесь участником списка рассылки freebsd-current, то вы не увидите замечаний, высказываемых о текущем состоянии системы и в итоге можете столкнуться со множеством проблем, которые уже были найдены и решены другими. Ещё хуже, если вы пропустите важные сообщения, касающиеся жизнеспособности вашей системы.

    Список рассылки svn-src-head позволит вам для каждого изменения увидеть соответствующую запись в журнале коммитов, а они порой содержат относящуюся к делу информацию о возможных побочных эффектах.

    Чтобы подписаться на эти и другие доступные списки рассылки, перейдите по ссылке http://lists.FreeBSD.org/mailman/listinfo и щёлкните на списке, к которому вы хотите подключиться. Инструкции по дальнейшим действиям размещены там же. Если вы заинтересованы в отслеживании изменений всего дерева исходных текстов, то мы рекомендуем вам подписаться на svn-src-all.

  2. Загрузите исходные тексты с зеркального сайта FreeBSD. Вы можете сделать это одним из следующих двух способов:

    1. При помощи программы cvsup с sup-файлом standard-supfile, который можно найти в каталоге /usr/share/examples/cvsup. Это наиболее рекомендуемый метод, так как он позволяет вам загрузить набор исходных текстов один раз полностью, а затем загружать только произошедшие изменения. Многие запускают cvsup при помощи программы cron и получают самые свежие исходные тексты автоматически. Измените примерный файл supfile выше и отконфигурируйте cvsup для вашего окружения.

      Замечание: Примерный файл standard-supfile предназначен для отслеживания специальной ветки безопасности FreeBSD, а не FreeBSD-CURRENT. Вам нужно открыть этот файл на редактирование и заменить в нём строку:

      *default release=cvs tag=RELENG_X_Y
      

      на следующую:

      *default release=cvs tag=.
      

      Для получения подробной информации по использованию тегов обратитесь к разделу Руководства Теги CVS.

    2. При помощи CTM. Если у вас очень плохое подключение (дорогое или предоставляющее доступ только к электронной почте), то CTM можно рассматривать как вариант. Однако в нем много "подводных камней", и его использование может привести к появлению неправильных файлов. Это привело к тому, что этот способ используется редко, что, в свою очередь, увеличивает шанс появления периодов его неработы. Мы рекомендуем использовать CVSup всем, чья скорость подключения равна 9600 bps и выше.

  3. Если вам нужны исходные тексты для компиляции и запуска, а не просто для ознакомления, то загружайте исходные тексты ветки FreeBSD-CURRENT полностью, а не отдельные ее части. Причиной является то, что многие части исходных текстов зависят от других обновлений где-то еще, и попытка компиляции лишь некоторой части программ в этом случае гарантированно вызовет проблемы.

    Перед тем, как компилировать FreeBSD-CURRENT, внимательно прочтите файл Makefile в каталоге /usr/src. В процессе обновления вы по крайней мере раз должны пройти через установку нового ядра и перестроение всех компонентов системы. Чтение списка рассылки freebsd-current и /usr/src/UPDATING позволит вам быть в курсе всех процедур, которые иногда бывают необходимы в процессе работы над следующим релизом.

  4. Будьте активным подписчиком! Если вы работаете с FreeBSD-CURRENT, мы хотим знать, что вы думаете о ней, особенно если у вас есть соображения по ее улучшению или исправлению ошибок. Пожелания, к которым прилагается код, всегда принимаются с большим энтузиазмом!

23.4.2. Работа с веткой stable во FreeBSD

23.4.2.1. Что такое FreeBSD-STABLE?

FreeBSD-STABLE является нашей веткой разработки, из которой делаются основные релизы. Изменения в этой ветке происходят с разной скоростью, и при этом предполагается, что сначала они были выполнены для FreeBSD-CURRENT в целях тестирования. Однако эта ветка остаётся веткой для разработки, а это значит, что в любой момент времени исходные тексты FreeBSD-STABLE могут оказаться неприменимы для некоторой задачи. Это просто ещё одна ветка при разработке, а не ресурс для конечных пользователей.

23.4.2.2. Кому нужна FreeBSD-STABLE?

Если вы заинтересованы в отслеживании процесса разработки FreeBSD или хотите принять в нём участие, особенно в той мере, насколько это касается выпуска следующего релиза FreeBSD с ''точкой'', то вам необходимо отслеживать FreeBSD-STABLE.

Хотя правда то, что исправления, касающиеся безопасности, также делаются и в ветке FreeBSD-STABLE, вам не нужно для этого отслеживать FreeBSD-STABLE. Каждый бюллетень по безопасности FreeBSD описывает, как решить проблему для тех релизов, которых он касается [1] , а отслеживание ветки разработки в полном объёме только ради исправлений пробелов в безопасности приводит к появлению большого количества дополнительных ненужных изменений.

Хотя мы прилагаем все усилия, чтобы ветка FreeBSD-STABLE всегда компилировалась и работала, этого нельзя гарантировать. Кроме того, несмотря на то, что перед включением в FreeBSD-STABLE, код разрабатывается в FreeBSD-CURRENT, гораздо большее количество людей работают с FreeBSD-STABLE, чем с FreeBSD-CURRENT. Поэтому неудивительно, что в FreeBSD-STABLE иногда обнаруживаются ошибки и всплывают непредвиденные ситуации, которые не проявляли себя в FreeBSD-CURRENT.

По этим причинам мы не рекомендуем слепо отслеживать FreeBSD-STABLE, и, что особенно важно, вы не должны обновлять какие-либо сервера, находящиеся в активной эксплуатации, до FreeBSD-STABLE без предварительного тщательного тестирования кода в вашей среде разработки.

Если у вас нет возможности сделать это, то мы рекомендуем работать с самой последним релизом FreeBSD и использовать механизм обновления бинарных файлов для перехода от релиза к релизу.

23.4.2.3. Использование FreeBSD-STABLE

  1. Подпишитесь на список рассылки freebsd-stable. Это позволит вам узнавать о зависимостях процесса компиляции, которые могут появиться в ветке FreeBSD-STABLE или любых других проблемах, требующих особого внимания. В этом списке рассылки разработчики также делают объявления о спорных исправлениях или добавлениях, давая пользователям возможность высказать свое мнение о возможных тонких моментах.

    Присоединяйтесь к соответствующему списку рассылки SVN для той ветви, которую вы используете. Например, если вы используете ветвь 7-STABLE, то присоединяйтесь к списку svn-src-stable-7. Это позволит вам просматривать записи в журнале коммитов для каждого изменения, а они порой содержат относящуюся к делу информацию о возможных побочных эффектах.

    Чтобы подключиться к этим и другим доступным спискам рассылки, перейдите по ссылке http://lists.FreeBSD.org/mailman/listinfo и щёлкните на списке, к которому вы хотите подключиться. Инструкции по дальнейшим действиям размещены там же. Если вы заинтересованы в отслеживании изменений всего дерева исходных текстов, то мы рекомендуем вам подписаться на svn-src-all.

  2. Если вы собираетесь установить новую систему, и хотите, чтобы она соответствовала ежемесячным стандартным сборкам ветви FreeBSD-STABLE, обратитесь к странице снэпшотов . Либо вы можете установить самый последний релиз FreeBSD-STABLE, загрузив его с зеркалирующих сайтов, а затем следовать инструкциям ниже по обновлению исходных текстов вашей системы до самой последней версии FreeBSD-STABLE.

    Если вы уже работаете с предыдущим релизом FreeBSD и хотите обновить его из исходных текстов, то вы можете легко это сделать с зеркального сайта FreeBSD. Это можно сделать одним из двух способов:

    1. При помощи программы cvsup с sup-файлом stable-supfile из каталога /usr/share/examples/cvsup. Это наиболее рекомендуемый метод, так как он позволяет вам загрузить набор исходных текстов один раз полностью, а затем загружать только произошедшие изменения. Многие запускают cvsup при помощи программы cron и получают самые свежие исходные тексты автоматически. Измените примерный файл supfile выше и отконфигурируйте cvsup для вашего окружения.

    2. При помощи CTM. Если у вас нет быстрого и недорогого подключения к Интернет, то это как раз тот метод, которым вы должны воспользоваться.

  3. Итак, если вам нужен быстрый доступ к исходным текстам и нагрузка на каналы связи для вас не проблема, то используйте cvsup или ftp. В противном случае воспользуйтесь CTM.

  4. Перед тем, как компилировать FreeBSD-STABLE, внимательно прочтите файл Makefile в каталоге /usr/src. В процессе обновления вы по крайней мере раз должны пройти через установку нового ядра и перестроение всех компонентов системы. Чтение списка рассылки freebsd-stable и /usr/src/UPDATING позволит вам быть в курсе всех процедур, которые иногда бывают необходимы при переходе к следующему релизу.

Примечания

[1]

Это не совсем так. Мы не можем поддерживать старые релизы FreeBSD бесконечно долго, хотя мы поддерживаем их многие годы. Полное описание текущей политики безопасности относительно старых релизов FreeBSD можно найти по адресу http://www.FreeBSD.org/ru/security/.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.