다양한 버전 및 아키텍처에 대한 apt-preference의 우선순위를 수정했습니다.

다양한 버전 및 아키텍처에 대한 apt-preference의 우선순위를 수정했습니다.

제가 이 문제를 해결하는데 너무 많은 시간을 소비했기 때문에 이 질문을 드리는 것입니다. 문서에는 몇 가지 중요한 참고 사항이 누락되어 있으며 실제로 이와 관련된 다른 질문을 찾지 못했습니다.

여러 아키텍처에 대해 특정 패키지 버전의 우선 순위를 지정하는 방법은 무엇입니까? 특히, 여러 아키텍처에 대해 다운로드하려는 다양한 패키지가 있으며 버전의 우선순위를 지정하여 명시적으로 제공되지 않은 경우 apt가 임의의 요구 사항과 일치하는 버전을 얻으려고 합니다(내 경우에는 현재 git 브랜치 이름) develop브랜치 버전으로 롤백합니다.

예를 들어. 패키지를 다운로드하고 스키마를 지정 my-package하고 .i386amd64my-git-branch-namedevelop

답변1

공식 문서는여기.

  1. 여러 아키텍처를 지원하기 위해 모든 패키지가 수정되었습니다.~ 해야 하다해당 스키마를 지정하고 각 스키마에 대해 하나의 항목이 있어야 합니다. 지정된 아키텍처 없이 패키지 이름을 고정하면 기본(플랫폼) 아키텍처에만 영향을 미칩니다.

    Package: my-package
    Pin: version /your regex here/
    Pin-Priority: 1001
    
  2. 항목은 공백에 민감하지만 공백이 있어도 오류는 보고되지 않습니다. 다음 수정 사항은 자동으로 무시됩니다.

    Package: my-package:amd64
        Pin: version /your regex here/
        Pin-Priority: 1001
    
  3. apt update ~ 해야 하다~라고 불리는뒤쪽에존중되도록 기본 설정 파일을 업데이트하고뒤쪽에추가 스키마 사용 추가(예:)dpkg --add-architecture i386

    다음 발췌문은 /etc/apt/preferences위의 문제를 다루고 있습니다.

    Package: my-package:amd64
    Pin: version /-my-git-branch-name-/
    Pin-Priority: 1001
    
    Package: my-package:i386
    Pin: version /-my-git-branch-name-/
    Pin-Priority: 1001
    
    Package: my-package:amd64
    Pin: version /-develop-/
    Pin-Priority: 900
    
    Package: my-package:i386
    Pin: version /-develop-/
    Pin-Priority: 900
    

관련 정보