2012년 4월 4일 수요일

solaris: install gcc (solaris 9)

1. Freeware For Solaris http://www.sunfreeware.com
2. 오른쪽 위에 Sparc/Solaris 9 또는 Intel/Solaris 9이라되어있습니다.
자신의 기종에 맞는것을 클릭합니다. (Solaris 9)
3. 다시 오른쪽 아래를 보시면 패키지의 리스트가 보입니다. 여기서 gcc-최신버전을 클릭합니다.
4. 가운데 화면에서 파란색으로 gcc-최신버전.gz 을 클릭해 다운로드 받습니다.
5. 다운로드 받은 파일을 솔라리스 머신에 전송합니다. (ftp로 SUN에 upload한다.)
6. telnet으로 SUN에 접속하여 root권한으로 설치시작. 디렉토리로 가서 압축을 풉니다.
# gunzip gcc-파일명.gz 또는 # gzip -d gcc-파일명.gz
7. 패키지를 설치합니다. # pkgadd -d gcc-최신버전-sol8-intel-local
(처음에 물어보는 것 all 두 번째 물어보는 것 y라 치고 엔터를 치면됩니다)

이와 같이 설치시 특별히 명령어를 지정해주지 않으면 /usr/local/ 이하 디렉토리에 파일이

설치됩니다. 각각의 면모를 살펴봅시다.

/usr/local/bin - 컴파일러에 필요한 실행 프로그램들이 설치되는 디렉토리,

이후 몇몇 프로그램들은 이곳에 실행 파일을 설치합니다.
/usr/local/lib - 컴파일러의 라이브러리. 이후 각각의 라이브러리들의 기본 설치

디렉토리로 사용됨
/usr/local/include - /usr/local/lib에 저장된 라이브러리들의 헤더(header 확장자 .h)

들이 설치되는 장소
/usr/local/man - /usr/local/bin에 설치된 명령어의 메뉴얼이 있을 경우 매뉴얼 설치

저장소
/usr/local/doc - /usr/local/bin에 설치된 명령어의 도큐먼트가 있을 경우 설치되는

저장소

8-1. path 설정 및 link
방법1. # ln -s /usr/local/bin/gcc /usr/bin/gcc
이렇게 하면 시스템의 모든 사용자가 gcc 를 사용할 수 있습니다.

방법2. # vi /.profile
PATH=$PATH:/usr/local/bin
/.profile에 위 항목을 집어 넣으시면 root 는 gcc 를 사용할수 있지만 다른 사용자는
일일이 .profile 에 위 PATH 설정을 해주어야 합니다.

8-2. vi편집기를 이용해 PATH와 LD_LIBRARY_PATH를 수정합니다. 아래의 내용을 가장 아래에

추가합니다.
# vi /etc/profile
....
PATH=/usr/local/bin:$PATH
export PATH
LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/openwin/lib:/usr/openwin/bin:/usr/dt/lib:

/usr/ucblib
export LD_LIBRARY_PATH

* 주의사항: LD_LIBRARY_PATH에서 디렉토리 경로의 순서를 바꾸시면 안됩니다!

역시 PATH에서 /usr/local/bin이 앞에 나와야 합니다.

9. 확인
# gcc
No Input file
이렇게 나오면 정상



# gcc

ld.so.1 파일 없음이나 libiconv 파일이 없다고 나오는 경우에는 sunfreeware 에서

libiconv 파일을 다운 받은후 패키지 설치를 해준후 다시 테스트 해본다.






Q : ld.so.1: 열기 실패: 해당 파일이나 디렉토리가 없음
A : 동적 라이브러리(Dynamic Library; Shared Object라고 불리는 것입니다.)를 로드하지 못해서

발생한 문제입니다. 말 그대로 libASH.so 파일을 실행 시간에 찾지 못한 문제네요.

해당 파일을 찾아서 LD_LIBRARY_PATH에 추가해 주세요.

Q1: ld.so.1: ./gen_lex_hash: fatal: libstdc++.so.5: open faild: No such file of directory
A : ld.so.1 파일은 동적 라이브러리를 처리하는데 필요한 라이브러리입니다. 이 파일을 통해

라이브러리가 가지는 함수 또는 사용 방법을 알아냅니다.
그런데 영어를 해석해봤듯이 ld.so.1 파일이 libstdc++.so.5 파일 열기에 실패했다고 나옵니다.

실패 원인 파일이 없다고 나오는 군요. 이 파일은 라이브러리입니다. 파일이 있다면 라이브러리

패스를 추가해주면 될 것이고 없다면 저 라이브러리를 설치해줘야 합니다.



Q2: configure:6089:error:readline libarary not found
A : configure 시 에러가 뜬 경우 이군요 에러 코드 6089는 찾아보면 알겠지만 찾기 귀찮습니다.

그러나 에러에 대한 메시지가 나온는 군요. readline 라이브러리가 없다고 말입입니다.

설치해주면 되겠지요?



Q3: configure:error: no acceptable C cmpiler found in $PATH
A : configure failed for srclib/apr 에러 메시지를 봅니다. configure 실행시 C 컴파일러가

패스에서 찾을 수 없다는 군요. C 컴파일러가 설치 않된걸까요??

설치 않되어 있으면 컴파일러를 설치합니다.
만약 설치되어 있다면 env, printenv를 쳐서 환경 파일을 살펴봅니다.
컴파일러가 설치된 디렉토리를 패스에 추가해줬는지 찾아봐야겠군요... ^^;



Q4: #/usr/ccs/bin/make
make: Fatal error: No arguments to bulid
A : 보통 configure 를 실행 후 만들어 지는 파일은 여러가지가 있지만 그 중 가장 중요한 파일은

Makein 파일입니다. 이 파일이 만들어져 있지 않으면 make명령이 실행되지 않습니다.



Q5: 컴파일 중 al-local 어쩌고 저쩌고 나오면서 컴파일이 중지되는 경우가 있습니다.
A : 이런 경우 make 버전이 낮기 때문입니다. 최신의 make 패키지를 설치하시면 됩니다.
설치했는데도 이런 에러가 뜬다면 패스 경로상 /usr/ccs/bin/make 보다 /usr/local/bin/make

의 경로가 뒤에 있기 때문입니다.
직접 패스까지 쳐서 실행하시거나 패스의 경로를 /usr/local/bin 을 앞으로 옮기시면 됩니다.

[출처] 솔라리스 9 GCC 설치 하기|작성자 큐피트

댓글 없음:

댓글 쓰기