Почему незапрошенные пакеты удаляются (сборка Docker)? - PullRequest
0 голосов
/ 28 марта 2019

Итак, я собираю свой докер с помощью следующего Dockerfile

# dummy base, which contains R
ARG MY_BASE_IMAGE=r-base
FROM ${MY_BASE_IMAGE}

ARG KING_URL="http://people.virginia.edu/~wc9c/KING/executables/Linux-king215.tar.gz"
ARG PLINK2_URL="https://github.com/chrchang/plink-ng/releases/download/2019/plink2_linux_x86_64_20190107.zip"
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get -qqy update --fix-missing && \
    apt-get -qqy dist-upgrade && \
    apt-get -qqy install --no-install-recommends \
                 wget unzip && \
    cd /tmp && \
    wget -q ${KING_URL} && \
    tar -xzf Linux-king215.tar.gz -C /usr/local/bin && \
    wget -q ${PLINK2_URL} && \
    unzip plink2_linux_x86_64_20190107.zip -d /usr/local/bin && \
    cd -- && \
    apt-get -qqy remove wget unzip && \
    rm -rf /tmp/* \
           /var/tmp/* \
           /var/cache/apt/* \
           /var/lib/apt/lists/* \
           /usr/share/man/?? \
           /usr/share/man/??_*

Однако, похоже, это удаляет R, если я явно не уберу строку apt-get -qqy remove wget unzip.

I 'Мне трудно понять, почему.Очень признателен за помощь!


ОБНОВЛЕНИЕ

Я выкопал глубже и нашел, что, если я запускаю apt-get -qqy remove wget, все идет хорошо.

НО !Если я apt-get -qqy remove unzip, вернемся к старому странному поведению следующего:

Removing littler (0.3.7-2) ...
Removing r-base (3.5.3-1) ...
Removing r-recommended (3.5.3-1) ...
Removing r-cran-mgcv (1.8-28-1) ...
Removing r-base-dev (3.5.3-1) ...
Removing r-cran-littler (0.3.7-2) ...
Removing r-cran-boot (1.3-20-2) ...
Removing r-cran-class (7.3-15-1) ...
Removing r-cran-cluster (2.0.7-1-1+b3) ...
Removing r-cran-codetools (0.2-16-1) ...
Removing r-cran-foreign (0.8.71-1) ...
Removing r-cran-kernsmooth (2.23-15-3+b4) ...
Removing r-cran-nlme (3.1.137-1+b3) ...
Removing r-cran-mass (7.3-51.1-1) ...
Removing r-cran-nnet (7.3-12-2+b2) ...
Removing r-cran-rpart (4.1-13-1+b1) ...
Removing r-cran-spatial (7.3-11-2+b2) ...
Removing r-cran-survival (2.43-3-1) ...
Removing r-cran-matrix (1.2-17-1) ...
Removing r-cran-lattice (0.20-38-1) ...
Removing r-base-core (3.5.3-1) ...
Removing unzip (6.0-22) ...

1 Ответ

1 голос
/ 28 марта 2019

Звучит так, как будто unzip является зависимостью пакета R. Так как вы просите apt удалить unzip, также необходимо удалить все, что зависит от unzip. Это типичное поведение для менеджера пакетов.

Вы можете увидеть дерево зависимостей для пакета с помощью команды apt-cache dotty, которая выведет зависимости в точечном формате . Запуск apt-cache dotty r-base показывает:

r-base -> r-base-core
r-base-core -> unzip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...