12.2. -CURRENT против -STABLE

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

12.2.1. Как оставаться с текущими разработками во FreeBSD

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

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

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

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

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

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

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

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

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

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

  2. Быстрым способом получения исправлений.

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

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

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

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

    Чтобы подключиться к этим спискам, пошлите письмо на адрес указав в теле письма следующее:

        subscribe freebsd-current
        subscribe cvs-all
                    

    Дополнительно вы можете также указать help, а Majordomo вышлет вам подробную справку о том, как подписаться и отказаться от подписки на различные другие списки рассылки, которые мы ведем.

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

    1. При помощи CTM. Если у вас нет хорошего подключения по TCP/IP с фиксированной абонентской платой, то это то, что нужно.

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

          # pkg_add -f \
      ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz
                            
    3. При помощи ftp. Дерево исходных текстов для FreeBSD-CURRENT всегда "экспортируется" на: ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/. К тому же мы используем wu-ftpd, позволяющий выполнять сгрузку полных деревьев каталогов сжатых/упакованных при помощи tar, к примеру, возьмем:

          usr.bin/lex

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

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

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

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

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

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

Если вы используете FreeBSD в производстве и хотите быть уверенными, что у вас есть все последние исправления из ветки -CURRENT, то вам нужно работать со -STABLE. Это та ветка, из которой делаются -RELEASE при их выпуске. Например, если у вас есть копия 3.4-RELEASE, то это всего лишь "снэпшот" ветки -STABLE, который мы поместили на компакт-диск. Для того, чтобы получить все изменения, вошедшие в -STABLE после выхода -RELEASE, вам нужно "отслеживать" ветку -STABLE.

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

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

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

Если вы корпоративный пользователь или тот, кто вопрос надежность работы своей системы FreeBSD ставит прежде всех других аспектов, то вам необходимо отслеживать ветку stable. Это особенно важно, если вы установили самый последний релиз ( 4.2-RELEASE на момент написания этого текста), так как ветка stable на самом деле является разработкой свободной от ошибок предыдущего релиза.

WarningКроме всего прочего. дерево stable пытается быть всегда надежным и пригодным к компиляции, однако иногда мы делаем ошибки (в конце концов, это все таки активная разработка с часто происходящими обновлениями). Мы также прилагаем все усилия, чтобы протестировать все исправления в current перед тем, как вносить их в stable, однако наши тесты иногда предусматривают не все возможные случаи. Если у вас что-то работает в stable не так, то, пожалуйста, дайте нам знать немедленно! (смотрите следующий раздел).

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

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

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

    Чтобы подключиться к этим спискам, пошлите письмо на адрес указав в теле письма следующее:

        subscribe freebsd-stable
        subscribe cvs-all
                    

    Дополнительно вы можете также указать help, а Majordomo вышлет вам подробную справку о том, как подписаться и отказаться от подписки на различные другие списки рассылки, которые мы ведем.

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

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

    1. При помощи CTM. Если у вас нет хорошего подключения по TCP/IP с фиксированной абонентской платой, то это то, что нужно.

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

          # pkg_add -f \
      ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz
                            
    3. При помощи ftp. Дерево исходных текстов для FreeBSD-STABLE всегда "экспортируется" на: ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/. К тому же мы используем wu-ftpd, позволяющий выполнять сгрузку полных деревьев каталогов сжатых/упакованных при помощи tar, к примеру, возьмем:

          usr.bin/lex

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

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

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