Skip to content

Latest commit

 

History

History
184 lines (135 loc) · 5.84 KB

SPURS_1_SETUP.md

File metadata and controls

184 lines (135 loc) · 5.84 KB

«Шпоры» по практике установки системного и прикладного ПО в FreeBSD

Может оказаться полезным для автоматизации с помощью Ansible


Содержание

  1. Сотворение мира
  2. Пакетный менеджер pkg
  3. Команды установки порта
  4. Отработанный минимум установки

Сборка системы

Проводится при обновлении системы, а также после установки системы Out-of-Box, если требуются особые условия, заданные в /etc/make.conf, /etc/src.conf, /etc/src-env.conf.

  1. ➡️ Размещение исходников в /usr/src. Раньше можно было взять через subversion, например:

        svn checkout https://svn.freebsd.org/base/release/12.2.0 /var/tmp/src
  2. ➡️ Анализ /usr/src/UPDATING, внесение требуемых параметров в /etc/make.conf, /etc/src.conf, /etc/src-env.conf. Подготовка конфигурации рабочего ядра в /usr/src/sys/amd64/conf/BASTION.

  3. ➡️ Очистка от файлов предыдущих сборок:

        rm -rvdf /usr/obj/*
  4. ➡️ Сборка мира:

        cd /usr/src
        make -j 4 buildworld
  5. ➡️ Сборка и установка дефолтного и рабочего ядер

        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
  6. ➡️ В случае появления новых системных пользователей и групп:

        mergemaster -p
  7. ➡️ Установка собранной системы:

        cd /usr/src
        make installworld
  8. ➡️ Для любителей хардкора — генерация новых дефолтных системных конфигурационных файлов и вдумчивый ручной "merging":

        cd /usr/src/etc
        make DESTDIR=/var/tmp/root distrib-dirs distribution

    Либо для ленивых просто:

        mergemaster -iF

    Ещё большой вопрос — что менее трудозатратно.

  9. ➡️ Удаление ненужных старых файлов и перезагрузка системы:

        cd /usr/src
        make delete-old
        shutdown -r now
  10. ➡️ Удаление ненужных старых библиотек:

        cd /usr/src
        make delete-old-libs

Пакетный менеджер pkg

Изначально 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

⬆️ Содержание


Пакеты после установки Out-of-Box

Что полезно установить как рабочий минимум из /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 с разными локалями)

`⬆️ Содержание