Русский перевод: Михаил Сгибнев
Содержание
CVS (Concurrent Versions System) может быть использована для получения исходных текстов NetBSD, оперативного внесения изменений и обновления системы портов. Есть две ветви CVS, которые могут использоваться в повседневной жизни: ветка current используется разработчиками и тестерами, ветка release, в которую добавляются патчи, связанные с безопасностью, обновляются версии программного обеспечения — эта ветка является стабильной и предназначена для использования обычными пользователями. Для примера, в настоящее время существует возможность полностью удалить таблицу arp с помощью команды arp.
26.1. Получение исходных текстов системы и пользовательского окружения
Для установки CVS (если она еще у Вас не установлена) выполните:
%
pkg_add ftp://ftp.NetBSD.org/pub/NetBSD/packages/
OS Ver
/arch
/All/cvs-1.11nb2.tgz
Где OS Ver
и arch
версия и платформа, используемая Вами.
%
sysctl kern.osrelease hw.machine_arch
Получить исходные тексты, не имея чего-либо в /usr/src
%
setenv CVSROOT :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs login
password:anoncvs
%
cvs checkout -rnetbsd-
<BRANCH>
-PA src
Где <BRANCH>
является версией релиза для получения. Для примера, 1.6 запишется как 1-6, 2.2 запишется как 2-2. Обратите внимание, что версия релиза не учитывает текущий уровень патчей, то есть 1.6.2 по прежнему будет отображаться как 1-6. Для получения ветки 2.0 необходимо выполнить:
%
cvs checkout -rnetbsd-2-0 -PA src
или воспользоваться ssh для передачи данных в зашифрованном виде:
%
setenv CVS_RSH ssh
%
setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs checkout -rnetbsd-
<BRANCH>
-PA src
В последней строке указываем версию «-rnetbsd-BRANCH
» получаемого релиза.
Для обновления исходных текстов релиза:
%
setenv CVSROOT :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs login
password:anoncvs
%
cvs -d $CVSROOT update -rnetbsd-
BRANCH
-PAd src
Или через ssh:
%
setenv CVS_RSH ssh
%
setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs -d $CVSROOT update -rnetbsd-
BRANCH
-PAd src
Для обновления исходных текстов current, не указывайте BRANCH
.
Когда Вы желаете обновить модифицированное Вами дерево исходных текстов, то есть когда Вы восстанавливаете некоторую часть, все дерево исходных текстов или исходные тексты ядра и не выполняли make cleandir, то Вы должны создать обьектные файлы в каталоге исходных текстов.
Каталоги обьектных файлов требуются для выполнения «cvs update» в неочищенном дереве. Неочищенное дерево — это дерево исходных текстов, в котором вы производили сборку каких-либо частей, или всего дерева без выполнения «make clean» в этих частях или «make cleandir» для всего дерева. В противном случае, cvs попытается создать каталоги с одинаковыми именами и поэтому сборка некоторых бинарных файлов потерпит неудачу. (Там, где у Вас находится каталог, называемый «groff», Вы теперь будете собирать бинарник «groff», но «cvs» должен создать все пустые каталоги перед их удалением.)
Так в /usr/src
:
%
mkdir /usr/obj
%
make obj
%
mkdir /usr/obj
%
make obj
Теперь Вы готовы для обновления через cvs. Или выполните make cleandir в каталоге /usr/src
перед использованием cvs. Наиболее простым и легким путем будет создание objectdirs при обновлении неочищенного дерева. CVS значительно более быстрее работает при использовании sup. Я не могу точно сказать, скольо именно времени займет получение полного дерева исходных текстов, так как сам я использую высокоскоросные каналы связи. При получении исходных текстов с помощью модема используйте компрессию:
%
cvs -z5 checkout .........
или
%
cvs -z5 -d $CVSROOT update ......
При указании степени компрессии Вы можете использовать значения от 1 до 9, где 9 — самая сильная степнь. Но учтите, что использование компрессии повышает нагрузку на cvs сервер.
Замечание
Вы долны перейти в: /usr/src/sys/arch/$arch/compile/$kernel_conf_name
и выполнить make clean, чтобы удалить каталог перед выполнением cvs update. Это необходимо для обновления исходных текстов ядра.
26.2. Получение pkgsrc
Pkgsrc (package source) — это набор программного обеспечения и библиотек, портированных для NetBSD. Это самый простой способ установки или удаления программного обеспечения. Автоматически получаются исходные тексты, патчи, происходит конфигурирование, сборка бинарных файлов, их установка и установка страниц руководства man. В базе данных хранится список установленных файлов и зависимости для каждого пакета.
Получение pkgsrc с нуля:
%
setenv CVSROOT :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs login
(пароль: "anoncvs")%
cvs checkout -PA pkgsrc
Или через ssh:
%
setenv CVS_RSH ssh
%
setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs checkout -PA pkgsrc
Это создаст каталог pkgsrc
в /usr
и сохранит исходные тексты системы портов в /usr/pkgsrc
Для обновления системы портов выполните:
%
setenv CVSROOT :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs login
(пароль: "anoncvs")%
cvs -d $CVSROOT update -PAd pkgsrc
Или через ssh:
%
setenv CVS_RSH ssh
%
setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot
%
cd /usr
%
cvs -d $CVSROOT update -PAd pkgsrc
Перед обновлением pkgsrc не забывайте выполнять make clean.