dadv: (Default)
Choose your future ([personal profile] dadv) wrote2010-04-14 01:18 am

Урок некромантии

В портах FreeBSD не нашлось места для NTP distribution*, включающего в себя ntpd, ntpdate, sntp и ещё несколько утилит. Видимо, потому что это всё с незапамятных времен есть в базовой системе и весьма оперативно там обновляется (хотя, например, bind тоже есть в базовой системе, но есть и в портах). В итоге нет простого способа обновить ntpd в FreeBSD-4.11, когда функциональность тамошней версии 4.1.0 восьмилетней давности становится недостаточной (ну или просто из-за проблем с безопасностью). Пришлось сделать порт самому (меньше килобайта):

fetch http://www.grosbein.net/freebsd/ntp/ntp.tar.gz
tar xvzf ntp.tar.gz
cd ntp
make install
echo 'xntpd_program="/usr/local/bin/ntpd"' >> /etc/rc.conf


Порт не заменяет системный ntpd, а устанавливает новую версию внутрь /usr/local, как и положено всем портам. Теперь на моих боевых четверках ntpd версии 4.2.6p1, в то время как в 8.0 лишь 4.2.4p5. Порт хорош тем, что его легко поправить при выпуске разработчиком новой версии ntpd (а также, его можно собрать под любой версией системы), но если сборка из порта по какой-то причине не подходит, можно поставить собранный из этого порта под FreeBSD 4.11 пакет (576K):

pkg_add -r http://www.grosbein.net/freebsd/ntp/ntp-4.2.6p1.tgz
echo 'xntpd_program="/usr/local/bin/ntpd"' >> /etc/rc.conf


Update: конечно, в портах есть NTP distribution: net/ntp (см. комменты к посту), но не заточенный под сборку на FreeBSD 4.11

(честно говоря, четверок у меня осталось только три штуки, но они далеко - одна за 300 километров, две других за 400 и дальше, работают стабильно и заменены будут только вместе с железом)

[identity profile] karpion.livejournal.com 2010-04-13 06:37 pm (UTC)(link)
Надо бы послать порт авторам FreeBSD для помещения в основное дерево портов. И хорошо бы иметь там опцию "заменить основной ntpd".

Надеюсь, при инсталляции порта будет сообщение о необходимости
echo 'xntpd_program="/usr/local/bin/ntpd"' >> /etc/rc.conf

[identity profile] dadv.livejournal.com 2010-04-13 06:40 pm (UTC)(link)
Если бы порт был кому-то нужен в дереве, он бы там уже появился. Времени для этого было достаточно. Что касается "замены основного ntpd", то я против таких вещей - не вижу в этом никакого смысла, зато вижу напрашивание на неприятности - обновление базовой системы затрёт бинарник не той версией. Порты должны жить отдельно, тем более что нет никаких проблем сказать системе, какой именно ntpd она должна запускать.

[identity profile] karpion.livejournal.com 2010-04-13 07:13 pm (UTC)(link)
Если бы порт был кому-то нужен в дереве, он бы там уже появился.
Вам он был нужен - а его не было. Посылайте, это будет правильно.

[identity profile] dadv.livejournal.com 2010-04-14 03:13 am (UTC)(link)
Мне он нужен был для неподдерживаемой системой портов версии FreeBSD, причем именно в форме, наиболее подходящей для четверки. portmgr@ ни в жисть не примет такой порт в дерево :-) Да и маинтейнить его мне не улыбается.

[identity profile] sir-dog.livejournal.com 2010-04-13 07:45 pm (UTC)(link)
Разве нет? А вот это (http://www.freebsd.org/cgi/ports.cgi?query=ntp-4.2.6&stype=name&sektion=net)?

[identity profile] dadv.livejournal.com 2010-04-14 03:16 am (UTC)(link)
И верно. Вот гадство! whereis ntp не показывает этого. В очередной раз время впустую :-(

[identity profile] sir-dog.livejournal.com 2010-04-14 04:28 am (UTC)(link)
Ну тогда уже вот так: whereis -S /usr/ports/* -f ntp
А eoe лучше: make -C /usr/ports quicksearch name=ntp

[identity profile] dadv.livejournal.com 2010-04-14 04:38 am (UTC)(link)
Ценность whereis в быстроте набора: whereis ntp и всё. А я-то в него верил :-)