Автоматическая установка Java (с опцией Silent)

Я пытаюсь установить Java через apt-get.

Я нашел этот PPA установщиков Java , однако, когда я добавляю репозиторий, обновляю и затем запускаю команду apt-get install -y, установщик java вступает во владение, и он выскакивает до варианта конфигурации.

Я надеюсь, что смогу установить его без какого-либо вмешательства или нажатия клавиш, так как я создаю сценарии сборки и развертывания для моих экземпляров EC2, которые автоматически установят все необходимые пакеты с тегами.

Есть ли другие варианты?

104
задан 19 September 2012 в 21:12

7 ответов

Ответ поддержки @gertvdijk - это описание в оригинальном сообщении в блоге о PPA webupd8.

Обновление 2: установщик теперь требует, чтобы вы приняли лицензию Oracle до начала установки. Это требуется только один раз. Если по какой-либо причине вам требуется автоматизировать установку, вы можете запустить следующую команду, чтобы автоматически принять лицензию Oracle:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | \
sudo /usr/bin/debconf-set-selections
0
ответ дан 19 September 2012 в 21:12

Oracle Java больше не присутствует в репозиториях Ubuntu. http://www.omgubuntu.co.uk/2011/12/java-to-be-removed-from-ubuntu-uninstalled-from-user-machines

Вот как установить Java JDK. Как установить Oracle Java JDK 7?

Должна быть доступна опция без вывода сообщений.

0
ответ дан 19 September 2012 в 21:12

Я проверил следующее предложение для меня, используя docker ubuntu16.04LTS.

RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:webupd8team/java && apt-get update

RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true" | debconf-set-selections

RUN apt-get install -y oracle-java8-installer
0
ответ дан 19 September 2012 в 21:12

Автоматическая установка Java 6/7/8/9 с использованием PPA команды WebUpd8 команды

sudo apt-get install -y python-software-properties debconf-utils
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
sudo apt-get install -y oracle-java8-installer

@gertvdijk не работала со мной на Ubuntu 14.04 & amp; 14,10

0
ответ дан 19 September 2012 в 21:12

Для тихой установки Java вы можете попробовать open-jdk:

sudo apt-get install -y openjdk-7-jdk

[ 112] Также попробуйте это для получения дополнительных пакетов / расширений open-jdk ...

sudo apt-cache search openjdk

0
ответ дан 19 September 2012 в 21:12

Если OpenJDK / OpenJRE работает нормально для вас, я рекомендую использовать этот пакет вместо этого, как предложено @SAM. Однако для некоторых программ действительно требуется Oracle JDK / JRE. Этот ответ заключается в том, как заставить замолчать вопрос о лицензии с пакетом Oracle от PPA.

Во-первых, давайте узнаем, что заданный вопрос - это особенность пакета, созданного разработчиком.

oracle-java7-installer (7u7-0~webupd8~4) maverick; urgency=medium

  * removed cookie file use or else the PPA stays disabled
  * request the user to accept the Oracle license before installation
 -- Alin Andrei <webupd8@gmail.com>   Tue, 04 Sep 2012 14:18:29 +0200

Как указал @Nate в своем ответе, должна быть опция молчания. И есть. Сделайте это перед установкой:

$ echo debconf shared/accepted-oracle-license-v1-1 select true | \
  sudo debconf-set-selections
$ echo debconf shared/accepted-oracle-license-v1-1 seen true | \
  sudo debconf-set-selections

Это устанавливает значение ключа debconf в true, но также помечает его как видимое пользователем. Теперь этот вопрос не должен появляться!

Как я нашел это?

В источнике пакета я отследил это в файле oracle-java7-installer.preinst:

[ 112]

Очевидно, он использует значение debconf для ключа shared/accepted-oracle-license-v1-1, чтобы проверить, принял ли пользователь уже лицензию. Если это так, скрипт будет корректно завершен и позволит продолжить установку, не задавая вопроса. Теперь мы должны просто сказать debconf, что вы уже принимаете Oracle License 1.1.

Пожалуйста, обратитесь к man-странице debconf-set-selections для более подробной информации, но это пример вашей проблемы и работает аналогично для других пакетов. Какие еще ключи есть в вашей системе в базе данных debconf? Установите debconf-utils и выполните

$ sudo debconf-get-selections

Затем выполните grep для получения дополнительных ключей, которые необходимо установить в вашей автоматической установке. Это намного более гибко, чем использование -y с apt-get, поскольку это дает вам возможность установить другие значения, отличные от настроек по умолчанию во время установки.

0
ответ дан 19 September 2012 в 21:12

Это отрывок из Dockerfile, который я использовал для успешного создания образа докера на основе Debian:

( Справочник )

RUN apt-get update \
    && apt-get upgrade \
    && apt-get install -y gnupg

RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
RUN echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
RUN apt-get update
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
RUN apt-get install -y oracle-java8-installer \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && R CMD javareconf
0
ответ дан 19 September 2012 в 21:12

Другие вопросы по тегам:

Похожие вопросы: