19.2. FreeBSD-CURRENT против FreeBSD-STABLE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          # pkg_add -f ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/cvsupit-3.1.tgz
    2. При помощи ftp. Дерево исходных текстов для FreeBSD-CURRENT "экспортируется" на некоторых зеркалах FTP в каталог /pub/FreeBSD/FreeBSD-current/. Некоторые зеркала нашего сервера FTP позволяют также выполнять сгрузку полных деревьев каталогов, сжатых/упакованных при помощи tar. Например, возьмём:

          usr.bin/lex

      Чтобы получить весь каталог в виде tar-файла, вы можете сделать следующее:

          ftp> cd usr.bin
          ftp> get lex.tar

      Note: Если вы хотите сгрузить дерево исходных текстов FreeBSD-CURRENT полностью, то гораздо лучше использовать cvsup, чем зеркалировать FTP.

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

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

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

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

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

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

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

19.2.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 и использовать механизм обновления бинарных файлов для перехода от релиза к релизу.

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

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

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

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

  2. Если вы устанавливаете новую систему и хотите, чтобы она работала максимально стабильно, то можете просто сгрузить самый свежий снэпшот ветки по адресу ftp://releng4.FreeBSD.org/pub/FreeBSD/ и установить его, как любой другой релиз.

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

    1. При помощи программы cvsup с таким sup-файлом. Это наиболее рекомендуемый метод, так как он позволяет вам сгрузить набор исходных текстов один раз полностью, а затем сгружать только произошедшие изменения. Многие запускают cvsup при помощи программы cron и получают самые свежие исходные тексты автоматически. Чтобы быстро создать себе именно такую конфигурацию просто наберите:

          # pkg_add -f ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/cvsupit-3.1.tgz
    2. При помощи ftp. Дерево исходных текстов для FreeBSD-STABLE "экспортируется" на некоторых зеркалах FTP в каталог /pub/FreeBSD/FreeBSD-stable/. Некоторые из зеркал нашего сервера FTP также позволяют выполнять сгрузку полных деревьев каталогов, сжатых/упакованных при помощи tar. Например, возьмём:

          usr.bin/lex

      Чтобы получить весь каталог в виде tar-файла, вы можете сделать следующее:

          ftp> cd usr.bin
          ftp> get lex.tar
    3. Note: Если вы хотите сгрузить дерево исходных текстов FreeBSD-STABLE полностью, то использование cvsup предпочтительнее зеркалирования сервера FTP.

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

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

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

Notes

[1]

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