0

次のオプションを使用して Centos 6.3 で openldap-2.4.33 をコンパイルした後、このエラーが何を示しているのか理解できません。

サーバーは、次のアドオンを使用して「最小」インストールとしてインストールされました。

yum install ntp autofs gcc make perl strace nmap tree rpm-build rpm-devel rpmdevtools rpm-libs rpm-python \
openssl openssl-devel perl-CPAN libtool libtool-ltdl-devel.x86_64 libtool-ltdl.x86_64 \
db4.x86_64 nss_db.x86_64 compat-db.x86_64 db4-devel.x86_64 \
tcp_wrappers.x86_64 tcp_wrappers-devel.x86_64 tcp_wrappers-libs.x86_64 \
unixODBC unixODBC-devel mysql-devel cyrus-sasl-devel.x86_64 perl-ExtUtils-Embed.x86_64 \
-y

サーバーを ESX 上の VM として基本的にインストールした後、次の ./configure を実行してコンパイルしてインストールしました。

export CPPFLAGS="-I /usr/lib64/perl5/CORE" 
export LDFLAGS="-L/usr/lib64 -L/usr/lib64/perl5/CORE"
export PERL_CPPFLAGS="`perl -MExtUtils::Embed -e ccopts -I/usr/lib64/perl5/CORE`"
ldconfig
./configure \
--prefix=/ \
--enable-shared   --enable-debug   --enable-dynamic         --enable-syslog      --enable-proctitle  --enable-ipv6   \
--enable-local    --enable-slapd   --enable-cleartext       --enable-crypt       --enable-lmpasswd   --enable-spasswd  \
--enable-modules  --enable-rewrite --enable-rlookups        --enable-slapi       --enable-slp        --enable-wrappers  \
--enable-backends --enable-bdb     --enable-dnssrv          --enable-hdb         --enable-ldap       --enable-mdb  \
--enable-meta     --enable-monitor --enable-null            --enable-passwd      --enable-perl       --enable-relay    \
--enable-shell    --enable-sock    --enable-sql             --enable-overlays    --enable-accesslog  --enable-auditlog  \
--enable-collect  --enable-constraint  --enable-dds         --enable-deref       --enable-dyngroup   --enable-dynlist  \
--enable-memberof --enable-ppolicy     --enable-proxycache  --enable-refint      --enable-retcode    --enable-rwm         \
--enable-seqmod   --enable-sssvlv      --enable-syncprov    --enable-translucent --enable-unique     --enable-valsort      \
--enable-perl     --disable-ndb        --with-cyrus-sasl    --with-threads       --with-tls          --with-yielding-select  \

--with-mp

基本的な slapd.conf を使用して、独自の dn のみを追加しました。

slaptest を実行すると、次のようになります。

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
5125cefd register_matching_rule: could not locate associated matching rule generalizedTimeMatch for ( 2.5.13.28 NAME 'generalizedTimeOrderingMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
slap_schema_init: Error registering matching rule ( 2.5.13.28 NAME 'generalizedTimeOrderingMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
5125cefd slaptest: slap_schema_init failed

何らかの手がかりがある唯一のスキーマは ppolicy.schema ですが、どうすればよいか途方に暮れています。

4

1 に答える 1

1

これらの一致ルールは内部的なものであり、どちらも条件なしで OpenLDAP で定義されservers/slapd/schema_init.cています。 generalizedTimeMatchが最初に定義され、次に が定義されます。generalizedTimeOrderingMatchこれはgeneralizedTimeMatch、「関連付けられた」一致ルールで を参照します。エラーはservers/slapd/mr.c、一致するルールが追加されたときに発生します。

マッチング ルールは の配列に組み込まれ、struct slap_mrule_defs_rec順番に繰り返されます。それが失敗する明白な方法はありません。

オプションとオーバーレイのリストは完全です。オーバーレイに非互換性または依存関係の問題がある可能性がありますが、私はそれを見ていません (いくつかのオーバーレイがスキーマに追加され、それらの一致ルールをいくつかの属性の副作用として使用ddsします: 、ppolicyaccesslog;monitorバックエンドもそうです) )。

.o私の最善の推測は、最適化/アライメントおよび/または古いファイルのいずれかのコンパイラオプションに起因する可能性があるコンパイルの問題があるということですが、ここでは推測しています。実際の make および install 手順は含めません。同様に、不完全なインストールまたは以前のインストール (古いバイナリまたはスキーマ ファイル) に起因する競合が発生するわずかな可能性があります。

私はお勧めします:

make clean
make depend && make && make test

何が起こるか見てみましょう (make testかなり時間がかかります)。それが機能する場合は、/usr/localファイルの競合を避けるためにインストールすることを検討してください。それでもうまくいかない場合はconfigure、最小限のオプションで簡単に試してください。

./configure --with-threads --with-tls

次に、必要なモジュールとバックエンドだけを追加します。

于 2013-03-19T22:55:28.283 に答える