Обновление системы

FreeBSD, ... Установка, настройка, эксплуатация.

Модератор: ROOT

Обновление системы

Сообщение ROOT » 05 сен 2014, 21:44

Установка полной версии subversion (svn) через соответствующий пакет или, при наличии исходных текстов в /usr/ports, командами:
Код: выделить все
# cd /usr/ports/devel/subversion && make clean install

Если система 10-STABLE или новее, использование предустановленной системной утилиты svnlite вместо svn
Получение исходных текстов, использование утилиты svn (или svnlite, замените команду):
Не забываем сохранить локальные правки в дереве исходного кода и свою конфигурацию ядра из /sys/{amd64,i386}/conf/ВАША_КОНФИГУРАЦИЯ (если такие есть).
Создаём shell скрипт с такими строчками:
Код: выделить все
#!/bin/sh
# Sources
rm -rf /usr/src/* && svnlite co svn://svn.freebsd.org/base/head /usr/src
# Ports
rm -rf /usr/ports/* && svnlite co svn://svn.freebsd.org/ports/head /usr/ports
# Documentation
rm -rf /usr/doc/* && svnlite co svn://svn.freebsd.org/doc/head /usr/doc

Если вам не нужны исходные тексты документации, всю секцию Documentation комментируем.
- релизы
Код: выделить все
# svnlite list svn://svn.freebsd.org/base/release

RELENG - или иначе bugfix'ы к релизам:
Код: выделить все
# svnlite list svn://svn.freebsd.org/base/releng

- stable
Код: выделить все
# svnlite list svn://svn.freebsd.org/base/stable

- current или альтернативный тег head (head он же "." точка)
Код: выделить все
# svnlite list svn://svn.freebsd.org/base/head

Если вам нужно отслеживать текущую версию разработки (CURRENT), команду svn в секции Source меняем на
Код: выделить все
svnlite co svn://svn.freebsd.org/base/head /usr/src

Запускаем первоначальный shell-скрипт, получаем исходные тексты.
После получения исходного кода смотрим файл /usr/src/UPDATING, там описаны все основные изменения от версии к версии.
Последующие обновления можно получать таким shell скриптом:
Код: выделить все
#!/bin/sh
# Sources
svnlite update /usr/src
# Ports
svnlite update /usr/ports
# Documentation
svnlite update /usr/doc

Перед обновлением системы нужно почистить директорию /usr/obj
Код: выделить все
cd /usr/obj && chflags -R noschg * && rm -rf *
cd /usr/src && make cleandir  && make cleandir # хендбук рекомендует выполнять эту команду дважды (!)

Обновляем систему
Код: выделить все
cd /usr/src
make -j `sysctl -n hw.ncpu` buildworld
make -j `sysctl -n hw.ncpu` buildkernel  ## Добавить "KERNCONF = yourkernelname", если вы сделали собственное ядро.
make installkernel                       ## Добавить "KERNCONF = yourkernelname", если вы сделали собственное ядро.
reboot                                   ## Рекомендуется перейти в однопользовательский режим, но не обязательно.
cd /usr/src
mergemaster -p                           ## Если что-то должно быть объединено, добавлено или удалено.
make installworld
mergemaster -iUF                         ## Вы будете объединить новые конфигурационные файлы с вашими старыми.
yes | make delete-old && yes | make delete-old-libs
cd /usr/obj && chflags -R noschg * && rm -rf *
cd /usr/src && make cleandir  && make cleandir
reboot

Для добавления новых изменений в конфигурационные файлы в каталоге /etc, необходимые для сборки ядра и утилит (например, в /etc/make.conf) необходима синхронизация при помощи mergemaster(8):
Нужно внимательно смотреть, что mergemaster предлагает сделать с тем или иным конфигурационным файлом, и выбирать устраивающий вас вариант действий.
Код: выделить все
d - оставить старый вариант файла, удалив новый;
i - установить новый, удалив старый;
m - построчное сравнение старого и нового файла;
v - сравнить файлы еще раз.

При выборе построчного сравнения, на экран будут выведены обе версии файла, слева - содержимое старого файла, справа - нового. Возможные варианты действий:
Код: выделить все
l - использовать вариант слева, то есть старый;
r - использовать вариант справа, то есть новый.


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

bind - deprecate, вместо него в системе unbound
nslookup -> host
Код: выделить все
host -t a www.bsdportal.ru
www.bsdportal.ru has address 109.95.210.170
host -t any www.bsdportal.ru
www.bsdportal.ru has address 109.95.210.170
host -t cname www.bsdportal.ru
www.bsdportal.ru has no CNAME record
host -t ns bsdportal.ru
bsdportal.ru name server 1ns.ru.
bsdportal.ru name server ns2.r01.ru.
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
ROOT
Администратор
 
Сообщений: 136
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в FreeBsd

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron