Instalando o Java Automaticamente (com opção silenciosa)

96

Estou tentando instalar o Java através do apt-get.

Eu encontrei este PPA de instaladores Java , no entanto, quando adiciono o repositório, atualizo e emito o O comando apt-get install -y, o instalador para o java assume e abre uma opção de configuração.

Espero poder instalá-lo sem qualquer intervenção ou pressionamento de teclados, pois estou criando scripts de compilação e implantação para minhas instâncias do EC2, que instalam automaticamente todos os pacotes marcados de que ele precisa.

Existe alguma outra opção?

    
por Layke 19.09.2012 / 16:38

6 respostas

135

Se o OpenJDK / OpenJRE funcionar bem para você, recomendo usar esse pacote como sugerido pelo @SAM. No entanto, alguns softwares realmente exigem o JDK / JRE da Oracle. Esta resposta é como silenciar a questão da licença com o pacote Oracle do PPA.

Primeiro, vamos reconhecer que a pergunta feita é um recurso do pacote, criado pelo desenvolvedor.

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

Como @Nate indicou em sua resposta, deveria haver uma opção silenciosa. E aqui está. Faça isso antes de instalá-lo:

$ 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

Isto define o valor da chave debconf como true, mas também a marca como vista pelo usuário. Agora esta pergunta não deve aparecer!

Como eu encontrei isso?

Na origem do pacote, rastreei isso no arquivo 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

Aparentemente, ele usa o valor do debconf para a chave shared/accepted-oracle-license-v1-1 para verificar se o usuário já aceitou a licença. Se estiver, o script sairá normalmente e permitirá que a instalação continue sem fazer a pergunta. Devemos agora apenas dizer ao debconf que você já aceita o Oracle License 1.1.

Por favor, consulte a página manpage de debconf-set-selections em mais detalhes, mas este é o exemplo para o seu problema e funciona de forma semelhante para outros pacotes. Quais outras chaves você tem no seu sistema no banco de dados do debconf? Instale debconf-utils e faça

$ sudo debconf-get-selections

Depois, grep para mais chaves que você precisa definir em sua instalação automatizada. Isso é muito mais flexível do que usar -y com apt-get , pois oferece a oportunidade de definir configurações diferentes das padrão nos horários de instalação.

    
por gertvdijk 19.09.2012 / 21:45
50

Instale silenciosamente o Java 6/7/8/9 usando o PPA da equipe do 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

A resposta @gertvdijk não funcionou comigo no Ubuntu 14.04 & amp; 14,10

    
por Rahul Thakur 17.06.2015 / 10:51
13

Supporting @gertvdijk resposta é a descrição no publicação do blog original sobre o PPA do webupd8.

  

Atualização 2: o instalador agora exige que você aceite a licença do Oracle   antes da instalação começar. Isso é necessário apenas uma vez. Se para   alguma razão você precisa que a instalação seja automatizada, você pode executar o   comando a seguir para aceitar automaticamente a licença do Oracle:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | \
sudo /usr/bin/debconf-set-selections
    
por Hosam Aly 17.06.2013 / 11:28
10

Eu verifiquei o seguinte trabalho de frase para mim usando o 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
    
por keniee van 08.08.2016 / 03:09
2

Para uma instalação java silent , você pode tentar o open-jdk:

  

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

Tente também isto para mais pacotes / extensões open-jdk ...

  

sudo apt-cache pesquisa openjdk

    
por Sam 19.09.2012 / 16:43
1

O Oracle java não está mais nos repositórios do Ubuntu. link

Aqui está como instalar o Java JDK. Como instalo o Oracle Java JDK 7?

Deve haver uma opção silenciosa disponível.

    
por Nate 19.09.2012 / 16:48

Tags