• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Java Installation

Hi Leute,

nachdem ich mich nun nach etlichen Jahren für den (langsame :lol: )Umstieg auf Linux entschlossen habe stehe ich jetzt erstmal vor, anscheinend banalen Problemen, die ich anscheinens ohne stundenlange Recherche nicht lösen kann. Deswegen hier meine Fragen:

a) Ich will auf meinem Rechner Java 1.5 installieren. Was muss ich da alles einstellen damit das sauber läuft (Pfade, Settings etc.)?

b) Gibt's eine einfache Möglichkeit 1.4.2 und 1.5 parallel laufen zu lassen?


Gruß

Daniel
 

oc2pus

Ultimate Guru
besorg dir ein SRPM vom SuSE 9.x java Paket, modifiziere es für java 1.5 und baue dein RPM mit rpm -bb spec-datei

dann passiert alles von alleine ;)
 
OP
K

Killerfritte

Member
hmmm.....na dann geht's ja schon wieder los. :lol:
Was sind (S)RPMs und wo kriegt man sie denn her?

P.S.: Ich bin zwar prof. Entwickler aber dennoch absoluter Neuling in LINUX.

Gruß
 

oc2pus

Ultimate Guru
SRPM sind Source Code Pakete

diese werden mit rpm -i installiert, danach findet man in /usr/src/packages/SOURCES die Sourcen und in
/usr/src/packages/SPECS/ eine SPEC-Datei.
Die SPEC-Datei ist der Bauplan für eine Installation.

In deinem Fall j2re-1.4.2-02-linux-i586.bin
Diese Datei tauschst du aus gegen das aktuelle JDK. In der SPEC-Datei steht eine Referenz auf das alte JDK, das änderst du einfach.

danach rpm -bb spec-datei aufrufen, das baut das neue RPM mit der neuen Version. Das kannst du dann wie gehabt installieren.
rpm -Uhv neues-paket

die SRPM bekommst du hier:
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/
oder hier
http://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/9.1/suse/src/

hier ein BEISPIEL spec-file für java (jdk von Blackdown)
Code:
# Packmangroup: System
# Packmanpackagename: java2
# Packman: Manfred Tremmel

%define name         java2
%define archname     j2sdk
%define version      1.4.2                 <====ANPASSEN
%define subversion   rc1                  <=== ANPASSEN
%define release      0.pm.0

Name:           %{name}
Summary:        Java(TM) 2 SDK, Standard Edition
Summary(e):     Java(TM) 2 SDK, Standard Version
License:        see LICENSE
Group:          Development/Languages/Java
URL:            http://www.blackdown.org/java-linux.html
Version:        %{version}
Release:        %{release}

Source0:        j2sdk-1.4.2-rc1-linux-i586-gcc3.2.bin   <==== ANPASSEN

Packager:       Manfred Tremmel <Manfred.Tremmel@iiv.de>
Vendor:         Packman
Distribution:   SuSE Linux 9.0 (i586)
BuildRoot:      /var/tmp/%{name}-%{version}-%{subversion}-%{release}
Prefix:         %{_prefix}
Requires:       %{name}-jre = %{version}
Obsoletes:      SunJava2, jdk1.1.x, sdk1.2.x, sdk1.3.x, sdk1.4.x, BlackdownJava2
Provides:       SunJava2, jdk1.1.x, sdk1.2.x, sdk1.3.x, sdk1.4.x, BlackdownJava2
NoSource:       0
BuildArchitectures: i586

%description
The Java 2 SDK is a development environment for building applications,
applets, and components that can be deployed on the Java platform.
SuSE series: pay

%description -l de
Das Java 2 SDK ist eine Entwicklungsumgebung für die Erstellung von
Applikationen, Applets und Komponenten, die in Java entwickelt werden
können.
SuSE series: pay

%package -n  %{name}-jre
Summary:        Java(TM) 2 Runtime Environment
Summary(de):    Java(TM) 2 Laufzeitumgebung
Group:          Development/Languages/Java
Obsoletes:      java_runtime, jre1.1.x, jre1.2.x, jre1.3.x, jre1.4.x, BlackdownJava2-JRE
Provides:       java_runtime, jre1.1.x, jre1.2.x, jre1.3.x, jre1.4.x, BlackdownJava2-JRE
Requires:       unixODBC, unixODBC-devel
Provides:       libodbcinst.so, libodbc.so, libverify.so(VER_1)

%description -n %{name}-jre
The Java(TM) 2 Runtime Environment contains the Java virtual machine,
runtime class libraries, and Java application launcher that are necessary
to run programs written in the Java progamming language.
It is not a development environment and does not contain development
tools such as compilers or debuggers. For development tools, see the
Java 2 SDK, Standard Edition. The Java 2 Runtime Environment is intended
for software developers and vendors to redistribute with their
applications.
SuSE series: pay

%description -n %{name}-jre -l de
Die Java(TM) 2 Ablaufumgebung enthält die Java-Virtual-machine, laufzeit
Klassenbibliotheken, und Startprogramme, welche zum Ausführen von in Java
programmierten Programmen notwendig sind.
Es enthält keine Entwicklungsumgebund und enthält keine Tools um Programme
zu übersetzen oder zu debuggen. Benötigen Sie die Entwicklungstools, werfen
Sie einen Blick auf die Java 2 SDK, Standard Edition. Die Java 2 Runtime
Environment ist für Entwickler gedacht, die ihre Porgramme weitergeben
möchten.
SuSE series: pay

%prep
%setup -T -c -n %{archname}%{version}
cd ..
echo "yes" | /bin/sh %{SOURCE0} --nox11 | cat - >/dev/null
echo "package uncompressed"

