DESTDIR 및 제조원 접두사
특정 디렉토리에 소프트웨어를 설치하려고 합니다.몇 가지 방법을 찾았지만, 그 차이점이 무엇인지 잘 모르겠습니다.
./configure --prefix=***
make install DESTDIR=***
make install prefix=***
나는 이 세 가지 기능에 대해 혼란스럽다.그들은 같은 목표를 달성하나요?
./configure --prefix=***
숫자 1은 패키지가 설치될 때 어디로 이동할지, 패키지가 실행될 때 관련 파일을 찾을 위치를 결정합니다.단일 호스트에서 사용하기 위해 컴파일하는 경우 이 기능을 사용해야 합니다.
make install DESTDIR=***
2번은 패키지가 실행되는 곳이 아닌 임시 디렉토리에 설치하기 위한 것입니다.예를 들어, 이것은 다음 구성 요소를 만들 때 사용됩니다.deb
패키지.패키지를 만드는 사람이 실제로 자신의 시스템에서 최종 위치에 모든 것을 설치하는 것은 아닙니다.이미 다른 버전이 설치되어 있고 방해하고 싶지 않을 수도 있고 루트가 아닐 수도 있습니다.그래서 그는 그것을 사용한다.
./configure --prefix=/usr
따라서 이 프로그램은 에 설치될 것으로 예상됩니다./usr
실행되면
make install DESTDIR=debian/tmp
디렉토리 구조를 실제로 작성합니다.
make install prefix=***
3번에서는, 다른 장소에 인스톨 됩니다만, 모든 디렉토리가 작성되는 것은 아닙니다.DESTDIR=/foo/bar/baz
일반적으로 GNU 스토어와 함께 사용됩니다.
./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo
이 경우 바이너리가 설치됩니다./usr/local/stow/foo/bin
그에 비해
make install DESTDIR=/usr/local/stow/foo
바이너리를 인스톨 합니다./usr/local/stow/foo/usr/local/bin
.
이것은, 다음의 사용법을 설명하는 데 도움이 됩니다.DESTDIR
그리고.--prefix
(여기서):
--prefix 및 DESTDIR을 사용하여 여러 설치:
구성 시 각 빌드에 대해 다른 --prefix 위치/옵션을 지정합니다.예:
untar petsc tar ball ./configure --prefix=/opt/petsc/petsc-3.9.0-mpich --with-mpi-dir=/opt/mpich make make install DESTDIR=/tmp/petsc-pkg untar petsc tar ball ./configure --prefix=/opt/petsc/petsc-3.9.0-openmpi --with-mpi-dir=/opt/openmpi make make install DESTDIR=/tmp/petsc-pkg
부터openssl/INSTALL
라이브러리를 표준 위치에 맞게 구성하고 싶지만 패키지를 쉽게 패키징할 수 있도록 패키지가 다른 곳에 설치되어 있는 패키지 빌더는 다음을 사용할 수 있습니다.
$ make INSTALL_PREFIX=/tmp/package-root install
(또는 구성 옵션으로 "--install_mp=/tmp/mp-root"를 지정합니다).지정된 접두사는 모든 설치 대상 파일 이름 앞에 추가됩니다.
이것은 비표준이지만 일부 다른 프로그램에서는 INSTALL_PREFIX가 사용됩니다.
이는 OpenSSL 1.1.x 이전 버전에서 작동하며, OpenSSL 1.1.x 이후에서는 일반 버전을 인식할 수 있습니다.DESTDIR
.
언급URL : https://stackoverflow.com/questions/11307465/destdir-and-prefix-of-make
'programing' 카테고리의 다른 글
Java에서 목록으로 맵을 변환하는 방법 (0) | 2022.08.31 |
---|---|
vue.js axios POST에서 Laravel로 JSON을 입수하려면 어떻게 해야 합니까? (0) | 2022.08.31 |
Java로 플러그인 시스템을 구축하는 가장 좋은 방법 (0) | 2022.08.31 |
C 프리프로세서는 왜 "linux"라는 단어를 상수 "1"로 해석합니까? (0) | 2022.08.31 |
클리어, char 배열 c (0) | 2022.08.31 |