BSD-Wiki

Mitschrift einer FreeBSD-Installation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


java_in_einer_chroot-umgebung

TODO - Leider ist im Moment nicht die richtige Java-Version in den Ports

Allgemein

Java wird ursprünglich nicht für FreeBSD entwickelt. Wenngleich es eine für FreeBSD angepasste Version gibt so ist es nicht das originale Java und kann zu Problemen mit verschiedenen Programmen führen. Sollte es also nicht möglich sein ein Java-Programm mit der für FreeBSD angepassten Version von Java zu nutzen, so kann in einer abgetrennten chroot-Umgebung eine Version des originalen Java unter Verwendung der Linux-Kompatibilität installiert werden.

Voraussetzungen

Es ist ein installiertes FreeBSD mit installierten Systemquellen in /usr/src sowie eine eingerichtete Linux Kompatibilität notwendig.

Vorarbeiten

Zunächst muss das Verzeichnis angelegt werden in welches die chroot-Umgebung installiert wird. In diesem Fall wird das Verzeichnis /usr/local/jails/java gewählt.

Sollte nicht bereits eine kompilierte Version der Systemquellen vorliegen (z.B. von einem händischen Systemupdate oder eine Jail-Installation) muss das System nun übersetzt werden.

# cd /usr/src/
# make buildworld

Hierdurch wird das gesamte Basissystem übersetzt und in /usr/obj gespeichert.

Das fertig kompilierte System wird nun an seinen Zielort kopiert. Dies geschieht mit folgendem Aufruf (auch hier wieder aus /usr/src).

# make installworld DESTDIR=/usr/local/jails/java
# make distribution DESTDIR=/usr/local/jails/java

Anschließend müssen noch ein paar Anpassungen vorgenommen werden. Die Ports werden in der Chroot verfügbar gemacht:

# mkdir /usr/local/jails/java/usr/ports
# mount_nullfs /usr/ports /usr/local/jails/java/usr/ports

Dann wird noch die resolv.conf in die Chroot kopiert um eine Namensauflösung im Internet zu ermöglichen:

# cp /etc/resolv.conf /usr/local/jails/java/etc/

Zur Installation der Linux Bibliotheken wird /dev benötigt:

# mount -t devfs devfs /usr/local/jails/java/dev

Und weiter gehen die Arbeiten in der Chroot.

# chroot /usr/local/jails/java

Die folgenden Befehle werden nun innerhalb der Chroot-Umgebung ausgeführt.

Um sicher zu stellen, dass alle Pakete gegen die Bibliotheken von Fedora Core 10 gebaut werden wird die Datei /etc/make.conf mit folgendem Inhalt angelegt:

OVERRIDE_LINUX_BASE_PORT=f10
OVERRIDE_LINUX_NONBASE_PORTS=f10

Nun kann die Linux-Umgebung installiert werden:

# cd /usr/ports/emulators/linux_base-f10
# make install clean

Nachdem die Linuxbibliotheken installiert wurden muss nur noch Java installiert werden.

# cd /usr/ports/java/linux-sun-jre16/
# make install clean

Die Installation bricht ab und teilt mit, dass Java direkt beim Hersteller heruntergeladen werden muss. Dies wird nun gemacht (gewählt wird hier die normale Linux Version - nicht die X64 Version). Diese Datei wird nun in /usr/ports/distfiles kopiert.

Und erneut wird installiert… Nun mit der benötigten Datei.

# cd /usr/ports/java/linux-sun-jre16/
# make install clean

Im Anschluss hieran muss noch das Linux-procfs in der chroot gemountet werden. Es wird in der chroot-Umgebung die Datei /etc/fstab mit folgendem Inhalt angelegt:

linproc   /compat/linux/proc   linprocfs   rw   0  0

Ist dies geschehen, dass linprocfs gemountet werden:

# mount /compat/linux/proc
java_in_einer_chroot-umgebung.txt · Zuletzt geändert: 2017/10/02 13:40 (Externe Bearbeitung)

Impressum