Шукати в цьому блозі

вівторок, 2 липня 2019 р.

Debian, Oracle та Java - нескінченна історія

Не пройшло й 20 років як Oracle почали публікувати Java у вигляді deb-пакетів. Щоправда автоматичного оновлення alternatives як не було так й немає. Але й так добре :)

Але ж такі дрібниця як відсутність автоматичного налаштування alternatives нас не зупинять!

Для початку все ж раджу встановити наявний останній OpenJDK, для цього уважно читаємо інструкцію з Debian Wiki. Це само по собі дозволить мати налаштовані на OpenJDK посилання alternatives та man-и до них.

Далі робимо архів  поточних alternatives, так, про всяк випадок:
tar cJf /tmp/java-alternatives.tar.xz $( \
  ls -l /etc/alternatives/* | \
  awk '$11~/\/jvm\// && $11!~/\.1\.gz$/ { print $9 }' \
)
Ну, а потім будь-яким чином отримуємо список нових посилань та оновлюємо alternatives з OpenJDK на JDK, наприклад так:
ls -l /etc/alternatives/* |   awk '$11~/\/jvm\// && $11!~/\.1\.gz$/ { printf("test -f %s && ( sudo rm %s; sudo ln -s %s %s )\n", $11, $9, $11, $9) }' |   sed "s,/java-8-openjdk-amd64/,/jdk-11.0.3/,g;s,/jre/,/,g" > java-alternatives-new
chmod +x java-alternatives-new
./java-alternatives-new
У разі будь-яких негараздів завжди можемо відкатитися до версії alternatives яку зберегли в архів :)

Подивимося поточну версію java та javac:

$ java -version
java version "11.0.3" 2019-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3+12-LTS, mixed mode)
$ javac -version
javac 11.0.3
та перевіримо, що у нас наразі залишилося в alternatives, що вказує не на поточну версію:
ls -l /etc/alternatives/ | grep java | grep -v \.1\.gz
…трохи є :(

Немає коментарів: