재미삼아 하는 프로젝트를 golang으로 해볼까 하고 파보고 있던 중 golang에 oracle을 연동하기 위해 삽질한 것이 있어 기록 차원에서 남긴다.
환경
환경
1. go ( version go1.4.2 darwin/amd64 ) with 적절한 golang 환경설정 ( gopath 등 )
2. Oracle Client / SDK
instantclient-sdk-macos.x64-11.2.0.4.0
instantclient-basic-macos.x64-11.2.0.4.0
목표
goracle( https://github.com/tgulacsi/goracle)을 사용 가능하도록 적절히 설정하자
헤딩 일지
1. 무턱대고 아래와 같이 그냥 해 봤다.
$ go get github.com/tgulacsi/goracle/godrv
"oci.h" 를 찾지 못한다는 에러가 난다. 환경변수가 필요한듯 하다. goracle github에 해당 설명이 있다. 그대로 추가
2. 환경변수 설정후 해 봤다.
ld: library not found for -lclntsh
위와 같은 에러가 발생했다.
lclntsh는 찾아보니 oracle client 드라이버 안쪽에 있는 라이브러리 인듯 하다.
위 글을 참고로 하여 로컬 라이브러리에 추가 ( 어딘가에 설정이 잘못 된 것 같지만 확인이 어려우니 저기에 심볼릭 링크를 추가하기로 했다.)
$ cd /usr/bin
$ sudo ln -s ~/instantclient_11_2/libclntsh.dylib.11.1 libclntsh.dylib
$ sudo ln -s ~/instantclient_11_2/libocci.dylib.11.1 libocci.dylib
3. 잘 된다!