Gibt es eine generische Lösung, um eine einzelne NSS-Bibliothek zwei (oder mehr) Mal zu verwenden?
In meinem Fall habe ich zwei LDAP-Server, einen lokalen auf dem Computer selbst und einen Remote-Server. Ich muss dafür sorgen, dass NSS mit beiden funktioniert (es verwendet die Remote-Version, wenn local keine erforderlichen Einträge hat).
Derzeit wurde es so gelöst, dass eine einzelne Bibliothek ( PADL / nss_ldap ) zweimal erstellt wird. In beiden Fällen werden vor dem Erstellen sed
alle nss_ldap
Vorkommen in Quellen in etwas anderes geändert . Für jeden Fall wird ein anderer Text verwendet (wie nss_ldap_1
und nss_ldap_2
). Das Build-Ergebnis wird entsprechend umbenannt. Beide Binärdateien werden auf dem Zielsystem gespeichert und in verwiesen /etc/nsswitch.conf
.
Außerdem verwenden beide Bibliotheken unterschiedliche Konfigurationsdateien in /etc/
(sonst macht es keinen Sinn!). Dies ist jedoch einfach, indem Sie das Argument im configure
Skript der Bibliothek ändern, die vor dem Erstellen ausgeführt wird.
Aber es fühlt sich nicht "richtig an". Gibt es einen anderen Ansatz?
Was ich mir vorstellen kann ist, dass die NSS-Bibliothek selbst mehrere Konfigurationen unterstützen könnte, so dass sie als zwei "einzelne Instanzen" funktionieren würde. Dies ist jedoch schwer zu erreichen, wenn Sie nicht Autor der Bibliothek sind. Außerdem muss die Bibliothek für beide Konfigurationen anschließend aufgerufen werden, während möglicherweise eine andere Bibliothek dazwischen liegt.
Ein anderer Ansatz wäre, eine einfache Weiterleitung zu schreiben, die nur eine andere Bibliothek mit einer anderen Konfiguration aufruft. Dies setzt jedoch wiederum voraus, dass andere Bibliotheken irgendwie rekonfigurierbar sind (wenn nur einige feste Konfigurationsdateien in /etc
der Weiterleitung verwendet werden, funktioniert dies genauso wie die erste Version). Und es funktioniert auch nur einmal - wenn eine Bibliothek dreimal oder öfter verwendet wird, tritt das gleiche Problem jetzt mit der Weiterleitung selbst auf.
sss
?