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 версии. К сожалению, они приняли мои советы на этот счет, и теперь все менее стандартизировано, чем прежде
← назад | Оглавление | вперед → |