Javaのランタイムlibだけ入れる

以前、ARM用にコンパイルしてみようとしたが、メンドクサそうだったのでヤメた。
https://seesaawiki.jp/lifewithslackzaurus/d/java%a

マジメにやろうとすると、(x86_64では)以下になるらしい。
https://slackware.jp/packages/openjdk.html
(手動で実行するのは正しい。https://shirakawa.weblike.jp/blog-page/2025/05/14…)
(私としては特に思い入れが無い場合、本家かDebian辺りのpkgを使うが)

Slack-15のpkgを使ってやろうとすると、以下となるらしい。こっちもCompileコース?。
$ ls -l /mnt2/extra/java/
合計 11
-rw-r–r– 1 root root 654 7月 31 2012 README
-rwxr-xr-x 1 root root 5300 9月 30 2019 java.SlackBuild
drwxr-xr-x 1 root root 2048 7月 31 2012 profile.d
-rw-r–r– 1 root root 817 2月 27 2018 slack-desc.jdk
-rw-r–r– 1 root root 861 2月 27 2018 slack-desc.jre

$ cat /mnt2/extra/java/README
This is a SlackBuild that will repackage Oracle Java into a package that
can be easily installed, upgraded, or removed using Slackware’s native
package management tools.

To use it, you’ll need Oracle’s JDK or JRE package for Linux. Get the
appropriate version for your architecture, either 32-bit i586 or 64-bit
x64. Be sure to get the version that is packaged as a .tar.gz!

Then, run the script like this:

./java.SlackBuild /tmp/jre-7u5-linux-x64.tar.gz

A Slackware txz package will be created in /tmp. Install or upgrade it
with a command like this one (adjust for jdk or jre, arch, and version):

upgradepkg –install-new jre-7u5-x86_64-1.txz
$

SlackBuildだと、OpenJDK-11,17,19,21,23 辺りを使ってる?。
https://slackbuilds.org/result/?search=jdk&sv=15.0


今回は、ランタイムlibだけほしいので、
https://qiita.com/deBroglieeeen/items/cb35eadaa4cf4d2cef3f
$ sudo apt install default-jre openjdk-11-jre-headless
をやる代わりに、Debian pool
https://ftp.debian.org/debian/pool/main/o/openjdk-17/
から持ってきて入れてみるか。

$ ar x openjdk-17-jre_17.0.15+6-1_amd64.deb
$ tar xf control.tar.gz (controlの中身を見てVersionを確認する)
$ mkdir package-openjdk-17-jre; cd package-openjdk-17-jre
$ tar xJf ../data.tar.xz
$ ls -l openjdk-17-jre/usr/lib/jvm/java-17-openjdk-amd64/lib/
合計 616
lrwxrwxrwx 1 ore root 47 4月 24 xx:yy libatk-wrapper.so -> ../../../x86_64-linux-gnu/jni/libatk-wrapper.so
-rw-r–r– 1 ore root 537488 4月 24 xx:yy libawt_xawt.so
-rw-r–r– 1 ore root 15440 4月 24 xx:yy libjawt.so
-rw-r–r– 1 ore root 61872 4月 24 xx:yy libsplashscreen.so
libatk-wrapper-java-jni debian pool、でググった:
http://ftp.debian.org/debian/pool/main/j/java-atk-wrapper/
$ cat control
Recommends: libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2), fonts-dejavu-extra
Slackには無い依存libを入れなければならなくなるな〜、被ってるかも。Javaみたいな開発環境の
場合は、通常アプリみたいにバイナリを入れるんじゃなくて、ちゃんとコンパイルした方がいいか〜?。

仕方ないので、アカウント登録して以下から採ってこようかと思ったが、会社名は準備中。やっぱヤメ。
https://www.oracle.com/jp/java/technologies/javase…

openjdk-8の最新を入れてみたが、
$ /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -version
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java: /lib64/libc.so.6: version `GLIBC_2.34′ not found (required by /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java)
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java: /lib64/libc.so.6: version `GLIBC_2.38′ not found (required by /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/../lib/amd64/jli/libjli.so)
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java: /lib64/libc.so.6: version `GLIBC_2.34′ not found (required by /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/../lib/amd64/jli/libjli.so)
(Slack-15はGLIBC_2.33なので、エラーになった。openjdk-17辺りも怪しいな〜)
さすがにセキュリティーUpでも、glibcをUpしろとは言ってない。
https://shirakawa.weblike.jp/blog-page/2025/05/08…

openjdk-11を採ってきた(2022辺りのヤツにした)。展開とpkg化は以下と同様。
https://shirakawa.weblike.jp/blog-page/2024/06/14…
$ sudo find . -type f ! -perm 644 ! -perm 755 (suid等のチャック)
問題なかったので、makepkgとinstallpkgを実行した。
$ ls -ltr /var/log/packages/ | tail -n 4
-rw-r–r– 1 root root 1390 5月 19 xx:yy openjdk-11-jre_11.0.16+8-1
-rw-r–r– 1 root root 13042 5月 19 xx:yy openjdk-11-jre-headless_11.0.16+8-1
-rw-r–r– 1 root root 557 5月 19 xx:yy libatk-wrapper-java-jni_0.33.3-22
-rw-r–r– 1 root root 692 5月 20 xx:yy ca-certificates-java_20190405
(java-commonは要らなさそうだったので、入れなかった)
$ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 (javaをLinuxで実行に必要な環境変数は?->DeepSeek)
$ export LD_LIBRARY_PATH=$JAVA_HOME/lib/server:$LD_LIBRARY_PATH
$ grep -E ‘bin|lib’ /var/log/packages/openjdk-11-jre_11.0.16+8-1 | sed s@^@/@ | xargs ldd | grep found
$ grep -E ‘bin|lib’ /var/log/packages/openjdk-11-jre-headless_11.0.16+8-1 | sed s@^@/@ | xargs ldd | grep found
$ grep -E ‘bin|lib’ /var/log/packages/libatk-wrapper-java-jni_0.33.3-22 | sed s@^@/@ | xargs ldd | grep found
(依存の不足は無かった)
$ export PATH=$PATH:/usr/lib/jvm/java-11-openjdk-amd64/bin
$ java -version
openjdk version “11.0.16” 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb10u1, mixed mode)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です