2009년 6월 23일 화요일

configure, make, make install

make는 소프트웨어 개발에서 Unix계열 OS에서 주로 사용되는 프로그램 빌드 툴이다.

프로그램을 생성하기 위하여 필요한 여러 파일들 간의 의존성과 각 파일에 필요한 명령을 정의함으로써 최종적인 프로그램이 만들어 질 수 있는 과정을 서술할 수 있는 표준적인 문법을 가지고 있다.

위의 구조로 기술된 파일(주로 Makefile이라는 파일명)을 Make가 해석하여 프로그램 빌드를 수행하게 된다.

=========================================================================

1.

configure

Makefile(컴파일 옵션이 설정되는 화일)이 만들어집니다.

소스를 컴파일하는 컴퓨터의 사양에 맞는 환경에 알맞는 Makefile 이 생성됩니다.

 

2.

make

소스코드를 실제로 컴파일해서 binary 파일을 생성합니다.


3.

make install

만들어진 binary 파일을 지정된 디렉토리로 이동시켜 줍니다.

=========================================================================

소스파일로 된 패키지를 설치하실 때 기본적으로 내리는 3가지 명령어가 있는데 그것이 바로
configure, make, make install 입니다.

여기서 소스파일이란 것은 설치파일에 대한 소스 파일입니다.
그러므로 컴파일을 하고나면 설치파일이 생기는 것이죠.

 

configure 는 환경설정을 해주는 명령어입니다.
컴파일을 할 때 어떤 옵션을 넣거나 할 때 configure 뒤에 옵션을 넣어줍니다.
여기에 어떤 옵션이 정확히 들어간다고 말씀드릴 수 있는 것은 아니고 소스를 제작한 자가 readme 파일 등에 명시되어 있습니다.

 

make 는 소스를 컴파일 하는 것입니다. 컴파일이란 것은 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말합니다. make 과정이 끝나고 나면 설치파일이 생성된 상태라고 볼 수 있습니다.

 

make install 은 설치를 하는 과정입니다. 앞 과정에서 생성된 설치파일을 실행해서 설치를 끝내는 과정입니다.

 

configure 의 경우 말그대로 환경설정이기 때문에 패키지 안에 있을 수도 있고 없을 수도 있습니다.
컴파일을 하기전에 ls 명령어로 configure 가 있는지 확인하여 있다면 실행해주시고 없다면 실행하지 않으셔도 상관없습니다.

 

make dep 이란 것은 의존성 검사라고 하는 것인데 커널 컴파일을 하기 전에 이것들의 소스들에 문제가 있는지 검사하는 것입니다. 즉, 설치에 필요한 것들이 제대로 있나 확인하는 것입니다.

make module 과 make module_install 은 처음에 설명드렸던 부분에서, 프로그램 설치시에 했던 두번째, 세번째 과정과 동일하다고 보시면 됩니다.

(다만 이것은 보통 프로그램이 아닌 커널을 설치하는 것이기 때문에 module이 들어간다. 커널이란 것이 정말 많은 모듈들로 이루어져있기 때문에 저런 명령어를 주는듯)

 

=========================================================================

 

rpm package 설치 과정 설명


이미 컴파일된 binary 파일을 지정된 디렉토리에 설치하여 줍니다.

소스 컴파일 과정의 configure, make 가 이미 되어 있는 것을 make install 만 해주는 것과 같습니다.


uninstall 에 대하여

rpm 패키지는 rpm -e 명령을 통해 의존성에 문제가 없으면 패키지가 삭제됩니다.

소스컴파일을 통해 설치한 프로그램을 삭제할 때는 설치된 파일을 모두 삭제하면 됩니다.

삭제를 하려면 설치된 파일이 어떤 것인지 어느 디렉토리에 있는 것인지 알고 있어야 합니다. make install 과정에서 화면으로 출력되는 내용을 파일로 저장해 놓으면 나중에 삭제할 때 참고를 할 수가 있습니다.

 

 - 그 밖에

간단한 설치를 위해서는 rpm 을 사용하고,

컴퓨터에 최적화 하기 위해서는 source compile 방법을 사용하는 경향이 있습니다.

redhat 계열의 linux 에서는 rpm 을 많이 사용하고

debian 계열의 linux 에서는 apt 를 사용하는데

debian 계열은 package 설치가 잘 지원이 되기 때문에

윈도우즈 처럼 간단하게 프로그램을 설치하고 관리하시려면

debian 계열을 사용하는 것도 좋습니다.

 

============================================================================

 

1. automake : 사용자 시스템의 플랫폼 종류와 현재 설치된 프로그램과 라이브러리를 찾아서 적절한 내용의 Makefile을 생성하는 역할.

->프로그램 제작자는 automake가 작업을 할 기초 내용을 제공하는 Makefile.in이나 configure.in등의 파일을 재공한 후에 사용자가 자신의 시스템에서 적절하게 Makefile을 생성하도고 함.

 2. configure 스크립트 : automake를 사용하기 쉽도록 구성한 것.

 3. make depend : 실제 컴파일을 수행하기 위해 필요한 의존 파일을 구성할 때 구성

 4. make : 아무런 구성 대상의 지정 없이 make를 실행시킨다면 Makefile에 설정된 기본 대상을 구성.

 5. make install : 컴파일된 프로그램을 지정된 위치에 설치

 6. make clean : Makefile의 구성을 고치거나 오류가 발생한 컴파일을 다시 진행하려 할 때에 이전 과정에서 생성된 파일들이 호한성의 문제를 일으킨다고 판단되면 이 명령을 통해서  이전 파일들을 삭제하고 새롭게 생성. 또는 컴파일 옵션을 수정하기 위해 configure를 다시 실행하기 전에 이 명령을 사용

 7. make uninstall : uninstall 타겟을 지원하는 프로그램은 그다지 많은 편은 아니지만 이구성 대상 install 타겟이 설치한 파일들을 삭제하는 기능.

댓글 없음:

댓글 쓰기