The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

NetBSD документация: Трэкинг NetBSD-current (netbsd build cvs make)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: netbsd, build, cvs, make,  (найти похожие документы)
From: Михаил Сгибнев <mixa(@).dreamcatcher.ru> Date: 2006-09-13 11:26:22 Subject: NetBSD документация: Трэкинг NetBSD-current


Перевод: Сгибнев Михаил

Часто задаваемые вопросы

Часто задаваемые вопросы

Почему отслеживается NetBSD-current?

Разработчики NetBSD сделали доступной текущую версию системы руководствуясь несколькими мотивами. В целом, использование NetBSD-current позволяет получить более стабильную и доступную систему.

Доступность NetBSD-current способствует к привлечению новых людей к работе над NetBSD, позволяет пользователям видеть пути развития системы, а разработчикам легко интегрировать в систему новые идеи.

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

Скачиваем current

Скачать исходные тексты -current можно используя anoncvs, через ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/src/, или sup. Также Вы можете посетить ближайшее к Вам зеркало NetBSD. Для обновления уже скачанного используйте команду 'cvs -q update -dP' в корне дерева исходных текстов. Пожалуйста, не забудьте использовать флажок -P для cvs, даже если Вы проверяете новую копию.

Если Вы хотите отслеживать локальные изменения дерева исходных текстов NetBSD, то Вам лучше будет установить локальный CVS, потом экспортировать изменения sup.

Собираем релиз

Пожалуйста, не забывайте проверять src/BUILDING и src/UPDATING, для ознакомления с последними изменениями.

В каталоге исходных текстов запустите скрипт './build.sh -D DESTDIR -R RELEASEDIR release' с правами пользователя root. Где DESTDIR каталог, имеющий достаточно места для установки и RELEASEDIR каталог, имеющий достаточно места для установки tarfiles. После окончания сборки у Вас должен быть полный комплект, необходимый для установки.

Если Вы хотите провести компиляцию для другой архитектуры, добавьте к аргументам скрипта '-a ARCH'. Для получения более детальной информации смотри BUILDING или выполните './build.sh -h'.

Обновляем существующую систему

Этот процесс складывается из компиляции и установки нового ядра и затем следует обновление пользовательского окружения. Пожалуйста, всегда смотрите файл UPDATING перед началом обновления, чтобы убедиться, что знаете обо всех произошедших изменениях.

Это должен помнить каждый

Переменные Makefile, необходимые для сборки

Самое очевидное, это 'make build' из /usr/src/Makefile, что установит обновленные файлы 'mk', include, libs, а затем пересоберет систему. Если Вы обновляетесь из исходных текстов, то Вы должны скомпилировать и установить новое ядро, перед тем как выполнять какие-либо другие операции. Другие полезные переменные задокументированы в /usr/src/share/mk/bsd.README, который устанавливается в /usr/share/mk/. Использование 'make build' не приветствуется и не рекомендуется. Документация относительно использования новых утилит сборки через сценарий 'build.sh' находится в файле BUILDING.

Отслеживание NetBSD-current через anoncvs

Установка

Эти инструкции подходят для нешифрованного anoncvs соединения. Если Вы используете протокол шифрования, то см. раздел ниже.
  1. Установка cvs. Если собираемая NetBSD-current помечена датой 2000-09-04, то cvs уже установлен. Внимание: некоторые версии cvs (такие как 1.11.5) могут вызывать ошибку при использовании флага '-z'. Подробности
  2. Установите переменную окружения CVSROOT, необходимую для доступа к серверу anoncvs.
    • Для пользователей csh(1) или tcsh
        
        	% setenv CVSROOT :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
        	
        
    • Для пользователей sh(1), ksh(1) или bash2
        
        	$ CVSROOT=:pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot; export CVSROOT
        	
        
    • 
      $ cd /usr
      $ cvs login
      
      
    (Используйте пароль 'anoncvs')
    Вы должны иметь права на запись в каталог, где инициируется checkout; после этого Вы можете предоставить привилегии на использование дерева другому пользователю. Возможным путем является инициализация checkout как root, с последующей передачей дерева исходных текстов другому пользователю для использования.
  3. Проверяем только исходные тексты ядра:
      
      $ cvs checkout -P src/sys
      
      
    Это поместит исходные тексты ядра в /usr/src/sys. Информация по компилированию нового так же доступна.
  4. Получить все дерево исходных текстов (включая ядро)
      
      $ cvs checkout -P src
      
      
    Вы получите весь код NetBSD.

    Обратите внимание: значительно быстрее будет получить через FTP текущий tarballs, а уже затем выполнить cvs. Это позволит минимизировать обьем трафика.
  5. Делегировать права другому пользователю.
      
      # chown -R user /usr/src
      
      
