Привязать 9.8.2 к CentOS 6.4 x64 на сервере IBM X.
Связывание 9.8.2 из официального репозитория обновлений Centos раньше работало нормально, но затем мне нужно было настроить его, скомпилировав из исходного кода (здесь ничего сумасшедшего - просто скомпилирован с другими параметрами, чем предлагается в CentOS RPM. Обратите внимание, что я использовал исходный код из bind-9.9.4, а не 9.8.x, так что, может быть, это потенциально проблема? Я сомневаюсь, но это возможно).
Недавно я решил вернуться к установке из RPM, но теперь я не могу запустить Bind.
Единственные сообщения, которые я получаю, ничего мне не говорят:
# named -g -c /etc/named.conf
01-Dec-2013 15:46:57.899 starting BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 -g -c /etc/named.conf
01-Dec-2013 15:46:57.899 built with '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-libtool' '--localstatedir=/var' '--enable-threads' '--enable-ipv6' '--with-pic' '--disable-static' '--disable-openssl-version-check' '--with-dlz-ldap=yes' '--with-dlz-postgres=yes' '--with-dlz-mysql=yes' '--with-dlz-filesystem=yes' '--with-gssapi=yes' '--disable-isc-spnego' '--with-docbook-xsl=/usr/share/sgml/docbook/xsl-stylesheets' '--enable-fixed-rrset' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'target_alias=x86_64-redhat-linux-gnu' 'CFLAGS= -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' 'CPPFLAGS= -DDIG_SIGCHASE'
01-Dec-2013 15:46:57.899 ----------------------------------------------------
01-Dec-2013 15:46:57.899 BIND 9 is maintained by Internet Systems Consortium,
01-Dec-2013 15:46:57.899 Inc. (ISC), a non-profit 501(c)(3) public-benefit
01-Dec-2013 15:46:57.899 corporation. Support and training for BIND 9 are
01-Dec-2013 15:46:57.899 available at https://www.isc.org/support
01-Dec-2013 15:46:57.899 ----------------------------------------------------
01-Dec-2013 15:46:57.899 adjusted limit on open files from 4096 to 1048576
01-Dec-2013 15:46:57.899 found 24 CPUs, using 24 worker threads
01-Dec-2013 15:46:57.900 using up to 4096 sockets
01-Dec-2013 15:46:57.907 loading configuration: failure
01-Dec-2013 15:46:57.907 exiting (due to fatal error)
Синтаксические ошибки в named.conf и ошибки прав доступа к файлам обычно перечисляются непосредственно перед loading configuration: failure
log, но в этом случае ошибки нет, поэтому я не знаю, что происходит.
Забавно то, что если я переустановлю привязку из исходной компиляции (make install), привязка будет работать нормально. Сейчас я использую стандартный файл named.conf по умолчанию. Я не буду размещать его здесь, потому что знаю, что он действителен - проблема не в этом. Мне кажется, что я мог случайно удалить общую библиотеку или что-то в этом роде во время возни ... липких пальцев? работает, когда устал? кто знает.
Вот параметры, которые я использовал при компиляции привязки, если это помогает:
./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-libtool --localstatedir=/var --enable-threads --with-dlz-filesystem=yes --with-gssapi=/usr/include/gssapi --enable-fixed-rrset --with-dlopen=yes
Хорошо, я перейду к делу. Мне не нужно, чтобы моя рука проходила через этот процесс, но мне нужно указать направление, в котором я буду двигаться. Я не знаю, как дальше отлаживать эту проблему. Например, как мне отслеживать, запрашивает ли процесс (например, named) общую библиотеку или ресурс, которого там нет? Bind не имеет флага для дополнительной многословности, кроме того, что делает "-g". Флаг «-d» не дает более подробной информации об этой ошибке. Как можно было бы решить эту проблему дальше? Ktrace или какой-нибудь другой инструмент для отладки? Я в растерянности и хотел бы получить несколько предложений.
Вещи, которые я пробовал:
yum reinstall
на каждый пакет, указанный в repoquery --requires --recursive --resolve bind
, repoquery --requires --recursive --resolve bind-utils
, repoquery --requires --recursive --resolve bind-libs
yum remove bind bind-utils bind-libs
, затем вручную удалите все оставшиеся лакомые кусочки, а затем переустановите эти три пакетаldconfig
после переустановки привязки из RPM (полностью избыточно, но какого черта)Мне очень жаль, что разработчики ISC не сделали uninstall
make target, потому что на самом деле нет простого способа (о котором я знаю) удалить привязку после компиляции из источника. (Не стесняйтесь просветить меня там).
Спасибо за любые указатели, и если вам нужна дополнительная информация, дайте мне знать.
*** РЕДАКТИРОВАТЬ
Выход из su - named -c "/usr/sbin/named -d 9 -g -c /etc/named.conf" -s /bin/bash
:
01-Dec-2013 17:16:30.994 Registering DLZ_dlopen driver
01-Dec-2013 17:16:30.994 Registering SDLZ driver 'dlopen'
01-Dec-2013 17:16:30.994 Registering DLZ driver 'dlopen'
01-Dec-2013 17:16:30.996 decrement_reference: delete from rbt: 0x7ff208214068 .
01-Dec-2013 17:16:31.001 load_configuration: failure
01-Dec-2013 17:16:31.001 loading configuration: failure
01-Dec-2013 17:16:31.001 exiting (due to fatal error)
Наконец, еще немного подсказки! Я использовал "-d 10" с bind, которого, по-видимому, не существует, поэтому неудивительно, что он не дал мне дополнительной информации об отладке. В приведенном выше сообщении нет ничего конкретного в Google, но я буду искать. Если это проливает свет, пожалуйста, дайте мне знать.
Решено! Оказывается, это была куча 32-битных общих библиотек в / usr / lib. Они, должно быть, попали туда, когда я компилировал / устанавливал из исходников, и они имели приоритет (?) Над теми, что были в / usr / lib64. Фактически, теперь, когда я думаю об этом, готов поспорить, что я либо скомпилировал для i386, либо нацелил 64-битную цель установки на / usr / lib.
После того, как я удалил их, а затем переустановил привязку из репозитория centos, все, наконец, работает, как ожидалось.
Вот файлы, которые были в / usr / lib, если кому интересно:
-rw-r--r--. 1 root root 10220682 Oct 8 00:42 libdns.a
-rw-r--r--. 1 root root 1010 Oct 8 00:42 libdns.la
lrwxrwxrwx. 1 root root 17 Oct 10 00:02 libdns.so.100 -> libdns.so.100.1.1
-rw-r--r-- 1 root root 6026006 Oct 8 00:42 libdns.so.100.1.1
lrwxrwxrwx. 1 root root 17 Oct 10 00:02 libdns.so.122 -> libdns.so.122.1.0
-rw-r--r--. 1 root root 5761978 Oct 8 00:18 libdns.so.122.1.0
-rw-r--r--. 1 root root 2083570 Oct 8 00:42 libisc.a
-rw-r--r--. 1 root root 170672 Oct 8 00:42 libisccc.a
-rw-r--r--. 1 root root 971 Oct 8 00:42 libisccc.la
lrwxrwxrwx. 1 root root 18 Oct 10 00:02 libisccc.so.80 -> libisccc.so.80.0.4
-rw-r--r--. 1 root root 102388 Oct 8 00:18 libisccc.so.80.0.4
lrwxrwxrwx. 1 root root 18 Oct 10 00:02 libisccc.so.90 -> libisccc.so.90.0.4
-rw-r--r--. 1 root root 105996 Oct 8 00:42 libisccc.so.90.0.4
-rw-r--r--. 1 root root 432498 Oct 8 00:42 libisccfg.a
-rw-r--r--. 1 root root 1067 Oct 8 00:42 libisccfg.la
lrwxrwxrwx. 1 root root 19 Oct 10 00:02 libisccfg.so.82 -> libisccfg.so.82.0.7
-rw-r--r--. 1 root root 289960 Oct 8 00:18 libisccfg.so.82.0.7
lrwxrwxrwx. 1 root root 19 Oct 10 00:02 libisccfg.so.90 -> libisccfg.so.90.0.7
-rw-r--r-- 1 root root 298219 Oct 8 00:42 libisccfg.so.90.0.7
-rw-r--r--. 1 root root 938 Oct 8 00:42 libisc.la
lrwxrwxrwx. 1 root root 16 Oct 10 00:02 libisc.so.84 -> libisc.so.84.5.1
-rw-r--r--. 1 root root 1150027 Oct 8 00:18 libisc.so.84.5.1
lrwxrwxrwx. 1 root root 16 Oct 10 00:02 libisc.so.95 -> libisc.so.95.2.1
-rw-r--r--. 1 root root 1178391 Oct 8 00:42 libisc.so.95.2.1
-rw-r--r--. 1 root root 431628 Oct 8 00:42 liblwres.a
-rw-r--r--. 1 root root 952 Oct 8 00:42 liblwres.la
lrwxrwxrwx. 1 root root 18 Oct 10 00:02 liblwres.so.80 -> liblwres.so.80.0.7
-rw-r--r--. 1 root root 239863 Oct 8 00:18 liblwres.so.80.0.7
lrwxrwxrwx. 1 root root 18 Oct 10 00:02 liblwres.so.90 -> liblwres.so.90.0.5
-rw-r--r--. 1 root root 243111 Oct 8 00:42 liblwres.so.90.0.5
попробуйте 'named -d 9', и да, это необычно, я не говорю вам, почему ...