Alpine의 "안정적인" 릴리스는 패키지 버전을 동일하게 유지한다는 의미에서 안정적입니까?

Alpine의 "안정적인" 릴리스는 패키지 버전을 동일하게 유지한다는 의미에서 안정적입니까?

저는 지정된 안정적인 Alpine 릴리스 내에서 개별 패키지 버전을 보존/업그레이드하기 위해 Alpine Linux에서 문서화된 방법을 찾고 있습니다.

따라서 이미지(예: docker)를 구축한다고 가정하면 다음과 같이 시작합니다.

FROM alpine:3.13.1
RUN apk add python3 py3-numpy

그 다음에...

  1. 이것이 항상 python3 및 numpy의 동일한 주/부 버전을 설치한다고 가정하는 것이 안전합니까?
  2. 보안 패치가 제공되나요?(이미지를 재구성하는 경우)
  3. 3.13(#1과 #2) 대신에 그냥 수정이라고 말하면 3.13.1차이점이 무엇인가요 ?

답변1

나는 이것을 설명하는 명확한 문서를 모른다는 사실 외에는안정적인 릴리스에서는 버그만 수정합니다.:

안정 릴리스는 이름에서 알 수 있듯이 처음에는 패키지 아카이브의 특정 시점 스냅샷이지만 이후에는 안정적인 환경을 유지하기 위해 버그 수정으로만 유지됩니다.

그러나 일부 실험에서는 설치가 기반으로 하는 패치 버전에 고정되지 않은 것으로 나타났습니다.

$ docker run -it --rm alpine:3.13.0
/ # apk add php8
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
(1/9) Installing php8-common (8.0.2-r0)
(2/9) Installing argon2-libs (20190702-r1)
(3/9) Installing ncurses-terminfo-base (6.2_p20210109-r0)
(4/9) Installing ncurses-libs (6.2_p20210109-r0)
(5/9) Installing libedit (20191231.3.1-r1)
(6/9) Installing pcre2 (10.36-r0)
(7/9) Installing xz-libs (5.2.5-r0)
(8/9) Installing libxml2 (2.9.10-r6)
(9/9) Installing php8 (8.0.2-r0)
Executing busybox-1.32.1-r0.trigger
OK: 13 MiB in 23 packages
/ # 

— 색인은 "v3.13"이며 설치 후 php8다음과 같이 나열된 8.0.2를 얻습니다.3.13.2.

추가 실험에서는 다음과 같은 결과가 나타났습니다.

  • 기본 이미지 로 사용하면 alpine:3.13최신 패치 버전이 생성됩니다.
  • 기본 이미지 로 사용하면 alpine:3.13.x이미지의 일부인 패키지( musl, zlib등 )에 대해 apk-toole특정 패치 버전이 릴리스 되지만 무엇이든 설치하면 일반 릴리스에서 사용 가능한 최신 버전이 설치됩니다.
  • apk upgrade --available그럼에도 불구하고 핵심 패키지에 대한 수정 사항을 찾았는지 확인 해야 합니다 .

따라서 이미지를 다시 빌드하면 항상 동일한 패키지 및 버전 세트가 생성되도록 보장할 수 있는 방법이 없는 것 같습니다.

일관된 패키지 및 버전 세트를 유지하려면 고유한 이미지를 구축하고 태그를 지정할 수 있습니다(단, 보안 수정은 생략).

답변2

알파인 사용자 메일링 리스트에 비슷한 질문을 해서 답변을 받았습니다.나타나엘 코파의 답장:

...전단

예. 보안 업데이트를 제공하고 있습니다.

패키지의 새 버전이 출시됩니까?

종류에 따라 다릅니다. 업데이트로 인해 문제가 발생할 가능성이 없으면 패키지를 새 버전으로 업데이트할 수 있습니다. 패치를 통해 보안 수정 사항을 백포트할 수 있습니다.

목표는 안정적인 브랜치를 사용할 수 있어야 하고 apk upgrade보안 업데이트를 받는 것을 두려워하지 않는 것입니다.

따라서 알파인 3.12부터 시작하면apk에 python3 py3-numpy 추가, (보안 수정에도 불구하고) 항상 동일한 버전의 *numpy를 얻을 것이라고 가정해도 안전합니까?

이 단계에서 Alpine 3.12는 보안 업데이트만 받게 됩니다. 따라서 보안 문제(또는 보고된 기타 주요 버그)가 없는 한 항상 동일한 버전을 받게 됩니다.

보안 수정 사항 외에도 Alpine 3.13에는 버그 수정이 있을 수 있지만 새 버전은 3.13에 자동으로 추가되지 않습니다.

두 경우 모두 apk add python3 py3-numpy문제 없이 APK를 업그레이드할 수 있고 안전해야 합니다. 주요 API 또는 ABI 변경 사항을 안정 브랜치에 푸시해서는 안 됩니다. (일부 예외 있음)

현재로서는 3.13이 최신입니다.

관련 정보