Обновление исходных текстов: Обратите внимание: команда cvs checkout -d dir src (или для любого другого раздела src*) не сработает и Вы получите сообщение об ошибке подобное "existing repository ... does not match ...; ignoring module _gnusrc-cmp". Опция -d должна быть пропущена и cvs самостоятельно создаст каталог по умолчанию.

Проверять с некоторой даты: Проверять определенный выпуск: Смотри src/doc/BRANCHES для получения более полной информации о выпусках.

Полезные советы: Сборка NetBSD из исходных текстов:

Считаем, что исходные тексты находятся в /usr/src и BSDOBJDIR является /usr/obj

Собираем пользовательское окружение: Когда Вы впервые формируете вашу систему, используя build.sh, набор инструментальных средств для будущего использования будет также сформирован. Любая последующая трансляция может использовать уже откомпилированные инструментальные средства, и таким образом занимать меньше времени. И конечно, не вызывайте ./build.sh install=/ если ./build.sh build выдало ошибку.

Для обновления окружения пользователя после CVS: Это установит новые бинарные файлы на работающую ситему, перезагрузитесь, для вступления изменений в силу.

Если Вы модифицируете систему часто и хотите, чтобы компоновка непосредственно модифицировала вашу систему,то Вы можете использовать режим "expert" и проводить сборку с использованием директивы DESTDIR=/. Имейте в виду, что это рекомендуется использовать только опытным пользователям, так как Вы легко можете привести свою систему в состояние, когда вообще ничего не сможете откомпилировать. Используйте этот режим, только когда абсалютно уререны в благоприятном завершении сборки.

Использование anoncvs поверх ssh

Методы, описанные в использовании anoncvs могут также использоваться и для работы через ssh, для гарантии целостности получаемых исходных текстов.

Те серверы в anoncvs mirror list, которые поддерживают ssh подключения, перечисляют всю необходимую для подключения информацию.

Чтобы использовать anoncvs через ssh, удалите ':pserver: ' префикс на cvsroot, и установите переменную CVS_RSH в 'ssh', используя метод, применимый для Вашего командной оболочки.

Отслеживание NetBSD-current с использованием SUP в CVS

Введение

Current может быть прослежен следующим способом. Базовое дерево исходных текстов обновляется через cvs раз в неделю. Это базовое дерево исходников импортируется в локальный репозиторий CVS. Current в этом случае будет собираться из проверенной копии репозитория. Есть три главные причины, почему стоит так поступать: Единственный недостаток такого подхода - наличие трех независимых копий исходных текстов, что увеличивает расход дискового пространства и составляет примерно 150 МБ, не считая места, необходимого для сборки.

Требования



Подробности

Отслеживание и сборка -current состоит из 6 этапов:
  1. Внедрение обновлений в главное дерево исходных текстов
  2. Импортирование обновленных исходников в CVS и модифицирование рабочей копии исходных текстов.
  3. Объединение новых исходников и локальных изменений
  4. Сборка и установка -current
  5. Маркировка исходников для успешной сборки в репозитории.


Получение

Исходные тексты могут быть получены с любого NetBSD sup server и вывод SUP должен быть сохранен в файл для дальнейшего использования.

Импорт и обьединение исходных текстов

Исходники импортируются следующим образом: Где date заменяется на дату проведения SUP. Опции -I ! -I CVS гарантируют, что никакой файл в исходном дереве не игнорируется кроме каталогов 'CVS'. Это делается потому, что некоторые исходные файлы NetBSD имеют расширения, которые обычно игнорируются SUP. Если есть конфликты с локальными исправлениями, команда импорта сообщит о них, а команда обьединения покажет их: Команда объединения правильно объединит импортированные исходные тексты NetBSD, но не будет обрабатывать локальное удаление файлов, которые были уже удалены процессом SUP. Чтобы правильно обработать это, необходима команда: Где тэг previous import должен быть заменен названием тэга, используемого для предыдущего импорта cvs. date должна быть заменена текущей датой, чтобы привести к тому же самому тэгу, который используется на текущем импорте, только что объединенном.