%install
rm -rf ${RPM_BUILD_ROOT};
mkdir  -p  ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/
mv bin     ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/
mv include ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/
mv jre     ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/
mv lib     ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/
mkdir  -p  ${RPM_BUILD_ROOT}%{_mandir}/man1/
mkdir  -p  ${RPM_BUILD_ROOT}%{_mandir}/ja/man1/
install -m 644 man/ja_JP.eucJP/man1/*   ${RPM_BUILD_ROOT}%{_mandir}/ja/man1/
rm -r man/ja_JP.eucJP
rm man/ja
install -m 644 man/man1/*   ${RPM_BUILD_ROOT}%{_mandir}/man1/
mkdir  -p  ${RPM_BUILD_ROOT}/etc/java/
cd         ${RPM_BUILD_ROOT}%{_libdir}
ln -s SunJava2-%{version} BlackdownJava2-1.4
ln -s SunJava2-%{version} SunJava2-1.4
ln -s SunJava2-%{version} SunJava2
ln -s SunJava2-%{version} java
#ln -s libodbc.so.1.0.0 libodbc.so
#ln -s libodbcinst.so.1.0.0 libodbcinst.so
install -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}/etc/java/
install -m 644 %{SOURCE2} ${RPM_BUILD_ROOT}/etc/java/
install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}/etc/java/
mkdir  -p --mode=755 ${RPM_BUILD_ROOT}/etc/.java/.systemPrefs
touch ${RPM_BUILD_ROOT}/etc/.java/.systemPrefs/.system.lock
touch ${RPM_BUILD_ROOT}/etc/.java/.systemPrefs/.systemRootModFile
chmod 644 ${RPM_BUILD_ROOT}/etc/.java/.systemPrefs/.system*
cd SunJava2/jre/plugin/i386/
ln -s mozilla ns600
#cd ns600
#ln -s javaplugin_oji.so libjavaplugin_oji.so

chmod +x ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/jre/lib/i386/lib*.so
chmod +x ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/jre/*/i386/*/*.so


rm -f ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/jre/.systemPrefs/.system.lock
rm -f ${RPM_BUILD_ROOT}%{_libdir}/SunJava2-%{version}/jre/.systemPrefs/.systemRootModFile

%clean
rm -rf $RPM_BUILD_ROOT;

%post
/sbin/ldconfig

%post -n %{name}-jre
/sbin/ldconfig

%files
%defattr(-, root, root)
%doc COPYRIGHT LICENSE README README.html src.zip demo/*
/etc/java/java2.conf
%{_libdir}/SunJava2-%{version}/bin/*
%{_libdir}/SunJava2-%{version}/include/*
%{_libdir}/SunJava2-%{version}/lib/*
%{_mandir}/ja/man1/appletviewer.*
%{_mandir}/ja/man1/extcheck.*
%{_mandir}/ja/man1/idlj.*
%{_mandir}/ja/man1/jar*
%{_mandir}/ja/man1/javac.*
%{_mandir}/ja/man1/javadoc.*
%{_mandir}/ja/man1/javah.*
%{_mandir}/ja/man1/javap.*
%{_mandir}/ja/man1/jdb.*
%{_mandir}/ja/man1/native2ascii.*
%{_mandir}/ja/man1/rmic.*
%{_mandir}/ja/man1/serialver.*
%{_mandir}/man1/appletviewer.*
%{_mandir}/man1/extcheck.*
%{_mandir}/man1/idlj.*
%{_mandir}/man1/jar*
%{_mandir}/man1/javac.*
%{_mandir}/man1/javadoc.*
%{_mandir}/man1/javah.*
%{_mandir}/man1/javap.*
%{_mandir}/man1/jdb.*
%{_mandir}/man1/native2ascii.*
%{_mandir}/man1/rmic.*
%{_mandir}/man1/serialver.*

%files -n %{name}-jre
%defattr(-, root, root)
/etc/java/java2-jre.conf
/etc/java/BlackdownJava2-JRE.conf
/etc/.java
#%{_libdir}/libodbc.so
#%{_libdir}/libodbcinst.so
%{_libdir}/java
%{_libdir}/SunJava2
%{_libdir}/SunJava2-1.4
%{_libdir}/BlackdownJava2-1.4
%{_libdir}/SunJava2-%{version}/jre/*
%{_mandir}/ja/man1/java.*
%{_mandir}/ja/man1/javaws.*
%{_mandir}/ja/man1/keytool.*
%{_mandir}/ja/man1/kinit.*
%{_mandir}/ja/man1/klist.*
%{_mandir}/ja/man1/ktab.*
%{_mandir}/ja/man1/orbd.*
%{_mandir}/ja/man1/policytool.*
%{_mandir}/ja/man1/rmid.*
%{_mandir}/ja/man1/rmiregistry.*
%{_mandir}/ja/man1/servertool.*
%{_mandir}/ja/man1/tnameserv.*
%{_mandir}/man1/java.*
%{_mandir}/man1/javaws.*
%{_mandir}/man1/keytool.*
%{_mandir}/man1/kinit.*
%{_mandir}/man1/klist.*
%{_mandir}/man1/ktab.*
%{_mandir}/man1/orbd.*
%{_mandir}/man1/policytool.*
%{_mandir}/man1/rmid.*
%{_mandir}/man1/rmiregistry.*
%{_mandir}/man1/servertool.*
%{_mandir}/man1/tnameserv.*

%changelog
* Wed Dec 24 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update to 1.4.2 rc1 (based on Suns 1.4.2-03)
* Tue Oct 21 2003 Rainer Lay <rainer@links2linux.de> 1.4.1-23.pm.1
- removed two files for rpm 4
* Sat Feb 22 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Updated to Blackdowns-JDK, because of gcc 3.2 usage
* Sun Jan 12 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- first release
 

oc2pus

Ultimate Guru
Verfahren II:

installier dir das JDK in dein home-Verzeichnis.
und setze die JAVA Variablen für dich auf das neue JDK.

Dein restliches System verwendet dann die zentrale Installation und nur du verwendest das neue JDK.
 
OP
K

Killerfritte

Member
Also wenn man für so etwas banales schon so tief in die Trickkiste greifen muss dann gibt's hier leider erstmal einen grossen Pluspunkt für die Konkurrenz.

Gibt's denn irgendwo Informationen über den grundsätzlichen Aufbau von Linux? Vielleicht kann ich mir dann das ganze mal irgendwie selber ableiten.

mfg

Daniel
 

oc2pus

Ultimate Guru
wo ist denn da eine trickkiste ?

wir klonen einen vorhanden bauplan; das ist in zwei Minuten erledigt.

Du musst dir mal über deine Anforderungen klar werden:
du hast SuSE - das ist ein rpm basiertes System, also ist es logisch das neue Software nur via rpm ins System eingefügt wird.

Wenn es von einer Software aber kein SuSE Paket gibt - na dann bauen wir uns einfach eins.
Der Mensch ist faul, also klonen wir einfach eins.

Wenn du natürlich nur für dich alleine mal ein neues JDK ausprobieren willst, dann installiert man sowas linux-like eben lokal. Als Programmierer solltest du wissen was java braucht (CLASSPATH un LD-LIBRARY-PATH) diese beiden Parameter als Umgebungsvariable gesetzt und das lokale JDK-1.5 rennt.

Also wo ist jetzt dein Problem? Wenn du eine SuSE DVD/CD hast ist das SRPM von Java doch da drauf, installiere es.
rpm -i java2-xxx.src.rpm
cd /usr/srv/packages
downloade das JDK 1.5
kopiere dies nach /usr/src/packages/SOURCES
editiere /usr/src/packages/SPECS/java2.spec
rpm -bb SPECS/java2.spec
jetzt steht in /usr/src/packages/RPMS/i386/java2-xxx.rpm
rpm -Uhv /usr/src/packages/RPMS/i386/java2-xxx.rpm

fertig;)
 
OP
K

Killerfritte

Member
@oc2pus:

hast du irgendeinen link wo so etwas generell im detail erklärt wird?
ich würde das ganze gerne verstehen anstatt es jetzt einfach so zu machen.

ich will ja durchaus irgendwann auch mal den schritt schaffen etwas machen zu können ohne andere zu fragen oder nach fertigen lösungen suchen zu müssen... :lol:

mfg
 

oc2pus

Ultimate Guru
Also nochmal, du musst dich entscheiden ob du JDK ZENTRAL installierst, oder ob du zwei java Version parallel betreiben willst.
Bei Zentraler Installation musst du das "alte" JDK durch das neue ersetzen. Bei paralleler Installation installierst du das JDK irgendwohin und benutzt es durch die angabe von vollständigen Pfaden und den üblichen java-Parmetern.


Hier zum einlesen:

ls /usr/share/doc/packages/java2

http://packman.links2linux.de/?action=226

http://www.google.de/search?q=building+rpms&ie=UTF-8&hl=de&btnG=Google-Suche&meta=

man rpm

ls -al /usr/share/doc/packages/rpm/

in den SuSE Handbüchern

die Programme checkinstall und krpmbuild

Da findet man alle Infos wie rpms zu bauen sind.
 

deppo

Newbie
hi,

ich hab unter http://java.com:80/en/download/manual.jsp das Linux RPM gezogen, entpackt und jetzt hab ich das verzeichnis j2re1.4.2_05/

wie geht es jetzt weiter, damit z.B. java icq bei mir läuft?
wenn ich das öffne sagt er mir noch, das kein java installiert ist.-..
 

deppo

Newbie
ah sorry ich vergaß, slakware 9.1 ist installiert.

Das Verzeichnis /usr/srv/packages ist bei mir nicht vorhanden :?:
 
Oben