Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:installation_von_sun_s_jdk

Installation von Sun's JDK

Standardmässig ist unter CentOS nicht das Java Runtime Environment oder auch das Java Development Kit von Oracle/Sun nach der Installation des Betriebssystems vorhanden.

Falls eine Java-Entwicklung statt finden soll, oder auch ein Java-Servlet-Container wie z.B. Apache Tomcat betrieben werden soll, muss mindestens das Java Development Kit installiert werden.

Herunterladen

Bevor mit der Installation begonnen werden kann, sollte unter Download Link Oracle JDK eine aktuelle Version des Java Development Kit heruntergeladen werden. Wichtig ist, dass das RPM-Paket in der selbst extrahierenden Binary heruntergeladen wird. Der Dateiname der zu herunter ladenden Datei, sollte also rpm im Namen haben und wie folgt aussehen:

jdk-6u6-linux-i586-rpm.bin

Zusätzlich zum Java Development Kit sollte unter Download Link jpackage oder unter Download Link jpackage eine aktuelle Version des JPackage Java compatibility package for Oracle/Sun's JDK heruntergeladen werden. Dies ist besonders bei der Installation eines Java-Servlet-Container wie z.B. Apache Tomcat notwendig.

Der genaue Link zum herunterladen lautet java-1.6.0-sun-compat-1.6.0.06-1jpp aus dem Bereich „Development/Interpreters“. Der Dateiname lautet:

java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm

:!: WICHTIG - Da aktuell die entsprechenden Links nur noch eingeschränkt bzw. schwierig im Internet zu finden sind, habe ich diese auch unter

hinterlegt!

Installation

Nach dem erfolgreichen herunterladen der Installationspakete, sind einige Schritte mit root-Rechten durchzuführen. Dazu werden Sie bitte mit etwa folgendem Befehl root:

$ su -
Password: 

Als root, oder mit root-Rechten ausgestattet, soll die heruntergeladene Datei, hier z.B. jre-6u6-linux-i586.bin ausgeführt werden.

Um die selbstextrahierende Datei jdk-6u6-linux-i586-rpm.bin ausführen zu können, muss das Recht zur Ausführung der Datei (execute = x) explizit der Datei mit folgendem Befehl hinzugefügt werden:

# chmod +x jdk-6u6-linux-i586-rpm.bin

Abschliessend wird die Datei ausgeführt, was mit folgender Befehlszeile erreicht werden kann:

# ./jdk-6u6-linux-i586-rpm.bin

:!: Die Installation der RPM-Pakete ist nicht mehr notwendig, diese wurden bereits beim extrahieren der Datei jdk-6u6-linux-i586-rpm.bin durchgeführt.

Die zusätzlich heruntergeladene Datei java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm kann über folgende Befehle installiert werden:

rpm -Uvh java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
oder
yum localinstall --nogpgcheck java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm

Fehlerbehebung

:!: HINWEIS - Falls bei der Installation des java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm nachfolgender Fehler auftreten sollte:

Preparing...                ########################################### [100%]
   1:java-1.6.0-sun-compat  ########################################### [100%]
link /usr/shared/javaws incorrect for slave javaws (/usr/bin/javaws javaws)
sind nachfolgende Schritte notwendig, um dieses Problem zu lösen !!!

Zuerst muss das Paket java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm wieder mit nachfolgendem Befehl entfernt werden:

# yum remove java-1.6.0-sun-compat
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package java-1.6.0-sun-compat.i586 0:1.6.0.19-1jpp set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================================
 Package                                   Arch                               Version                   Repository                               Size
=====================================================================================================================================================
Removing:
 java-1.6.0-sun-compat                     i586                               1.6.0.19-1jpp             installed                               3.3 k

Transaction Summary
=====================================================================================================================================================
Install      0 Package(s)         
Update       0 Package(s)         
Remove       1 Package(s)         

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : java-1.6.0-sun-compat                                                                                                          1/1 
/usr/lib/jvm/jre-1.6.0-sun/bin/java has not been configured as an alternative for java

Removed:
  java-1.6.0-sun-compat.i586 0:1.6.0.19-1jpp                                                                                                                    

Complete!

Anschließend muss nachfolgende Änderung in der Konfigurationsdatei

  • /var/lib/alternatives/java

durchgeführt werden (nur relevanter Ausschnitt):

ALT:

...
javaws
/usr/shared/javaws
...
NEU:
...
javaws
/usr/bin/javaws
...

:!: Anschließend muss die Installation des Pakets java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm erneut mit nachfolgendem Befehl angestoßen werden und sollte ohne Fehler durchgeführt werden:

rpm -Uvh java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
oder
yum localinstall --nogpgcheck java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
</code>

Update

Um ein Update/Upgrade auf eine höhere Java Version hier z.B.

jdk-6u21-linux-i586-rpm.bin
java-1.6.0-sun-compat-1.6.0.21-1jpp.i586.rpm
durchzuführen, ist es erforderlich die „alten“ Versionen der beiden Pakete zuerst mit folgendem Befehl zu entfernen:
yum remove jdk

:!: HINWEIS - Ab der CentOS Version 5.5 ist es bei einem installierten OpenOffice in der Version 3.3 möglich, das diese auf Java angewiesen ist !

:!: HINWEIS - Folgende Anzeige könnte daher bei dem Befehl yum remove jdk erfolgen:

...

Dependencies Resolved

===========================================================================================
 Package                          Arch     Version                     Repository     Size
===========================================================================================
Removing:
 jdk                              i586     2000:1.6.0_20-fcs           installed     141 M
Removing for dependencies:
 java-1.6.0-sun-compat            i586     1.6.0.20-1jpp               installed     3.3 k
 openoffice.org-base              i386     1:3.1.1-19.5.el5_5.1        installed     5.9 M
 openoffice.org-calc              i386     1:3.1.1-19.5.el5_5.1        installed      24 M
 openoffice.org-core              i386     1:3.1.1-19.5.el5_5.1        installed     261 M
 openoffice.org-draw              i386     1:3.1.1-19.5.el5_5.1        installed     3.0 M
 openoffice.org-emailmerge        i386     1:3.1.1-19.5.el5_5.1        installed      38 k
 openoffice.org-graphicfilter     i386     1:3.1.1-19.5.el5_5.1        installed     765 k
 openoffice.org-impress           i386     1:3.1.1-19.5.el5_5.1        installed     3.9 M
 openoffice.org-langpack-de       i386     1:3.1.1-19.5.el5_5.1        installed      57 M
 openoffice.org-math              i386     1:3.1.1-19.5.el5_5.1        installed     4.0 M
 openoffice.org-pyuno             i386     1:3.1.1-19.5.el5_5.1        installed     473 k
 openoffice.org-ure               i386     1:3.1.1-19.5.el5_5.1        installed     8.2 M
 openoffice.org-writer            i386     1:3.1.1-19.5.el5_5.1        installed      18 M
 openoffice.org-xsltfilter        i386     1:3.1.1-19.5.el5_5.1        installed     1.9 M

Transaction Summary
===========================================================================================
Remove       15 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]:

:!: WICHTIG - Mit oben stehendem Befehl werden alle abhängigen Pakete entfernt!

Dann muss noch auf die noch vorhandene vorinstallierte Java-Version des Betriebssystems, mit folgender Befehl zurückgewechselt werden:

# /usr/sbin/alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java

Enter to keep the current selection[+], or type selection number:

:!: Die Antwort auf die Frage Enter to keep the current selection[+], or type selection number: lautet logischerweise 1.

Zur Überprüfung, ob alles funktioniert hat, geben Sie bitte folgenden Befehl ein:

# /usr/sbin/alternatives --display java

Welcher folgende Ausgabe erzeugen sollte: (:!: Wichtig sind hier die ersten beiden Zeilen)

java - status is manual.
 link currently points to /usr/lib/jvm/jre-1.6.0-sun/bin/java
/usr/lib/jvm/jre-1.4.2-gcj/bin/java - priority 1420
 slave jcontrol: (null)
 slave keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
 slave orbd: (null)
 slave pack200: (null)
 slave policytool: (null)
 slave rmid: (null)
 slave rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
 slave servertool: (null)
 slave tnameserv: (null)
 slave unpack200: (null)
 slave jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
 slave jre: /usr/lib/jvm/jre-1.4.2-gcj
 slave javaws: (null)
 slave java.1: (null)
 slave javaws.1: (null)
 slave keytool.1: (null)
 slave orbd.1: (null)
 slave pack200.1: (null)
 slave policytool.1: (null)
 slave rmid.1: (null)
 slave rmiregistry.1: (null)
 slave servertool.1: (null)
 slave tnameserv.1: (null)
 slave unpack200.1: (null)
Current `best' version is /usr/lib/jvm/jre-1.4.2-gcj/bin/java.

:!: WICHTIG - Jetzt kann wie gehabt mit der Installation der neuen Version fortgefahren werden!

Wenn die „neue“ Java-Version installiert wurde, ist evtl. noch die Berichtigung der Konfigurationsdatei /etc/profile.d/java.sh mit folgendem Inhalt erforderlich:

# Make JAVA_HOME and JRE_HOME be defined for everyone
export JAVA_HOME=/usr/java/default
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

Um die Änderungen sofort wirksam werden zu lassen, müssen folgende drei Befehle auf der Console ausgeführt werden:

# export JAVA_HOME=/usr/java/default
# export JRE_HOME=$JAVA_HOME/jre
# export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

Zum Abschluß kann eine Überprüfung mit diesem Befehl erfolgen:

# java -version

Die Ausgabe gibt die Version des aktuell verwendeten Java Runtime Environment aus und sollte in etwa wie folgt aussehen:

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

Konfiguration

Mozilla Firefox

Eine Überprüpfung des Browsers Mozilla Firefox auf die Fähigkeit zur Ausführung von Java-Code kann die Eingabe von about:plugins in der Adresszeile des Mozilla Firefox zeigen, welche in etwa folgende Ausgabe erzeugen sollte:

:!: HINWEIS - Ab Mozilla Firefox in der Version 3.6.x können nachfolgende Schritte notwendig sein, um das Java-Plugin einzubinden

1. Schritt - Löschen der aktuellen Java-Plugin Verknüpfung

Mit nachfolgendem Befehl sollte die nichtfunktionierende Verknüpfung gelöscht werden:

# unlink /usr/lib/mozilla/plugins/libjavaplugin_oji.so

2. Schritt - Erstellen der richtigen Java-Plugin Verknüpfung

Mit nachfolgendem Befehl wird eine funktionierende Verknüpfung angelegt - hier: Java Version 1.6.0_21:

# ln -s /usr/lib/jvm/java-1.6.0-sun-1.6.0.21/jre/lib/i386/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so 

Screenshot-about:plug-ins - Mozilla Firefox

Betriebssystem

Um die vorinstallierte Java-Version des Betriebssystems, durch die so eben installierte zu ersetzen, ist folgender Befehl nötig:

# /usr/sbin/alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
   2           /usr/lib/jvm/jre-1.6.0-sun/bin/java

Enter to keep the current selection[+], or type selection number:

:!: Die Antwort auf die Frage Enter to keep the current selection[+], or type selection number: lautet 2.

Zur Überprüfung, ob alles funktioniert hat, geben Sie bitte folgenden Befehl ein:

# /usr/sbin/alternatives --display java

Welcher folgende Ausgabe erzeugen sollte: (:!: Wichtig sind hier die ersten beiden Zeilen)

java - status is manual.
 link currently points to /usr/lib/jvm/jre-1.6.0-sun/bin/java
/usr/lib/jvm/jre-1.4.2-gcj/bin/java - priority 1420
 slave jcontrol: (null)
 slave keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
 slave orbd: (null)
 slave pack200: (null)
 slave policytool: (null)
 slave rmid: (null)
 slave rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
 slave servertool: (null)
 slave tnameserv: (null)
 slave unpack200: (null)
 slave jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
 slave jre: /usr/lib/jvm/jre-1.4.2-gcj
 slave javaws: (null)
 slave java.1: (null)
 slave javaws.1: (null)
 slave keytool.1: (null)
 slave orbd.1: (null)
 slave pack200.1: (null)
 slave policytool.1: (null)
 slave rmid.1: (null)
 slave rmiregistry.1: (null)
 slave servertool.1: (null)
 slave tnameserv.1: (null)
 slave unpack200.1: (null)
/usr/lib/jvm/jre-1.6.0-sun/bin/java - priority 1603
 slave jcontrol: /usr/lib/jvm/jre-1.6.0-sun/bin/jcontrol
 slave keytool: /usr/lib/jvm/jre-1.6.0-sun/bin/keytool
 slave orbd: /usr/lib/jvm/jre-1.6.0-sun/bin/orbd
 slave pack200: /usr/lib/jvm/jre-1.6.0-sun/bin/pack200
 slave policytool: /usr/lib/jvm/jre-1.6.0-sun/bin/policytool
 slave rmid: /usr/lib/jvm/jre-1.6.0-sun/bin/rmid
 slave rmiregistry: /usr/lib/jvm/jre-1.6.0-sun/bin/rmiregistry
 slave servertool: /usr/lib/jvm/jre-1.6.0-sun/bin/servertool
 slave tnameserv: /usr/lib/jvm/jre-1.6.0-sun/bin/tnameserv
 slave unpack200: /usr/lib/jvm/jre-1.6.0-sun/bin/unpack200
 slave jre_exports: /usr/lib/jvm-exports/jre-1.6.0-sun
 slave jre: /usr/lib/jvm/jre-1.6.0-sun
 slave javaws: /usr/lib/jvm/jre-1.6.0-sun/javaws
 slave java.1: /usr/share/man/man1/java-java-1.6.0-sun-compat.1
 slave javaws.1: /usr/share/man/man1/javaws-java-1.6.0-sun-compat.1
 slave keytool.1: /usr/share/man/man1/keytool-java-1.6.0-sun-compat.1
 slave orbd.1: /usr/share/man/man1/orbd-java-1.6.0-sun-compat.1
 slave pack200.1: /usr/share/man/man1/pack200-java-1.6.0-sun-compat.1
 slave policytool.1: /usr/share/man/man1/policytool-java-1.6.0-sun-compat.1
 slave rmid.1: /usr/share/man/man1/rmid-java-1.6.0-sun-compat.1
 slave rmiregistry.1: /usr/share/man/man1/rmiregistry-java-1.6.0-sun-compat.1
 slave servertool.1: /usr/share/man/man1/servertool-java-1.6.0-sun-compat.1
 slave tnameserv.1: /usr/share/man/man1/tnameserv-java-1.6.0-sun-compat.1
 slave unpack200.1: /usr/share/man/man1/unpack200-java-1.6.0-sun-compat.1
Current `best' version is /usr/lib/jvm/jre-1.6.0-sun/bin/java.

