关于openwrt安装了alpine的apk del会崩这件事!!!

        前一阵子,我通过一篇教程:学习,记录,骚操作] 在openwrt上搭建MC服务器,成功的在openwrt上安装了openjdk17,然后我不想要jdk17了,想要删除jdk17,直接apk del openjdk17-jre,结果软路由崩了,这不是坑爹吗???

        按道理来讲都是用Musl加Busybox为关键组件的,应该是没有问题才是,结果确实有问题,就是出现在了Musl和Busybox组件上,现在用vmware的IStoreos复现一下过程:

在apk update后,我直接apk add openjdk17-jre,下面出现了这两行:

(1/32) Installing musl (1.2.4_git20230717-r4)
(2/32) Installing busybox (1.36.1-r15)

安装完了,也确实能用,但一apk del就崩了

看下面这图,它apk把busybox和musl都删除了,这是openwrt很重要的组件,

不出意外的话,openwrt系统就崩了,什么命令都没有用了


所以有没有什么方法能让apk不去删除musl组件呢?找了半天,确实有了,下面看演示:

看上面的图,在opkg中没有这zip包,但我又想用这zip包,所以我用apk来安装,结果就是安装的时候能行,一删除就顺手将musl也删除了,不出意外系统又崩了,这样我就有一个大胆的猜想:zip的运行要有musl支持,但openwrt的musl它apk不识别,若我提前将musl用apk安装一遍,那它再次安装zip时,是否就不用安装musl了呢?

事实证明,对的,所以现在只要提前安装好这些重要的组件,并不去删除这些组件就可以保证系统的正常运行,那问题又来了,那些组件是重要的呢?根据 ChatGpt 多年的经验和自己的一些见解,就有四个组件,分别为:

musl busybox busybox-binsh apk-tools

        前面两个不用说了,不管是musl还是busybox对于openwrt与alpine来说,都是非常重要的,musl一个C标准库的实现,类似于glibc(GNU C Library)或uClibc,busybox一个轻量级的工具箱,包含了精简的Unix工具,提供ls、cat等命令,如果这两个组件没了,openwrt和alpine都必崩无疑。

        后面的busybox-binsh和apk-tools对于alpine也行重要,busybox-binsh提供了alpine的轻量级的 shell,apk-tools是apk包安装工具,可以使用apk查看相关依赖,其中busybox-binsh依赖于busybox,busybox依赖于musl,apk-tools有两个依赖(zlib、libcrypto3)没有安装,可以用以下命令查看apk-tools的依赖关系。

apk info -R apk-tools

下面图,左边是docker中的alpine安装jre17,右边是Vmware中的istoreos安装jre17,多了5个包:musl、busybox、busybox-binsh、zlib、libcrypto3,后面这两个包被依赖于apk-tools


所以解决apk del openjdk17-jre的方法就有了,直接apk update后,先不安装jdk,先安装musl等重要组件,再安装jdk就行了:

apk add musl busybox busybox-binsh apk-tools

好了,看下图,现在openjdk17-jre的包就是27个了,跟原版的alpine一样

安装好后,再试试apk del openjdk17-jre命令,

没毛病,apk del能正常运行了,系统也不崩了!!!


PS:注意上面的组件都不可以删除,如果一个手误apk del musl或apk del busybox,系统必崩,其实alpine也是一样的,但它用的是alpine-baselayout,它依赖于musl、busybox、busybox-binsh、apk-tools,你可以试试,在alpine上直接apk del alpine-baselayout,系统一样崩,如下图所示:

完结~~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值