富田といいます。
Hiroki Kashiwazaki wrote: > しかし,nss_ldap や pam_ldap は openldap-client-2.3.41 を必要とし > ているため,openldap23-client をインストールしようとし始めますが, > openldap23-client は (既に入っている) openldap23-sasl-clientと競合 > するためインストールに失敗します.僕はこれでてっきり,nss_ldap や > pam_ldap を使うなら,sasl なしで (TLS などを使って)運用すべしとい > う事かなと考えておりました. /usr/ports/Mk/bsd.port.mkというファイルを読むと気がつくのですが、 たとえば/etc/make.confに、 WANT_OPENLDAP_SASL=yes と書いておくと、必ず、openldap23-sasl-clientが採用されるようになるため、 自動的にopenldap23-clientがインストールされることはなくなります。 > が,/usr/ports/net/nss_ldap あるいは /usr/ports/security/pam_ldap > で make install すれば openldap23-client のない環境でもインストー > ルすることが出来る事が分かりました.僕は ports の中で make install > する事と -P オプションをつけない portinstall は (pkgtools.conf を > 見るかどうかの違いこそあれ) 基本的に等価かと思っていたのですが, > どうやら異なるようで,しかし何がどう違うのかがよく分かりません. こちらは、たまたまそうなってしまった、なんだと思われます。 (1) ports/security/pam_ldap/Makefileに USE_OPENLDAP= yes とあるので、openldapがインストールされていることが要求されます。 make実行時のログを見ると気がつくかもしれませんが、 ===> pam_ldap-1.8.4 depends on shared library: ldap-2.3.2 - found と表示されるように、たぶん、/usr/local/lib/libldap-2.3.so が存在しれば、foundになります。 (2) openldap23-client でも openldap23-sasl-client でも、 インストールされるライブラリ名がlibldap-2.3.so という同じ名前に なっています。 そういうわけで、(1)でfoundになります。 想像ですが、portinstallは、MakefileのLIB_DEPENDSを見るよりも先に、 INDEX*.dbの依存関係の情報を見て、openldap23-clientをインストールしようと しているのではないでしょうか。 私の場合、portsで戸惑うことがあったときは、たいていは、各portsのMakefile と、bsd.port.mkを見れば、自己解決できてます。
