패키지를 추출하고 약간의 변경을 한 다음 다시 패키지하는 방법을 알고 있습니다. 이전 OS 버전과 호환되도록 deb 패키지를 다시 패키징하려는 경우 특별한 작업을 수행해야 하는지 궁금합니다.
예를 들어 Ubuntu 12에서 xyz 패키지를 업그레이드하고 싶지만 xyz 패키지는 Ubuntu 14에서만 사용할 수 있습니다. Utopic Unicorn을 Precise Pangolin으로 변경하려면 제어 파일을 수정할 수 있나요?
답변1
최신 시스템에서 패키지를 가져와 이전 시스템에 설치하려는 경우 충족되지 않은 종속성을 얻게 됩니다. 섹션에서 제어 파일의 종속성을 확인할 수 있습니다 Depends:
. 업그레이드하여 종속성을 해결하려고 시도할 수 있지만 그렇게 하면 이전 버전에 의존하는 다른 응용 프로그램이 중단될 수 있습니다. 해당 패키지를 구할 수 있으면 패키지를 다시 빌드하거나 소스에서 이 패키지를 설치해 보세요.
답변2
패키지에 이미 컴파일된 코드가 있으면 대부분의 경우 다시 빌드해야 합니다.
이를 수행하는 방법에 대한 간략한 요약:
이렇게 하려면 다운로드하세요.원천apt-get source -d packagename
다운로드한 파일 중 하나 .dsc
, 일반적으로 하나 .debian.tar.xz
또는 .debian.tar.gz
(때로는 여전히 하나 .diff.gz
), 일반적으로 Ubuntu 14.04 또는 14.10("Ubuntu 14"의 의미가 무엇이든)에 있는 파일 .orig.tar.gz
을 이전 Ubuntu 버전이 있는 컴퓨터로 압축하여 복사합니다(Ubuntu 12.04는 그렇지 않다고 가정합니다). 12.10부터 더 이상 지원되지 않습니다).
dpkg-source -x file.dsc
거기에서 dpkg-dev
복사된 파일(패키지의 다음 도구와 같은)을 사용하여 소스 패키지의 압축을 풀고 .dsc
생성된 디렉터리로 변경합니다.
그런 다음 모든 빌드 종속성이 설치되었는지 확인 dpkg-checkbuilddeps
하고 필요한 경우 누락된 종속성을 설치하십시오.
(선택 사항) dch --bpo
백포트의 정확성에 따라 적절한 변경 로그 항목 및 버전 번호를 추가하려면 실행합니다.
dpkg-buildpackage -b
그런 다음 재구축 패키지를 실행하십시오 .