반응형

준비물 : Apache-log4cxx / APR / APR-util



Apache-log4cxx Download : https://logging.apache.org/log4cxx/latest_stable/download.html


APR & APR-util Download : http://apr.apache.org/download.cgi




가장 먼저 저 세개의 파일을 다운 받아야 한다. 모두 tar.gz 형태로 압축되어 있어 압축 풀기가 그나마 수월한 편이다.





  APR 설치 방법



APR을 가장 먼저 기술하는 이유는 설치파일들의 의존성 때문이다.


우분투나 센트OS 쓸때는 겪어본적이 없는것 같았는데 이 의존성 때문에 은근히 사람 골때리게 만들더라...


의존성은 간단히 말해서 설치하기 위해서 먼저 깔려 있어야 하는 파일 뭐 그런거다


이 의존성 때문에 설치 순서는 무조건 APR -> APR-util -> log4cxx 로 가야 한다.


이 순서를 지키지 않는다면 make가 전혀 되지 않으니 주의. 물론 무시하고 설치하는 방법이 있다만 별로 권장하고 싶지는 않다.


APR을 설치하는 방법은 간단하다.




1) 다운로드 사이트에서  "Unix Source: apr-1.6.3.tar.gz"  다운받기(버전 상관없음. 그냥 최신버전으로...)


2) "gzip -dc apr-1.6.3.tar.gz | tar xvf -" 명령어를 통해 압축 풀기 (gzip이 없다면 rpm을 구해서 설치할것)


3) cd apr-1.6.3.tar.gz 로 폴더 이동


4) ./configure


5) make


6) make install



APR은 설치가 그리 어렵지 않다. 의외로 상당히 간단한 편







  APR-util 설치 방법


APR을 설치 했기 때문에 이제 APR-util 설치가 가능하다. 



APR-util을 설치하는 방법은 다음과 같다


1) 사이트에서 다운 받기


2) "gzip -dc apr-util-1.6.1.tar.gz | tar xvf -" 으로 압축 풀기


3) cd apr-util-1.6.1.tar.gz 폴더 이동


4) ./configure --with-apr='apr이 위치한 경로'    (예를 들어 아까 APR을 압축풀고 MAKE 하고 지지고 볶고 하던 곳이 /usr/local/apr-1.6.3 이라는 경로에 있다면 ./configure --with-apr='/usr/local/apr-1.6.3' 입력해야 함)


5) make


6) make install



=> APR-util 에서는 configure 에 옵션이 들어가기 시작했다. 이것은 어찌보면 당연한것인데 apr-util은 apr이 필수로 필요하기 때문에 어느 경로에 있는지 정확하게 찍어줘야 한다.


그렇기에 저런 옵션이 들어간것이다.








  Apahce-log4cxx 설치 방법



이제 APR과 APR-util 모두 설치했으므로 의존성에 의한 설치 불가는 발생하지 않는다.


1) 사이트에서 다운


2) 똑같이 압축풀기


3) 폴더 이동


4) ./configure --with-apr='apr이 위치한 경로' -- with-apr-util='apr-util이 위치한 경로'

   ex) ./configure --with-apr='/usr/local/apr-1.6.3' -- with-apr-util='/usr/local/apr-util-1.6.1'


5) make


6) make install






이렇게 하면 log4cxx 설치는 모두 끝이 난다. RPM이 없어서 소스 설치 하는게 매번 번거롭지만 어쨌든 AIX에서도 LOG4CXX를 사용할수 있음에 의의를 두자






  Error 발생시 해결방법



아마 Apache-log4cxx 설치 하다가 오류가 발생할 가능성이 좀 있다.


내가 겪은게 2가지 인데 하나는 No Space~ 로 시작한 오류와 하나는 ' ' not been declared 라는 오류이다.


No Space ~ 오류는 공간이 없는거니까 걍 해당 디스크의 용량을 확보해주자.



다만 not been declared가 조금 까다로운데 이럴 경우 소스 코드도 수정을 해야 한다.


예를 들어 



console.cpp : ::memcpy has not been declared 라는 에러가 발생할 가능성이 있다.


이럴 경우에는 해당 소스코드에 들어가서 헤더를 추가해주면 된다. 대체로 memcpy, memmove와 같은 것들이 걸리는데 대부분 String 관련 함수이니 


#include <cstring>을 소스코드 내에 추가하면 완성.


위의 케이스는 console.cpp를 vi 편집기로 들어가서 직접 헤더 하나 추가해주면 된다.






 재밌게 읽으셨다면 공감(♥) 버튼을 한번만 꾹 눌러주세요.

여러분들의 공감 하나가 블로그 포스팅의 원동력이 됩니다.

로그인 할 필요 없으며 1초면 충분합니다.


댓글도 언제나 환영합니다! 망설임 없이 댓글 달아주세요!








+ Recent posts