Skip to content

如何添加其他app #19

Closed Answered by nantayo
wclmgcd asked this question in Q&A
Discussion options

You must be logged in to vote

嗨,对于你的问题,我来介绍一下 OpenWrt 软件包的“依赖”是怎么回事。

依赖是什么

凡是可以编译的软件包,都需要一个 Makefile 文件,以 luci-app-passwall 的 Makefile 为例,点进去可以看到
LUCI_DEPENDS:+coreutils +coreutils-base64 +coreutils-nohup +curl
等一系列其他软件包的名字,它们就是这个软件包的必要依赖。

依赖怎样被选中

当你 make menuconfig 时,每选中一个软件包,其 Makefile 中包含的全部必要依赖都会被自动选中。同时对于这些依赖,它们本身也有 Makefile,其中也包含新的依赖,这些新的依赖也会被选中。如此传递直到没有任何遗漏。

自动依赖靠谱吗

想要自动选择依赖功能靠谱,有两个先决条件:
一是各个依赖之间互不冲突,这对于包含在 package 仓库中的包来说一般没问题。
二是依赖本身要包含在 package 仓库里,否则编译时找不到依赖就会报错或者功能缺失。


有了以上基础,依赖问题就很简单了。
对于问题1,想添加一个 luci-app 软件,最简单的办法就是在 config 里加入其本身,因为依赖应该交给软件作者来写好。当然你也要保证依赖在 package 库里存在,比如 immortalwrt-21.02 仓库就没有 sing-box。
对于问题2,没错,需要自己一个个加入,原因是很显而易见的。当然,虽然现在有很多不同的科学上网插件,但是它们的依赖往往有很多重复,所以自行添加也没有那么麻烦。
对于问题3,没错,只要 Makefi…

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by nantayo
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants