./configure에서 사용될 때 --prefix는 정확히 무엇을합니까?


29

그래서 나는 아마 바보처럼 보일 것 같은 간단한 질문을 받았지만, 배우고 있습니다.

내가 할 때

./configure --prefix/usr/bin/

접두사는 무엇입니까? 패키지를 해당 위치에 설치하는 것입니까?

회신을 통해 복잡한 설치에 대해보다 정교하게 답변 할 수 있으며 접두사와 함께 제공되는 접두사 및 옵션에 대해 자세히 설명 할 수 있습니다.

apt-get install을 실행하려면 접두사가있는 특정 위치에 어떻게 설치합니까?

나는 또한 보았다

 PREFIX=/tmp/installdir make


 PREFIX=/tmp/installdir make install

접두어가 ./configure에서 호출되면 왜이 두 예제에서 항상 작성됩니까?

미리 감사드립니다!


일부 정보는 여기에 있습니다 : GNU 코딩 표준 : 디렉토리 변수
steeldriver

업데이트 된 답변 확인
luv.preet

freetds.org/userguide/config.htm ,이 도움이 될 것입니다
luv.preet

검토 자 : 소프트웨어 설치 에 관한 것 입니다. "우분투에 관한 것이 아니다"라는 주제로 세 가지 주제가 아닌 투표가 있습니다. 닫는 것이 어떻게 든 실제 사이트 정책 과 일치하는 경우 의견을 제안합니다. 그렇지 않으면 닫혀 있어도 다시 열릴 수 있습니다.
Eliah Kagan

답변:


32

make install또는로 소프트웨어를 설치하면 sudo make install다른 파일이 다른 디렉토리에 배치됩니다. 사용자가 실행하려는 명령을 제공하는 실행 파일은 일반적으로 bin디렉토리로 이동하고 라이브러리는 일반적으로 lib디렉토리 로 이동하며 매뉴얼 페이지는 일반적으로 man디렉토리 로 이동 합니다.

당신이 실행하면 ./configure, 옵션 위치를 지정할 수 있습니다 디렉토리가 있습니다 . 빌드하는 프로그램 또는 라이브러리의 파일을 설치할 각 디렉토리의 경로에 표시 되는 접 두부 를 제공 할 수 있기 때문에 호출 됩니다. 대부분의 스크립트는 지원 하며, 생략하고 실행하는 것은 일반적으로 같습니다 .--prefix--prefixconfigure--prefix./configure./configure --prefix=/usr/local

더 완벽하게이 대답하기 위해, 나는에서 두 부분을 재현 한 내 대답"전 세계적으로"타르 파일을 설치하는 방법? ( Unix & Linux에서 ) :이 질문을 구체적으로 해결합니다.

빌드 구성

./configure and 를 실행 하여 컴파일 된 소스 코드 make가있는 경우 일반적으로 make install(또는 sudo make install)를 사용하여 설치합니다. 빌드 디렉토리에서 설치 위치로 파일이 복사됩니다. 설치하려는 항목이 실행 가능 명령을 제공 할 때 해당 실행 파일은 일반적으로 $PATH또는 추가 대상으로 고려해야 하는 디렉토리에 복사됩니다 $PATH.

구축하고 소프트웨어를 설치하는 실행으로 간단하게 자주하지만 ./configure, make때때로 make check또는 make test다음 make install또는 sudo make install, 당신은 때때로에 옵션을 전달하기를 원할 것입니다 configure빌드를 구성하는 스크립트. 특히 pfnuesel이 말했듯 이 소프트웨어 설치 위치 를 구성하는 방법 입니다. make install단계가 실제로 소프트웨어를 설치 하더라도 모든 것이 설치 될 위치는 일반적으로 ./configure단계 에서 설정됩니다 .

가장 일반적인 옵션은 --prefix입니다. configure사용할 것을 말하지 않을 때 기본 접두사 는 일반적으로 /usr/local입니다. (때로는 프로그램이나 라이브러리의 소스 코드는 다른 접두사로 기본 설정됩니다. 다행히도 드물게 발생합니다.)

