2. Установка Samba
| ← назад | Оглавление | вперед → |
Установка Samba
"Части кода должны работать вместе как часы. Помните что код написанный вами, вам же потом и разбирать. Должны быть веские причины, если вы не можете заставить части кода снова работать слажено. Старайтесь не использовать молоток в своей работе.”
IBM инструкция для разработчиков, 1975
Весомый аргумент в установке Samba на свой компьютер, это ответить на некоторые вопросы, которые вероятно возникают в вашей голове: Какие настройки сети были использованы во время сборки Samba, которые могут повлиять на ее работу? Где она будет искать свои файлы конфигурации? Были ли внесены какие-либо изменения в исходный код вашим поставщиком Linux? Вы получите ответы на эти вопросы.
Сначала мы должны скачать последний архив Samba с исходными кодами:
$ curl -LO http://samba.org/samba/ftp/stable/samba-3.3.3.tar.gz
Проверка
В большинстве случаев нужно проверить архив с исходными файлами на наличие GPG signed key. Однако, в случае с Samba, все немного иначе1:
$ gunzip samba-3.3.3.tar.gz $ curl -LO http://samba.org/samba/ftp/stable/samba-3.3.3.tar.asc $ gpg –keyserver-options auto-key-retrieve –verify samba-3.3.3.tar.asc
Распаковка
Распакуем исходные коды дистрибутива Samba и перейдем в директорию с распакованным архивом:
$ tar –no-same-owner –no-same-permissions -xvf samba-3.3.3.tar $ cd samba-3.3.3/source
Стоит отметить что директория с исходными файлами Samba содержит следующие полезные файлы и папки:
WHATSNEW.txt -Изменения произошедшие в последней версии. Все важные документы и файлы находятся в.docs/ -Документация Samba, включая старую и новуюexamples/ -Примеры файлов конфигурации Sambasource/ -Текушие исходные коды
Кроме того вы обалдеете (извините за жаргон Прим. переводчика), когда узнаете что в архиве абсолютно бесплатно для вас находится полная версия книги Using Samba издательства O’Reilly (на английском языке :-p Прим. переводчика). Она находится в docs/htmldocs/using_samba/.
Если вам уже скучно, давайте быстро покончим с этим, выполните простую команду:
$ ./configure
А вот вариант для тех кто хочет понять что, куда и зачем собственно мы устанавливаем:
$ ./configure \
–prefix=/usr/local/samba-3.3.3 \
–with-configdir=/etc/samba \
–with-privatedir=/etc/samba/private \
–disable-cups \
–with-cifsmount
$ make
# make install
Примечание: при указании опций конфигурации необходимо прислушиваться к голосу здравого смысла. Ну например, указав -enable-cups=yes, вы можете попасть в затруднительное положение, если в системе не установлен CUPS.
Хоть в большинстве дистрибутивов Linux уже все и определено, не лишним будет убедиться что в вашей системе в файле /etc/services определены порты, которые использует Samba. Не удивляйтесь, если вы увидите неожиданные записи "137/tcp" и т. д.; IANA обычно включает в себя как TCP так и UDP записи, независимо от того, требует ли этого протокол.
netbios-ns 137/udp # NETBIOS Name Service netbios-dgm 138/udp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS Session Service microsoft-ds 445/tcp # Microsoft-DS
Для запуска Samba, просто запустите демонов вручную или с помощью стартовых скриптов:
# /usr/local/samba-3.3.3/sbin/smbd -D # /usr/local/samba-3.3.3/sbin/nmbd -D
Для остановки Samba не рекомендуется использовать команду SIGKILL (-9), используйте ее только в крайнем случае. Согласно документации Samba, “это может оставить область общей памяти в неустойчивом состоянии”. Давайте договоримся, что будем использовать:
# killall -15 smbd nmbd
Ну а если необходимо перегрузить Samba (для учета изменений в конфигурационных файлах), пошлите следующий SIGHUP сигнал:
# killall -HUP smbd nmbd
Если вы хотите упростить себе жизнь (что не всегда хорошая идея), вы можете создать старт/стоп сценарий:
#!/bin/sh
# chkconfig: 2345 91 35
# description: Initialization script for Samba
# Make sure the configuration file exists
[ -f /etc/samba/smb.conf ] || exit 1
samba_start() {
echo "Starting SMB services"
/usr/local/samba/sbin/smbd -D
echo "Starting NMB services"
/usr/local/samba/sbin/nmbd -D
}
samba_stop() {
echo -n "Stopping smbd"
kill -15 $(</usr/local/samba/var/locks/smbd.pid)
while [[ -f /usr/local/samba/var/locks/smbd.pid ]]; do echo -n .; sleep 1; done ; echo
echo -n "Stopping nmbd"
kill -15 $(</usr/local/samba/var/locks/nmbd.pid)
while [[ -f /usr/local/samba/var/locks/nmbd.pid ]]; do echo -n .; sleep 1; done ; echo
}
samba_reload() {
echo "Re-reading Samba configuration files"
kill -HUP $(</usr/local/samba/var/locks/nmbd.pid)
}
# See how we were called
case "$1" in
'start')
samba_start
;;
'stop')
samba_stop
;;
'restart')
samba_stop
sleep 1
samba_start
;;
'reload')
samba_reload
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
;;
esac
1. Это, по сути, моя вина. Команда Samba предоставляет как gzip так и bzip2 версии своего программного обеспечения, каждая из которых имеет свой уникальный GPG ключ. Давным, давно я предложил, что будет проще, если делать одну GPG подписанную версию архива, а не две GZIP или bzip2 версии. К сожалению, они приняли мои советы на этот счет, и теперь все менее стандартизировано, чем прежде
| ← назад | Оглавление | вперед → |