openwrt安装jdk本地部属Mcsm

        最近想在openwrt直接运行minecraft服务器,然后openwrt没有jdk包,然后alpine有,所以直接安装alpine的jdk包就好,但是安装后就不能删除了,大概因为openjdk有Musl和BusyBox,我之前试试一下,apk del openjdk11-jdk ,结果软由路崩了,凉凉

PS:注意,这种方法只可以apk add命令,不能用apk del命令,用了del它会删除musl包,这样openwrt会崩的,openwrt会崩的,openwrt会崩的,重要事情说三遍!!!

        主要参考:转载至[学习,记录,骚操作] 在openwrt上搭建MC服务器:https://blog.yingye.site/2021/04/26/%E5%9C%A8openwrt%E4%B8%8A%E6%90%AD%E5%BB%BAmc%E6%9C%8D%E5%8A%A1%E5%99%A8


   1、先安装apk,screen用于新建一个shell窗口,保证在断开连接后,服务器依旧能运行

opkg update && opkg install apk alpine-keys alpine-repositories screen

2、换源,最新的源才能用jdk17

vi /etc/apk/repositories

官方源:

https://dl-cdn.alpinelinux.org/alpine/latest-stable/main
https://dl-cdn.alpinelinux.org/alpine/latest-stable/community

清华镜像源:

https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main
https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/community

3、更新源

先输入apk update,然后出现报错UNTRUSTED signature,可添加--allow-untrusted参数

原因是:Alpine Linux edge signing keys rotated | Alpine Linux

解决方法,官方源输入:

apk add -X https://dl-cdn.alpinelinux.org/alpine/latest-stable/main -u alpine-keys  --allow-untrusted

清华源输入:

apk add -X https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main -u alpine-keys  --allow-untrusted

这个命令是在Alpine Linux中添加一个软件包,并从指定的URL安装一个公钥。

apk add 是用来添加软件包的命令。
-X 参数后面跟的是公钥的URL,它告诉 apk 从哪里下载公钥。
-u 参数后面跟的是要添加的软件包的名称,这里是 alpine-keys。
--allow-untrusted 参数允许从不受信任的源安装软件包。

需要注意的是,使用 --allow-untrusted 参数可能会使你的系统面临安全风险,因为它允许从不受信任的源安装软件包。除非你完全信任这个源,否则在生产环境中应该避免使用这个参数。


先添加公钥,再用apk update就行了

Alpine常见指令,详情参考:Alpine 基础

更新软件包索引	apk update
列出所有可更新的版本	apk list -u
更新已安装软件包	apk upgrade

安装最新的软件包	apk add ceph-common
列出所有已安装包	apk list -I
列出软件包内容	apk info -L ceph-common

通过文件查询所属软件包		 apk info -W /usr/lib/librados.so.2
删除已安装软件包	apk del ceph-common
查询软件包信息	apk info ceph-common

搜索软件包	apk search ceph-common
下载软件包	apk fetch ceph-common
安装本地软件包	apk add ./ceph-common-14.2.1-r0.apk
验证本地软件包签名	 apk verify ./ceph-common-14.2.1-r0.apk

显然,索引文件需要进行签名,如有需要,所有 apk 相关的命令都可以通过指定 --allow-untrusted 选项进行规避:
 apk update --allow-untrusted

为源索引文件签名
 abuild-sign -k ~/.abuild/[email protected] x86_64/APKINDEX.tar.gz

apk add -X https://dl-cdn.alpinelinux.org/alpine/v3.16/main -u alpine-keys


安装JRE或JDK,现在openwrt已经安装apk了,可以安装java环境了

apk add openjdk17-jre

要是有特殊需求也可以安装完整的jdk

apk add openjdk17-jdk

java安装在/usr/lib/jvm文件夹下,使用du -h命令计算,发现完整的jdk占用了160M的空间,需要注意自己的overlay空间是否足够。


下面是安装了openjdk17-jre与openjdk11-jre,

然后用alias去弄别名,这个用运行不同Java,直接vim /etc/profile,新增两行,如下图,参考文章为:

记一次懒人在openwrt软路由系统下更改alias,并永久生效的方法_openwrt alias-CSDN博客

alias java11='/usr/lib/jvm/java-11-openjdk/bin/java'
alias java17='/usr/lib/jvm/java-17-openjdk/bin/java'


重新连接ssh,输入alias,效果如下图,

openwrt上部署go web项目 - 掘金

安装MCSM面板请用手动安装:MCSManager Document

最终效果,其实可以用jenv切换java版本,但不是原生的要移植,不如就直接用alias永久来的方便,Mcsm面板可以挂,但守护进程不能挂