Alpine apk add - репозиторий обновляет другие пакеты - PullRequest
0 голосов
/ 09 января 2020

Мы используем альпийское 3,9 docker изображение без Python3. Это список пакетов, которые мы в настоящее время устанавливаем:

apk add --update --no-cache \
  bash \
  curl \
  findutils \
  git \
  mysql-client \
  make \
  nmap-ncat \
  openssh-client \
  openssl \
  patch \
  procps \
  python \
  sshpass \
  sudo \
  jq \
  wget

Я сейчас пытаюсь установить конкретную c версию Python3 (3.7.5) из основного репозитория alpine 3.10, используя:

apk add --no-cache python3 --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/main

Тем не менее, это приводит к обновлению других пакетов, которые не являются зависимостями для Python3:

fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/5) Upgrading readline (7.0.003-r1 -> 8.0.0-r0)
(2/5) Upgrading bash (4.4.19-r1 -> 5.0.0-r0)
Executing bash-5.0.0-r0.post-upgrade
(3/5) Replacing python2 (2.7.16-r1 -> 2.7.16-r1)
(4/5) Installing xz-libs (5.2.4-r0)
(5/5) Installing python3 (3.7.5-r1)
Executing busybox-1.29.3-r10.trigger
OK: 258 MiB in 91 packages

Почему это происходит?

С другой стороны, если я добавлю помеченное хранилище @future http://dl-cdn.alpinelinux.org/alpine/v3.10/main в /etc/apk/repositories и попытаюсь сделать:

apk add python3@future, я получу следующее:

ERROR: unsatisfiable constraints:
  bash-5.0.0-r0:
    masked in: @future
    satisfies: world[bash]
  python2-2.7.16-r1:
    masked in: @future
    satisfies: world[python]

Что я делаю не так?

...