따라서 ./configure일반적으로와 같습니다 ./configure --prefix=/usr/local. 홈 디렉토리에 소프트웨어를 설치하려면 (홈 디렉토리 인 ./configure --prefix=/home/galahad경우 /home/galahad) 또는을 사용할 수 있습니다 --prefix="$HOME". 물론 당신은 여전히 ​​소프트웨어를 빌드하고 설치해야합니다 make. 소스 코드 형태로 배포 된 모든 소프트웨어가 이런 식으로 빌드되는 것은 아닙니다. 추출 된 소스 코드 아카이브 내에서 항상 문서를 찾아야합니다.

무슨 --prefix의미

를 실행 하면 소프트웨어가 디렉토리 아래에 설치되어야 함을 나타냅니다 . 그러나 이것은 거의 파일에 느슨한 파일을 넣는 경우가 거의 없습니다 . 대신,의 다른 하위 디렉토리에 다른 용도로 사용되는 파일을 배치합니다 . 해당 서브 디렉토리가 존재하지 않으면 해당 서브 디렉토리가 작성됩니다../configure --prefix=directorydirectorydirectorydirectory

실행 파일 은 일반적으로 시스템 관리에 사용되는 경우 또는 게임 인 경우에는 더 드물게 directory/bin발생할 수 있지만 일반적으로에 들어갑니다 . 라이브러리는 또는 이와 유사한 다른 디렉토리 로 이동 합니다. 헤더 파일은로 들어갑니다 . 매뉴얼 페이지가 들어갑니다 . 소프트웨어가 사용하는 데이터 파일은로 들어갑니다 .directory/sbindirectory/gamesdirectory/libdirectory/lib32directory/includedirectory/mandirectory/share

그 것이 무엇을 의미하는지의 directory접두사 . 다른 파일이 설치 될 위치를 포함하는 상위 디렉토리입니다. 따라서 그것은 접두사로 표시 에서 절대 경로 실행하여 생성 된 대부분의 파일 및 디렉토리의 make installsudo make install.

이에 대한 몇 가지 예외가 있습니다. 시스템 전체 구성 파일 (항상 그런 것은 아니지만 항상 사용하는 소프트웨어를 설치할 때 생성되는 파일)은 일반적으로로 이동 /etc합니다. 일반적으로 다른 접두사를 지정해도 영향을받지 않습니다. 에 많은 소프트웨어를 설치하더라도 /usr/local여전히 대부분을 사용 /etc하며 /usr/local/etc디렉토리가 없거나 비어 있거나 파일이 거의 없습니다.

많은 시스템에서을 실행하여 일반적인 파일 시스템 레이아웃에 대한 자세한 정보를 찾을 수 있습니다 man hier. GNU / Linux 시스템을 사용하는 경우 Filesystem Hierarchy Standard에 관심이있을 수 있습니다 .


2

현재 패키지 또는 소프트웨어를 구성하는 데 필요한 것의 위치를 ​​알려줍니다.

간단한 경우처럼 ssl 라이브러리의 위치를 ​​알 수 있습니다.

--with-libssh2=/usr/local  #used in configuring nagios

또한 시스템에 따라 프로그램을 적절히 컴파일하기 위해 구성하지 않을 패키지를 알려줍니다.

--disable-shared  # used in configuring nagios
--disable-link-balancer  # used in configuring Firehol

시스템에 적합한 컴파일을 만들기위한 추가 옵션입니다. 내가 생각하는 것입니다. 다른 것이 있으면 수정하십시오.

--prefix=PREFIX옵션은에 아키텍처 독립적 파일을 설치합니다 PREFIX. make install명령 을 실행하면 라이브러리가 PREFIX/lib디렉토리에 배치되고 디렉토리에 실행 파일 이 배치 PREFIX/bin됩니다.

이 인수가 configure명령에 전달되지 않으면 기본값은 /usr/local입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.