Debian «apt-get» с закрепленными пакетами перестает работать с сообщением «Невозможно исправить проблемы, у вас есть сломанные пакеты».
Краткое содержание
Версии закрепленных пакетов раньше работали, но через некоторое время перестают работать.
Я закрепил версии пакетов, чтобы иметь стабильные CI/CD и воспроизводимые сборки. Но эти закрепленные версии могут не устанавливаться в любой момент. Ерунда!
Действия по воспроизведению
- Закрепить версии пакетов. Все работает.
FROM python:3.10-slim-bullseye
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends --no-upgrade \
gcc=4:10.2.1-1 \
g++=4:10.2.1-1 \
git=1:2.30.2-1 \
curl=7.74.0-1.3+deb11u2 \
&& apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/*
- Подождите некоторое время (неделю, месяц и т. д.)
Раньше код работал, но через месяц вылезла ошибка:
#10 2.873 The following packages have unmet dependencies:
#10 2.939 curl : Depends: libcurl4 (= 7.74.0-1.3+deb11u2) but 7.74.0-1.3+deb11u3 is to be installed
#10 2.949 E: Unable to correct problems, you have held broken packages.
Что происходит?
Debian удаляет некоторые версии пакетов?
Я неправильно фиксирую свои требования?
Я исправил свою сборку, написавcurl=7.74.0-1.3+deb11u3
, но я до сих пор не понимаю, почему я не могу вечно закреплять версии пакетов, чтобы иметь воспроизводимые сборки.