安装 Oracle Java

来自 Alpine Linux
此材料已过时...

Alpine 一段时间以来没有使用 grsec 了... (讨论)

使用 Java 需要 grsec 与二进制文件良好协作。 您可能还需要根据您的需求安装 JDK 而不是 JRE。

本指南假设您以 root 用户身份运行。

从此处 JRE 或 JDK 部分下载 XXX-XXX-linux-x64.tar.gz: https://www.oracle.com/technetwork/java/javase/downloads/index.html

mkdir -p /opt/java
cd /opt/java
sudo tar -zxvf XXX-XXX-linux-x64.tar.gz 

记下目录,例如 /opt/java/jdk1.8.0_121,创建一个符号链接作为当前版本

ln -s /opt/java/jdk1.8.0_121 /opt/java/current

/etc/profile.d/java.sh 中创建一个文件

export JAVA_HOME=/opt/java/current
export PATH=$PATH:$JAVA_HOME/bin

执行此脚本或重启您的 shell

sh /etc/profile.d/java.sh

现在我们需要使用 paxctl 管理 grsec。 使用此命令检查是否已安装

which paxctl

如果没有出现任何内容,请安装它

apk add paxctl

现在在您的 /opt/java/XXX/bin 文件夹中,执行

paxctl -c java
paxctl -m java

如果您有 JDK,您需要对 javac 执行相同的操作

paxctl -c javac
paxctl -m javac

您可以对您需要使用的任何其他二进制文件执行此操作。

注意:一些用户报告说他们必须使用此命令才能使其工作

setfattr -n user.pax.flags -v "mr" java
setfattr -n user.pax.flags -v "mr" javac


在 Linux Alpine 上安装 Oracle Java 的替代方法

1. Run apk update && apk upgrade
2. Edit vim /etc/profile, add the value before the string: append_path "/user/local/sbin", value: append_path "/opt/java/current/bin"
3. Download XXX-XXX-linux-x64.tar.gz and jce_policy-8.zip from official oracle suite.
4. Сreate a directory in the root: mkdir -p /opt/java
5. Copy XXX-XXX-linux-x64.tar.gz in the java directory: scp /home/username/XXX-XXX-linux-x64.tar.gz /opt/java/
6. Let's go to the catalog java: cd /opt/java and unpack the file: XXX-XXX-linux-x64.tar.gz, tar -zxvf XXX-XXX-linux-x64.tar.gz
7. Create simlink: ln -s /opt/java/jdkX.X.X_XXX /opt/java/current
8. Download and install the certificate: wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
9. Download glibc: wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk
10. Install glibc: apk add glibc-2.34-r0.apk
11. Download glibc-bin: wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-bin-2.34-r0.apk
12. Install glibc-bin: apk add glibc-bin-2.34-r0.apk
13. Install the license jce_policy-8.zip, сopy the file: scp /home/username/jce_policy-8.zip /opt/java/current/jre/lib/security/
14. Let's go to the folder /opt/java/current/jre/lib/security/: cd /opt/java/current/jre/lib/security/ and unpack it: unzip -o -j jce_policy-8.zip UnlimitedJCEPolicyJDK8/*.jar
15. Delete the archive file: rm -f jce_policy-8.zip
16. Restart the computer or virtual machine: reboot
17. Let's check the version of Java installed: java -version
18. If it displays: java version "X.X.X_XXX", then we did everything correctly.