Published 2021. 7. 8. 12:51

linux에서 ./configure와 --prefix의 의미는 무엇입니까?

명령어 인가요?

Xinetd 설치하기에서

# cd xinetd-2.1.8.9pre14

# ./configure --prefix=/usr --sysconfdir=/etc --with-loadavg --with-libwrap

해석 좀 부탁합니다.

 

 

 

-------------------------------------------------------------------------------------------

 

./configure 는 쉽게 설명을 하면 인스톨을 하기 위한 환경을 설정하는 프로그램입니다..

--prefix=/usr 는 컴파일된 프로그램을 설치하는 위치이구요... 여기에서는 컴파일된 프로그램들을 /usr 디렉토리로 인스톨하라는 의미가 되겠군요...

man configure 를 해보시면 각각의 자세한 의미들이 나옵니다.

아침에 잠시 짬이 생겨서 부연 설명을...

Windog 체제에서는 install이라는 과정이 아주 간단하죠... 인스톨실드 같은 것으로 포장이 잘 된 프로그램이라면 컴파일이 이미 되어서 압축된 프로그램을 자신의 하드디스크 같은 곳에 압축을 풀면서 끝이 납니다.. (물론 내부적으로 보면 약간의 작업이 더 있습니다만...)

Unix(리눅스 포함) 체제에서는 install이라는 작업이 운영 체제에 따라서 약간 다르지만 크게 두 가지로 나눌 수 있습니다... windog의 인스톨실드와 유사한 package나 rpm로 인스톨을 하는 방법이 있고, 소스를 받아서 컴파일을 해서 인스톨을 하는 방법이 있죠... 님은 후자로 인스톨을 하는 중이구요...

소스로 된 프로그램을 인스톨을 하는 방법은 전적으로 프로그램을 만든 사람의 맘에 달렸는데, 그나마 일반화된 방법이 configure -> make -> make install 의 순으로 인스톨을 하는 것입니다...

configure : 현재 OS의 종류나 컴파일러 위치, 종류 등을 파악하고, 사용자가 컴파일이 완료된 프로그램의 위치를 지정하거나, 기타 등등 환경을 맞춰서 자신이 원하는 makefile을 만들어내는 과정
make : configure에 의해서 만들어진 makefile로 프로그램을 컴파일 하는 과정...
make install : 컴파일된 프로그램, 환경화일, 데이터 화일을 지정된 위치에 복사하는 과정...

 

 

 

-----------------------------------------------------------------------------

 

 

컨피그의 명령어는 자신의 환경에 적당한 makefile을 작성하기위해서 컴파일 하기 위한 준비 명령어로 이는 컴파일에 필요한 모든 정보를 담는 과정입니다. prefix는 절대 경로를 지정해 주는 의미입니다.

 

 

------------------------------------------------------------------------------

 

 

./configure는 설치를 위한 설정을 하는 거라는걸 이제 아실거구요
./configure --prefix=/usr/이라고 하면
기본적으로 /usr/이라는 디렉토리에 설치가 됩니다.

그리고 Xinetd에서 해석을 하자면요....
# cd xinetd-2.1.8.9pre14 --> 이건 디렉토리로 이동하는 명령어입니다.
# # ./configure --prefix=/usr --sysconfdir=/etc --with-loadavg --with-libwrap ---> 이건 /usr라는 디렉토리에 기본적으로 설치를 하고 --sysconfdir=/etc/라는 옵션으로 system configuration파일들, 즉 시스템 설정파일들은 /etc/아래에 설치를 하라는 뜻입니다. 아시겠지만, 리눅스에서 대부분의 설정파일들은 /etc 디렉토리 아래에 있습니다. 그래서 이 명령에서도 설정파일들을 /etc 에 따로 모아두라는 겁니다. 
아! 그리고 위에서 --prefix=/usr이라고 하면 바이너리 파일은 /usr/bin으로 man파일은 /usr/man으로 자동적으로 찾아가서 설치가 됩니다. 그리고 /usr/bin은 path 에 기본적으로 설정되있어서 아무곳에서는 실행이 가능하지요. 그리고 configure에는 많은 --with나 --no 등의 옵션이 있습니다. 짐작하듯이 이 옵션에 적혀있는 기능을 넣거나 혹은 특정라이브러리를 이용해서 컴파일 하겠다는 뜻입니다. 
위에서는 loadavg라는 것을 이용하고, 또한 libwrap이라는 걸 이용해서 컴파일하거나 혹은 이런 라이브러리를 만들어 내겠다고 하는 것입니다.
이런 옵션에 대해서는 configure --help라고 하면 간략하게 설명되어있습니다. 혹은 readme나 install파일을 보면 설명이 되어잇습니다.
아마도 libwrap은 tcp-wrapper라는 보안관련 라이브러리를 말하는 거 같군요

리눅스는 공부할 수록 재밌어지더군요
많은 도움되셨기를 바랍니다.

 

 

------------------------------------------------------------------------------

 

 

./configure는 설치를 위한 설정을 하는 거라는걸 이제 아실거구요
./configure --prefix=/usr/이라고 하면
기본적으로 /usr/이라는 디렉토리에 설치가 됩니다.

그리고 Xinetd에서 해석을 하자면요....
# cd xinetd-2.1.8.9pre14 --> 이건 디렉토리로 이동하는 명령어입니다.
# # ./configure --prefix=/usr --sysconfdir=/etc --with-loadavg --with-libwrap ---> 이건 /usr라는 디렉토리에 기본적으로 설치를 하고 --sysconfdir=/etc/라는 옵션으로 system configuration파일들, 즉 시스템 설정파일들은 /etc/아래에 설치를 하라는 뜻입니다. 아시겠지만, 리눅스에서 대부분의 설정파일들은 /etc 디렉토리 아래에 있습니다. 그래서 이 명령에서도 설정파일들을 /etc 에 따로 모아두라는 겁니다. 
아! 그리고 위에서 --prefix=/usr이라고 하면 바이너리 파일은 /usr/bin으로 man파일은 /usr/man으로 자동적으로 찾아가서 설치가 됩니다. 그리고 /usr/bin은 path 에 기본적으로 설정되있어서 아무곳에서는 실행이 가능하지요. 그리고 configure에는 많은 --with나 --no 등의 옵션이 있습니다. 짐작하듯이 이 옵션에 적혀있는 기능을 넣거나 혹은 특정라이브러리를 이용해서 컴파일 하겠다는 뜻입니다. 
위에서는 loadavg라는 것을 이용하고, 또한 libwrap이라는 걸 이용해서 컴파일하거나 혹은 이런 라이브러리를 만들어 내겠다고 하는 것입니다.
이런 옵션에 대해서는 configure --help라고 하면 간략하게 설명되어있습니다. 혹은 readme나 install파일을 보면 설명이 되어잇습니다.
아마도 libwrap은 tcp-wrapper라는 보안관련 라이브러리를 말하는 거 같군요

리눅스는 공부할 수록 재밌어지더군요
많은 도움되셨기를 바랍니다.

'🚦 Server > Linux' 카테고리의 다른 글

make 에러  (0) 2021.03.19
Linux path 설정  (0) 2021.03.16
Linux 사용자 관리하기  (0) 2021.03.12
Linux 명령어 정리  (0) 2021.03.11
Ubuntu 기초 및 패키지 설치  (0) 2021.03.04
복사했습니다!