Eine weitere Überprüfung kann mit diesem Befehl erfolgen:

# java -version

Die Ausgabe gibt die Version des aktuell verwendeten Java Runtime Environment aus und sollte in etwa wie folgt aussehen:

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

RPMBuild: java-1.6.0-sun-compat

Folgende Anleitung soll zeigen, wie unter CentOS das java-1.6.0-sun-compat-RPM selbst erstellt werden kann.

RPMBuild Umgebung

Zuerst sollte als NICHT- root-Benutzer eine RPMBuild-Umgebung vorbereitet werden, was in nachfolgenden Schritten durchgeführt werden soll.

Dazu ist es erforderlich die nachfolgenden RPM-Pakete mit nachfolgendem Befehl zu installieren:

# yum install rpm-build redhat-rpm-build

Das Ergebnis sollte wie folgt aussehen und kann mit nachfolgendem Befehl überprüft werden:

# rpm -qil rpm-build
Name        : rpm-build                    Relocations: (not relocatable)
Version     : 4.4.2.3                           Vendor: CentOS
Release     : 18.el5                        Build Date: Fri 04 Sep 2009 02:26:18 AM CEST
Install Date: Tue 27 Oct 2009 10:36:07 PM CET      Build Host: builder16.centos.org
Group       : Development/Tools             Source RPM: rpm-4.4.2.3-18.el5.src.rpm
Size        : 1572996                          License: GPLv2+
Signature   : DSA/SHA1, Sun 20 Sep 2009 05:54:55 AM CEST, Key ID a8a447dce8562897
URL         : http://www.rpm.org/
Summary     : Scripts and executable programs used to build packages.
Description :
The rpm-build package contains the scripts and executable programs
that are used to build packages using the RPM Package Manager.
/usr/bin/rpmbuild
/usr/lib/rpm/brp-compress
/usr/lib/rpm/brp-java-gcjcompile
/usr/lib/rpm/brp-python-bytecompile
/usr/lib/rpm/brp-redhat
/usr/lib/rpm/brp-sparc64-linux
/usr/lib/rpm/brp-strip
/usr/lib/rpm/brp-strip-comment-note
/usr/lib/rpm/brp-strip-shared
/usr/lib/rpm/brp-strip-static-archive
/usr/lib/rpm/check-buildroot
/usr/lib/rpm/check-files
/usr/lib/rpm/check-prereqs
/usr/lib/rpm/check-rpaths
/usr/lib/rpm/check-rpaths-worker
/usr/lib/rpm/config.site
/usr/lib/rpm/cross-build
/usr/lib/rpm/debugedit
/usr/lib/rpm/find-debuginfo.sh
/usr/lib/rpm/find-lang.sh
/usr/lib/rpm/find-prov.pl
/usr/lib/rpm/find-provides
/usr/lib/rpm/find-provides.perl
/usr/lib/rpm/find-req.pl
/usr/lib/rpm/find-requires
/usr/lib/rpm/find-requires.perl
/usr/lib/rpm/get_magic.pl
/usr/lib/rpm/getpo.sh
/usr/lib/rpm/http.req
/usr/lib/rpm/javadeps
/usr/lib/rpm/magic
/usr/lib/rpm/magic.mgc
/usr/lib/rpm/magic.mime
/usr/lib/rpm/magic.mime.mgc
/usr/lib/rpm/magic.prov
/usr/lib/rpm/magic.req
/usr/lib/rpm/mono-find-provides
/usr/lib/rpm/mono-find-requires
/usr/lib/rpm/osgideps.pl
/usr/lib/rpm/perl.prov
/usr/lib/rpm/perl.req
/usr/lib/rpm/perldeps.pl
/usr/lib/rpm/pythondeps.sh
/usr/lib/rpm/rpmb
/usr/lib/rpm/rpmdeps
/usr/lib/rpm/rpmt
/usr/lib/rpm/trpm
/usr/lib/rpm/u_pkg.sh
/usr/lib/rpm/vpkg-provides.sh
/usr/lib/rpm/vpkg-provides2.sh
/usr/share/man/man8/rpmbuild.8.gz
/usr/share/man/man8/rpmdeps.8.gz
/usr/src/redhat
/usr/src/redhat/BUILD
/usr/src/redhat/RPMS
/usr/src/redhat/RPMS/athlon
/usr/src/redhat/RPMS/geode
/usr/src/redhat/RPMS/i386
/usr/src/redhat/RPMS/i486
/usr/src/redhat/RPMS/i586
/usr/src/redhat/RPMS/i686
/usr/src/redhat/RPMS/noarch
/usr/src/redhat/SOURCES
/usr/src/redhat/SPECS
/usr/src/redhat/SRPMS

