GDBC 0.9.3 의 설치 및 gdbc 사용법
GDBC 라고 하는 것은 Generic Database Connector 라고 하여 ODBC 와 유사하게 Database 로 접속시에 일관된 인터페이스를 제공함을 목적으로 개발되고 있는 라이브러리이다. 개발중인 라이브러리는 GNU LGPL 로 배포되고 있으며, 같이 배포 되고 있는 gdbc 라는 command line 명령어는 GPL 로 배포되고 있다.
GDBC 의 설치
다운로드 : http://ftp.ndn.net/gdbc/ 로 부터 소스 또는 rpm 패키지를 다운로드 받는다.
개인적인 경우는 RPM 으로 설치하였으며, 만약 Redhat 계열이 아닌 다른 배포판을 사용하는 경우라면 소스를 컴파일하여 사용하는 수 밖에 없다.
SRPM 을 이용하여 rebuild 시키면 gdbc-0.9.3-1.i386.rpm 와 gdbc-devel-0.9.3-1.i386.rpm 이라는 두개의 RPM 패키지가 생성되며, 아무런 에러 없이 잘 컴파일 되었다.
두 패키지의 내용은 다음과 같다.
[root@database gdbc]# rpm -ql gdbc
/usr/bin/gdbc
/usr/doc/gdbc-0.9.3
/usr/doc/gdbc-0.9.3/AUTHORS
/usr/doc/gdbc-0.9.3/COPYING
/usr/doc/gdbc-0.9.3/COPYING.LIB
/usr/doc/gdbc-0.9.3/ChangeLog
/usr/doc/gdbc-0.9.3/INSTALL
/usr/doc/gdbc-0.9.3/NEWS
/usr/doc/gdbc-0.9.3/README
/usr/lib/libgdbc.so.0
/usr/lib/libgdbc.so.0.1.0
[root@database gdbc]# rpm -ql gdbc-devel
/usr/include/gdbc
/usr/include/gdbc/driver.h
/usr/include/gdbc/gdbc.h
/usr/lib/libgdbc.a
/usr/lib/libgdbc.la
/usr/lib/libgdbc.so
gdbc 의 사용법
다음으로 유일한 실행파일인 gdbc 의 사용법에 대해서 알아 보도록 하겠다.
gdbc --help 하면 다음과 같은 간단한 도움말이 나온다.
[root@database gdbc]# gdbc --help
Usage: gdbc [OPTIONS] [DATABASE]
Runs the Generic Database Connector.
-h, --help display this help and exit
-v, --version display version information and exit
Report bugs to gdbc-devel@ndn.net
정말 엽기다. 아무런 도움도 되지 않는 도움말이다 -.-; 같이 제공되는 문서도 하나도 없는 관계로 전혀 사용법을 알수가 없다. 그래서 할수 없이 소스를 뒤져 보았다. (참고로 개인적으로 C 는 손놓은 지 오래이기 때문에 극도로 싫어 한다 -.-;)
소스를 보아 하니 사용할수 있는 명령어는 오로지 4개 밖에 없다.
\q gdbc 를 종료한다.
\w gdbc 프로그램은 아무런 워런티도 제공하지 않는다는 메시지를 뿌려준다.
\ld 설치된 드라이브 종류를 보여 준다.
\c GDBC_URL 명시된 GDBC_URL 로 데이터베이스 접속을 시도한다.
여기서 또 하나 알아야 할 것은 GDBC_URL 은 어떤식으로 명시하는 가 하는 것이다. 이것의 답은 url.c 에 명시되어 있었다.
driver://[[user[:pass]@]host[:port]]/[dbname]
참고로 소스 코드는 정말 간략하다. 즉 거의 주석이 없다는 말이다. 이것 해석하기가 참으로 인내심 테스트하는 느낌이 들었다.
이렇게 하다 보니 Driver 가 전혀 설치되지 않았다는 것을 알수 있었다. 그래서 다시 원래 사이트로 가서 PostgreSQL 용 driver 프로그램을 다운로드 받았다.
http://ftp.ndn.net/gdbc/gdbc-psql-0.9.2.tar.gz
소스를 tar 를 이용하여 푼 후에, 다음과 같은 과정을 거쳐 설치했다.
./configure --prefix=/usr
make check
make
make install
* 참고로 만약 make check 에서 에러가 난다면 src/psql.c 파일의 header 부분에 libpq-fe.h 파일의 위치를 정확히 명시해 주면 제대로 컴파일 될 것이다.
설치 과정은 다음과 같으며, 설치되는 파일들을 확인해 볼수 있다.
/bin/sh ../libtool --mode=install /usr/bin/install -c psql.la /usr//lib/gdbc/psql.la
/usr/bin/install -c .libs/psql.so /usr//lib/gdbc/psql.so
/usr/bin/install -c .libs/psql.lai /usr//lib/gdbc/psql.la
/usr/bin/install -c .libs/psql.a /usr//lib/gdbc/psql.a
ranlib /usr//lib/gdbc/psql.a
chmod 644 /usr//lib/gdbc/psql.a
개인적으로는 /etc/ld.so.conf 파일에 /usr/lib/gdbc 디렉토리를 추가시켜 주고 ldconfig 를 실행시켜 줬다. 나중에 뭔가 문제를 일으킬 소지가 있다고 판단되어 그렇게 했다.
참고로 이 경우 DRIVER 이름은 "PostgreSQL" 이다.
이제 다시 gdbc 로 가보자.
[root@database gdbc-psql-0.9.2]# gdbc
GDBC 0.9.3 (libgdbc 0.9.3)
Copyright (C) 2000 Jakob 'sparky' Kaivo <jkaivo@ndn.net>
GDBC comes with ABSOLUTELY NO WARRANTY; for details type `\w'.
참으로 묵뚝뚝한 메시지다. 경상도 사나이 같은 느낌이 든다.
이제 \ld 명령어를 줘 보자.
gdbc> \ld
PostgreSQL
앗~~ 처음에는 안 보이던 PostgreSQL 이라는 문자가 선명하게 나왔다. 그래서 다시 GDBC_URL 을 이용하여 접속을 시도해 보았다.
gdbc> \c PostgreSQL://db_user@database.sarang.net:5432/wdb
Connected successfully!
호곡~~ 성공이다.
이 다음 부터 할수 있는게 뭔지는 나도 모르겠다. -.-;
실제로 소스를 보면 \ 로 시작하는 명령어가 아니라면 gdbc_exec() 함수를 통해서 바로 명령어를 실행할수 있는 것으로 되어 있다. 그래서 직접 SQL 명령어를 주어 봤지만 소식이 없어서 일단 소스 분석은 보류하기로 했다.
일단 오늘은 설치 부분까지만 공부하고 말았다.
|