요즘 레드햇-7.1에 포함된 gcc-2.96은 여러문제가 많다고 보고되고
있다. 실지로 여러프로그램의 소스 컴파일할때 에러가 생기는 경우가
많다.그 대안으로 gcc-3.0으로 업해야 하는데 소스컴파일에 여러번
실패하면서 손을 대지 못하고 있었는데 마침 rpmfind.net에서
rpm으로 gcc-3.0 이 나와서 간단히 업글에 성공했다.
# rpm -qa | grep libstdc
libstdc++3-3.0-3
compat-libstdc++-6.2-2.9.0.14
libstdc++3-devel-3.0-3
# rpm -qa | grep gcc
gcc-3.0.0-0.85
gcc-chill-2.96-94
gcc-g77-3.0.0-0.85
libgcc-3.0.0-0.85
gcc-java-3.0.0-0.85
gcc-objc-3.0.0-0.85
gcc-c++-3.0.0-0.85
libgcc-3.0.0-0.85
libgcj-3.0.0-0.85
libgcj-devel-3.0.0-0.85
이것들은 http://rpmfind.net 에서 구할수있다.
# rpm -Uvh *.rpm --force --nodeps
# rpm -V -y gcc
Unsatisfied dependencies for gcc-3.0.0-0.85: cpp = 3.0.0
하니 어떤 소스를 컴파일할때 cpp 가 없다고 gcc 에러가 난다.
설치되는 디렉이 야간 차이가 있어서 링크를 걸어준다.
# find / -name cpp
/usr/share/lout/doc/user/cpp
/usr/bin/cpp
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp
/usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/cpp
/usr/local/bin/cpp
/usr/i386-glibc21-linux/lib/gcc-lib/i386-redhat-linux/2.96/cpp
/usr/i386-glibc21-linux/lib/gcc-lib/i386-redhat-linux/3.0.0/cpp
/lib/cpp
위와같이 cpp가 각파일안에 링크가 제대로 되어 있는지 확인한다.
만약 링크가 깨져있다면 그 깨진것들을 지우고 다시 링크를 시킨다.
# ln -s /usr/local/bin/cpp /usr/bin
# ln -s /usr/local/bin/cpp /lib
# ln -s /usr/local/bin/cpp /usr/local/bin
# ln -s /usr/local/bin/cpp /usr/local/cpp0
그외 자신이 점검을 해서 필요한곳에 일일히 링크를 건다.
자 이제 성공이다.
실지로 여러 소스를 컴파일 해보니 이상없이 잘되었다.
워낙 리눅스가 개별적이어서 본인에게만 해당될수 있지만
이런식으로 하면 gcc-3.0으로 업글하는것은 어렵지 않게 할수 있겠다.
영원한 리눅스 전도사.