Java pod Debianem
Debian od wersji 4.0 (etch) daje możliwość zainstalowania z pakietów sunowskiej Javy, którą w poprzednich wersjach ─ ze względów licencyjnych ─ użytkownicy systemu musieli ręcznie ściągać i instalować.
[edytuj] Debian a Java
Debian 4.0 jest edycją stabilną, czego konsekwencją jest, że wersja Javy nie jest najnowsza, a konkretnie jest to 1.5 (oznaczana też jako Java 5). Jest to tzw. Standard Edition.
Java ─ jak to w Debianie ─ została podzielona na kilka paczek, zawierających:
- sun-java5-jre ─ JRE (Java Runtime Environment) ─ maszyna wirtualna, biblioteki i inne elementy niezbędne do uruchamiania programów w Javie;
- sun-java5-jdk ─ JDK (Java Development Kit) ─ zestaw narzędzi developerskich, dla programistów;
- sun-java5-bin ─ programy wykonywalne;
- sun-java5-demo ─ przykłady;
- sun-java5-fonts ─ zestaw podstawowych czcionek wykorzystywanych przez aplikacje Javy;
- sun-java5-source ─ kod źródłowy bibliotek Javy;
- sun-java5-doc ─ dokumentacja, przy czym ten pakiet jest tylko "instalatorem": podczas instalacji poleca użytkownikowi ściągnąć ze stron Suna pliki jdk-1.5.0-doc.zip i jdk-1.5.0-doc-ja.zip i zapisać je w katalogu /tmp/. Dopiero po wykonaniu tych czynności dokumentacja może zostać zainstalowana przez system pakietów;
- sun-java5-plugin ─ wtyczka do niektórych przeglądarek, umożliwiająca im wykonywanie apletów Javy.
Powyższa lista dotyczy systemu Debian etch dla architektury IA-32. W innych przypadkach zestaw pakietów może się różnić. Na przykład, w architekturze x86-64 (AMD64), nie ma pakietu sun-java5-plugin, gdyż wtyczka nie jest dostępna w wersji 64-bitowej. Istnieje za to dodatkowy pakiet, ia32-sun-java5-bin z 32-bitowymi wersjami niektórych, zależnych od platformy, elementów Javy.
[edytuj] Instrukcja instalacji
Żeby uzyskać listę pakietów do instalacji, można użyć polecenia:
aptitude -s install sun-java\*
Powinno ono wypisać coś w tym stylu:
Couldn't find package "sun-java*". However, the following packages contain "sun-java*" in their name: sun-java5-bin sun-java5-doc sun-java5-jdk sun-java5-jre sun-java5-source sun-java5-demo sun-java5-fonts sun-java5-plugin No packages will be installed, upgraded, or removed. 0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Teraz wystarczy zainstalować pakiety z powyższej listy:
aptitude install sun-java5-bin sun-java5-doc sun-java5-jdk sun-java5-jre \
sun-java5-source sun-java5-demo sun-java5-fonts sun-java5-plugin
Wersja minimum, potrzebna do uruchamiana programów i apletów w Javie, może zostać zainstalowana następująco:
aptitude install sun-java5-bin sun-java5-jre sun-java5-fonts sun-java5-plugin
[edytuj] Konfiguracja
W Debianie istnieje system wyboru alternatywnych implementacji poszczególnych programów, bibliotek czy innych elementów oprogramowania. W skrócie działa to tak, że dany program, np. /usr/bin/java, jest dowiązaniem symbolicznym do pliku w katalogu /etc/alternatives, np. /etc/alternatives/java. Ten ostatni z kolei jest symlinkiem do aktualnie wybranej implementacji.
Ponieważ w Debianie jest dostępna alternatywna implementacja Javy, Kaffe, może się zdarzyć, że po instalacji oryginału trzeba będzie skonfigurować system alternatyw. Robi się to za pomocą polecenie update-alternatives. Ściślej rzecz biorąc, nie jest to konieczne, można sobie ustawić ścieżki do odpowiednich katalogów itp. chociażby w skryptach startowych shella, na pewno jednak odpowiednie skonfigurowanie alternatyw jest wygodne, zwłaszcza, gdy mamy kilka kont użytkowników.
W skład Javy wchodzi m.in kilka poleceń, np.:
- java ─ do uruchamiania programów w Javie;
- javc ─ kompilator Javy;
- javadoc ─ generator dokumentacji.
Niestety, nie ma możliwości przełączenia za jednym zamachem wszystkich alternatyw związanych z Javą do konkretnej implementacji. Trzeba to robić pojedynczo.
Żeby sprawdzić, jakie alternatywne elementy związane z Javą mogą wymagać konfiguracji, można poszukać w katalogu /etc/alternatives plików z nazwami zawierającymi litery "java":
ls -l /etc/alternatives/*java* | cut -d" " -f10-
W wyniku jego wykoania otrzymamy mniej więcej następującą listę:
/etc/alternatives/firefox-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /etc/alternatives/iceape-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /etc/alternatives/iceweasel-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /etc/alternatives/java -> /etc/alternatives/kaffe-system/bin/java /etc/alternatives/java-rmi.cgi -> /usr/lib/jvm/java-1.5.0-sun/bin/java-rmi.cgi /etc/alternatives/java.1.gz -> /usr/share/man/man1/java.kaffe.1.gz /etc/alternatives/java_vm -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/java_vm /etc/alternatives/javac -> /etc/alternatives/kaffe-system/bin/javac /etc/alternatives/javac.1.gz -> /usr/share/man/man1/javac.kaffe.1.gz /etc/alternatives/javadoc -> /usr/bin/gjdoc /etc/alternatives/javadoc.1.gz -> /usr/share/man/man1/gjdoc.1.gz /etc/alternatives/javah -> /etc/alternatives/kaffe-system/bin/javah /etc/alternatives/javah.1.gz -> /usr/share/man/man1/javah.kaffe.1.gz /etc/alternatives/javap -> /etc/alternatives/kaffe-system/bin/javap /etc/alternatives/javap.1.gz -> /usr/share/man/man1/javap.kaffe.1.gz /etc/alternatives/javaws -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/javaws /etc/alternatives/javaws.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.10/jre/man/man1/javaws.1.gz /etc/alternatives/mozilla-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
Z powyższej listy wynika, że niektóre programy związane z Javą odwołują się do alternatywnej implementacji ─ kaffe. Przy pomocy programu update-alternatives można skonfigurować je tak, by wskazywały na oryginalną, sunowską Javę.
W tym celu najprościej użyć trybu interaktywnego polecenia update-alternatives, wywołując je z opcją --config:
update-alternatives --config java
Polecenie wypisze dostępne alternatywy, np.:
There are 5 alternatives which provide `java'.
Selection Alternative
-----------------------------------------------
1 /usr/bin/java-vm
2 /usr/bin/gij-wrapper-3.3
*+ 3 /etc/alternatives/kaffe-system/bin/java
4 /usr/bin/gij-wrapper-4.1
5 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
i poprosi o wybór jednej z nich:
Press enter to keep the default[*], or type selection number:
W tym przypadku należy wybrać alternatywę nr 5.
W podobny sposób należy postąpić z innymi elementami: javac, javadoc, javah, javap. Strony manuala są zależne od poszczególnych programów i zostaną przełączone automatycznie podczas konfiguracji alternatywy danego programu, tak więc nie trzeba np. osobno wywoływać update-alternatives dla pliku javac.1.gz, zależnego od javac.
Po tym wszystkim, polecenia takie jak java czy javac, znajdujące się w standardowych lokalizacjach (w katalogu /usr/bin), będą pochodzić z sunowskiej Javy.