Уменьшение размера FreeBSD


Зачем нужен весь этот исходный код, если не для сборки своей версии операционной системы? FreeBSD предоставляет вам не только исходный код, но и целую серию параметров, позволяющих легко влиять на процесс сборки.

Эти параметры могут быть определены в /etc/make.conf (глава 10) или в /etc/src.conf. Настройки в /etc/src.conf влияют только на сборку системного программного обеспечения FreeBSD из исходного кода, параметры в /etc/make.conf — на сборку любого программного обеспечения. Полный список параметров для файла src.conf есть на странице руководства src.conf(5), а в таблице 13.2 я привел те из них, которые считаю наиболее полезными в определенных ситуациях. В главе 20 мы познакомимся с этими параметрами поближе.

Система сборки проверяет наличие определений всех этих переменных. Определение WITHOUT_TOOLCHAIN=NO сделает переменную неопределенной, но в любом другом случае она будет считаться определенной. (Да-да, вполне допустимо даже определение WITHOUT_SENDMAIL=postfix.)

Если вас интересует точное назначение этих параметров, ознакомьтесь с обзором параметров сборки Пауля-Хеннинга Кампа (Poul-Henning Kamp) по адресу http://phk.freebsd.dk/misc/build_options. Там вы увидите, какие параметры отвечают за удаление файлов, какие — за их изменение и какие препятствуют установке файлов в систему. Кроме того, прежде чем использовать эти параметры на рабочем сервере, рекомендую опробовать их на тестовой системе, поскольку массовое удаление компонентов может привести к непредсказуемым последствиям.

Большинство параметров, начинающихся с WITHOUT_, включает компоненты системы в список файлов, которые будут удаляться командой make delete-old. Если, к примеру, вы решите, что в системе не нужен сервер Sendmail, то при обновлении Sendmail не только не будет собираться, но и будет предложен для удаления из системы. Если вы не предполагаете сборку каких-либо компонентов системы, лучше совсем удалить их.

Таблица 13.2. Параметры системы сборки

Параметр Назначение
WITHOUT_BIND Система не будет выполнять сборку каких-либо компонентов, составляющих BIND, включая named, dig, nslookup и связанные с ними библиотеки
WITHOUT_CVS Система не будет выполнять сборку CVS
WITHOUT_CXX Не будет собираться компилятор C++
WITHOUT_DICT Не будет собираться словарь
WITHOUT_EXAMPLES Не будут устанавливаться примеры
WITHOUT_GAMES В этой системе вам не поразвлечься!
WITHOUT_GDB Не будет собираться отладчик
WITHOUT_HTML Не будет собираться документация в формате HTML
WITH0UT_INET6 Будет отключена поддержка IPv6
WITH0UT_INF0 Не будет собираться или устанавливаться документация в формате info(5)
WITHOUT_IPFILTER Не будет собираться IP Filter
WITHOUT_IPX Ни одна программа не будет поддерживать протокол IPX
WITHOUT_KERBEROS Не будет ни собираться, ни устанавливаться, ни поддерживаться протокол Kerberos
WITHOUT_LIBPTHREAD Не будет собираться libpthread (глава 12)
WITHOUT_LIBTHR Не будет собираться libthr (глава 12)
WITHOUT_LPR Не будет собираться система печати
WITHOUT_MAN Не будут собираться или устанавливаться страницы руководства
WITHOUT_NIS Не будет собираться или поддерживаться NIS(8)
WITH0UT_0BJC Не будет поддерживаться Objective С
WITHOUT_RCMDS Не будут собираться и устанавливаться rlogin, rcp, rwho и другие r-программы
WITHOUT_SENDMAIL Не будет собираться Sendmail
WITHOUT_SHAREDOCS Не будет устанавливаться документация для старых версий
WITHOUT_TCSH Дайте, угадаю: вы из этих, сдвинутых на /bin/bash?
WITH0UT_T00LCHAIN Не будут устанавливаться такие компоненты, как компиляторы, отладчики и прочее. Этот параметр полезен при создании встраиваемых систем. Если он вам понадобится, укажите его в командной строке на этапе make installworld, потому что при его наличии команда make buildworld завершится с ошибкой.

Комментарии запрещены.