일부 공유 라이브러리를 개발 중인데 일부 소프트웨어가 최신 버전 선택을 거부하는 문제가 있습니다. 그러나 일부 소프트웨어에는 몇 가지 중요한 변경 사항이 있으므로 최신 버전을 사용해야 합니다. 따라서 동일한 라이브러리의 두 가지 다른 버전을 유지해야 합니다.
libel.deb
문제는 개발자가 요구하는 헤더와 so
헤더와 호환되는 실제 바이너리가 포함된 일종의 "두꺼운" 패키지를 사용한다는 것입니다 . , 로 libel.deb
나눌 생각입니다 .libel-dev.deb
libel1-bin.deb
libel2-bin.deb
그러나 문제는 libel-dev
최신 버전의 라이브러리와 호환되는 헤더를 포함하므로 개발자는 실제로 2개의 패키지를 설치해야 하며 libel-dev
이는 오류가 발생하기 쉽습니다(호환되지 않는 패키지를 libel2-bin
설치하기 쉽습니다 ).dev
bin
이 문제를 어떻게 해야 할까요? 아마도 dev-package에 바이너리가 포함될 수도 있습니다...?
답변1
-dev, -bin 등의 패키지 내용은 완전히 관례적이며 패키지 관리자는 실제로 신경 쓰지 않습니다. 실제로 Ubuntu(또는 Debian) 아카이브에 업로드하는 경우 다양한 도구(및 사람)가 규칙을 준수하는지 확인할 수 있지만 로컬 패키지의 경우 원하지 않으면 이를 따를 필요가 없습니다. 그렇긴 하지만, 일반적으로 혼란을 줄이기 위해 이를 따라야 할 타당한 이유가 있습니다.
즉, 다양한 패키지 관계 헤더(Depends, Breaks 등)는 버전을 지원합니다. 관계를 올바르게 선언하면 패키지 관리자는 호환되지 않는 세트를 설치하지 못하게 해야 합니다. 버전이 필요하지 않은 것 같습니다. libel-dev에는 종속성이 필요합니다. libel2-bin과 libel2-bin에는 libel1-bin(공동 설치가 불가능한 경우) 충돌이 필요합니다.
당신은 찾을 수 있습니다데비안 정책 매뉴얼 "패키지 간의 관계 선언"도움이 되는.