Установка Java автоматически (с помощью Silent Option)

89

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

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

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

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

задан Layke 19.09.2012 в 16:38
источник

6 ответов

131

Если OpenJDK / OpenJRE отлично подходит для вас, я рекомендую использовать этот пакет вместо предложенного @SAM. Однако для некоторых программ действительно требуется JDK / JRE от Oracle. Этот ответ заключается в том, как отключить лицензионный вопрос с пакетом 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 <[email protected]>   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 :

license=oracle-license-v1-1

# snip

db_get shared/accepted-$license
if [ "$RET" = "true" ]; then
    echo "$license license has already been accepted" >&2
    exit 0
fi

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

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

$ sudo debconf-get-selections

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

    
ответ дан gertvdijk 19.09.2012 в 21:45
источник
42

Тихая установка 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     

ответ дан Rahul Thakur 17.06.2015 в 10:51
12

Поддержка @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
    
ответ дан Hosam Aly 17.06.2013 в 11:28
7

Я проверил следующее предложение для меня, используя 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
    
ответ дан keniee van 08.08.2016 в 03:09
2

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

  

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

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

  

поиск sudo apt-cache openjdk

    
ответ дан Sam 19.09.2012 в 16:43
1

Oracle java больше не находится в репозиториях Ubuntu. Ссылка

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

Должна быть доступна тихая опция.

    
ответ дан Nate 19.09.2012 в 16:48