А стало быть построим свой клуП с настольными интеллектуальными играми и скромными очаровательными поэтессами.
Итак. А что нам надо? Свой сервер для всякого разного: почта, свой собственный полигон для приложения кривых шаловливо-пакостливых ручонок, ну и все такое, навроде сервиса для синхронизации настроек браузера.
Повествование будет разбито на несколько частей:
- system (дополнения к официальному handbook-у: USE-флаги и прочие системные пакеты);
- DNS, почта(SMTP+IMAP/POP3);
- почта (веб-морда и получение из более других ящиков);
- веб (портал и форум + синхронизация настроек браузера);
- список использованных источников (или в каждом разделе свой замутить? я подумаю).
А стало быть, поехали! В силу различных причин дистрибутив - Gentoo. (Поэтому и здесь).
Базовая установка, ВНЕЗАПНО! осуществлялась в полном соответствии с
настольной книгой по Gentoo. Кстати, настоятельно рекомендую просматривать перед каждой установкой, особенно если между установками проходит много времени.
До
Installing Necessary System Tools в принципе ничего интересного. Все зависит от конкретной системы, приведу мои настройки:
Время
www ~ # echo "Europe/Moscow" > /etc/timezone
www ~ # emerge --config sys-libs/timezone-data
Ибо сервер в Москве находится. Ну так мне сказали в техподдержке хостера.
Локаль
Откуда-нибудь берем locale.gen примерно следующего содержания:
www ~ # cat /etc/locale.gen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
ru_RU.CP1251 CP1251
На самом деле в 2014-м году за необходимость поддержки отличных от UTF кодировок надо выпиливать из отрасли тех, по чьей вина таковая поддержка необходима.
Ну и генерим нужные, с последующим выбором нужной:
www ~ # locale-gen
www ~ # eselect locale list
Available targets for the LANG variable:
[1] C
[2] en_US
[3] en_US.iso88591
[4] en_US.utf8 *
[5] POSIX
[6] ru_RU.cp1251
[7] ru_RU.koi8r
[8] ru_RU.utf8
[ ] (free form)
www ~ # eselect locale set 8
"Потому что русские мы!" (с) Голубые береты.
Предохраняемся от всех и всяческих безобразий с именованиями сетевых интерфейсов
www ~ # touch /etc/udev/rules.d/80-net-name-slot.rules
Вот так выглядит в данный момент у меня /etc/portage/make.conf
www ~ # www portage # grep ^[a-zA-Z] make.conf
CFLAGS="-march=x86-64 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="mmx sse sse2"
USE="${USE} postgres threads uuid vhosts"
USE="${USE} -X -dri"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
MAKEOPTS="-j3"
LINGUAS="ru en"
source /var/lib/layman/make.conf # эта строчка будет добавлена после установки layman-а
SYNC="rsync://rsync2.ru.gentoo.org/gentoo-portage"
Наверное, ви таки хочите некоторых измышлений, почему так, а не иначе? У меня
их есть! :)
CFLAGS&USE="mmx sse sse2" - при выборе между производительностью и стабильностью системы я выбираю стабильность.
USE="${USE} postgres threads uuid vhosts"
postgres - поддержка нужной СУБД; при необходимости и прочих конфликтах иные буду забанены;
threads - странно, но поддержка потоков по умолчанию выключена;
uuid - подумал, я подумал, почитал комментарии вот к
этой записи в ЖЖ, да и решил, что оно лишним совсем не будет;
vhosts - таки веб-сервер без виртуальных хостов?! Ой, я вас таки умоляю!
*DIR - это оно само, честное слово! :)
MAKEOPTS - количество ядер + 1;
LINGUAS - "Потому что русские мы!" (с) Голубые береты.
source ... - это после установки layman-а надо добавить, сразу не стоит.
SYNC (и RSYNC) выбираются mirrorselect-ом (до chroot).
Т.е. у нас есть система, развёрнутая из stage3 с установленными genkernel, gentoo-dources, grub, syslog-ng, cronie, mlocate. Начинаем ее набивать тем, чем считаем нужным.
Система.
www ~ # emerge -av eix gentoolkit vim sudo app-misc/screen layman logrotate logwatch mirrorselect
Поставилось? Поставилось! А стало быть - обновляем систему с двойным проходом по toolchains:
www ~ # emerge -1 linux-headers glibc binutils gcc-config gcc binutils-config
www ~ # emerge -1b glibc binutils gcc portage
www ~ # emerge -1bke system
www ~ # emerge -bke world
А если ви таки считаете, что эта процедура длительная и утомительная - ну ваше
право, что я еще могу сказать?
КлуП. ДНС+Почта. Ну и СУБД, куда же без нее.
Bind. Если кто не знает - это DNS-сервер.
www ~ # echo "net-dns/bind caps dlz -postgres" >> /etc/portage/package.use
www ~ # emerge -av bind bind-tools
PostgreSQL - сервер БД.
www ~ # echo "=dev-db/postgresql-server-9.3.5" >> /etc/portage/package.keywords
www ~ # echo "=dev-db/postgresql-base-9.3.5" >> /etc/portage/package.keywords
www ~ # echo "dev-db/postgresql-server perl python" >> /etc/portage/package.use
www ~ # echo "dev-db/postgresql-base python" >> /etc/portage/package.use
www ~ # emerge -av postgresql-server
В package.keywords - ну вот так вот.
Поддержка python&perl - ну вот подумал я подумал и решил, что не помешает явное указание на необходимость их поддержки.
Postfix+Dovecot+mailx. Почта.
www ~ # echo "mail-mta/postfix dovecot-sasl vda -pam" >> /etc/portage/package.use
www ~ # echo "net-mail/dovecot pop3c imapc sieve managesieve" >> /etc/portage/package.use
www ~ # emerge -av postfix mailx
mail-mta/postfix:dovecot-sasl - аутентификация по через dovecot;
mail-mta/postfix:vda - квоты для виртуальных пользователей через виртуального агента доставки (в нашем случае - dovecot);
mail-mta/postfix:-pam - включил аутентификацию по через sasl - выключи по через другие возможности! (не понмю, но по-моему, это прямо указано в emerge -pv postfix)
С dovecot-ом, надеюсь все понятно - поддержка клиентских соединений, sieve и управление этой штукой (а что это такое - разберемся по ходу пиесы, но судя по описаниям - штука нужная)
Утилиты для исследования проблем с сетью:
www ~ # emerge -av tcptraceroute traceroute telnet tcpdump
Ну вот как-то так. Систем типа стоит, надо ее настроить. Настройка - в следующем номере, следите за анонсами!
Содержание
Свой клуП. Установка системы;
Свой клуП. DNS (Bind), Email (Postfix+Dovecot);Свой клуП. Email (Web-interface+fetching from others mailboxes);
Свой клуП. WWW (forum+FirefoxSync+Portal);
Свой клуП. Список использованных источников.