1つのNSSライブラリを2回以上使用する一般的な解決策はありますか?
私の場合、2つのLDAPサーバーがあり、1つはマシン自体のローカルに、もう1つはリモートにあります。NSSを両方で機能させる必要があります(ローカルに必要なエントリがない場合は、リモートのNSSを使用します)。
現在、単一のライブラリー(PADL / nss_ldap)が2回ビルドされるように解決されました。どちらの場合も、ビルド前にソース内のsed
すべてのnss_ldap
出現箇所を別のものに変更するために使用されます。ケースごとに異なるテキストが使用されます(nss_ldap_1
およびのようにnss_ldap_2
)。ビルド結果はそれに応じて名前が変更されます。両方のバイナリはターゲットシステムに保存され、で参照され/etc/nsswitch.conf
ます。
また、これらのライブラリはどちらも異なる構成ファイルを使用しています/etc/
(そうしないと、意味がありません!)。ただし、これはconfigure
ビルド前に実行されるライブラリのスクリプトで引数を変更するだけで簡単に実行できます。
しかし、それは「正しく感じる」わけではありません。他のアプローチはありますか?
私が想像できることは、NSSライブラリ自体が複数の構成をサポートできるため、2つの「単一インスタンス」として機能するということです。ただし、ライブラリの作成者でない場合、これを達成するのは困難です。また、両方の構成でライブラリーを後で呼び出す必要がありますが、その間に他のライブラリーが必要になる場合があります。
もう1つのアプローチは、構成が異なる他のライブラリを呼び出すだけの単純なフォワーダーを作成することです。ただし、この場合も、他のライブラリが何らかの形で再構成可能である必要があります(/etc
フォワーダーでいくつかの固定構成ファイルを使用する場合は、最初のバージョンと同じように機能します)。また、1回だけ機能します。ライブラリを3回以上使用すると、フォワーダー自体で同じ問題が再発します。
sss
ませんか?