Добрый вечер.Довольно глупая ситуация. Обновил систему 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'у, и почему пытается именно его запустить?
Ну и, как с этим быть.
>[оверквотинг удален]
> Нет ничего проще - 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
> 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_enableload_rc_config $name
extra_commands=reload
start_precmd=named_prestart
start_postcmd=named_poststart
reload_cmd=named_reload
stop_cmd=named_stopnamed_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
}
>> 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 :-)
> сделай pkg info bind* , удали все bind , установи заново
> p.s. в /usr/ports/dns/bind99 есть REPLACE_BASE :-)Попробую bind99 поставиь с REPLACE_BASE, а потом удалить и поставить bind10.
Может получится )
>> сделай 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 потеряла смысл и была удалена ...