6. 编译软件包

当我们镜像编译完成之后,想要再添加一个软件包,如果完整的编译一遍源码得到软件包,会导致整个编译过程繁杂, 并且会浪费很多时间。这时我们就可以选择单独编译一个软件包。

6.1. 软件包编译

接下来我们以luci的主题包luci-theme-openwrt-2020为例。输入以下命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#在menuconfig中勾选要编译的包
make menuconfig

#清除已有的编译文件
make package/luci-theme-openwrt-2020/clean V=s

#解压源码,本地没有的话会自动下载
make package/luci-theme-openwrt-2020/prepare V=s

#进行编译
make package/luci-theme-openwrt-2020/compile V=s

我们首先要在menuconfig中选择要编译的包。

选择要编译的包

然后清除已有的编译文件

清除已有的编译文件

接着解压源码到编译的目录

解压源码到编译的目录

最后我们进行编译。

进行编译

图中画红线的路径就是生成的软件包xxx.ipk的保存位置。

当然,我们在bin目录下搜索对应文件名就可以找到

ipk位置

6.2. 获取第三方软件包

除了已被OpenWrt官方合并入主线的软件包之外,还有很多因为各种原因无法被官方采纳的软件包。

或许第三方的软件包有安全性或兼容性等问题,但是他们能进一步的方便我们对OpenWrt的使用, 也极大地拓展了OpenWrt的功能。

警告

本节内容仅做演示使用,不保证所演示内容的安全性、稳定性,请谨慎使用。

我们可以在github中搜索相关插件,以基于luci的插件为例,我们搜索关键字 luci-app , 可以看到,相关的仓库接近700个

ipk位置

我们以luci-app-kcptun为例,打开仓库,查看安装/编译相关的说明。参考说明, 我们对github上的仓库进行克隆。

来到我们拉取的OpenWrt源码,在其根目录下执行git clone 命令,并将文件克隆到package目录下。

ipk位置

然后我们打开menuconfig,在LuCI -> Applications菜单呢就可以看到luci-app-kcptun。

ipk位置

我们选中软件包以后,退出menuconfig并保存配置文件,然后使用make V=s 进行镜像的编译。

ipk位置