最近想在openwrt直接运行minecraft服务器,然后openwrt没有jdk包,然后alpine有,所以直接安装alpine的jdk包就好,但是安装后就不能删除了,大概因为openjdk有Musl和BusyBox,我之前试试一下,apk del openjdk11-jdk ,结果软由路崩了,凉凉,解决了请下面的贴:
关于openwrt安装了alpine的apk del会崩这件事!!!
PS:注意,这种方法可以apk del命令,但请先安装apk add musl busybox busybox-binsh apk-tools这些包,再去用apk del命令,不安装这些包直接安装其它软件系统会崩的,这样openwrt会崩的,openwrt会崩的,openwrt会崩的,重要事情说三遍!!!
主要参考:转载至[学习,记录,骚操作] 在openwrt上搭建MC服务器
还有一篇是可以参考的,这个没有用apk包管理器,没有软由路崩的风险,直接手动安装了alpine的JDK:Apparently Yes! You can install OpenJDK (Java) JRE and YaCy on OpenWrt - DEV Community
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/runsisi@hust.edu.cn.rsa x86_64/APKINDEX.tar.gz
apk add -X https://dl-cdn.alpinelinux.org/alpine/v3.16/main -u alpine-keys
这一步很重要,不然后期用apk del会系统崩的,一定要先安装以下系统组件,再去安装其它组件,不然系统会崩的,先运行apk add musl busybox busybox-binsh apk-tools,再apk add openjdk17-jre,不然后apk del openjdk17-jjre会系统崩的,只能重新装系统了
apk add musl busybox busybox-binsh apk-tools
先安装以上面的命令,再安装JRE或JDK,现在openwrt已经安装apk了,可以安装java环境了
apk add openjdk17-jre
要是有特殊需求也可以安装完整的jdk
apk add openjdk17-jdk
java安装在/usr/lib/jvm
文件夹下,使用du -h
命令计算,发现完整的jdk占用了193M的空间,需要注意自己的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,效果如下图,
安装MCSM面板请用手动安装:MCSManager Document
最终效果,其实可以用jenv切换java版本,但不是原生的要移植,不如就直接用alias永久来的方便,Mcsm面板可以挂,但守护进程不能挂