Оптимизация make.conf во FreeBSD

Автор: Raven2000.

Так как мы сидим под фряхой и ставим все исключительно из портов компилим ядра обновляем World и тд то неплохо было бы оптимизировать процесс компиляции. Многие часто не придают этому значение, но ведь при этом это ускорило бы процесс компилирования исходников а, следовательно, сэкономило наше время :) да и потом мы оптимизируем под наше железо.

1) Итакс начнемс..

ee /etc/make.conf

Я привожу тут под свой комп так что читаем коммменты.

# Тип проца у меня p3 (ниже у меня он также фигурирует как pentium3)

# Intel x86 architecture:

# (AMD CPUs) opteron athlon64 athlon-mp athlon-xp athlon-4

# athlon-tbird athlon k8 k6-3 k6-2 k6 k5

# (Intel CPUs) nocona pentium4[m] prescott pentium3[m] pentium-m

# pentium2 pentiumpro pentium-mmx pentium i486 i386

# (Via CPUs) c3 c3-2

# Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4

# AMD64 architecture: opteron, athlon64, nocona

# Intel ia64 architecture: itanium2, itanium

CPUTYPE?=pentium3

# Здесь указываем дополнительные флаги

CFLAGS=-O1 -pipe

NO_PROFILE=true # Обход построения библиотек для профилирования

# Говорим что флаги включать обязательно

NO_CPU_CFLAGS=false

NO_CPU_COPTFLAGS=false

# Это совместимость с BSD 4.x

COMPAT4X=true

# Отрубаем сборку ненужных библиотек и софта

# посмотреть что еще можно накрутить тут

# /usr/share/examples/etc/make.conf или чуть ниже я опишу.

MAKE_KERBEROS4=false

MAKE_KERBEROS5=false

NO_BIND=true

NO_SENDMAIL=true

NO_GAMES=true

# Настройки Perl

PERL_VER=5.8.8

PERL_VERSION=5.8.8

PERL_ARCH=mach

NOPERL=no

WITH_PERL=yes

WITHOUT_PERL=no

# Теперь FORCE портов..

[code]FORCE_PKG_REGISTER=yes

Ну вот и все теперь сохраняем и пользуемся.

Но если у вас возникли какие либо проблемы с портами типа одинаковых установленных

(различия только в версиях будут) портов как:

/var/db/pkg:

postfix-2.3.1_1

postfix-2.3.2_4

То вырубаем его.

FORCE_PKG_REGISTER=no

Как обещал некоторые настройки я немного опишу.

Но еще раз оговорюсь за полным собранием в библиотеку ;)

/usr/share/examples/etc/make.conf

#NO_ACPI= # не собирать acpiconf(8) и соответствующие программы

#NO_ATM= # не собирать ATM соответствующие программы и библиотеки

#NO_AUTHPF= # не собирать и неустанавливать authpf (setuid/gid)

#NO_BLUETOOTH= # не собирать Bluetooth и все связанное с ним

#NO_BOOT= # не собирать boot blocks и loader

#NO_CRYPT= # не собирать для crypto code

#NO_CVS= # не собирать CVS

#NO_CXX= # не собирать C++ и его друзей :)

#NO_DICT= # не собирать для Webster словари

#NO_DYNAMICROOT= # нелинковать /bin и /sbin динамически

#NO_FORTRAN= # не собирать g77 и соответствующие библиотеки

#NO_GAMES= # не собирать игрушки (games/ subdir)

#NO_GDB= # не собирать GDB

#NO_GPIB= # не собирать GPIB support

#NO_I4B= # не собирать пакет isdn4bsd

#NO_INET6= # не собирать IPv6 соответствующие программы и библиотеки

#NO_INFO= # не собирать и неустанавливать информационные файлы

#NO_IPFILTER= # не собирать IP Filter package

#NO_KERBEROS= # не собирать и неустанавливать Kerberos 5 (KTH Heimdal)

#NO_LIBC_R= # не собирать libc_r (re-entrant version of libc)

#NO_LIBPTHREAD= # не собирать libpthread (M:N threading library)

#NO_LIBTHR= # не собирать libthr (1:1 threading library)

#NO_LPR= # не собирать lpr и соответствующие программы

#NO_MAILWRAPPER= # не собирать для mailwrapper(8) MTA сектора

#NO_MAN= # не собирать man хелпы

#NO_MODULES= # не собирать модули устанавливаемые в kernel

#NO_NETCAT= # не собирать netcat

#NO_NLS_CATALOGS= # не собирать NLS каталоги устанавливаемые для csh(1)

#NO_OBJC= # не собирать Objective C support

#NO_OPENSSH= # не собирать OpenSSH

#NO_OPENSSL= # не собирать OpenSSL (implies NO_KERBEROS/NO_OPENSSH)

#NO_PF= # не собирать PF firewall пакеты

#NO_PROFILE= # Не компилировать библиотеки для профайлера

#NO_RCMDS= # не собирать и неустанавливать BSD r* команды (rsh, etc).

#NO_SENDMAIL= # не собирать sendmail и соответствующие программы

#NO_SHARE= # do not go into the share subdir

#NO_SHARED= # собирать в /bin и /sbin статические линки (хреновая мысль)

#NO_SHAREDOCS= # не собирать для 4.4BSD официальные документы

#NO_TCSH= # не собирать и не устанавливать /bin/csh (which is tcsh)

#NO_TOOLCHAIN= # не собирать программы для программ разработчиков

#NO_USB= # не собирать usbd(8) и соответствующие программы

#MAKE_SHELL?=sh # тут ясно кому надо включат

#NO_BIND= # не собирать BIND

#NO_BIND_ETC= # не копировать установленные файлы в /etc/namedb

#NO_BIND_LIBS_LWRES= # тоже но по библиотекам

#NO_BIND_MTREE= # не запускать mtree чтобы создать chroot дириктории

#NO_BIND_NAMED= # не собирать named, rndc, lwresd, etc.

#NO_BIND_UTILS= # не собирать dig, host, nslookup, nsupdate

#WITH_BIND_LIBS= # ставить для BIND библиотеки и файлы

# OpenSSL поддерживает алгоритм IDEA, по умолчанию он

# отключен из-за патентных ограничений Соединенных Штатов.

# Для его использования необходимо ознакомиться с лицензией,

# и, если ограничения приемлемы то врубаем ;)

#MAKE_IDEA= # IDEA (128 bit symmetric encryption)

# Документация токо для ENG и RUS

#DOC_LANG= en_US.ISO8859-1 ru_RU.KOI8-R

В конфиге make.conf можно настроить чтобы по команде "make update" в /usr/src

обновлялись порты ;) в конфиг нужно внести нижеследующее

SUP_UPDATE=

SUP= /usr/bin/csup

SUPFLAGS= -g -L 2 -z

SUPHOST= cvsup.FreeBSD.org

SUPFILE= /usr/share/examples/cvsup/standard-supfile

PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile

DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile

Опция - позволяющая указать на свой конфиг кернела и будет собирать при ${MAKE} buildkernel и устанавливатся ${MAKE} installkernel

KERNCONF=MYKERNEL

Дополнительно по csup можно посмотреть

http://www.freebsd.org/doc/handbook/cvsup.html

/usr/share/examples/cvsup/README

По опциям make

http://www.freebsd.org/cgi/man.cgi?query=make.conf&sektion=5

/usr/share/examples/etc/make.conf

Обновлено: 12.03.2015