[질문]커널 업데이중 에러에 대해서...
글쓴이: reatrid / 작성시간: 금, 2004/01/16 - 7:35오후
이제 막, 어찌어지 하여 gcc 를 3.2.2로 업데이트 하였습니다. 그리고 커널을 2.6.2으로 업데이트 할려는 순간에 예상치 못한 에러가 나는데, 이 부분에 대해서 몇가지 자문을 구합니다.
1. gcc 업데이트 절차
==> 3.2.2 소스로 컴파일 후, 인스톨 완료.
==> 인스톨 디렉토리 : /usr/local/bin
2. kernel 업데이트 절차
==> /usr/src/linux-2.6.0 디렉토리에서
"make mrproper" -> "make oldconfig" 여기에서 에러가 발생합니다.
==> 에러 내용
error in loading shared libraries : libgcc_s.so.1 : cannot open shared objects file : No sush file or directory
3. 기타 내용
==> 이전의 .config 파일을 가져와서 "make oldconfig" 스크립트 명령 실행
4. 나름대로의 추측
==> gcc 가 잘못 인스톨되었다고 밖에 생각할 없음.
정말 4. 나름대로의 추측이 맞는 것인지 알길이 없구요, 이런 에러의 원인이 뭔지 알수가 없어서 자문을 구합니다.
그럼, 수고하세요
Forums:
추측이 맞는것 같습니다.보통 배포되고 있는 소스들을 컴파일해서 인스톨
추측이 맞는것 같습니다.
보통 배포되고 있는 소스들을 컴파일해서 인스톨하면 /usr/local을 기준으로 설치되도록
되어있습니다.
아마 지금 gcc --version을 치면 이전 버젼의 컴파일러가 실행되는 것을 볼 수 있을 겁니다.
(지우지 않았다면...)
이유는
# env | grep PATH
를 해보면 쉽게 알 수있는데 /usr/bin이 /usr/local/bin보다 먼저 있기때문에 /usr/bin/gcc가
/usr/local/bin/gcc보다 먼저 호출되어 실행되기 때문입니다.
첫번째 방법은 gcc를 컴파일 하기전에 prefix를 설정해주는 겁니다.
# ./configure --prefix=/usr ...
...는 유저에 따라서 붙이고 싶은 옵션이죠.
이렇게 되면 기존의 컴파일러를 덮어쓰게 됩니다.
문제가 되는 라이브러리도 /usr/local/lib에 설치가 되어있을겁니다.
여기까지는 제가 알고 있는 부분입니다.
/usr/local/에 설치되어있는 gcc를 이용해서 컴파일하는 방법을 어디선가 본적이
있는것 같기는한데...
자료를 못찾겠네요.
------------------------------
좋은 하루 되세요.
댓글 달기