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 [[Systemquellen aktualisieren | 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 erstellen | 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