und

# rpm -qil redhat-rpm-config
Name        : redhat-rpm-config            Relocations: (not relocatable)
Version     : 8.0.45                            Vendor: CentOS
Release     : 32.el5.centos                 Build Date: Tue 29 Sep 2009 01:51:05 AM CEST
Install Date: Tue 27 Oct 2009 10:31:21 PM CET      Build Host: builder10.centos.org
Group       : Development/System            Source RPM: redhat-rpm-config-8.0.45-32.el5.centos.src.rpm
Size        : 131007                           License: GPL
Signature   : DSA/SHA1, Tue 29 Sep 2009 02:23:50 AM CEST, Key ID a8a447dce8562897
Summary     : CentOS specific rpm configuration files.
Description :
CentOS specific rpm configuration files.
/usr/lib/rpm/redhat
/usr/lib/rpm/redhat/Makefile
/usr/lib/rpm/redhat/brp-compress
/usr/lib/rpm/redhat/brp-implant-ident-static
/usr/lib/rpm/redhat/brp-java-repack-jars
/usr/lib/rpm/redhat/brp-redhat
/usr/lib/rpm/redhat/brp-sparc64-linux
/usr/lib/rpm/redhat/brp-strip
/usr/lib/rpm/redhat/brp-strip-comment-note
/usr/lib/rpm/redhat/brp-strip-shared
/usr/lib/rpm/redhat/brp-strip-static-archive
/usr/lib/rpm/redhat/config.guess
/usr/lib/rpm/redhat/config.sub
/usr/lib/rpm/redhat/dist.sh
/usr/lib/rpm/redhat/find-lang.sh
/usr/lib/rpm/redhat/find-provides
/usr/lib/rpm/redhat/find-provides.d
/usr/lib/rpm/redhat/find-provides.d/firmware.prov
/usr/lib/rpm/redhat/find-provides.d/modalias.prov
/usr/lib/rpm/redhat/find-provides.ksyms
/usr/lib/rpm/redhat/find-provides.libtool
/usr/lib/rpm/redhat/find-provides.pkgconfig
/usr/lib/rpm/redhat/find-requires
/usr/lib/rpm/redhat/find-requires.ksyms
/usr/lib/rpm/redhat/find-requires.libtool
/usr/lib/rpm/redhat/find-requires.pkgconfig
/usr/lib/rpm/redhat/kmodtool
/usr/lib/rpm/redhat/macros
/usr/lib/rpm/redhat/perl.prov
/usr/lib/rpm/redhat/perl.req
/usr/lib/rpm/redhat/rpmrc
/usr/lib/rpm/redhat/rpmsort
/usr/lib/rpm/redhat/symset-table

