安装 Oracle Java
![]() 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.
- Alpine Linux 上的原生 Java 调试:GDB、OpenJDK 和神秘的未知信号 Shahar Valiano 2019