Конфликты, о которых сообщает команда импорта - потенциальные конфликты. Они обычно объединяются командой обновления, но в некоторых случаях происходит реальный конфликт. В этих случаях требуется ручное объединение противоречивых строк. О реальном конфликте будет сообщено в выводе обновления cvs, вместе с именем файла.

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

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

Все обновления и команды отладки должны быть сделаны в каталоге, где источники были проверены. На моей системе это - /usr/src/netbsd .

Если это - первый импорт тогда не будет никаких проверенных источников. Предположим, что мы хотим создать исходное дерево в '/usr/src/netbsd'. Следующая команда, проверит исходники и пропустит шаг слияния.

Сборка current

  1. Конфигурирование, сборка, установка нового ядра и пререзагрузка.
  2. Переход в корень исходных текстов -current и выполнение ./build.sh -T /usr/tools -O /usr/obj
  3. Возможно придется сравнить изменения, произошедшие в файлах каталого /etc


Маркировка успешной сборки

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

Делается это так:

Примечания

Если у Вас есть комментарии и предложения, пишите Mike Pumford mpumford@black-star.demon.co.uk (ведет эту тему) или на www@NetBSD.org.

Получение целого архива

Все описанные выше процедуры позволяют Вам сохранять изменения в Вашем собственном архиве, что имеет смысл только в том случае, если Вы разрабатываете ваше собственное программное обеспечение, основанное на NetBSD. Если Вы не хотите обслуживать собственный репозиторий CVS, но хотите отразить репозиторий CVS NetBSD, то есть четыре пути добиться этого:

Каждый из методов доставит на Вашу машину копию NetBSD CVS (т.е. RCS ,v files, not the checked out files!). Вы можете тогда установить Ваш собственный anoncvs сервер или обращаться к локальному жесткому диску.

sup:

ftp:

rsync:

cvsup:

Что делать, если я получаю ошибку?

Если Вы собираете -current, не паникуйте. Попробуйте выполнить следующие шаги:
  1. Прочитайте файл UPDATING, того релиза, который вы пытаетесь собрать.
  2. Изучите current-users archive, может быть там Вы найдете подсказку.
  3. Проведите обновление снова. Вполне возможно, что Вы скачивали архив во время его обновления или проблема уже устранена.
  4. Если проблема все еще остается, пошлите сообщение о проблеме current-users. Включите дату, время, и метод, которым Вы получили исходные тексты, так же как любые локальные изменения, которые Вы сделали.

Обновление конфигурации и стартовых скриптов с etcupdate



Краткий обзор

etcupdate - сценарий, чтобы помочь пользователям сравнивать, объединять и устанавливать новую конфигурационные файлы и стартовые скрипты (файлы, найденные в etc.tgz дистрибутивном наборе) в /dev, /etc и /root после выполнения обновления операционной системы. Обновление операционной системы может быть выполнено путем компиляции из исходных текстов или путем установки дистрибутива.

Установка etcupdate

  1. Получите последнюю версию etcupdate, если NetBSD сформирована из -current, etcupdate уже установлен.
      
      # cd /usr/pkgsrc/sysutils
      # cvs update -dP etcupdate
      
      
  2. Установите из pkgsrc
      
      # cd /usr/pkgsrc/sysutils/etcupdate
      # make install clean
      
      


Использование etcupdate с исходными файлами

В случае нахождения исходных текстов в /usr/src, будет достаточно такой команды: А если исходные тексты находятся в другом месте, например в /home/jdoe/netbsd/src? Это тоже не проблема, просто укажите etcupdate каталог, используя опцию s srcdir:

Использование etcupdate с бинарным дистрибутивом

Иногда становится невозможным модифицировать файлы конфигурации и стартовые скрипты. решение состоит в том, чтобы извлечь желательные дистрибутивные файлы (как минимум etc.tgz) и используя директиву -b srcdir для указания etcupdate работать с дистрибутивом, а не исходными текстами

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру