8.7. サーバーおよびサービス

SAP の compat-unixODBC234 パッケージには、unixODBC ライブラリーを読み込むためのシンボリックリンクが必要である

RHEL 7 では unixODBC パッケージバージョン 2.3.1 が利用できます。さらに、compat-unixODBC234 パッケージバージョン 2.3.4 は、RHEL 7 for SAP Solutions sap-hana リポジトリーから入手できます。詳細は、新規パッケージ: SAP 向けの compat-unixODBC234 を参照してください。

unixODBC バージョン 2.3.1 と 2.3.4 のマイナーな ABI の相違点により、バージョン 2.3.1 で構築されたアプリケーションはバージョン 2.3.4 では機能しない場合があります。この互換性の問題を防ぐために、compat-unixODBC234 パッケージは、このパッケージで利用可能な共有ライブラリーに異なる SONAME を使用します。このライブラリーファイルは、/usr/lib64/libodbc.so.2.0.0 ではなく、/usr/lib64/libodbc.so.1002.0.0 にあります。

これにより、dlopen() 関数を使用してランタイムに unixODBC ライブラリーを読み込む unixODBC バージョン 2.3.4 で構築されたサードパーティーアプリケーションは、以下のエラーメッセージでライブラリーを読み込むことができません。

/usr/lib64/libodbc.so.2.0.0: cannot open shared object file: No such file or directory

この問題を回避するには、以下のシンボリックリンクを作成します。

# ln -s /usr/lib64/libodbc.so.1002.0.0 /usr/lib64/libodbc.so.2.0.0

また、必要に応じて compat-unixODBC234 パッケージからの他のライブラリー向けに同様のシンボリックリンクを作成します。

compat-unixODBC234 パッケージは、ベースの RHEL 7 unixODBC パッケージと競合することに注意してください。そのため、compat-unixODBC234 をインストールする前に unixODBC をアンインストールしてください。

(BZ#1844443)

OpenLDAP ライブラリー間のシンボルの競合により、httpd でクラッシュが発生することがある

OpenLDAP が提供する libldap ライブラリーと libldap_r ライブラリーの両方が、単一のプロセス内にロードされ、使用されると、これらのライブラリー間でシンボルの競合が発生する可能性があります。そのため、httpd 設定によって mod_security または mod_auth_openidc モジュールもロードされると、PHP ldap 拡張機能を使用する Apache httpd 子プロセスが突然終了する可能性があります。

Apache Portable Runtime (APR) ライブラリーに対する今回の更新では、APR_DEEPBIND 環境変数を設定することでこの問題を回避できます。これにより、httpd モジュールのロード時に RTLD_DEEPBIND 動的リンカーオプションを使用できるようになります。APR_DEEPBIND 環境変数を有効にすると、競合するライブラリーをロードする httpd 設定でクラッシュが発生しなくなります。

(BZ#1739287)