The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование файла mk.conf в OpenBSD (make config openbsd)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: make, config, openbsd,  (найти похожие документы)
From: OpenBSD.ru <www@openbsd.ru.> Date: Mon, 2 Jan 2005 18:21:07 +0000 (UTC) Subject: Использование файла mk.conf в OpenBSD Оригинал: http://www.openbsd.ru/docs/howto-mkconf.html Использование файла mk.conf Зачем это надо? Многие администраторы OpenBSD предпочитают собирать систему самостоятельно, из исходных текстов, а также собирать и устанавливать packages из дерева портов. При этом часто используется файл /etc/mk.conf, позволяющий указать, какие именно возможности требуются от системы. Наиболее часто этот файл используется, чтобы отключить Kerberos и тому подобные возможности, которые нужны довольно редко. Но это далеко не единственная область где возможно применения файла mk.conf. Часто нам хочется включить в систему некоторые возможности, которые не включены в системных компонентах, но поддерживаются этими компонентами (например SMTP Authentication в sendmail). Однако ставить для этого данные компоненты "вручную" из исходных кодов неудобно: 1. То, что идёт с системой, лучше проверено именно с OpenBSD. 2. После каждой пересборки системы, нужно следить, чтобы установленное "вручную" ПО продолжало работать в новой системе. Очень часто мы бываем недовольны некоторыми особенностями программ, устанавливаемых из портов или просто хотим немного подправить устанавливаемую программу под свои конкретные цели... Словом иногда бывает ситуация когда есть потребность сделать что-то ради чего не стоит беспокоить народ из ports@openbsd.org. :) И здесь нам снова поможет mk.conf. Примеры использования mk.conf. Рассмотрим некоторые варианты использования mk.conf на примере набора для облегчения жизни http://www.openbsd.ru/files/site.tar.gz Данный набор состоит собственно из файла mk.conf и набора патчей, используемых им в своих целях. Данный набор можно установить в свою систему и дополнять по мере надобности. Для установки достаточно скачать файл site.tar.gz и выполнить следующие команды: # cd /etc # tar xfz /site.tar.gz # ln -sf site/mk.conf . Состав набора: mk.conf Собственно файл mk.conf. patches/hypermail.patch Патч для порта mail/hypermail, улучшающий spamprotect feature. patches/ipfm.patch Патч для порта net/ipfm, позволяющий работать с несколькими сетевыми интерфейсами одновременно. patches/suexec.patch patches/suexec.sh Патчики для suexec, позволяющие ему использовать login классы. patches/sylpheed-charset.patch Патч для порта mail/sylpheed, довольно грубо решающий проблему отсутствия locale в OpenBSD. :) После установки данного набора, остается только отредактировать файл mk.conf и настроить его под свои нужды: # Настройки собираемой системы. # SKEY?= Yes # Включать поддержку S/Key KERBEROS5?= Yes # Включать поддержку Kerberos V YP?= Yes # Включать поддержку NIS TCP_WRAPPERS?= Yes # Включать поддержку libwrap и tcpd AFS?= Yes # Включать поддержку AFS Данные настройки определяют какие стандартные компоненты должны быть включены в собираемую из исходных текстов систему. # Настройки suexec для хостинга # PATCH_SUEXEC?= Yes # Научить suexec понимать login.conf SUEXEC_DOCROOT?= /home/www # Корневой каталог серверов SETUID_SUEXEC?= Yes # Устанавливать как setuid Данные настройки определяют требуется ли поддержка login классов в suexec, корневой каталог для документов с точки зрения suexec и следует ли его устанавливать как setuid программу (необходимо если планируется использование suexec). SENDMAIL_SASL?= No # Включить поддержку SASL или SASL2 SENDMAIL_LIBMILTER?= No # Включить поддержку libmilter INSTALL_LIBMILTER?= No # Устанавливать libmilter Данные настройки определяют следует ли собирать sendmail с поддержкой SASL или SASL2 для использование возможности авторизации SMTP (в системе должен быть установлен порт security/cyrus-sasl или secuity/cyrus-sasl2 соответственно), а также следует ли включить поддержку Milter API и устанавливать библиотеку libmilter (обычно требуется для почтовых антивирусных программ и некоторых спам-фильтров). # Качать distfiles для портов сначала отсюда # MASTER_SITE_OVERRIDE?= ftp://pdp-11.org.ru/pub/OpenBSD/distfiles/${DIST_SUBDIR}/ Данная настройка позволяет указать сервера, которые должны просматриваться в первую очередь в поисках distfiles для портов. PIPE?= -pipe # Использовать pipes вместо /tmp при # # компиляции Данная настройка заставляет gcc использовать unix pipes вместо временных файлов в /tmp. SITEDIR?= /etc/site # Где все это лежит BSDSRCDIR?= /usr/src # Где находится src BSDOBJDIR?= /usr/obj # Где находится obj PORTSDIR?= /usr/ports # Где находится ports Данный настройки указывают расположение исходных текстов системы, дерева портов и других каталогов, используемых при сборке. # Научка GQmpeg конвертировать windows-1251 заголовки в koi8-r # .if ${.CURDIR} == ${PORTSDIR}/audio/gqmpeg CONFIGURE_ARGS+= --enable-russian .endif Данный фрагмент включает автоматическую перекодировку заголовков MP3 файлов windows-1251 в koi8-r в программе GQMpeg, собираемой из порта audio/gqmpeg. # Установка IRC сервера по умолчанию для BitchX и IrcII на pdp11.org.ru # .if ${.CURDIR} == ${PORTSDIR}/net/ircII || ${.CURDIR} == ${PORTSDIR}/net/bitchx CONFIGURE_ARGS+= --with-default-server=irc.pdp11.org.ru .endif Данный фрагмент устанавливает IRC сервер поумолчанию для ircII и BitchX, собираемых из портов net/ircII и net/bitchx соответственно. # Научка ipfm запускать несколько копий и создавать pidfile в виде # /var/run/ipfm-<interface>.pid # .if ${.CURDIR} == ${PORTSDIR}/net/ipfm post-patch: @${PATCH} ${PATCH_ARGS} < ${SITEDIR}/patches/ipfm.patch .endif Данный фрагмент исправляет порт net/ipfm, добавляя в него поддержку одновременной работы с несколькими сетевыми интерфейсами. При этом PID файл будет создаваться в виде /var/run/ipfm-<интерфейс>.pid # Отучка courier-imap писать IPv4->IPv6 mapped адреса в логе (и от IPv6 :) # .if ${.CURDIR} == ${PORTSDIR}/mail/courier-imap CONFIGURE_ARGS+= --without-ipv6 .endif Данный фрагмент убирает из логов все что похоже на IPv6 для порта mail/courier-imap. # Улучшение SPAM-protect feature в hypermail # .if ${.CURDIR} == ${PORTSDIR}/mail/hypermail post-patch: @${ECHO_MSG} "===> Applying SPAM-protect patch" @cd ${WRKSRC} && ${PATCH} -sp0 < ${SITEDIR}/patches/hypermail.patch .endif Данный фрагмент улучшает spamprotect feature для порта mail.hypermail. При этом вместо почтовых адресов в HTML документах будут фигурировать только имя пользователя без указания почтового домена. # Грязный хак для sylpheed чтобы subject не поганил # .if ${.CURDIR} == ${PORTSDIR}/mail/sylpheed post-patch: @${ECHO_MSG} "===> Applying ugly charset hack" @cd ${WRKSRC} && ${PATCH} -sp0 < \ ${SITEDIR}/patches/sylpheed-charset.patch .endif Данный фрагмент с помощью грубой физической силы заставляет порт mail/sylpheed писать поле Subject по русски. Криво, но на безлокальи сойдет. :) # Разборки с suexec # .if ${.CURDIR} == ${BSDSRCDIR}/usr.sbin/httpd && defined(PATCH_SUEXEC) \ && ${PATCH_SUEXEC:U} == YES && exists(${SITEDIR}/patches/suexec.patch) prereq: ${.OBJDIR}/config.status @if [ -L src/support/suexec.c ]; then \ sh ${SITEDIR}/patches/suexec.sh ${SUEXEC_DOCROOT}; \ echo "Patching suexec"; \ rm -f src/support/suexec.c; \ cp ${.CURDIR}/src/support/suexec.c src/support; \ patch -sp0 < ${SITEDIR}/patches/suexec.patch; \ rm -f src/support/suexec.c.orig; \ fi .endif .if ${.CURDIR} == ${BSDSRCDIR}/usr.sbin && defined(SETUID_SUEXEC) && \ ${SETUID_SUEXEC:U} == YES afterinstall: @chmod u+s ${DESTDIR}/usr/sbin/suexec .endif Данный фрагмент занимается разборками с suexec на тему вышеописанных настроек. # Разборки с sendmail # .if ${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail/sendmail && \ exists(/usr/local/include/sasl/sasl.h) && \ defined(SENDMAIL_SASL) && ${SENDMAIL_SASL:U} == YES ENVDEF+= -DSASL -I/usr/local/include/sasl .if exists(/usr/local/lib/sasl2) LDADD+= -L/usr/local/lib -lsasl2 .else LDADD+= -L/usr/local/lib -lsasl .endif .endif .if ${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail && \ defined(SENDMAIL_LIBMILTER) && ${SENDMAIL_LIBMILTER:U} == YES WANT_LIBMILTER= 1 .if !make(install) SUBDIR:= libmilter ${SUBDIR} .elif defined(INSTALL_LIBMILTER) && ${INSTALL_LIBMILTER:U} == YES SUBDIR:= libsm libmilter ${SUBDIR} afterinstall: install -o ${BINOWN} -g ${BINGRP} -d ${DESTDIR}/usr/include/libmilter install -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \ ${.CURDIR}/include/libmilter/*.h \ ${DESTDIR}/usr/include/libmilter .endif .endif .if (${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail/libmilter || \ ${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail/sendmail) && \ defined(SENDMAIL_LIBMILTER) && ${SENDMAIL_LIBMILTER:U} == YES WANT_LIBMILTER= 1 .endif Разборки с sendmail на тему вышеописанных настроек.

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру