|
|
(14 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä) |
Rivi 1: |
Rivi 1: |
| 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ä.
| | #OHJAUS [[Java/Fedora]] |
| | |
| [[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.
| |
| | |
| 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]]
| |