URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95959
[ Назад ]

Исходное сообщение
"Новый bind-9.10 запускается через старый"

Отправлено Lgo , 29-Янв-15 00:20 
Добрый вечер.

Довольно глупая ситуация. Обновил систему Freebsd с 8.2 до 10.1 STABLE.
Обновил порты и установил последний bind-9.10. Я думал он обновит тот что был, но он стал паралельно и rndc показывал версию 9.7.

Нет ничего проще - pkg delete bind97-9.7 OK

После этого bind-9.10 выдает такую вот ошибку и не стартует:
WARNING: run_rc_command: cannot run /usr/sbin/named

Странно то, что запуск выполняется со скрипта /usr/local/etc/rc.d/named
а там прямым текстом указаны пути к новому днс серверу
/usr/local/sbin/named
/usr/local/etc/namedb/named.conf

Может подскажите, откуда он берет пути к старому named'у, и почему пытается именно его запустить?
Ну и, как с этим быть.


Содержание

Сообщения в этом обсуждении
"Новый bind-9.10 запускается через старый"
Отправлено kostya_from_berdsk , 29-Янв-15 07:20 
>[оверквотинг удален]
> Нет ничего проще - pkg delete bind97-9.7 OK
> После этого bind-9.10 выдает такую вот ошибку и не стартует:
> WARNING: run_rc_command: cannot run /usr/sbin/named
> Странно то, что запуск выполняется со скрипта /usr/local/etc/rc.d/named
> а там прямым текстом указаны пути к новому днс серверу
> /usr/local/sbin/named
> /usr/local/etc/namedb/named.conf
> Может подскажите, откуда он берет пути к старому named'у, и почему пытается
> именно его запустить?
> Ну и, как с этим быть.

less /etc/rc.d/named , который мог остаться от 8 и старый bind мог быть с опцией REPLACE_BASE
перемести(удали) /etc/rc.d/named, переустанови bind


"Новый bind-9.10 запускается через старый"
Отправлено Lgo , 29-Янв-15 21:55 
> less /etc/rc.d/named , который мог остаться от 8 и старый bind мог
> быть с опцией REPLACE_BASE
> перемести(удали) /etc/rc.d/named, переустанови bind

Старый был с опцией REPLACE_BASE. Я бы и новый так поставил, но такой опции уже нету.
/etc/rc.d/named я удалил, странно все это.


Вот отрывок скрипта, там пути к новому bind'у. Но при запуске он ищет старый /usr/sbin/... Откуда он берет пути?

me@server:/usr/local/etc/rc.d # cat named

#!/bin/sh
#
# $FreeBSD: head/dns/bind910/files/named.in 352512 2014-04-28 15:42:06Z mat $
#

# PROVIDE: named
# REQUIRE: FILESYSTEMS defaultroute ldconfig
# BEFORE: NETWORKING
# KEYWORD: shutdown

. /etc/rc.subr

name=named
rcvar=named_enable

load_rc_config $name

extra_commands=reload

start_precmd=named_prestart
start_postcmd=named_poststart
reload_cmd=named_reload
stop_cmd=named_stop

named_enable=${named_enable:-"NO"}              # Run named, the DNS server (or NO).
named_program=${named_program:-"/usr/local/sbin/named"} # Path to named, if you want a different one.
named_conf=${named_conf:-"/usr/local/etc/namedb/named.conf"}    # Path to the configuration file
named_flags=${named_flags:-""}                  # Use this for flags OTHER than -u and -c
named_uid=${named_uid:-"bind"}                  # User to run named as
named_wait=${named_wait:-"NO"}                  # Wait for working name service before exiting
named_wait_host=${named_wait_host:-"localhost"} # Hostname to check if named_wait is enabled
named_auto_forward=${named_auto_forward:-"NO"}  # Set up forwarders from /etc/resolv.conf
named_auto_forward_only=${named_auto_forward_only:-"NO"}        # Do "forward only" instead of "forward first"
named_confdir="${named_conf%/*}"                # Not a configuration directive but makes rclint happy.

named_poststart()
{
        if checkyesno named_wait; then
                until ${command%/sbin/named}/bin/host $named_wait_host >/dev/null 2>&1; do
                        echo "  Waiting for nameserver to resolve $named_wait_host"
                        sleep 1
                done
        fi
}

named_reload()
{
        # This is a one line function, but ${command}б═is not defined early
        # enough to be there when the reload_cmd variable is defined up there.
        ${command%/named}/rndc reload
}


"Новый bind-9.10 запускается через старый"
Отправлено kostya_from_berdsk , 30-Янв-15 11:48 
>> less /etc/rc.d/named , который мог остаться от 8 и старый bind мог
>> быть с опцией REPLACE_BASE
>> перемести(удали) /etc/rc.d/named, переустанови bind
> Старый был с опцией REPLACE_BASE. Я бы и новый так поставил, но
> такой опции уже нету.
> /etc/rc.d/named я удалил, странно все это.

$ uname -r
8.4-RELEASE-p23
$ grep named /etc/defaults/rc.conf
# named.  It may be possible to run named in a sandbox, man security for
named_enable="NO"               # Run named, the DNS server (or NO).
named_program="/usr/sbin/named" # Path to named, if you want a different one.
named_conf="/etc/namedb/named.conf"     # Path to the configuration file
#named_flags=""                 # Use this for flags OTHER than -u and -c
named_uid="bind"                # User to run named as
named_chrootdir="/var/named"    # Chroot directory (or "" not to auto-chroot it)
named_chroot_autoupdate="YES"   # Automatically install/update chrooted
                                # components of named. See /etc/rc.d/named.
named_symlink_enable="YES"      # Symlink the chrooted pid file
named_wait="NO"                 # Wait for working name service before exiting
named_wait_host="localhost"     # Hostname to check if named_wait is enabled
named_auto_forward="NO"         # Set up forwarders from /etc/resolv.conf
named_auto_forward_only="NO"    # Do "forward only" instead of "forward first"
$

$ uname -r
10.1-RELEASE-p5
$ grep named /etc/defaults/rc.conf
$

сделай pkg info bind* , удали все bind , установи заново
p.s. в /usr/ports/dns/bind99 есть REPLACE_BASE :-)


"Новый bind-9.10 запускается через старый"
Отправлено Lgo , 31-Янв-15 20:48 
> сделай pkg info bind* , удали все bind , установи заново
> p.s. в /usr/ports/dns/bind99 есть REPLACE_BASE :-)

Попробую bind99 поставиь с REPLACE_BASE, а потом удалить и поставить bind10.
Может получится )


"Новый bind-9.10 запускается через старый"
Отправлено kostya_from_berdsk , 01-Фев-15 06:46 
>> сделай pkg info bind* , удали все bind , установи заново
>> p.s. в /usr/ports/dns/bind99 есть REPLACE_BASE :-)
> Попробую bind99 поставиь с REPLACE_BASE, а потом удалить и поставить bind10.
> Может получится )

Раньше bind был в составе системы, теперь его место занял unbound.
Все, что ставит администратор ложится в /usr/local/
Опция REPLACE_BASE позволяла заменить системный bind более новым и заменяла именно тот, что лежал в /usr/sbin/named. Без опции замене подлежит /usr/local/sbin/named.

В установленой с нуля FreeBSD 10 нет bind. Опция REPLACE_BASE потеряла смысл и была удалена ...