Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【已解决】在istore商店中,安装插件时,提示/bin/is-opkg: line 77: arithmetic syntax error #147

Open
IySANCamille opened this issue Nov 11, 2024 · 5 comments

Comments

@IySANCamille
Copy link

========================================================================================
首先叠个甲,我没有任何linux过往经验都是现查现学,但有一些python基础,也就是略微略微能看得懂,剩下全是通过问AI解决的。。。

提示/bin/is-opkg的第77行有错,具体是啥错问AI
然后就是SSH用vim /bin/is-opkg去看一下,如下
image

看也看不出来啥,把这段复制出来问了一下AI,总的来说这段就是用来判断一下你还有多少空间装你选的那个插件
AI答说可能会有一些语法错误或者变量没赋值会导致这种错误,所以就深入问了一下每一段代码的含义

主要问题在这一段代码,这是获取可用空间的代码
image

然后AI自己写了一些自认为修正了的代码
image
AI也给了用echo打印每一段看看问题在哪的改法
image

然后就发现,echo "Free space in KB: $free_kb"这段代码并不能正确打印出来可用空间,而且下面转换出来的MB单位的也是0
反推这些发现,因为源代码我理解是写成了一个整体,导致根本就没有值,所以会报一个那种没赋值的错误

然后就是再深入检查为啥没有值返回,用AI提供的办法,在openwrt的ssh终端下尝试
image

我尝试df -h /的结果是正常的,返回了正确的结果,openwrt安在了哪,占用多少,可用多少,百分比这些
image

但是把AI改写的,与源代码第77行相同效果的代码复制进来就发现根本返回不了任何东西,这里没图。。。
然后再拆分这段代码,并用AI提供的另一种方法一点一点组合提取的代码
image

最终自己稍微改了改提取的值,发现一个问题就是,/dev/mapper/pve-vm--101--disk--0我的这段太长了,导致后面占用空间可用空间那些信息跑到所谓的第三行去了,而awk 'NR==2 {print $4}'里的2和4指的第二行第4列,所以第二行只有第一个这个路径,根本没有后面那些信息。所以最终把源代码这里的2和4改成3和3,reboot的一下,插件就不报错顺利下载了

======================================================================================
记录一下发现的这个问题,希望能帮到各位
另外如果有其他可能得问题,希望大佬提出,我也不懂,只是这么改完了感觉能用

@IySANCamille
Copy link
Author

我是把商店原先的0.1.25更新到0.1.26出现的这个问题,0.1.25为什么没有而0.1.26有我懒得再研究怎么单独装0.1.25了,我刚开始研究nas这些东西,耗费很长时间了,总之我也不知道为啥0.1.26会有这个问题

@jjm2473
Copy link
Collaborator

jjm2473 commented Nov 12, 2024

直接在你的软路由终端执行df -k / | awk 'NR==2 {print $4}'看看输出什么

@jjm2473
Copy link
Collaborator

jjm2473 commented Nov 12, 2024

直接执行df -k /看看输出什么,如果报错,那就再执行df --help看看支持哪些参数。还有提供下固件信息,是否openwrt或者istoreos

@jjm2473
Copy link
Collaborator

jjm2473 commented Nov 12, 2024

这AI也是傻,明明代码中使用的命令是df -k /,它却让你用df -h /来测试,这能测出来才怪了。

@IySANCamille
Copy link
Author

这AI也是傻,明明代码中使用的命令是df -k /,它却让你用df -h /来测试,这能测出来才怪了。

哈哈哈哈哈哈,我第一次用,也没啥基础,试过df -k / | awk 'NR==2 {print $4}'了,没有任何返回,就是因为前面名字太长跑到第三排去了,我也不知道为啥改了一下就好了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants