# zypper install libacl-devel python-selinux autoconf make
python-devel gdb sqlite3-devel libgnutls-devel binutils
policycoreutils-python setools-libs selinux-policy
setools-libs popt-devel libpcap-devel keyutils-devel
libidn-devel libxml2-devel libacl-devel libsepol-devel
libattr-devel zlib-devel cyrus-sasl-devel gcc
krb5-client openldap2-devel libopenssl-devel
bind-utils bind-lib
Posts authored by admin
Gentoo
Обратите внимание, что следующие разделы предполагают, по крайней мере, некоторое понимание системы packages Gentoo.
Python
Gentoo использует python-3 как основной python интерпритатор, но в данное время Samba использует python-2 (2.4.2 или выше) Следующие команды установят и настроят python-2 как основной интерпритатор.
# emerge --ask --noreplace '<dev-lang/python-3'
# eselect python set python2.7
# python-updater
Kerberos
В Gentoo, вы можете выбрать один из 2-ух реализаций kerberos, app-crypt/mit-krb5 или app-crypt/heimdal. К сожалению, в настоящее время нельзя установить обе реализации. На данный момент, разработчики Samba рекомендуют использовать app-crypt/heimdal. Для этого сначала нужно удалить app-crypt/mit-krb5 (если установлен), затем установить app-crypt/heimdal и пересобрать некоторые пакеты, которые используют старую реализацию Kerberos.
# emerge --unmerge --ask app-crypt/mit-krb5
# emerge --ask app-crypt/heimdal
# revdep-rebuild -- -ask
Bind
Для использования автоматического управления зонами, net-dns/bind и net-dns/bind-tools должны быть установлены с флагом berkdb, dlz и gssapi. Для постоянного использования, добавьте следующее в /etc/package.use:
net-dns/bind berkdb dlz gssapi
net-dns/bind-tools gssapi
Затем установите net-dns/bind:
# emerge --ask net-dns/bind net-dns/bind-tools
Примечание: Если у вас возникнут проблемы с samba’s gssapi для обновления bind, попробуйте использовать альтернативную реализацию app-crypt/mit-krb5.
Поставляемые библиотеки с Samba 4 (tdb/ldb/tevent) (те, что будут установлены из исходников samba 4, при отсутствии актуальных версий в системе)
Некоторые библиотеки необходимые для установки samba, могут быть отмечены как нестабильные, для этого нужно добавить следующее в ваш /etc/package.keywords:
~sys-libs/tevent-0.9.17
~sys-libs/tdb-1.2.10
~sys-libs/ldb-1.1.12
~sys-libs/talloc-2.0.7
Кроме того, Samba 4 требует sys-libs/tdb и sys-libs/talloc. Собираться они должны с флагом python. Для постоянного использования флага, добавьте следующее в /etc/package.use:
sys-libs/tdb python
sys-libs/talloc python
Примечание: в новых дистрибутивах gentoo, вышеперечисленные файлы хранятся в /etc/portage/, то есть /etc/portage/package.keywords и /etc/portage/package.use. Для обеспечения обратной совместимости могут быть созданы символические ссылки в /etc.
Установка пакетов:
# emerge --ask '=sys-libs/talloc-2.0.7' '=sys-libs/tdb-1.2.10' '=sys-libs/tevent-0.9.17' '=sys-libs/ldb-1.1.12'
Отметим, что ebuilds для требуемой версии вышеперечисленных пакетов может не быть в дереве портов. В этом случае проверьте Gentoo’s Bugzilla для обновления ebuilds.
Прочие зависимости:
Ниже перечислены несколько прочих пакетов для успешной установки Samba 4:
# emerge --ask net-libs/gnutls sys-apps/acl dev-libs/cyrus-sasl dev-python/subunit dev-python/dnspython net-dns/libidn
Поддержка файловых систем
Для использования дополнительных возможностей Samba 4 нужно, чтобы файловая система поддерживала оба «user» и «system» xattr пространства имен.
Файловые системы ext3/ext4
Если вы используете ext3 или ext4 в качестве файловой системы нужно включить опции «user_xattr»,»acl» и «barrier=1» в ваш /etc/fstab. Например:
/dev/hda3 /home ext3 user_xattr,acl,barrier=1 1 1
Если неправильно изменить строки в fstab, то система может перестать загружаться. Пожалуйста, будьте осторожны при изменении вашего Fstab.
user_xattr – расширенные атрибуты файлов.
Параметр barrier=1 гарантирует, что tdb транзакции будут защищены при неожиданном отключении электропитания. Включите эту опцию для того чтобы не допустить повреждения базы данных AD в файле sam.ldb
Так же нужно компилировать ядро с XATTR, SECURITY, и POSIX_ACL опциями для вашей фаловой системы. Для ext3 (поменяйте 3 на 4 для ext4) нужно:
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT3_FS_POSIX_ACL=y
Файловая система без поддержки xattr
Если ваша файловая система не поддерживает расширенных атрибутов xattr, то вы можете имитировать его, добавив следующую строку в файл smb.conf:
posix:eadb = /usr/local/samba/eadb.tdb
Это поместит все дополнительные атрибуты (NT ACLs, DOS EAs, streams etc), в tdb. Это не эффективно, и не очень хорошо масштабируется, но по крайней мере это предоставляем вам возможность, при отсутствии современных файловых систем.
Тестирование файловой системы:
Для тестирования файловой системы, должен быть установлен пакет ‘attr’ и запущено 4 команды от root:
# touch test.txt
# setfattr -n user.test -v test test.txt
# setfattr -n security.test -v test2 test.txt
# getfattr -d test.txt
# getfattr -n security.test -d test.txt
Вы должны увидеть такой результат:
# file: test.txt
user.test=»test»
# file: test.txt
security.test=»test2″
Если на каком-то этапе выдаст ошибку «Operation not supported» значит ядро сконфигурировано неверно, или ваша файловая система не смонтирована с верными опциями.
Если на каком-то этапе выдаст ошибку «Operation not permitted» это означает, что команды выполнялись не от root.
При использовании posix:eadb тестирование файловой системы не требуется.