Инструкция как в FreeBSD удаленное обновление ядра и мира сделать.
Частенько приходится удаленно в ДЦ пересобирать мир и ядро системы.
Решил написать шпаргалку для себя.
Удаленное обновления мира и ядра системы FreeBSD.
# cat /etc/make.conf # Для процессора Intel Xeon E5-1650v2 CPUTYPE?=nocona NO_PROFILE=true # Опция компиляции CFLAGS= -O -pipe # Сколько по умолчанию реализовывать потоков для компиляции. MAKE_JOBS_NUMBER=6 NO_PROFILE=true NO_CPU_CFLAGS=false NO_CPU_COPTFLAGS=false # Названия ядра KERNCONF=MY_CORE_дата_создания_файла # отключаем ненужные компоненты. NO_GAMES=true NO_INET6=true NO_BLUETOOTH=true NO_SHAREDOCS=true WITHOUT_IPV6=yes # Жестко прописываем какой ветки нам нужен php и апач. DEFAULT_VERSIONS=php=55 DEFAULT_VERSIONS+=apache=2.2 #DISABLE_VULNERABILITIES=yes
# cat /etc/src.conf
# Отключаем не нужное.
WITHOUT_BLUETOOTH=TRUE
WITHOUT_GAMES=TRUE
WITHOUT_IPV6=yes
NO_SHAREDOCS=true
#NO_WERROR=1
Обновим порты.
# portsnap fetch extract update # pkg2ng
Для загрузки свежих веток мира системы нам понадобится subversion.
# cd /usr/ports/devel/subversion # make install clean
Если ветка системы была 8 или 9, то меняем ее сперва.
# svn switch svn://svn.freebsd.org/base/stable/10.1 /usr/src
Скачаем новые исходники.
# svn checkout svn://svn.freebsd.org/base/stable/10.1 /usr/src
Обновляем исходники.
# svn update /usr/src/
Смотрим обновленную версию.
# grep -A 2 TYPE= /usr/src/sys/conf/newvers.sh TYPE="FreeBSD" REVISION="10.1" BRANCH="RELEASE-p15"
Приступаем к обновлению.
Удалим старые исходники.
# cd /usr/src/ && rm -rf /usr/obj/
Начнем.
Первым делом пересоберем мир системы.
ключ -j означаем в скольких потоках компилировать.
# cd /usr/src # make -j8 buildworld
Пересоберем ядро.
Конфигурационный файл ядра лежит тут /usr/src/sys/amd64/conf/
Стандартное ядро называется GENERIC.
Я обычно делаю так.
cp /usr/src/sys/amd64/conf/GENERIC /usr/src/sys/amd64/conf/MY_CORE_дата_создания_файла
После уже вношу изменения.
коротко, что я меняю в ядре.
название ядра
ident MY_CORE_дата_создания_файла Отключаю проверку ошибок сборки. #makeoptions DEBUG=-g IPV6 #options INET6 NFS систему и MSDOS #options NFSCL #options NFSD #options NFSLOCKD #options NFS_ROOT #options MSDOSFS Отключаю поддержку звука, это сервер, а не игровой комп. # Sound support #device sound #device snd_cmi #device snd_csa #device snd_emu10kx #device snd_es137x #device snd_hda #device snd_ich #device snd_uaudio #device snd_via8233 # Firewal options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=10 options IPDIVERT options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options HZ=4000 # Jail - это если нам понадобится в будущем поднять на сервере впску и установить лимиты на впску. options RACCT options RCTL # TMP FS - уменьшаем нагрузку с дисковой подсистемы, выводим в память. options TMPFS
Компилируем ядро.
# make -j6 buildkernel KERNCONF=MY_CORE_дата_создания_файла
Установка ядра.
# make installkernel KERNCONF=MY_CORE_дата_создания_файла
Так как мы все это делаем удаленно, то не стоит перезагружаться, иначе просто потеряем связь с сервером.
Я просто останавливаю все сервисы на сервере, кроме ssh и сети, начинаю устанавливать мир.
Так как мы еще находимся в директории /usr/src, то продолжаем.
Перечитает, установит исходники, будут заданы вопросы, применить изменения к файлу или нет, ну типа того.
# mergemaster -p
Устанавливаем.
# make installworld
Запускаем перечитывания файлов, если вы меняете ветку, то готовьтесь к долгой и мутной работе по пересмотру всех системных файлов.
# mergemaster
- — mergemaster помечаются строки, которые собирается удалить.
- + mergemaster помечаются строки, которые будут добавлены.
А так же.
- i — Этот ключ означает, новые конфигурационные файлы установить.
- d — Этот ключ означает, временные конфигурационные файлы удалить.
После установки и обновления конфигурационных файлов системы, запускаем чистку.
# yes | make delete-old # yes | make delete-old-libs
Перезагружаем систему.
# shutdown -r now
Смотрим версию мира.
# uname -rms FreeBSD 10.1-RELEASE-p15 amd64
Вот и вся инструкция как в FreeBSD удаленное обновление ядра и мира.
FreeBSD установка в картинках.
FreeBSD обновление системы шпаргалка.
С ядром можно поступить так (пример для CURRENT):
include GENERIC
ident CUSTOMNAME
# For full debugger support use (turn off in stable branch):
nooptions DDB # Support DDB.
nooptions GDB # Support remote GDB.
nooptions DEADLKRES # Enable the deadlock resolver
nooptions INVARIANTS # Enable calls of extra sanity checking
nooptions INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
nooptions WITNESS # Enable checks to detect deadlocks and cycles
nooptions WITNESS_SKIPSPIN # Don’t run witness on spinlocks for speed
nooptions MALLOC_DEBUG_MAXZONES # Separate malloc(9) zones
Pingback: FreeBSD 12 установка в картинках - FRYAHA.RU
Pingback: Получаем исходный код FreeBSD из git - FRYAHA.RU