Re: diablo jdk - Freebsdfoundation

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Thu, 3 Feb 2011 15:39:33 +0100 (CET)

Heino Tiedemann wrote:
> Oliver Fromme wrote:
>
> > Nein, die meisten Ports, die Java verwenden, dependen nicht
> > direkt auf eine bestimmte Java-Distribution. Die Sache ist
> > ein bisschen komplexer. Ich habe mal eine kleine Statistik
> > gemacht; mit /usr/ports auf einer SSD geht das ja schön
> > schnell ... ;)
> >
> > Momentan gibt es 502 Ports (von 22597), die eine direkte
> > Dependency auf Java haben, d.h. die "USE_JAVA" im Makefile
> > haben. Dem weitaus überwiegenden Teil davon ist es völlig
> > egal, welche Java-Distribution das ist. Momentan gibt es
> > fünf verschiedene Distributionen (*) -- Wenn eine beliebige
> > davon installiert ist, wird sie genommen.
> >
> > Lediglich 22 Ports (von 502, also weniger als 5%) geben
> > eine oder mehrere "erlaubte" Distributionen vor (durch
> > JAVA_VENDOR im Makefile).
> >
> > Wenn der Fall eintritt, dass kein Java installiert ist
> > (oder keines aus der Liste, die der Port vorgegeben hat),
> > dann wird eine Java-Distribution anhand einer Prioritäten-
> > liste ausgewählt und installiert. Diese Liste ist in
> > /usr/ports/Mk/bsd.java.mk definiert (sie kann zwar vom
> > Port per JAVA_PREFERRED_PORTS modifiziert werden, aber
> > davon macht zur Zeit kein Port Gebrauch). Im Falle von
> > FreeBSD <= 7 steht dort an erster Stelle das diablo-jdk16,
> > und im Falle FreeBSD >= 8 ist es das bsdjava-jdk16.
> >
> > Natürlich wäre es wünschenswert, den Default auf openjdk
> > zu ändern, allein schon wegen der besseren Lizenz. Aber
> > dann muss sichergestellt sein, dass alle 502 Ports damit
> > mindestens ebensogut funktionieren, was ziemlich aufwendig
> > ist.
> >
> > Gruß
> > Olli
> >
> > PS: (*) Der Vollständigkeit halber, dies sind die fünf
> > Java-"Distributionen", die es momentan für FreeBSD gibt:
> >
> > - Die Diablo-Packages der FreeBSD-Foundation (native).
> > - Den BSD-Port ("bsdjava", native).
> > - OpenJDK (native).
> > - Blackdown Java (Linux-Binaries, inzwischen veraltet).
> > - Sun Java für Linux (Linux-Binaries)
>
>
> ALTA! - das war, wieder mal, allumfassend und lehrreich.
>
> Meine Fragen dazu:
>
> Ports, die USE_JAVA im Makefile setzen - wonach erkennen die ein Java?
> Einfach danach ob sie ein java oder javac finden?

Es wird anhand der Existenz von bin/javac im Home-Verzeich-
nis des jeweiligen Ports erkannt. Wenn es z.B. eine Datei
/usr/local/openjdk6/bin/javac gibt, dann wird angenommen,
dass openjdk6 installiert ist.

> Die 22 Ports, die JAVA_VENDOR im Makefile setzen, welche sind das.

$ cd /usr/ports
$ echo */*/Makefile | xargs grep '^JAVA_VENDOR'

> WO wäre für mich der beste ort, dieses JAVA_VENDOR zu
> überschreiben? In /etc/make.conf? In /etc/profile?

Warum möchtest Du es überschreiben? Das ergibt keinen
Sinn. Im Gegenteil, man kann damit Ports kaputtmachen,
die mit dem von Dir überschriebenen Wert nicht gehen.
JAVA_VENDOR sollte _nur_ in Ports-Makefiles definiert
werden, denn jeder Port weiß selbst am besten, mit welchem
Java er funktioniert und mit welchem nicht.

Installier einfach das Java, das Du haben möchtest. Dann
wird es automatisch verwendet, es sei denn, ein Port besteht
darauf, ein anderes haben zu wollen (wofür es dann wohl
auch einen guten Grund gibt).

Wenn Du die Präferenzenliste für die Default-Installation
ändern möchtest, kannst Du theoretisch in /etc/make.conf
sowas hier schreiben:

JAVA_PREFERRED_PORTS=JAVA_PORT_NATIVE_OPENJDK_JDK_1_6

Dann würde per Default openjdk6 installiert werden, wenn
noch nichts installiert ist und ein Port nicht ausdrücklich
ein anderes Java haben möchte. Aber genausogut kannst Du
einfach openjdk6 manuell installieren; das hat den gleichen
Effekt und Du kannst Dir den Eintrag in /etc/make.conf
sparen.

> Und last: Das bsdjava -Ich finde es nicht auf meiner Platte - ist das
> ein Diablo JDK sum selber bauen?

Das ist java/jdk16.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
 > Can the denizens of this group enlighten me about what the
 > advantages of Python are, versus Perl ?
"python" is more likely to pass unharmed through your spelling
checker than "perl".
        -- An unknown poster and Fredrik Lundh
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 03 Feb 2011 - 15:39:54 CET

search this site