파일, 제어 파일 및 postinst 파일의 타르 볼을 포함하는 빌드 된 데비안 패키지가 있습니다. dpkg-deb를 사용하여 빌드되었고 dpkg를 사용하여 올바르게 설치됩니다.debian 패키지 내용의 런타임 설치 디렉토리
수정하고 싶은 것은 파일의 설치 디렉토리가 dpkg -i가 deb 파일에서 실행될 때 설정 될 환경 변수를 기반으로 런타임에 결정되도록하는 것입니다. postinst 스크립트에서 환경 변수를 출력하고 그 설정을 제대로 볼 수 있습니다.
내 질문 :
1) 동적으로 런타임에 설치 디렉토리를 판별 할 수 있습니까?
2) 가능한 경우 어떻게해야합니까? 나는 규칙 파일과 mypackage.install 파일에 대해 읽었지만 이것들 중 어느 것이 나를 성취 할 수 있는지는 모른다.
파일을 posinst 스크립트의 대상 위치에 복사하여 해킹 할 수 있지만 가능한 경우 올바른 방법으로 수행하는 것이 좋습니다.
미리 감사드립니다.
설치를 위해'/ usr'와는 다른 루트를 사용하기 위해'dpkg '에 전달할 수있는 옵션이 있습니다. 'deb' 패키지는 그 의미에서 "설치 디렉토리"를 가지고 있지 않습니다 - 당신이 지금 가지고있는 것과 그것을 원할 때의 예제를 추가하면 도움이 될 것입니다. 이론적으로'postinst' 스크립트에서 물건을 옮길 수는 있지만, 나는 당신을 강력하게 낙담시킬 것입니다. – tripleee
좋은 아이디어. 나는 --instdir =을 사용하여 파일을 복사했지만 postinst는 --instdir이 chroot를 실행 한 후 실행되지 않으므로 dpkg admin 디렉토리도 있어야합니다. 또한 두 개의 디렉토리를 분리 할 수 있는지 확인하기 위해 --root와 --admindir을 조합하여 사용하려고했습니다. rpm에는 재배치 플래그가있어 패키지 위치를 이동할 수 있습니다. 이 패키지는 서로 다른 임베디드 리눅스 배포판의 서로 다른 위치에 있어야하므로 동적 디렉토리가 있어야합니다. 예를 들어, 다른 컴퓨터의 다른 위치에있는 하나의 파일을 타르볼에있는 것으로 가정합니다. –
파일이 conffile이 아니라면 나는 단지 두 개의 서로 다른'deb' 패키지를 만들 것입니다. 예는 여전히 도움이 될 것입니다. 전형적으로 패키지 관리 파일은'/ usr/lib/yourpackage.so'와 같은 전형적인 파일이고 전형적으로 예를 들어. '/ etc/yourpackage.cfg'. – tripleee