Debian に unixODBC + FreeTDS + pyodbcをインストールする



前回、開発環境にunixODBC + FreeTDS + pyodbcをインストールしましたが、
運用環境にインストールするときに足りないオペレーションがあったので、
メモしておきます。

■unixODBCとFreeTDSのインストール

運用環境にインストールするとき

gcc: error trying to exec 'cc1plus': execvp: そのようなファイルやディレクトリはありません

というエラーが出ました。


apt-get install g++

として、g++をインストールすれば解消できます。


cd /usr/local/src
wget http://www.unixodbc.org/unixODBC-2.2.14.tar.gz
wget http://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

tar zxvf unixODBC-2.2.14.tar.gz
cd unixODBC-2.2.14
./configure --disable-gui
make
make install

cd ../
tar zxvf freetds-stable.tgz
cd freetds-0.82
./configure --with-unixodbc=/usr/local/src/unixODBC-2.2.14 --with-msdblib --with-libiconv-prefix=/usr/local/lib
make
make install



設定ファイルを編集


vi /usr/local/etc/odbc.ini

[ODBC Data Sources]
freetds = FreeTDS ODBC Driver

[freetds]
Driver = /usr/local/lib/libtdsodbc.so
Description = Microsoft SQL Server
Servername = sqlserver
Database = test_database
Port = 1433



vi /usr/local/etc/freetds.conf

[sqlserver]
host = 192.168.1.1
instance = instance_name
port = 1433
tds version = 8.0
charset = utf8
client charset = utf8




念のため、接続確認


# isql -v freetds username password




■pyodbcのインストール

プロキシ経由の場合、~/.bash_profileを編集

blockquote>
vi ~/.bash_profile

export HTTP_PROXY=http://proxy_server:port/
export HTTPS_PROXY=http://proxy_server:port/

###設定を反映
source ~/.bash_profile

インストール実行

easy_install pyodbc



import pyodbcとすると、


Traceback (most recent call last):
 File "./mconvert.py", line 3, in ?
  import pyodbc
 File "build/bdist.linux-i686/egg/pyodbc.py", line 7, in ?
 File "build/bdist.linux-i686/egg/pyodbc.py", line 6, in __bootstrap__
ImportError: libodbc.so.1: cannot open shared object file: No such file or directory


というエラーが発生しました。
libodbc.soがロードされていないので、/etc/ld.so.conf.d/odbc.confという
ファイルを作り、libodbc.soのあるディレクトリを指定します。


#vi /etc/ld.so.conf.d/odbc.conf

###/usr/local/lib以下のsoをロードするようファイルに記述
/usr/local/lib

###設定反映
#ldconfig


これで無事動いてくれました。



もどる