정재익 님의 말씀을 듣고 힘을 얻어 여기 Tutorial 게시판에 옮겨 놓습니다. 끝에
부분이 짤려서 이상하게 보이는 것을 약간 정리해서 올립니다....^^;
-------------------------
제목이 좀 이상하죠???
실은 얼마전에 와우 7.1 에다가 오라클 8.1.7 을 깔아놓고 demo_proc.mk 를 아무리 컴파일
해보려고 해도 안되서 질문을 올렸었거덩요.. 그때 이름을 red 라고 쓰시는 분이 당신도
안되서 유닉스에서 8.0.5 버전인가? 를 설치해 놓고 하니까 잘된다고 그러셨었는데요...
지금 제 컴에는 레드햇 7.2 가 설치되어 있습니다. 오라클은 8.1.7 을 설치 했구요..
설치할때 각종 .mk 화일들에 대한 에러가 떨어지는 것들은 와우 7.1 에서 설치할 때와
마찬가지로 오라클 사이트에서 다운을 받은 glibc-2.1.3-stubs.tar.gz 을 $ORACLE_HOME 에
가져다가 풀어서 setup_stubs.sh 을 실행 시키는것으로 해결을 봤습니다... 그런데
demo_proc.mk 를 컴파일 해 보니까 역시 지난번과 마찬가지로 헤더파일에 들어있는 선언과
관련한 에러들이 역시 무수히 쏟아 지더라구요.
그런데 레드햇 7.2 를 설치하기전에 잠시 와우 6.2 Update 버전을 설치 해 봤었는데 거기
서는 설치할 때나 또, demo_proc.mk 를 컴파일 할때나 아무 문제가 없더라 그겁니다.
그래서 생각이 어디에 가서 닿았나 하면 와우 6.2 에 있는 컴파일러를 레드햇 7.2 에 설치
해서 컴파일을 돌려 보기로 했습니다. 여차저차 해서 레드햇 7.2 의 gcc-2.96 에 관련된
패키지들을 모두 rpm -e 로 지우고는 와우 6.2 Update 에 들어있는 egcs-1.1.2 를 설치
했습니다. 그랬더니 잘 돌아가더라구요.
그런데 그때 레드햇 7.2 에는 gcc3-3.0.1 이 같이 설치되어 있었거든요? 그래서
$ORACLE_HOME/precomp/lib/env_precomp.mk 안에 521 번째 라인에 있는 CC 의 설정을
cc 에서 gcc3 로 바꿔놓고 컴파일을 돌려 봤습니다. 그랬더니, 역시 잘 되더라구요...
지금 현재 시스템에 깔려있는 레드햇7.2 는 다시한번 설치를 한 것입니다. 현재는 gcc-2.96
만이 설치 되어 있고 대신에 지난번에 컴안에 있던 화일을 조금 복사해 뒀다가 현재 컴퓨터
에다가 집어 넣었죠... 그게 뭐냐 하면
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 디렉토리에 들어있었던 파일들과
/usr/i386-redhat-linux 에 들어있던 파일들인데 이것은 egcs-1.1.2 설치 했을때 생기는
여러 파일중에서 헤더파일이나 확장자를 .a 를 가지는 라이브러리 화일들의 위치를
변경시키지 않고 모아 놓으려다 보니 위의 두군데의 파일들을 묶어놓게 됐죠.
http://www.rpmfind.net 으로 가서 egcs 라고 입력해서 나오는 리스트 중에
egcs-1.1.2-30.i386.html 를 클릭해 보면 새로 열리는 페이지의 맨 아래 부분에
egcs-1.1.2-30.i386.rpm 을 설치할 경우 생기는 파일목록이 있으니까 그걸 참조해 보시면
될겁니다.
하여간 위에 말한 곳의 파일들 전부를 다른곳에 묶어 놨다가 다시 시스템을 지우고는
레드햇7.2 를 다시 설치하고 같은 장소에 파일들만 풀어놓은뒤
$ORACLE_HOME/precomp/admin/pcscfg.cfg 을 아래와 같이 설정했습니다.
sys_include=($ORACLE_HOME/precomp/public,/usr/include, \
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include)
include=($ORACLE_HOME/precomp/public)
include=($ORACLE_HOME/rdbms/demo)
include=($ORACLE_HOME/network/public)
include=($ORACLE_HOME/plsql/public)
ltype=short
그리고 demo_proc.mk 의 컴파일을 돌렸죠....
결과는 성공이었습니다. 와우 6.2 에서도 sample1 을 컴파일 할때 경고가 두가지 났었는데
main 함수가 int 를 리턴하지 않는다는 것에서 나오는 것 하나랑, gets 인가 하는 함수를
사용하지 않는편이 더 좋다는 그런 경고가 생성 되었었는데, 이번에도 역시 같은 경고 두개
만을 생성하고는 실행화일이 잘 만들어 졌습니다. 실행두 잘 됐구요...
지금 현재의 제 고민은 그럼 와우 7.1 에서도 같은 결과를 가져오게 될까하는 겁니다.
말하자면 와우 7.1 에서도 egcs-1.1.2 를 설치해서 위에 말한 두 군데의 파일들을 묶어놓고
egcs-1.1.2 를 지우고 난뒤 gcc-2.96 을 설치해 놓고 파일들만 풀어놓구 난뒤에 위와 같이
pcscfg.cfg 를 설정해 놓고 컴파일을 돌리면 잘 돌아갈까.....
하는것이 지금 저의 의문이죠.. 애석하게도 제가 실험을 해볼수는 없을것 같습니다.
먼저 레드햇 7.2 를 설치 했을때는 하드에 작은 공간(7G 정도)이 남아서 거기에 임시로 7.2
를 설치해 놓고 실험을 해 봤었는데 ( 그때의 메인 공간에는 레드햇 6.2 가 설치되어
있었습니다.. ) 지금은 하드에 남은 공간이 없거든요...-_-;
혹시 와우 7.1 에 다가 오라클 8.1.7 을 설치해 놓구 demo_proc.mk 컴파일에 어려움을 겪고
계신분이 이 글을 보신다면 한번 해보시기를 권해 드리고 싶습니다. 그리고, 결과를 여기
게시판에 올려 주셨으면 합니다.
그러니까, 와우 7.1에 들어있는 컴파일러인 gcc-2.96 을 rpm -e 로 지우고 egcs-1.1.2 를
설치하고 일단 pcscfg.cfg 를 위와 같이 하고 컴파일을 돌려보고, 다시 위에서 얘기한 두
군데의 파일들을 묶어서 보관해 둔뒤 egcs-1.1.2 를 지우고 gcc-2.96 을 다시 설치해 놓고
묶어놓은 파일들을 같은 위치에 풀어놓고 demo_proc.mk 를 다시한번 실행시켜 보는 것이죠.
지금 생각에는 될것 같다는 느낌이 더 강한것 같습니다. 왜냐하면 현재 지금 제 컴에 들어
있는 C 컴파일러가 gcc-2.96 이니까요..만일 그렇게 되면 와우 7.1 에서도 오라클 pro*c 를
돌릴 수가 있다는 결론이 나오는 거죠...
혹시 이미 다른 방법으로 와우 7.1 에서 오라클 8.1.7 의 pro*c 의 컴파일에 성공하신 분이
있으시다면 그분에게는 필요가 없겠지만여... 혹여 그런 분이 있다면 성공하신 과정을 여기에
올려주시면 감사하겠습니다.
아참! 한가지 얘기할게 더 있는데요. 이게 상관이 있는 건지 어떤건지는 잘 모르겠는데
egcs-1.1.2 를 설치하고 난뒤에 그와 관련된 c++ 컴파일러인 egcs-c++-1.1.2 패키지를 설치
하려고 했는데 그걸 설치하려면 libstdc++-2.9.0 이 설치가 되어야 한다고 나오더군여..
그런데 레드햇 7.2 에는 libstdc++-2.96 을 사용하는 프로그램들이 많아서 그걸 지우고
libstdc++-2.9.0 을 설치할 수는 없었습니다. 그래서 egcs-c++-1.1.2 를 설치할 수는 없었
는데 레드햇 7.2 에는 compat-libstdc++-6.2-2.9.0.16 라는 패키지가 기본적으로 깔려
있더군여...와우 7.1 에서는 어땠는지 기억이 잘 나지 않고 또 이게 관련이 있는건지 없는
건지도 잘 모르겠습니다. 와우 리눅스 사이트에 들어가서 보니까 패키지 리스트에
compat-libstdc++ 6.2
Standard C++ libraries for Red Hat 6.2 backwards compatibility C++ compiler
라는 항목이 들어가 있기는 한데... 혹시 안된다면 compat-libstdc++ 가 설치되어있는지
확인 하시고 없다면 설치해 보시고 해보시는게 어떨까 하는 생각이 들기는 합니다....
그리구 기존의 컴파일러를 지우고 새로 설치할때 말인데요 --oldpackage 옵션을 써서 설치
하지 마시고 반드시 rpm -e 를 써서 gcc 관련 패키지들을 지우고 ( 보통 gcc-objc-2.96 ,
gcc-g77-2.96, gcc-c++-2.96, gcc-2.96 과 cpp-2.96 이 설치 되어 있죠 ) cpp-1.1.2 를
먼저 설치하고 egcs-1.1.2 를 설치하고 실험을 해 보시기 바랍니다.
해보지 않으실 분들에게는 이제 까지 긴글 읽어 주셔서 감사하구요,
해보시려는 분들에는 건투를 빕니다!!!
그럼 안녕히 계십시요...
|