2008.04.24 00:48

configure, make, make install 의미

<스크랩> 출처: 모름

완벽한 답은 되지 못하겠지만 궁금중은 충분히 풀릴 것이라 생각합니다.

먼저 질문하신 것의 답변에 앞서 한가지를 알아보고 가도록 하겠습니다.

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

여기서 소스파일이란 것은 설치파일에 대한 소스 파일입니다.
그러므로 컴파일을 하고나면 설치파일이 생기는 것이죠. 그리고 위의 세가지 명령에 대해 알아보도록 하죠.

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

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

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

질문자님 께서는 커널 컴파일에 대해 질문하셨는데 기본적인 맥락은 앞서 본 일반적인 프로그램의 과정과
같다고 볼 수 있습니다.
다만 configure 의 경우 말그대로 환경설정이기 때문에 패키지 안에 있을 수도 있고 없을 수도 있습니다.
컴파일을 하기전에 ls 명령어로 configure 가 있는지 확인하여 있다면 실행해주시고 없다면 실행하지 않으셔도
상관없습니다. 질문자님의 경우에는 configure 가 포함되어있지 않았던 것 같습니다.

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

make module 과 make module_install 은 처음에 설명드렸던 부분에서, 프로그램 설치시에 했던
두번째, 세번째 과정과 동일하다고 보시면 됩니다. 다만 이것은 보통 프로그램이 아닌 커널을 설치하는 것이기
때문에 module 이 들어갔다고 이해하시면 될 듯 합니다. 커널이란 것이 정말 많은 모듈들로 이루어져있기 때문에 저런 명령어를 주는 것이 아닌가 생각도 해봅니다.

나름대로 답변한다고 해드렸는데 설명이 부족했는지 모르겠습니다.
더 궁금하신 점이 있으시면 또 답변해드리도록 하겠습니다.

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

1.

configure

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

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


2.

make

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


3.

make install

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



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 타겟이 설치한 파일들을 삭제한는 기능.

Trackback 0 Comment 1