dh_auto_install의 prefix와 destdir 매개변수의 차이점은 무엇입니까?

dh_auto_install의 prefix와 destdir 매개변수의 차이점은 무엇입니까?

나만의 데비안 패키지를 만들어 설치하고 싶습니다 /opt/A/B/C.

오버레이 dh_auto_install문서에 나와 있듯이 params --destdir=-- prefix=.

데비안을 설치하려면 다음을 /opt/A/B/C통해 이를 지정할 수 있습니다.

override_dh_auto_install:
    dh_auto_install -- prefix=/opt/A/B/C

또는

override_dh_auto_install:
    dh_auto_install --destdir=/opt/A/B/C

참고: Ubuntu 14.04 시스템에 deb를 설치할 계획입니다.

답변1

dh_auto_install--destdir를 작성할 때 옵션으로 만 인식되며 -- prefix=..., 이는 옵션이 아니며 설치를 수행하기 위해 실행해야 한다고 결정하는 dh_auto_install모든 프로그램에 전달되는 인수입니다 .dh_auto_install

그러나 dh_auto_install이는 달성하려는 목표에 적합한 도구가 아닐 수도 있습니다. 최종 설치 접두사는 일반적으로 설치 시간이 아닌 구성 시간에 지정됩니다. 이를 위해서는 다음을 재정의해야 합니다 dh_auto_configure.

override_dh_auto_configure:
        dh_auto_configure -- --prefix=/opt/A/B/C

답변2

당신은 사이의 차이점을 알아야합니다접두사그리고대상 디렉터리(destdir):

접두사- 바이너리 파일 앞에 추가되는 경로입니다.

대상 디렉토리- 바이너리의 위치입니다.

일반적으로(가장 널리 사용되는 방식) 소스 코드에서 바이너리를 생성하는 워크플로는 다음과 같습니다(단지 예일 뿐임).

  1. ./configure --prefix=/prepend/path ....
  2. make ....
  3. make install DESTDIR=/path/for/binaries.

보시다시피,접두사구성 단계에서 설정합니다.

3단계 후에는 빌드된 파일이 설치 /path/for/binaries되어 /path/for/binaries/prepend/path.

debian패키지를 빌드하면 소스 코드가 포함된 디렉터리와 그 안에 디렉터리가 생깁니다 .

프로그램을 찾아야 하는 경우 /opt/A/B/C재정의해야 합니다 dh_auto_configure(사람 1 dh_auto_configure) 목표는 debian/rules다음과 같습니다.

override_dh_auto_configure:
    dh_auto_configure -- --prefix=/opt/A/B/C 

이 단계는 답변을 요청할 때 언급한 1단계에 해당합니다.

그러면 다시 작성할 필요가 없습니다 debian/rules.


@StephenKitt는 dh_auto_install이 질문에 대한 의견에서 좋은 설명을 제공했습니다.

관련 정보