본문 바로가기
서버,보안

[리눅스] zlib 설치시 gcc 오류

by 세이박스 2009. 7. 17.
반응형

리눅스 OS 페도라 10 버전을 설치 한 후에 APM설치 하기전 zlib 을 설치 하기 위해 소스 파일 압축을 해지 하고 ./configure 를 했더니 No. 라는 메시지만 잔떡 나타난다.
이후 make 명령을 실행하면 다음과 같은 메시지가 나타난다.
make: cc: 명령을 찾지 못했음
페도라 5 또는 9 버전을 설치시엔 없었는 증상인데 아마도 설치시에 용량을 줄이기 위해 개발 패키지 체크를 모두 껐던게 문제였던것 같다.
어쨌거나 해결방법은 초간단.
yum 을 이용해 간단히 설치할 수 있다.
yum install gcc

자! 그럼, 두말하면 잔소리 에러난 증상과 설치 하는 과정을 쭈욱 보도록 합시다.


1. zlib 설치시 gcc 오류 발생


[root@ ]# tar xvfj zlib-1.2.3.tar.bz2
[root@ ]# cd zlib-1.2.3
[root@ zlib-1.2.3]# ./configure && make && make install
Checking for gcc...
Building static library libz.a version 1.2.3 with cc.
Checking for unistd.h... No.
Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()
Checking for snprintf() in stdio.h... No.
  WARNING: snprintf() not found, falling back to sprintf(). zlib
  can build but will be open to possible buffer-overflow security
  vulnerabilities.
Checking for return value of sprintf()... No.
  WARNING: apparently sprintf() does not return a value. zlib
  can build but will be open to possible string-format security
  vulnerabilities.
Checking for errno.h... No.
Checking for mmap support... No.
cc -O -DNO_snprintf -DHAS_sprintf_void -DNO_ERRNO_H   -c -o example.o example.c
make: cc: 명령을 찾지 못했음
make: *** [example.o] 오류 127


2. yum 으로 gcc 설치

[root@ zlib-1.2.3]# yum install gcc
Loaded plugins: refresh-packagekit
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package gcc.i386 0:4.3.2-7 set to be updated
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.3.2-7.i386
--> Running transaction check
---> Package glibc-devel.i386 0:2.9-3 set to be updated
--> Processing Dependency: glibc-headers = 2.9-3 for package: glibc-devel-2.9-3.i386
--> Running transaction check
---> Package glibc-headers.i386 0:2.9-3 set to be updated
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.9-3.i386
--> Processing Dependency: kernel-headers for package: glibc-headers-2.9-3.i386
--> Running transaction check
---> Package kernel-headers.i386 0:2.6.27.25-170.2.72.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================
 Package                        Arch                 Version                                    Repository               Size
==============================================================================================================================
Installing:
 gcc                            i386                 4.3.2-7                                    fedora                  8.2 M
Installing for dependencies:
 glibc-devel                    i386                 2.9-3                                      updates                 2.1 M
 glibc-headers                  i386                 2.9-3                                      updates                 616 k
 kernel-headers                 i386                 2.6.27.25-170.2.72.fc10                    updates                 766 k

Transaction Summary
==============================================================================================================================
Install      4 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        

Total download size: 12 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): gcc-4.3.2-7.i386.rpm                                                                            | 8.2 MB     00:08    
(2/4): glibc-devel-2.9-3.i386.rpm                                                                      | 2.1 MB     00:01    
(3/4): glibc-headers-2.9-3.i386.rpm                                                                    | 616 kB     00:00    
(4/4): kernel-headers-2.6.27.25-170.2.72.fc10.i386.rpm                                                 | 766 kB     00:00    
------------------------------------------------------------------------------------------------------------------------------
Total                                                                                         1.0 MB/s |  12 MB     00:11    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : kernel-headers-2.6.27.25-170.2.72.fc10.i386                                                            1/4
  Installing     : glibc-headers-2.9-3.i386                                                                               2/4
  Installing     : glibc-devel-2.9-3.i386                                                                                 3/4
  Installing     : gcc-4.3.2-7.i386                                                                                       4/4

Installed:
  gcc.i386 0:4.3.2-7                                                                                                         

Dependency Installed:
  glibc-devel.i386 0:2.9-3          glibc-headers.i386 0:2.9-3          kernel-headers.i386 0:2.6.27.25-170.2.72.fc10        

Complete!


3. gcc 설치 끝 다시 zlib configure 실행


[root@ zlib-1.2.3]# ./configure
Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.


4. configure 결과 모두 Yes.  make 역시 gcc로 잘 설치 되는군요

[root@ zlib-1.2.3]# make
gcc -O3 -DUSE_MMAP   -c -o example.o example.c
gcc -O3 -DUSE_MMAP   -c -o adler32.o adler32.c
gcc -O3 -DUSE_MMAP   -c -o compress.o compress.c
gcc -O3 -DUSE_MMAP   -c -o crc32.o crc32.c
gcc -O3 -DUSE_MMAP   -c -o gzio.o gzio.c
gcc -O3 -DUSE_MMAP   -c -o uncompr.o uncompr.c
gcc -O3 -DUSE_MMAP   -c -o deflate.o deflate.c
gcc -O3 -DUSE_MMAP   -c -o trees.o trees.c
gcc -O3 -DUSE_MMAP   -c -o zutil.o zutil.c
gcc -O3 -DUSE_MMAP   -c -o inflate.o inflate.c
gcc -O3 -DUSE_MMAP   -c -o infback.o infback.c
gcc -O3 -DUSE_MMAP   -c -o inftrees.o inftrees.c
gcc -O3 -DUSE_MMAP   -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a


5. 마지막으로 make install 완료

[root@ zlib-1.2.3]# make install
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
cp libz.a /usr/local/lib
cd /usr/local/lib; chmod 755 libz.a
cd /usr/local/lib; if test -f libz.so.1.2.3; then \
          rm -f libz.so libz.so.1; \
          ln -s libz.so.1.2.3 libz.so; \
          ln -s libz.so.1.2.3 libz.so.1; \
          (ldconfig || true)  >/dev/null 2>&1; \
        fi
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3


* 리눅스를 다룬지 8년 정도 되었지만 가끔씩 얘기치 않은 오류가 생기면 잠시 당황스럽더군요.
하지만 차근차근 원인을 찾아 보면 간단한 문제 인데 ^^;
여튼 동일 오류로 고민하는 분들이 생기면 저의 글을 보고서 손쉽게 해결 하시라고 이렇듯 작성했으니 만이 도움이 되시길 바랍니다.
* 본 게시글은 CCL에 따릅니다.

반응형