세이박스

리눅스 sulinux 2.0 설치후 Apache make시 오류 발생 처리

서버,보안

IBM 345 서버에 페도라 10을 설치할려고 하니 Raid 카드 인식이 되지 않아 결국 sulinux 2.0 을 설치 하였다.
역시 IBM에서 지원하는 OS라 그런지 쉽게 Raid카드가 인식되어 설치 성공하였다.
문제는 mysql 설치 후 apache를 설치 하는 과정중 make시에 다음과 같은 오류가 나타났다.

sockopt.c: In function 'apr_socket_opt_set':
sockopt.c:216: error: 'SCTP_NODELAY' undeclared (first use in this function)
sockopt.c:216: error: (Each undeclared identifier is reported only once
sockopt.c:216: error: for each function it appears in.)
make[4]: *** [sockopt.lo] 오류 1
make[4]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr/network_io/unix'
make[3]: *** [all-recursive] 오류 1
make[3]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr/network_io/unix'
make[2]: *** [all-recursive] 오류 1
make[2]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib/apr'
make[1]: *** [all-recursive] 오류 1
make[1]: Leaving directory `/usr/local/src/httpd-2.0.49/srclib'
make: *** [all-recursive] 오류 1

위와 같은 오류가 발생시 lksctp-tools-devel 을 yum 으로 손쉽게 설치를 하고 나면 이후엔 오류가 발생하지 않았었다. 하지만, 이상하게도 아래와 같은 오류가 나타났다.
페도라10과 sulinux 2.0에서 yum 설치시 요청하는 업데이트 서버가 틀린가 보다.

# yum install lksctp-tools-devel
Setting up Install Process
Parsing package install arguments
Requested dep: lksctp-tools-devel is provided by installed package
Nothing to do

그래서 rpm을 직접 받아서 설치후 make 성공 하였다.

lksctp-tools-devel 다운로드 받는 곳 :
http://sourceforge.net/projects/lksctp/files/

여기서 자신의 os에 해당하는 파일 다운로드
저의 경우 lksctp-tools-devel-1.0.10-1.i386.rpm 로 다운 받았습니다.
http://sourceforge.net/projects/lksctp/files/lksctp/lksctp-tools-1.0.10/lksctp-tools-devel-1.0.10-1.i386.rpm/download

다운로드 페이지에 광고가 있는데 잘 찾아 보시면 하늘색으로 된 "direct link" 라는 링크가 있을꺼에요 그걸 클릭하시면 됩니다.
또는 서버에서 해당 링크를 wget으로 받으셔도 됩니다.

wget http://downloads.sourceforge.net/project/lksctp/lksctp/lksctp-tools-1.0.10/lksctp-tools-devel-1.0.10-1.i386.rpm?use_mirror=jaist

* rpm 설치
rpm -Uvh lksctp-tools-devel-1.0.10-1.i386.rpm



그리고 기존에 설치 하셨던 apache는 삭제 하시고 원소스를 다시 압축 푸셔서 처음부터 다시 configure > make 진행 하세요!

세이박스에서는 제가 접한 오류들을 해결하는 과정을 매일 기록하고 있습니다.
전문적인 답변은 아닐지라도 분명 어떤분께는 도움일 자료가 될거라 생각합니다.

해당글은 세이박스에서 작성한 글이므로 퍼가실땐 꼭 출처를 남겨 주세요! ^^ ㅋㅋ

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

서버,보안

리눅스 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에 따릅니다.