다른 디렉터리에 deb 패키지 파일을 설치합니다.

다른 디렉터리에 deb 패키지 파일을 설치합니다.

저는 일반적으로 /tftpboot/linux/에 설치되는 데비안 패키지를 개발 중입니다. 이 패키지는 Debian 기반 서버 시스템인 UCS(Univention Corporate Server)에도 배포됩니다.

다른 디렉터리(/var/lib/univention-client-boot)에 이러한 파일이 필요합니다. 시스템이 UCS인지 인식하도록 해당 debian 파일을 조정한 다음 파일을 해당 디렉터리로 이동하거나 이 deb 파일을 설치하는 동안 해당 디렉터리를 연결할 수 있습니까?

답변1

dpkg함께 일하는 데 필요한 것이 무엇인지 이해하는 사람이 필요합니다 /. 그런 짐승에 대해서는 들어본 적이 없습니다.

이것이 단순한 사고인 경우 패키지의 압축을 특정 위치에 수동으로 풀 수 있습니다.

dpkg-deb --extract whatever.deb /var/lib/univention-client-boot/

이는 단순히 해당 위치를 루트 덤프 아카이브로 사용합니다. 설치되는 패키지에 대한 로깅이 없으며 사전/사후 설치 스크립트가 실행되지 않습니다.

.deb를 직접 빌드하는 경우 -UCS해당 시스템을 위한 별도의 버전을 만들어야 합니다(예: 빌드에 추가). .deb를 빌드하기 전에 준비 영역에 필요한 디렉터리 구조를 만들어야 합니다.

답변2

.postinst 스크립트에서 이 작업을 수행할 수 있습니다. UCS 서버에 설치되어 있는지 확인하고 필요한 디렉터리 구조(/var/lib/var/lib/univention-client-boot 아래) 및 Symlnks를 생성합니다.

데비안 정책을 따르려면 심볼릭 링크를 절대 경로가 아닌 상대 경로(심볼릭 링크가 포함된 디렉터리에 상대적)로 설정해야 합니다. 비공개 패키지의 경우 데비안 정책을 엄격하게 준수할 필요가 없습니다.

또한 패키지를 제거할 때 심볼릭 링크(비어 있는 경우 디렉터리)를 제거하는 .postrm 또는 .prerm 스크립트도 있어야 합니다.

관련 정보