Denodo ODBC ドライバーのコンパイル¶
Denodo は、Windows および Linux 用の Denodo ODBC ドライバーを提供しています。これらは、ドライバーマネージャー unixODBC および iODBC と互換性があります。しかし、以下が必要になった場合に備えて、ドライバーのソースコードも同梱しています。
ドライバーを Unix で使用する
または、unixODBC または iODBC 以外のドライバーマネージャーを使用する
ここでは、Denodo ODBC ドライバーをコンパイルする方法について説明します。
Linux で ODBC ドライバーをコンパイルするための前提条件¶
Denodo ODBC ドライバーは、以下のパッケージとバージョンに依存しています。
gcc
。unixODBC
バージョン 2.2.14 以降。unixODBC-devel
バージョン 2.2.14 以降 (一部の Linux ディストリビューションでは「unixodbc-dev」と呼ばれています)。openssl-devel
(一部の Linux ディストリビューションでは「libssl-dev」呼ばれています): このパッケージは、ODBC ドライバーで Kerberos 認証をサポートしたい場合にのみ必要です。postgresql-devel
バージョン 9.x 以降 (一部の Linux ディストリビューションでは「postgresql-server-dev-9.5」と呼ばれています)。curl
バージョン 7.71.1 以降 (curl -V
を実行して、所有するバージョンを確認します)。
注釈
Kerberos 認証を使用して Denodo サーバーに接続する必要があり、 かつ 、Denodo の JDBC データソースの少なくとも 1 つがパススルーセッション資格情報を使用する場合は、 postgresql-devel
パッケージをインストールしないでください 。これは後ほど手動で作成します。
ODBC ドライバーをコンパイルする前に、ドライバーをコンパイルするホストにこれらのパッケージがインストールされていることを確認してください。
RPM パッケージングシステムを使用する Linux ディストリビューション (Red Hat、CentOS など) の場合
上記の すべてのパッケージ がインストールされていることを確認します。そのためには、
yum list installed <package name>
を実行します。次に例を示します。yum list installed gcc postgresql-devel unixODBC unixODBC-devel openssl-devel
次のようなテキストが出力されます。
Installed Packages gcc.x86_64 4.8.2-16.2.el7_0 openssl-devel.x86_64 1:1.0.1e-60.el7 postgresql-devel.x86_64 9.2.18-1.el7 unixODBC.x86_64 2.3.1-11.el7 unixODBC-devel.x86_64 2.3.1-11.el7
5 つ のパッケージがインストールされており、 かつ 、パッケージのバージョンが要件を満たしていることを確認します。あるパッケージがリストに表示されていない場合、そのパッケージをインストールする必要があります。
パッケージをインストールするには、
yum install <package name>
コマンドを実行します。次に例を示します。sudo yum install openssl-devel
「No package ... available.」が返された場合、この特定のディストリビューションではパッケージの名前が異なっていることを意味します。この場合、
yum list available <package name>
コマンドでパッケージの名前を検索します。次に例を示します。yum list available *openssl-devel*
パラメータにアスタリスクが含まれていることに注意してください。これは、完全な名前ではなくパターンを渡すことができるためです。
少なくとも 1 つのパッケージが返されます。その名前をコピーし、
yum install <package name>
を使用してインストールします。
Ubuntu などの Debian パッケージングシステムに基づく Linux ディストリビューションの場合
上記の すべてのパッケージ がインストールされていることを確認します。そのためには、
apt list --installed <package name>
を実行します。次に例を示します。apt list --installed gcc postgresql-server-dev-9.5 unixODBC unixodbc-dev libssl-dev
次のようなテキストが出力されます。
Listing... Done gcc/trusty,now 4:4.8.2-1ubuntu6 amd64 [installed] libssl-dev/trusty-updates,trusty-security,now 1.0.1f-1ubuntu2.22 amd64 [installed] postgresql-server-dev-9.5/trusty-updates,now 9.5.14-0ubuntu0.14.04 amd64 [installed] unixodbc/trusty,now 2.2.14p2-5ubuntu5 amd64 [installed] unixodbc-dev/trusty,now 2.2.14p2-5ubuntu5 amd64 [installed]
5 つ のパッケージがインストールされており、 かつ 、パッケージのバージョンが要件を満たしていることを確認します。あるパッケージがリストに表示されていない場合、そのパッケージをインストールする必要があります。
パッケージ名は、RPM ベースのディストリビューションに関する説明の中で示したものとは異なります。これは、多くの Debian ベースのディストリビューションではパッケージ名が異なるためです。
あるパッケージがインストール されていない 場合、
apt-get install <package name>
コマンドを使用してインストールします。sudo apt-get install unixODBC
「Unable to locate package <package name>」が返された場合、この特定のディストリビューションではパッケージの名前が異なっていることを意味します。この場合、
apt list <package name>
コマンドでパッケージの名前を検索します。次に例を示します。apt list *unixODBC*
パラメータにアスタリスクが含まれていることに注意してください。これは、完全な名前ではなくパターンを渡すことができるためです。
少なくとも 1 つのパッケージが返されます。その名前をコピーし、
apt-get install <package name>
を使用してインストールします。
注釈
sudo
を実行する権限がない場合、「 su
」と入力して Enter キーを押し、「root」のパスワードを入力します。このセッションの期間中はルートユーザーになります。
ODBC ドライバーのコンパイル (標準の方法)¶
ここでは、Denodo ODBC ドライバーをコンパイルする方法について説明します。コマンドラインを開き、以下のコマンドを実行します。Denodo ODBC ドライバーは、そのドライバーが使用される クライアントマシンでコンパイルする 必要があります。
注釈
Kerberos 認証を使用して Denodo サーバーに接続する必要があり、 かつ 、Denodo の JDBC データソースの少なくとも 1 つがパススルーセッション資格情報を使用する場合は、このセクションの手順に 従わない でください。代わりに、「 転送可能チケットを取得するための ODBC ドライバーのコンパイル 」に進んでください。
# Important: in the line below, replace "<DENODO_ODBC_HOME>" with the path to the
# directory that contains the denodo-vdp-odbcdriver-linux.tar.gz file.
# This file can be obtained from <DENODO_HOME>/tools/client-drivers/odbc in
# the machine where the Denodo server is installed.
export DENODO_ODBC_HOME=<DENODO_ODBC_HOME>
cd $DENODO_ODBC_HOME
# Building the denodoODBC driver.
tar -xzf denodo-vdp-odbcdriver-linux.tar.gz
cd denodo-vdp-odbcdriver-linux/src/denodo-pgsqlodbc
./configure --prefix=$DENODO_ODBC_HOME/dist
make install
これでドライバーがコンパイルされました。ドライバーは「<DENODO_ODBC_HOME>/dist/lib」に保存されています。
依存関係が存在しないために ./configure
または make
が失敗した場合は、「 Troubleshooting the Compilation of the Denodo ODBC Driver 」に進みます。たとえば、次のエラーで ./configure
が失敗した場合です。
configure: error: odbc_config not found (required for unixODBC build)
転送可能チケットを取得するための ODBC ドライバーのコンパイル¶
ここでは、Denodo ODBC ドライバーをコンパイルして、「転送可能」 Kerberos チケットを取得できるようにする方法について説明します。これが必要なのは、Kerberos 認証を使用する必要があり、Denodo の JDBC データソースの少なくとも 1 つがパススルーセッション資格情報を使用する場合です。このドライバーは、ログイン/パスワード認証に使用することもできます。この機能が必要ない場合は、 上記 の手順に従います。
注釈
次のプロセス中に、システムで patch
コマンドを使用できる必要があります。
ドライバーが使用されるクライアントマシンに接続し、コマンドラインを開き、以下のコマンドを実行します。
# Important: in the line below, replace "<DENODO_ODBC_HOME>" with the path to the
# directory that contains the denodo-vdp-odbcdriver-linux.tar.gz file.
# This file can be obtained from <DENODO_HOME>/tools/client-drivers/odbc in
# the machine where the Denodo server is installed.
export DENODO_ODBC_HOME=<DENODO_ODBC_HOME>
cd $DENODO_ODBC_HOME
tar -xzf denodo-vdp-odbcdriver-linux.tar.gz
cd denodo-vdp-odbcdriver-linux/src
# Downloading the source code of PostgreSQL
wget https://ftp.postgresql.org/pub/source/v9.5.14/postgresql-9.5.14.tar.gz
tar -xzf postgresql-9.5.14.tar.gz
# The file "denodo-vdp-odbcdriver-linux.tar.gz" includes a patch that modifies the
# libpq library of PostgreSQL so the Kerberos authentication works with Denodo.
cd postgresql-9.5.14
patch ./src/interfaces/libpq/fe-auth.c ./libpq.patch
# Building libpq library included with PostgreSQL.
./configure --with-krb-srvnam=HTTP --with-openssl --without-readline --prefix=$DENODO_ODBC_HOME/dist/postgresql
make install
# Building the denodoODBC driver.
cd $DENODO_ODBC_HOME/denodo-vdp-odbcdriver-linux/src/denodo-pgsqlodbc
./configure --with-libpq=$DENODO_ODBC_HOME/dist/postgresql/bin/pg_config --prefix=$DENODO_ODBC_HOME/dist
make install
# Moving libpq next to the denodoODBC driver.
cd $DENODO_ODBC_HOME/dist
cp postgresql/lib/libpq.so.5 lib/
これでドライバーがコンパイルされました。ドライバーは「<DENODO_ODBC_HOME>/dist/lib」に保存されています。再コンパイルされたライブラリ libpq は同じディレクトリに存在します。
注釈
Denodo ODBC をロードするときにシステムが依存側ライブラリ libpq.so を発見できるように、再コンパイルされた libpq.so.5 のパスを環境変数 LD_LIBRARY_PATH
または LIBPATH
に追加する必要が生じる場合があります。
依存関係が存在しないために ./configure
または make
が失敗した場合は、 以下 のセクションに進みます。たとえば、次のエラーで ./configure
が失敗した場合です。
configure: error: odbc_config not found (required for unixODBC build)
Denodo ODBC ドライバーのコンパイルのトラブルシューティング¶
Denodo ODBC ドライバーのコンパイル中に問題が発生した場合は、以下のことを試してください。
Denodo ODBC ドライバーで必要なパッケージがインストールされていること (そのバージョンを含む) を確認します。
それらが正しいパッケージである場合、パッケージ UnixODBC と PostgreSQL-devel を手動でコンパイルします。そのためには、以下のコマンドを実行します。
「PostgreSQL-devel」ライブラリの libpq モジュールのコンパイル
# Important: in the line below, replace "<DENODO_ODBC_HOME>" with the path to the
# directory that contains the denodo-vdp-odbcdriver-linux.tar.gz file.
# This file can be obtained from <DENODO_HOME>/tools/client-drivers/odbc in
# the machine where the Denodo server is installed.
export DENODO_ODBC_HOME=<DENODO_ODBC_HOME>
cd $DENODO_ODBC_HOME
# Downloading and building libpq included with PostgreSQL.
wget https://ftp.postgresql.org/pub/source/v9.5.14/postgresql-9.5.14.tar.gz
tar -xzf postgresql-9.5.14.tar.gz
cd postgresql-9.5.14
./configure --with-krb-srvnam=HTTP --with-openssl --without-readline --prefix=$DENODO_ODBC_HOME/dist/postgresql
make install
UnixODBC のコンパイル
cd $DENODO_ODBC_HOME
# Downloading and building unixODBC.
wget http://www.unixodbc.org/unixODBC-2.3.4.tar.gz
tar -xzf unixODBC-2.3.4.tar.gz
cd unixODBC-2.3.4
./configure
make install
上記でコンパイルした libpq ライブラリを使用して Denodo ODBC ドライバーを再度コンパイルします。
cd $DENODO_ODBC_HOME
# Building the denodoODBC driver.
tar -xzf denodo-vdp-odbcdriver-linux.tar.gz
cd $DENODO_ODBC_HOME/denodo-vdp-odbcdriver-linux/src/denodo-pgsqlodbc
./configure --with-libpq=$DENODO_ODBC_HOME/dist/postgresql/bin/pg_config --prefix=$DENODO_ODBC_HOME/dist
make install
これらのコマンドのいずれも失敗しなかった場合、ドライバーは「<DENODO_ODBC_HOME>/dist/lib」に保存されています。