programing

DESTDIR 및 제조원 접두사

goodcopy 2022. 8. 31. 00:08
반응형

DESTDIR 및 제조원 접두사

특정 디렉토리에 소프트웨어를 설치하려고 합니다.몇 가지 방법을 찾았지만, 그 차이점이 무엇인지 잘 모르겠습니다.

  1. ./configure --prefix=***
  2. make install DESTDIR=***
  3. 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

반응형