Может оказаться полезным для автоматизации с помощью Ansible
Проводится при обновлении системы, а также после установки системы Out-of-Box,
если требуются особые условия, заданные в /etc/make.conf
, /etc/src.conf
,
/etc/src-env.conf
.
-
➡️ Размещение исходников в
/usr/src
. Раньше можно было взять черезsubversion
, например:svn checkout https://svn.freebsd.org/base/release/12.2.0 /var/tmp/src
-
➡️ Анализ
/usr/src/UPDATING
, внесение требуемых параметров в/etc/make.conf
,/etc/src.conf
,/etc/src-env.conf
. Подготовка конфигурации рабочего ядра в/usr/src/sys/amd64/conf/BASTION
. -
➡️ Очистка от файлов предыдущих сборок:
rm -rvdf /usr/obj/*
-
➡️ Сборка мира:
cd /usr/src make -j 4 buildworld
-
➡️ Сборка и установка дефолтного и рабочего ядер
cd /usr/src nake buildkernel KERNCONF=GENERIC make installkernel KERNCONF=GENERIC cp -rvp /boot/kernel/* /boot/kernel.GENERIC/ make buildkernel KERNCONF=BASTION make installkernel KERNCONF=BASTION
-
➡️ В случае появления новых системных пользователей и групп:
mergemaster -p
-
➡️ Установка собранной системы:
cd /usr/src make installworld
-
➡️ Для любителей хардкора — генерация новых дефолтных системных конфигурационных файлов и вдумчивый ручной "merging":
cd /usr/src/etc make DESTDIR=/var/tmp/root distrib-dirs distribution
Либо для ленивых просто:
mergemaster -iF
Ещё большой вопрос — что менее трудозатратно.
-
➡️ Удаление ненужных старых файлов и перезагрузка системы:
cd /usr/src make delete-old shutdown -r now
-
➡️ Удаление ненужных старых библиотек:
cd /usr/src make delete-old-libs
Изначально pkd
как бы «не совсем установлен». При этом он
потребуется при первой же установке любого порта. Достаточно дать любую команду
с участием pkg
, хотя бы:
pkg info
и при наличии выхода в сеть он установится.
Предварительно в начале славных дел:
cd /usr/ports
make index
# Если не сработает
make fetchindex
На основании информации из /usr/ports/Mk/bsd.port.mk
последовательность команд
при установке любого порта (многие из них можно пропустить):
make config
make config-recursive
make all-depends-list
make fetch-list
make fetch
make fetch-recursive-list
make fetch-recursive
make checksum
make checksum-recursive
make extract
make patch
make configure
make build
make
make install
make clean
make clean-depends
Ещё некоторые можно применять при переустановке/обновлении:
make showconfig
make showconfig-recursive
make reinstall
make deinstall
Что полезно установить как рабочий минимум из /usr/ports/
ports-mgmt/dialog4ports
lang/perl5.34
(версия меняется в зависимости от релиза)shells/bash
lang/python3.9
(версия меняется в зависимости от релиза)databases/py-gdbm
(для полноты установки Python Standard Library)databases/py-sqlite3
(для полноты установки Python Standard Library)x11-toolkits/py-tkinter
(для полноты установки Python Standard Library)devel/py-pip
(для полноты установки Python)www/lynx
(для «рендеринга» HTML в Midnight Commander)ftp/curl
misc/mc
x11/luit
(для работы по SSH с разными локалями)