:!: WICHTIG - Ab hier ist das Arbeiten als Benutzer erforderlich und NICHT mehr als root !!!

Danach muss als Benutzer in dessen HOME-Verzeichnis nachfolgender Befehl zum erstellen der benötigten Infrastruktur ausgeführt werden:

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

Zusätzlich ist die Anlage einer versteckten Datei im HOME-Verzeichnis des Benutzer mit folgendem Namen

  • ~/.rpmmacros

mit nachfolgendem Befehl

$ vim ~/.rpmmacros
und nachfolgendem Inhalt erforderlich:
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
%_topdir /home/<Benutzername>/rpmbuild
%_tmppath %{_topdir}/tmp

:!: HINWEIS - Bitte ersetzen Sie die Angabe <Benutzername> durch Ihren persönlichen Benutzernamen !!!

RPMBuild benötigte Dateien

Nachfolgende Dateien, welche ebenfalls hieraus meinem Repository - http://www.repository.tachtler.net/java - heruntergeladen werden können, werden benötigt:

  • java-1.6.0-sun-compat-register-java-fonts.xsl
  • java-1.6.0-sun-compat-unregister-java-fonts.xsl
  • java-1.6.0-sun-compat.spec

und jeweils das aktuelle Java Development Kit, welches unter Download Link Sun's JDK heruntergeladen werden kann - hier das entsprechende - z.B. in der Version 1.6.0 Update 20, welches dann folgenden Namen hätte:

  • jdk-6u20-linux-i586-rpm.bin

Anschließend sollten jetzt folgende Dateien mit nachfolgenden Befehlen (ausgehen davon, da die benötigten Dateien sich im Verzeichnis /tmp befinden) in die richtigen Verzeichnisse kopiert werden:

$ cp -a /tmp/java-1.6.0-sun-compat-register-java-fonts.xsl ~/rpmbuild/SOURCES
$ cp -a /tmp/java-1.6.0-sun-compat-unregister-java-fonts.xsl ~/rpmbuild/SOURCES
$ cp -a /tmp/java-1.6.0-sun-compat.spec ~/rpmbuild/SPECS

Evtl. kann es erforderlich ein, allen Dateien im Verzeichnis rpmbuild im HOME-Verzeichnis des Benutzers die richtigen Besitzrechte zu geben, was mit nachfolgendem Befehl durchgeführt werden kann:

$ chwon -R <Benutzername>.<Benutzergruppe> ~/rpmbuild

RPMBuild durchführen

:!: WICHTIG - Es ist erforderlich das das entsprechende Java Development Kit jetzt bereits installiert ist !!! - siehe Installation von Sun's JDK - Installation

Bevor mit dem eigentlichen Build-Prozess begonnen werden kann, muss die nachfolgende Datei:

  • ~/rpmbuild/SPECS/ava-1.6.0-sun-compat.spec

entsprechend an das neue Java Development Kit angepasst werden!

:!: HIWNEIS - Nachfolgend NUR ein Beispiel für mögliche Veränderungen

%define origin          sun
%define priority        1620      <-- z.B. Anpassung an 1.6.0_20
%define javaver         1.6.0
%define buildver        20        <-- z.B. Anpassung an 1.6.0_20
%define upstreamrel     fcs
...

Zum eigentlichen Erstellen des RPM-Paketes sollte mit nachfolgendem Befehl in das Verzeichnis ~/rpmbuild im HOME-Verzeichnis des Benutzers gewechselt werden:

$ cd ~/rpmbuild

Anschließend kann mit nachfolgendem Befehl das RPM-Paket NEU erstellt werden:

rpmbuild -ba ~/rpmbuild/SPECS/java-1.6.0-sun-compat.spec

Falls alles erfolgreich compiliert werden konnte, ist im nachfolgendem Verzeichnis das entsprechende RPM-Paket vorhanden:

  • ~/rpmbuild/RPMS/i586/

hier z.B. das RPM-Paket

  • java-1.6.0-sun-compat-1.6.0.20-1jpp.i586.rpm

:!: HINWEIS - Viel Spaß beim selbst erstellen des java-1.6.0-sun-compat !!!

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/installation_von_sun_s_jdk.txt · Zuletzt geändert: 2014/05/17 07:31 von klaus