Muokataan sivua Sunin Java Fedorassa

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
#OHJAUS [[Java/Fedora]]
Tämä ohje on alustava ja sen noudattamisesta saattaa seurata jotakin ongelmia. On suositeltavaa, että ohjetta seuraavalla käyttäjällä olisi jo ennestään perustiedot RPM-pakettien kääntämisestä.
 
[[Fedora]]ssa versiosta 10 eteenpäin on oletuksena saatavilla avoimen lähdekoodin [http://openjdk.java.net/ OpenJDK-Java-toteutus] paketteina <tt>java-1.6.0-openjdk</tt>, <tt>java-1.6.0-openjdk-devel</tt> ja <tt>java-1.6.0-openjdk-plugin</tt>. Sen asennus on suositeltavaa ja useimmat Java-ohjelmat toimivat sillä hyvin. Jotkin Java-ohjelmat ja appletit saattavat kuitenkin vaatia niin sanotun virallisen Sunin suljetun lähdekoodin Java-toteutuksen. Merkittävä tällainen esimerkki Suomessa on aiemmin ollut [[Sammon verkkopankki]]. Fedora 11:n OpenJDK-versiolla sekin toimii ainakin kirjautumisruutuun asti.
 
Sunin Java-toteutusta ei saa levittää vapaasti, joten esimerkiksi Fedoran kolmannen osapuolen ohjelmalähteet eivät voi jakaa valmiita paketteja siitä. Sunin itse verkkosivuillaan jakamat RPM-paketit eivät taas integroidu Fedoraan parhaalla mahdollisella tavalla. [http://jpackage.org/ JPackage-projekti] tarjoaa sivuillaan valmiita "koodittomia" (nosrc) SRPM-paketteja, joista saa yhdessä Sunin Java-binäärien kanssa käännettyä Fedoraan sopivat RPM-paketit Sunin Javasta. Tässä menetelmässä siis tavallaan yhdistetään JPackagen paketointiskriptit Sunilta ladattuun Java-koodiin.
 
Nämä ohjeet on tehty Fedora 12:lle, mutta ne toimivat mahdollisesti myös aiemmilla versioilla.
 
== Pakettien kääntö- ja asennusohjeet ==
Asennetaan tarvittavia ohjelmia:
su -c "yum install jpackage-utils rpm-build rpmdevtools wget system-switch-java"
Asetetaan RPM-kääntöpuu omaan kotihakemistoon:
rpmdev-setuptree
 
Sitten on haettava JPackage-ohjelmalähteestä sopiva Java-SRPM. Sen saa osoitteesta http://mirrors.dotsrc.org/jpackage/5.0/generic/non-free/SRPMS/ mistä ladataan tiedosto <tt>java-1.6.0-sun-*.nosrc.rpm</tt>. Artikkelin kirjoitushetkellä sopiva tiedosto on <tt>java-1.6.0-sun-1.6.0.14-1jpp.nosrc.rpm</tt>.
 
Siirrytään RPM-kääntöpuun SRPMS-hakemistoon:
cd ~/rpmbuild/SRPMS
Ladataan SRPM (tässä on muistettava korvata tiedostonimi uusimmalla saatavalla versiolla):
wget http://mirrors.dotsrc.org/jpackage/5.0/generic/non-free/SRPMS/java-1.6.0-sun-1.6.0.14-1jpp.nosrc.rpm
Asennetaan ladattu tiedosto RPM:llä tässä on muistettava korvata tiedostonimi ladatun tiedoston nimellä):
  rpm -i java-1.6.0-sun-1.6.0.14-1jpp.nosrc.rpm
 
Tässä vaiheessa on ladattava uusin Java Development Kit [http://java.sun.com/javase/downloads Sunin lataussivuilta]. Tätä kirjoitettaessa se on "Java SE Development Kit (JDK) 6 Update 16". Sivuilta valitaan alustaksi Linux ja ladataan tiedosto <tt>jdk-6*-linux-i586.bin</tt>, '''ei siis RPM-versiota'''. Artikkelia kirjoitettaessa tiedoston nimi on <tt>jdk-6u17-linux-i586.bin</tt>. Tiedosto ladataan hakemistoon <tt>~/rpmbuild/SOURCES</tt>.
 
Nyt on verrattava ladatun nosrc.rpm-tiedoston ja bin-tiedoston versioita. Korostettuna tässä ovat merkitsevät osat: java-1.6.0-sun-1.6.0.'''14'''-1jpp.nosrc.rpm ja jdk-6u'''17'''-linux-i586.bin. Artikkelia kirjoitettaessa uusin saatava nosrc.rpm-tiedosto on siis tehty JDK Update 14:ää varten ja uusin JDK-versio on Update 17, tässä on ristiriita, joka on korjattava. Jos merkityt numerot ovat molemmissa tiedostoissa samat, seuraavaa osuutta ei tarvitse tehdä.
 
Siirrytään RPM-kääntöpuun SPEC-tiedostot sisältävään hakemistoon:
cd ~/rpmbuild/SPECS
Nyt on muokattava jollakin tekstieditorilla tiedostoa <tt>java-1.6.0-sun.spec</tt> siten, että siellä oleva buildver-määritys muutetaan vastaamaan ladatun bin-tiedoston u- eli update-lukua. Artikkelia kirjoitettaessa spec-tiedostossa on
%define buildver        14
joka on muutettava muotoon
%define buildver        17
 
Seuraavat komennot on taas annettava tiedostojen versioista huolimatta.
 
Tehdään RPM-paketit:
setarch i586 rpmbuild -bb java-1.6.0-sun.spec
Jos pakettien tekeminen onnistuu, siirrytään valmiit paketit sisältävään hakemistoon:
cd ~/rpmbuild/RPMS/i586
 
Nyt on vuorossa pakettien asentaminen järjestelmään. RPM-paketteja on useita, joista <tt>java-1.6.0-sun-jdbc</tt> ja <tt>java-1.6.0-sun-fonts</tt> eivät asennu Fedora 10:een riippuvuusongelmien vuoksi. Asennetaan kaikki muut paketit. Tässä on käytetty artikkelin kirjoittamisen aikaan tehtyjä versioita, tarkat tiedostonimet voivat olla erilaisia:
su -c "yum --nogpgcheck localinstall java-1.6.0-sun-1.6.0.16-1jpp.i586.rpm java-1.6.0-sun-alsa-1.6.0.16-1jpp.i586.rpm java-1.6.0-sun-demo-1.6.0.16-1jpp.i586.rpm java-1.6.0-sun-devel-1.6.0.16-1jpp.i586.rpm java-1.6.0-sun-plugin-1.6.0.16-1jpp.i586.rpm java-1.6.0-sun-src-1.6.0.16-1jpp.i586.rpm"
 
Jos asennus onnistuu, suoritetaan ohjelma <tt>system-switch-java</tt>, josta valitaan "Sun 1.6.0" käytettäväksi Java-toteutukseksi. Nyt Sunin Java-toteutus on muuten käytössä, mutta Firefoxin Java-liitännäinen ei vielä ole. Koska Java-toteutuksen valinta perustuu Fedorassa muutenkin [[alternatives]]-järjestelmään, asetetaan myös Java-liitännäinen valittavaksi alternativesillä.
 
Lisätään javaplugin.so alternativesin hallintaan:
su -c "alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jvm/java-1.6.0-sun-1.6.0.16/jre/plugin/i386/ns7/libjavaplugin_oji.so 20000"
Sitten varmistetaan, että Sunin Java-liitännäinen on käytössä, näin ei välttämättä ole, jos esimerkiksi paketti <tt>java-1.6.0-openjdk-plugin</tt> on ollut asennettuna ennen Sunin Java-toteutuksen asentamista. Annetaan komento
su -c "alternatives --config libjavaplugin.so"
ja valitaan ohjeiden mukaan luettelosta Sunin Java-liitännäinen, joka artikkelin kirjoittamisen aikaan on <tt>/usr/lib/jvm/java-1.6.0-sun-1.6.0.16/jre/plugin/i386/ns7/libjavaplugin_oji.so</tt>.
 
== java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm-paketin vaatimat muutokset ==
<tt>
java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm</tt>-paketissa on virhe eikä se toimi asennettuna oikein. Asennusvaiheessa tulee virheilmoitus "<tt>linkki /usr/bin/javaws on virheellinen orjalle javaws (/usr/share/javaws javaws)</tt>". Tämän voi korjata muokkaamalla <tt>java-1.6.0-sun.spec</tt>-tiedostoa ennen rpmbuild-komennon antamista. <tt>%post</tt>-osiossa noin rivi 414 on seuraava:
--slave %{_datadir}/javaws                javaws                      %{jrebindir}/javaws \
Se on vaihdettava muotoon:
--slave %{_bindir}/javaws                javaws                      %{jrebindir}/javaws \
 
Lisäksi Java-versio <tt>jdk-6u16-linux-i586.bin</tt> asentaa tiedoston, jota ei ole lueteltu <tt>java-1.6.0-sun.spec</tt>-määrittelytiedostossa. Sitä varten <tt>java-1.6.0-sun.spec</tt>-tiedoston <tt>%files -f %{name}-%{version}.files</tt>-osioon on lisättävä rivin (noin rivi 704)
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
alle seuraava rivi:
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklist
 
Tämän jälkeen voidaan taas seurata yllä annettuja ohjeita normaalisti.
 
== Nosrc-paketin lataaminen JPackage 5 -pakettivarastosta ==
Osoitteesta [http://mirrors.dotsrc.org/jpackage/5.0/generic/non-free/SRPMS/ http://mirrors.dotsrc.org/jpackage/5.0/generic/non-free/SRPMS/] voi saada hieman uudemman nosrc-paketin. (Ohjeen voisi ehkä siirtää käyttämään tuota pakettia.)
 
== Lähteet ==
* [http://www.mjmwired.net/resources/mjm-fedora-f10.html#java Personal Fedora 10 Installation Guide: Java]
* [http://www.fedorafaq.org/f9/#java Fedora 9 Fedorafaq: Java]
 
==Katso myös==
* [[Java]]
 
[[Luokka:Fedora]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)