다중 아키텍처 PPA를 생성하고 관리하는 방법


13

모든 우분투 버전마다 다시 컴파일 해야하는 프로그램이 있습니다.

현재 나는 현재 배포를 위해 우분투의 PPA를 사용하여 포장하고 있습니다.

결국 이전 우분투 버전의 패키지를 제공해야합니다.

이 작업을 수행하는 방법을 잘 모르겠습니다.

Ubuntu PPA 빌드 서버는 어떻게 작동합니까? 데비안 / changelog 파일의 최신 변경 로그 항목에서 배포 필드를보고 패키지를 빌드 할 배포를 결정합니까?

데비안 사양에서는 배포 필드에 여러 배포를 추가 할 수 있습니다. 그러나 이것은 나를 돕기 위해 이음새가 아닙니다.

일부 우분투 문서 는 배포 이름을 버전 번호 (데비안 변경 로그 파일)로 인코딩하는 것에 대해 이야기합니다.

그러나 실제로 어떻게 작동합니까? 새 버전의 프로그램을 사용할 수 있다면 무엇을해야합니까? 각 배포에 새 변경 로그 항목을 추가하고 PPA 빌드 서버는 각 배포 새 패키지에 대해 자동으로 빌드 한 후이를 자동으로 빌드합니까? 아니면 PPA 빌드 서버가 첫 번째 변경 로그 항목 만 보입니까?


1
이 과정에도 관심이 있습니다!
Marco Ceppi

답변:


7

가는 방법 은 모든 우분투 버전 마다 한 번씩 업로드하는 것입니다 .

런치 패드는 더 이상 지원되지 않는 Ubuntu 버전 용 패키지를 빌드하지 않으며 특정 버전의 Ubuntu 용 패키지 만 빌드합니다. 대상 버전은 (이미 알고 있듯이) changelog최신 항목으로 파일에 지정되어 있습니다 !

프로그램이 의존하는 패키지는 모든 버전의 우분투에서 동일한 버전에서 사용하지 못할 수도 있습니다.

또한 "다중 아키텍처"(아키텍처 = CUP 유형 (예 : x86, LPIA, AMD64))에 대해서도 설명합니다. 업로드 한 모든 패키지가 Architecture: any패키지 정의 ( debian/control) 파일 에있는 한 사용 가능한 모든 아키텍처에 대해 빌드되므로 차이가 없습니다 . 또한 패키지를 다른 아키텍처에 따라 다른 패키지에 종속시킬 수 있습니다 (패키지를 두 번 이상 정의).


10

런치 패드에는 현재 베타 버전의 새로운 기능이있어 추가 작업없이 여러 우분투 버전 용 패키지를 한 번에 만들 수 있습니다. 매일 자동으로 패키지를 작성할 수도 있습니다. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted 대체 텍스트


1
재미 있겠다. 리포지토리 호스팅에 bzr이나 런치 패드를 사용하지 않기 때문에 직접 사용할 수 없습니다 (Mercurial을 사용하고 있습니다). 그러나! 런치 패드에서 bzr 저장소를 작성하고 새 패키지 빌드를 트리거 할 때마다 기본 저장소에서 최신 변경 세트를 덤프하는 것이 가능할 수 있습니다.
maxschlepzig 2018 년

나는 모든 것을 자주 코딩하지 않으며 나는 이것에 흥분합니다.
사람 :

@maxschlepzig Hg 항목을 Launchpad로 가져 오는 방법에 대해 별도의 질문을하고 대답하겠습니다.
Jorge Castro

6

명명 규칙과 관련하여 표준은 다음과 같은 작업을 수행하는 것입니다.

  • 우분투 공식 아카이브에 들어있는 패키지의 경우 1.0-0ubuntu1
  • 1.0-0ubuntu1 ~ lucidppa1 lucid를 위해 PPA에 넣은 패키지 버전
  • Karmic 용 패키지 버전의 경우 1.0-0ubuntu1 ~ karmicppa1

그 이유는 버전 필드의 ~가 버전 번호의 "아무것도"를 나타 내기 때문입니다. 누군가가 Karmic에서 PPA를 추가하면 ~ karmicppa1 패키지를 얻게됩니다. 그런 다음 Lucid로 업그레이드하고 PPA를 읽으면 Lucid PPA 패키지로 대체됩니다. 패키지가 공식 아카이브에 들어가면 PPA에서 전환이 원활하게 진행됩니다.

다른 장점은 버전 필드에 릴리스를 넣으면 파일이 어떤 릴리스에 적용되는지 명확하게 알 수 있다는 것입니다 (릴리스 당 하나씩 업로드하도록 미묘하게 알려줍니다). 예를 들어 종속성이 다른 경우 우분투 릴리스마다 다른 브랜치가 필요할 수도 있습니다.


스캇-이것에 대한 문서가 있습니까?
Bartosz Radaczyński

~ 및 항목은 아마도 어딘가에 표시되어 있습니다. 나머지는 공식 문서화 된 연습이 아닌 다른 개발자들 사이에서 관찰 한 규칙 일뿐입니다.
Scott Ritchie

감사합니다. 제안 된 명명 규칙이 제대로 작동합니다.
Bartosz Radaczyński

나는 때때로 이것이 파파 전에 추가 ~를 추가하기 위해 더 확장된다는 것을 덧붙여 야한다. PPA 버전이 그보다 낮을 수 있습니다.
Scott Ritchie

Freenode의 #launchpad에 요청해야하며, 이는 LaunchPad Wiki 의 소스 패키지 빌드 아래에 세미 문서화되어 있습니다. 이 컨벤션에 대한 정보를 주셔서 감사합니다. 그것은 도움이됩니다 ^ _ ^
TrinitronX
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.