Java'yı Otomatik Olarak Kurma (Sessiz Seçenekle)


104

Java'yı apt-get yoluyla yüklemeye çalışıyorum.

Bununla birlikte, Java Yükleyicilerinin bu PPA'sını buldum , ancak depoyu eklediğimde, güncelleme ve ardından apt-get install -y komutunu verdiğimde, java için yükleyici devraldı ve bir yapılandırma seçeneği belirdi.

İhtiyaç duydukları tüm etiketli paketleri otomatik olarak yükleyecek olan EC2 örnekleri için derleme komut dosyaları oluşturduğum ve klavyelere herhangi bir müdahale etmeden yükleyebileceğimi umuyorum.

Başka seçenek var mı?

Yanıtlar:


147

Eğer OpenJDK / OpenJRE sizin için uygunsa, @SAM tarafından önerildiği şekilde bu paketi kullanmanızı öneririm. Ancak, bazı yazılımlar gerçekten Oracle'ın JDK / JRE'sini gerektirir. Bu cevap, lisans sorusunun Oracle paketiyle PPA'dan nasıl susturulacağıdır.

İlk olarak, sorulan soruyu geliştiricinin yarattığı paketin bir özelliği olduğunu kabul edelim .

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 cevabında belirtildiği gibi sessiz bir seçenek olmalı. Ve orada. Yüklemeden önce bunu yapın:

$ 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

Bu, debconf anahtarının değerini true olarak ayarlar, ancak kullanıcı tarafından görüldüğü gibi işaretler. Şimdi bu soru görünmemeli!

Bunu nasıl buldum?

Paketin kaynağında, oracle-java7-installer.preinstdosyayı aşağıda buldum :

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

Açıkça, shared/accepted-oracle-license-v1-1kullanıcının zaten lisansı kabul edip etmediğini kontrol etmek için anahtar için debconf'un değerini kullanır . Öyleyse, komut dosyası incelikle çıkar ve size soruyu sormadan yüklemenin devam etmesine izin verir. Şimdi debconf'a Oracle Lisans 1.1'i zaten kabul ettiğinizi söylemeliyiz.

Lütfen debconf-set-selectionsdaha fazla ayrıntıya bakınız., Ancak bu sizin sorununuza bir örnektir ve diğer paketler için benzer şekilde çalışır. Debconf veritabanında sisteminizde başka hangi anahtarlar var? Yüklemek debconf-utilsve yapmak

$ sudo debconf-get-selections

Ardından, otomatik kurulumunuzda ayarlamanız gereken daha fazla anahtar için grep. Bu kullanmaktan daha yol daha esnektir -yile apt-getsize montaj süreleri varsayılan ayarlarla dışında ayarlamak için fırsat verir.


9
Harika cevap :)
12'de

3
Müthiş cevap. Bir kabuk betiğinden de çalışır.
Derek


Lisans kabul komutlarının yankısı için teklif gerekmiyor mu?
David,

1
@David Bu durumda değil; eğer onları eklerseniz çıktısı echotamamen aynı olurdu.
gertvdijk

55

WebUpd8 ekibinin PPA'sını kullanarak sessiz yükleme Java 6/7/8/9

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 cevabı benimle çalışmadı Ubuntu 14.04 & 14.10


1
16.04'de harika çalışıyor
pnömatik

Bu artık çalışmıyor
Ahmed Mostafa

@AmedMostafa Bunu başkalarının nerede denediğini öğrenebilir misin?
Rahul Thakur

1
İçin oracle-java9-installerde çalışır .
Kohányi Róbert

1
Bu çalışma google / cloud-sdk tabanlı imajla mükemmel bir şekilde
Xin Meng

13

@Gertvdijk cevabını desteklemek, webupd8’in PPA’sındaki orijinal blog yazısındaki açıklamadır .

Güncelleme 2: Yükleyici şimdi, yükleme başlamadan önce Oracle lisansını kabul etmenizi gerektirir. Bu sadece bir kez gereklidir. Herhangi bir nedenden dolayı kurulumun otomatikleştirilmesi gerekiyorsa, Oracle lisansını otomatik olarak kabul etmek için aşağıdaki komutu çalıştırabilirsiniz:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | \
sudo /usr/bin/debconf-set-selections

Sessiz Oracle Java yüklemem için ihtiyaç duyduğum sihir bu - teşekkürler @Hosam
Phantomwhale

Hoşgeldin @Phantomwhale
Hosam Aly

Yanılıyor muyum, yoksa cevabınızda eksik / fazla "" "karakteri var mı?
David,

11

Aşağıdaki cümle çalışmasını benim için docker ubuntu16.04LTS kullanarak doğruladım.

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

Denedim ve işe yaramadı.
Ahmed Mostafa,

Kubuntu 18.04: D docker-ce 18.05'te benim için çalıştığını onayladı i386/ubuntu:18.04.
BeepDog

2

Bir İçin Sessiz java açık-jdk deneyebilirsiniz yükleyin:

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

Bunu daha fazla açık-jdk paketleri / uzantıları için de deneyin ...

sudo apt-cache araması openjdk


Bu çözüm harika çalıştı. sudo apt-get install -y openjdk-7-jdk
Layke


0

Bu, Debian tabanlı bir liman işçisi görüntüsünü başarılı bir şekilde oluşturmak için kullandığım Dockerfile'den bir alıntıdır:

( Referans )

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.