これらはmozilla.orgからのPerLDAP出所および分配に関する最多のFAQです。
これらの少数の質問は、後のリリース中で、公式PODドキュメンテーションへ最も恐らく合併されるでしょう。
質問はこれらのセクションに分割されます:
-
何、その、畜生、CVSである?
私はどうそれを使用しますか。
私はどこでそれを得ることができますか。
CVSは多くの開発者と大規模なソフトウェア・プロジェクトを管理するために使用されて、ソース・コード・バージョン管理システムです。
それはほとんどのUnixおよびウインドウズ綱領のためにRCSの上に構築され、無料で利用可能です。
最新のCVSバージョン(現在v1.10.7)のための出所は例えば
周期的なFTP(Cyclic FTP)容器
からのFTP'dでありえます。
出所はドキュメンテーション(私はそれをさらに私の
ウェブサイト
で利用可能にした)を含んでいます。
私はさらに少数を作りました、利用可能な次のもののためのサポートなしかつ2進法の分配
-
Linux
(インストールする「rpm-i cvs-1.10.5-1.i386.rpm」で)。
-
Solaris
(gunzip、ファイル、またインストールする「pkgadd-d GNUcvs-1.10.5.pkg」で)。
-
ウィンドウ/NT
(使用する、あなたの、好き「解凍します」2進法のcvs.exeを抽出するアプリケーション)。
持っているかもしれないことに注目する、に<ダウンロード対話を得るのに上のリンク上の変更>クリック。
二者択一で、これらのファイルを得るために
HTTPを使用することができます
。
再び、これらはMozillaではありません「神聖だった」構造、私はあなたの便宜にそれらをちょうど供給しています。
-
私はどう最新のものをチェックしますか、安定したリリースされたコード?
匿名のユーザー名でログインして、mozilla CVSサーバーへの匿名のCVSを使用してもよい、匿名のパスワード。
例えば、PerLDAPモジュールの先端をログインしチェックするために、行うでしょう。
%cvs-d:pserver:匿名の@cvs-mirror.mozilla.org:/cvsrootログイン(匿名の@cvs-mirror.mozilla.orgにログインして)CVSパスワード:[タイプします、匿名の]%%cvs―z3-d:pserver:匿名の@cvs-mirror.mozilla.org:/cvsroot co PerLDAP cvsサーバー:mozilla/ディレクトリー/perldap U mozilla/ディレクトリー/perldap/API.pm U mozilla/ディレクトリー/perldap/API.xs Uのアップデート、mozilla/ディレクトリー/perldap/ChangeLog。
はじめてCVSを使用する時に通常単にログインしなければならないことを思い出す、認証信任状はあなたの〜/.cvspassファイルに格納されます。
"-z3」オプションは、圧縮を使用するようにCVSに命じます、CVSのあなたのバージョンがこれ(いくつかのバージョン、見たところではこのオプションで悪く阻む)の支援を得ていることを確かめます。
次のリリースは利用可能です、可能な場合(最新のものを得るために、安定したコード)主要な幹を使用してください:
-
リリース-1_0:1位、オリジナル(PerLDAPリリース(全く揺れる))。
-
リリース-1_2_2:最後および1.2のシリーズ中のほとんどの安定したリリース。
-
リリース-1_4:多くのバグフィックスを備えた最新のリリース。
-
私はどうベータ/開発枝をチェックしますか。
として(ちょうど)の上に、また、チェックする特定の枝を指定します。
例えば、あなたの出所を更新するために、v1.9枝に類似の何かをすることができます。
%cd mozilla/ディレクトリー/perldap%cvs―z3最新版-r、強打枝-1_9 cvsサーバー:アップデート。
P API.pm P API.xs。
私たちは、連続的にスナップ写真(例えば強打リリース-1_9_1)、強打リリース-1_9_2などを備えた開発枝に札を付けるでしょう。
有望に、私たちはさらにこれらのスナップ写真を自動的にパッケージにし、Mozilla FTPサーバーを増しました。
今のところ、私はそれらを
PerLDAP
サイトで利用可能にしています。
-
すべての開発枝のリストがありますか。
もちろん:
-
強打枝-1_3:これは閉じられ、幹に合併されました。
-
強打枝-1_9:PerLDAP v2.0のための開発枝、および現在用いられている1つ。
PerLDAP開発のために生産使用中の主要な幹(リリース-1_4)、および強打枝-1_9を使用することが勧められます。
さらに、「cvsステータス―v」を行うことによりファイルかモジュール用にすべてのCVSタグのリストを得ることができます。
-
どのCVSモジュールがPerLDAPに利用可能ですか。また、適切か。
PerLDAPモジュールはPerLDAPと命名されます。
さらに類似のものと共に、「ディレクトリー」出所全体をチェックすることができます。
%cvs-d:pserver:匿名の@cvs-mirror.mozilla.org:/cvsroot co mozilla/ディレクトリー
あなたがinterstedされるだけならば、上記のものはあなたにすべてを与えます、C SDK出所は言う、チェックアウトをモジュールDirectorySDKSourceCに制限することができます。
すべての利用可能なモジュールのリストは、CVSROOTディレクトリー中のモジュール・ファイルの中にあります。
-
私は、どこで寄付したいパッチあるいは新しいコードを送りますか。
ニュース・グループ
にそれを記入してください。
-
私は、どうちょうど見つけたバグを報告しますか。
ニュース・グループ
にそれを記入してください。
Bugzilla
にアクセスすれば、私に対するバグをファイルしてください。
ここに、すべての
現在開いたPerLDAPバグ
およびRFEのリストがあります。
-
私は、どこに既知で開いたバグについて読むことができますか。
先決問題
、Q-4.7を参照してください。
-
どう、行う、私は、そのDNを知っている場合、LDAPエントリーを「ブラウズする」?
PerLDAP 1.4で新しい、リリースする、いくつかのデフォルト価値(のような、範囲=BASE、など(フィルタ=objectclass=*))をセットするブラウズする()方法です。
これは、あなたがDNを知っていれば全エントリーを返すことを容易にします:
Getopt::Stdを使用します;
Mozilla::LDAP::Connを使用します;
$DN=「uid=leif、ou=人々、dc=ネットスケープ、dc=com」;
$conn=、新しいMozilla::LDAP::Conn(¥%ld);
死ぬ「Could't、LDAPサーバー$ld{ホスト}に接続する」でないならば、$conn;
$エントリー=$conn>-ブラウズする($DN);
場合($エントリー)私たちがほかに1のエントリー}と分かった{#、私たちがエントリーと分からなかった{#、DNは無効です。}
1.4に先立ったバージョンについては、baseDNとしてDNを備えた基礎探索およびフィルタを行います、の(objectclass=*)。
例えば:
同じ#、コード、として、の上に、しかし引き数などを解析するために他のコードを含んでいる..
#、また次のものにブラウズする()呼び出しを取り替える、$エントリー=$conn>-探索($DN、「基礎」、"(objectclass=*)");
-
私は、どうPerLDAPを備えたネットスケープDS-4サーバー情報を管理することができますか。
今ちょうど、この準備ができているコードはありません。しかし、私たちはPerLDAPを使用して、DS-4管理モジュールを研究しています。
-
何がありますか、その「DSA ITを管理します」コントロール?
私はPerLDAPと共にそれを使用してもよいですか。
このコントロールは例えばスマートな紹介された人(Smart Referrals)を管理するために使用することができます。
より詳細に関しては、
DevEdgeドキュメンテーション
を参照してください。
PerLDAPは、コントロールの支援を得ています。しかし、OO層はこの時点でそれらを使用しません(あるいは支援)。
PerLDAP 1.4の中にLDAPコントロールに関する少しの問題があります、
Q-7.3
を見ます。
-
PerLDAPはLDAP v3特徴をすべて支援しますか。
その通り、API.pmパッケージは行います。
OO層(コネチカットpm(Entry.pmなど))はLDAPを使用しません、まだv3特徴。
私たちは、次の数か月、LDAPコントロールのような有望に加算する涼しい特徴、VLVインデックスなどにこれを研究するでしょう。
PerLDAP 1.4の中にLDAPコントロールに関する少しの問題があります、
Q-7.3
を見ます。
-
私は、どう何かを探索しますか。
LDAPフィルタは何ですか。
RTFM、
上のリンク
のうちの1つから恐らく。
-
私はどう指定しますか、/、探索中で検索されるどの属性を制限する?
デフォルトによって、PerLDAP探索活動は、エントリー(または属性)へあなたが許可を読んだと仮定して、エントリーが持っている属性をすべて検索するでしょう。
多くの属性タイプの指定により例えば属性の数を制限することができます。
@attr=(「cn」、「uid」「メイル」);
$エントリー=$conn>-探索($ベース、「sub」、$フィルタ、0、@attr);
例における0のパラメーターはフラグです、どれ、もし1(「真実」)にセットされれば、実価ではなく属性タイプを単に検索するように探索機能に命じます。
ほとんどの場合、あなたは0にこのフラグをセットしたい(「誤り」)。
明示的に属性を求めただけで、それを思い出す、それ(どちらか、エントリーがそのようなユーザ属性価値を持たないので、あるいはそれにアクセスしないので恐らく)を得るだろうということを必ずしも意味しません。
いくつかの属性(典型的に運用上の属性)はデフォルトによって返されません。また、それらを明示的に求めなければならないかもしれません。
そのような属性の例はmodifiersName属性です。
あなたがユーザ属性および運用上の属性をすべて得たければ、できます。
@attr=("*"「modifiersName」);
$エントリー=$conn>-探索($ベース、「sub」、$フィルタ、0、@attr);
属性"*"は属性とすべて一致します。
望まない場合、に、retrive、任意の属性、いずれにしても、属性「1.1」(そのようなOIDはなく、したがって、属性を返すことができません)を指定します。
あなたがDNのみを必要とすれば、これは有用です、また属性価値はない。
@attr=(「1.1」);
$エントリー=$conn>-探索($ベース、「sub」、$フィルタ、0、@attr);
-
それが内部C SDK構造を必要とする場合、私はどうLDAP API関数を呼ぶことができますか。
OOモジュール(例えばコネチカットpm)を使用する場合、これは一般に推薦されません。
しかし、Mozilla::LDAP::Connオブジェクトからinternalaハンドルを検索する2つの方法は次のとおりです:
$cld=$conn>-getLD();
$結果=$conn>-getRes();
第1の方法はLDAP接続ハンドルを返します。また、第2は最後の結果メッセージにハンドルを返します。
注意してこれらを使用して、これがあなたのコードにPerLDAPの将来のバージョンに押し入らせるかもしれないことを思い出してください。
さらに、getRes()方法は代わりに、使用することができるPerLDAP v1.0のために、PerLDAP v1.2の時点で単に利用可能です、さらに醜いソルーション:
$cld=$conn>-{「ld」};
$事実=$conn>-{「ldres」};
-
私は、どう探索が見つけたエントリーの数を数えることができますか。
もちろん、先決問題からの情報を使用して、答えは次のとおりです:
$cld=$conn>-getLD();
$事実=$conn>-getRes();
$計算=Mozilla::LDAP::API::ldap_count_entries($cld($事実));
再び、これは実際に推薦されません。また、これは将来のリリースが変化するかもしれません。
1つの可能性は在来の方法としてこの特徴を加えることです。しかし、PerLDAPのv2.0が非同期LDAP呼び出し(多くのよりよいスケーラビリティ用の)を使用するかもしれないので、私はこれをさらに調査する必要がある。
別の共通のタスクは探索がちょうど1つのエントリーをもうまさしく返さないかどうか決定することです。
それは、容易に既存のモジュールを例えばやめることができます。
$エントリー=$conn>-探索($ベース、$範囲、$フィルタ);
場合($エントリー&&!$conn>-nextEntry())私たちがちょうど1つのエントリーと分かった{#は進みます}
-
私はどう新しいLDAPエントリーを作りますか。
いくつかのオプションがあります、最も容易なものはそのときあります、1であるためにそれを変更してください、の
$エントリー=$conn>-newEntry();
$エントリー=Mozilla::LDAP::Conn>-newEntry();
さらに(PerLDAP v1.2.1の時点で)エントリー・パッケージの中で新しい()方法を使用してもよく好きです。
$エントリー=、新しいMozilla::LDAP::Entry;
$connはあなたの::Conn目的です、として、通常。
新しいオブジェクトを作成するアウトラインはPerLDAP v1.2、類似のものの時点で、次のとおりです:
$conn=、新しいMozilla::LDAP::Conn(¥%main::ld);
$エントリー=Mozilla::LDAP::Conn>-newEntry();
$エントリー>-setDN(「uid=$UID、$PEOPLE、$BASE」);
$エントリー>-{objectclass}=[「トップの」、「人」、「inetOrgPerson」、「mailRecipient」];
$エントリー>-addValue(「uid」($UID));
$エントリー>-addValue(「cn」「Leif Hedstrom」);
$エントリー>-addValue(「cn」「スウェーデン人」);
。
。
。
$conn>-加算する($エントリー);
-
私は、どうLDAPサーバーに対するユーザを確証しますか。
容易、最初に匿名のユーザとして拘束し、あなたが確証したい人にDNを捜してやり、DNを得て、DNおよびパスワードを使用して、再度拘束します。
この例(それはPerLDAP v1.2を要求するか、その後、柔軟なユーザ認証を行う方法を教える):
#!/usr/ビン/perl5使用Mozilla::LDAP::Conn;
##構成部分はこの#$BASE=を変更します「dc=ネットスケープ、dc=com」;
$USER=$ARGV[0];
$PASS=$ARGV[1];
$conn=、新しいMozilla::LDAP::Conn({「host」=>「localhost」(「port」=>「389」}));
死ぬ「LDAP接続を得ることができません」でないならば、$conn;
##は、UID、CNおよび最後のMAIL属性を使用して、ユーザを見つけようとします。
#$エントリー=$conn>-探索($BASE、「SUB」、「(uid=$USER)、0(「1.1」));
場合(!)
$エントリー||$conn(>nextEntry()){$エントリー=$conn>探索($BASE、「SUB」、「(cn=$USER)、0(「1.1」));
場合(!)
$エントリー||$conn(>nextEntry()){$エントリー=$conn>探索($BASE、「SUB」、「(mail=$USER)、0(「1.1」));
$dn=$エントリー>-getDN()、場合($エントリー&&!)
$conn>-nextEntry();
}、ほかに{$dn=$エントリー―getDN()>;
}}、ほかに{$dn=$エントリー―getDN()>;
}##は私たちに今#ユーザDNおよびパスワードで再度拘束することにより、認証信任状を確認させます。
これがユーザとして接続境界#を残すことに注意してください、匿名のものとして再度拘束する別のsimpleAuth()を再び行ってください。
私の$が確証した#=0;
場合($PASS ne"")(&&($dn ne"")&&($conn>-simpleAuth($dn($PASS)))){印刷「WhooHoo、認証はよい!¥n」;$は=1を確証しました;}印刷「間違っているユーザー名あるいはパスワード(気取り屋)。¥n。」でないならば、$、確証された;
-
私は、どう返されたエントリーの数を制限しますか。
これをすることができます、Cシンタックスの使用およびAPIの使用。
この例は10のエントリーを返します。
#!/usr/ローカルの/ビン/perl使用Mozilla::LDAP::Conn;
Mozilla::LDAP::API qw(/。 +/)を使用します;
私の($conn、$search_base、$search_scope、$事実、@attrs($リターン));
$search_base=「o=Airius.com」;
$search_scope=「サブ木」;
@attrs=();
##、オープンなLDAP接続(Open LDAP Connection)#$conn=新しいMozilla::LDAP::Conn(「ldap」、389、""、"");
さい("$0: LDAP接続(LDAP Connection)を開始することができません」!」)でないならば、$conn;
##セットsizelimit#ldap_set_option($conn>-getLD()、LDAP_OPT_SIZELIMIT、10);
##はCスタイル探索(APIからの)#$リターン=ldap_search_s($conn>-getLD()、$search_base、Mozilla::LDAP::Utils::str2Scope($search_scope)、「(cn=a*)、¥@attrs、0、$事実)を行います;
場合($リターン==LDAP_SIZELIMIT_EXCEEDED){##、その後、10の結果は返りました!#}##はPerLDAPメンテナンス属性(これらはPerLDAPに内部です、それらに干渉する#はべとべとしたかもしれなくて、もし変更されれば望まれない結果を引き起こすかもしれません)#$connをセットします―{>'ldfe」}=1;
$conn>-{'ldresの}=$事実;
$エントリー=$conn>-nextEntry();
##は正常な#として進みます、一方($エントリー){}$conn>-終了();
このコードに感謝(マイケルKonopka(konopka@netscape.com)への)。
-
私は、どうエントリーへ2進法のデータを加えますか。
非常に容易に。
例として、私たちはディレクトリー・エントリーへJPEGイメージを加えるでしょう。
#、接続、#および入り込むことを開始することを含むすべての標準の構成材料。
場合($エントリー){binmode(JPEG);||さいを開く(JPEG「/u/mwyner/b5.jpg」);#は変数からfilehandleからデータを読み取ります。一方(sysread JPEG、$tmp、1024){$jpegimage.=$tmp;}$エントリー>(>setValue(「jpegphoto」($jpegimage));$conn)最新版($エントリー)&&印刷「修正済の¥n」;
「binmode」呼び出しはMS-DOSとウインドウズのために単に必要です。
これは、正確にライン文字の終了を翻訳します。
それはUNIX、MacOSなどの下で必要ではありません、それらのシステムがすべてライン(それはCの中の単一の特徴と考えられる)の終わりに「¥n」を使用するので。
-
私は、どうディレクトリーからHTMLページまでJPEGイメージを印刷しますか。
この鍵はそれを印刷する前にあなたのページと忘れずに内容/タイプ属性を交換することです。
「満足しているタイプ:イメージ/jpeg¥n¥n」を印刷します;
$エントリーを印刷する―>{jpegphoto}[0];
あるいは、CGI.pmパール・モジュールを使用していれば、ヘッダー中の内容/タイプを変更します:
$クエリー(>ヘッダー=をタイプする>'イメージ/jpeg」)を印刷します;
#someの任意のコード印刷$エントリー>-{jpegphoto}[0];
ウインドウズを使用していれば、付け加える必要があるかもしれません。
binmode(STDOUT);
印刷する前に。
-
私は、どうグループにユーザを加えますか。
?
グループの名前を知っていれば、グループがそのCNエントリー経由で存在することを確かめるために探索することができます。
同じCNを持っているグループを持っている場合、人、次にあなたを持っている、さらにエントリーへ付けられた「objectclass=groupofuniquenames」があるかどうか確かめるために探索することができます。
一度グループを持っていれば、グループの「uniquemember」属性によってグループに誰かのDNを加えることができます。
下記を参照してください:
$エントリー=$conn>-探索(「o=mcom.com」。」サブ木。」uid=mwyner」);
場合(!)
$エントリー{さい「見つかった誰もない」;
}#は、私たちが1つのエントリーに後ろのelsif($エントリー&&!)を単に取って来てやったことを確かめます。
$conn(>nextEntry()){$groupentry=$conn>探索(「o=mcom.com」。」サブ木。」cn=PDマネージャー」);
場合(!)
$groupentry{さい「見つかったグループなし」;
}#は、私たちが1を単に戻したことを確かめます、elsif($groupentry&&!$conn->nextEntry()){$groupentry―addValue>(「uniquemember」($エントリー)―getDN()>);$conn―最新版($groupentry)&&印刷>「グループは¥nを更新した」;}}
-
どのパール・バージョンが支援されますか。
v5.004からの任意のパール・バージョン、あるいはその後。
準備されたbinariesは、構造中に使用されるパール・バージョンで単に働くでしょう、分配についてのより詳細にはREADMEおよびINSTALL情報を見ます。
-
どのパール・バージョンが勧められますか。
Perl v5.005_03。
-
どのUnixおよびウインドウズ綱領が支援され、どのバージョン。
私はPerLDAP v1.4を知っており、その後働くべきです、の上で、少なくとも、これら、綱領とバージョンのコンビネーション:
|
|
Perl 5.004
|
Perl 5.005
|
ActivePerl 519
|
|
Solaris-2.x
|
はい
|
はい
|
-
|
|
Linux/glibc
|
はい
|
はい
|
-
|
|
Irix-6.x
|
はい
|
???
|
-
|
|
ウィンドウ/NT4 SP3
|
はい
|
はい
|
はい
|
|
ウィンドウ/NT4 SP4
|
はい
|
はい
|
はい
|
別の綱領上でPerLDAPを使用していれば、
私たちに知らせてください
。
-
私は、どうPerLDAPをウィンドウ/NTマシンに基礎を置かせますか。
なぜNTはlibldap.dllを見つけることができませんか。
私は、nmakeとVisual C++を使用するパールおよびPerLDAPをsuccesfullyにコンパイルしました。
あなたが私たちがそれに関して聞きたい構造詳細を持っていれば、あなたのマイル数は変わるかもしれません。
共通の1つの問題は、C SDK libldap DLLを置くべき場所であるように見えます。
私は、perl「ビン」ディレクトリーにDLLをコピーして、perl.exeが存するところで工場がわき出ることを知りました。
別のよい選択肢はあなたのPATH環境変数にC-SDKライブラリー・フォルダーを加えることです。
パールv5.005の時点で、あなたが「サイト」ディレクトリー中でlibldap DLLを入れるべきように見えます、そしてない、その「ビン」ディレクトリー。
例えば、C:¥perlにActiveState構造509をインストールしたならば、C:¥perl¥サイトにLDAP DLLを入れてください。
-
どのC SDKが支援されますか。
SSLはどうですか?
リリースされたC SDKバージョンはすべて、PerLDAP v1.2の中で、およびその後支援されます。
v1.0では、私たちがSDK v1.2およびSDK v3.0を単に確認しました。
v1.2の時点で、Mozilla C SDK出所は、さらにPerLDAPを備えた箱から働くべきです。
PerLDAPは、SSLの全面的な支援を得ています、しかしあなたのC SDKがその支援を得ている場合のみ。
mozilla.orgの上のMozilla C SDK出所はSSL支援を得ていません。しかし、DevEdgeの2進法の分配は行います。
-
DecUnix/OSFに対する構造オプションは何ですか。
"-tasoは何ですか。」
―taso/xtaso、オプションをコンパイルする、32ビットの互換性のために使用されます。
Specificially
-
― tasoは、コードが32ビットspecficallyに互換性をもつことを保証します、仮想記憶のより低い31ビットへ図書館かモジュールをロードする結合物力。
それは32ビットのアーキテクチャーから運ぶことにおいて有用です。
-
― xtasoは自由に32ビットのポインターを使用するために32ビットの―tasoスタイル構造を拡張します。
これはコードの中で#pragma pointer_sizeを使用し―tasoおよび―xtasoオブジェクトでリンクすることを要求します。
これは何を意味しますか。
さて、明らかに、あなたが動的なローダーを無作法に振る舞わせて、どう例えばパールをコンパイルしたかの中に、誤った組合せがありえます。
誰かがより多くの情報を正確に与えることができる場合、OSFのためのPerLDAPをコンパイルする方法、この中に(
ニュース・グループ
への何かを記入する)それを置くことができて、私は幸福だろう。
-
どのリンク・オプションが使用されますか、/、Irixのために必要だった?
私は知りません、私はいくつかの特別の結合物オプションに関して何かを見ました、Irixを知っている人、知らせてください。
-
ウィンドウ/NT上のPerLDAPをリンクする場合、見当たらないシンボルがなぜありますか。
パールv5.005で、私は、メイクファイル(パールをそれ自身構築する場合)中のLINK_FLAGS定義からリンク・オプション―nodefaultlibを取り除かなければなりませんでした。
私は、なぜこれがv5.005に加えられたか知りません。しかし、少なくともこれは、私のための問題を解決しました。
そこでこの問題を解決するいくつかの代案で好きです。
-
上に記述されるようなパール用のメイクファイルを修正して、パールを再建してください。
-
Perl5設置中のConfig.pmファイルを修正してください。
-
PerLDAPのために生成されるようなメイクファイルを修正してください。
-
私は、どうテスト環境でPerLDAPをコンパイルしインストールしますか。
容易、設置および構成中にMakefile.PLスクリプトに「LIB=/u/leif/lib」のようなオプションを与える、のように
%perl5 Makefile.PL LIB=/u/leif/lib
そのときあなたのperlスクリプト中で、ラインを加える、のように
解放「/u/leif/解放」を使用します;