在 Termux 上编译安装 xcaddy

虽然 Caddy 在 Termux 的官方源中,但是官方源的 Caddy 不包含任何非标准模块。同时,目前官方源中并不包括 xcaddy 。因此,要获得含有非标准模块的 Caddy,就需要先编译安装 xcaddy。

准备

编译 xcaddy 前,需要先安装 golang:

1
pkg install golang -y

同时,还需要准备足够的存储空间(至少 10 MB)和运行内存。

编译

执行这条命令:

1
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

输出很少,长这样:

1
2
3
4
5
6
7
go: downloading github.com/caddyserver/xcaddy v0.4.5
go: downloading github.com/spf13/cobra v1.9.1
go: downloading github.com/Masterminds/semver/v3 v3.4.0
go: downloading github.com/josephspurrier/goversioninfo v1.5.0
go: downloading github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
go: downloading github.com/spf13/pflag v1.0.6
go: downloading github.com/akavel/rsrc v0.10.2

没有意外的话,输出就这些。

安装

编译好的 xcaddy 位于 $HOME/go/bin/xcaddy,使用 cp 命令将其复制到 Termux 的 bin 目录:

1
cp $HOME/go/bin/xcaddy $PREFIX/bin/

测试

运行 xcaddy ,如果输出如下所示则安装成功:

1
2
3
go: cannot match "all": go.mod file not found in current directory or any parent directory; see 'go help modules'
Error: exec 0x5abfcaa8c0: exit status 1:
exec 0x5abfcaa8c0: exit status 1:

大功告成。