Не удается установить пакеты внутри докеры Ubuntu image
Я установил изображение Ubuntu 14.04 на докере. После этого, когда я пытаюсь установить пакеты внутри образа ubuntu, я не могу найти ошибку пакета:
apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl
Как исправить эту ошибку?
Ответы
Ответ 1
Потому что в образе нет кэша пакетов, вам нужно запустить:
apt-get update
перед установкой пакетов, и если ваша команда находится в Dockerfile, вам потребуется:
apt-get -y install curl
Для подавления стандартного вывода команды используйте -qq
. Например
apt-get -qq -y install curl
Ответ 2
Из документов в мае 2017 2018 2019
Например, всегда объединяйте RUN apt-get update
с установкой apt-get install
в одной и той же инструкции RUN
RUN apt-get update && apt-get install -y package-bar
(...)
Использование apt-get update
в операторе RUN
приводит к проблемам с кэшированием, а последующие инструкции по apt-get install
не выполняются.
(...)
Использование RUN apt-get update && apt-get install -y
гарантирует, что ваш Dockerfile устанавливает последние версии пакетов без дальнейшего кодирования или ручного вмешательства. Эта техника известна как "очистка кэша".
Ответ 3
Добавьте следующую команду в Dockerfile:
RUN apt-get update
Ответ 4
Убедитесь, что в вашем Dockerfile нет синтаксических ошибок, так как это может вызвать и эту ошибку. Правильный пример:
RUN apt-get update \
&& apt-get -y install curl \
another-package
Это была комбинация исправления синтаксической ошибки и добавления apt-get update
которая решила проблему для меня.
Ответ 5
Ошибка возникает из-за того, что у вас нет пакета или нет репозитория, в котором он находится.
Простое решение, вы должны сделать apt-get update и затем попробовать.
Ответ 6
Вам необходимо обновить список пакетов в вашей Ubuntu:
$ sudo apt-get update
$ sudo apt-get install <package_name>