k8s源码编译失败:Makefile:1: *** 缺失分隔符。 停止。
k8s源码编译失败:Makefile:1: *** 缺失分隔符。 停止。
·
目录
问题解决
编译k8s源码的kubelet时执行make失败:Makefile:1: *** 缺失分隔符。 停止。
首先,查看文件内容
# cat Makefile
build/root/Makefile
修改Makefile,给第一行前增加include,如下:
include build/root/Makefile
重试,会有类似的权限问题:
bash:行1: build/make-clean.sh: 权限不够
make: *** [build/root/Makefile:319:clean] 错误 126
bash:行1: hack/make-rules/clean.sh: 权限不够
make: *** [build/root/Makefile:320:clean] 错误 126
bash:行1: hack/make-rules/build.sh: 权限不够
make: *** [build/root/Makefile:95:all] 错误 126
给提示的几个文件增加权限:
chmod 755 build/make-clean.sh
chmod 755 hack/make-rules/clean.sh
chmod 755 hack/make-rules/build.sh
接着执行(以kubectl为例)完成编译:
make WHAT=cmd/kubectl
不指定WHAT时编译全部,默认使用linux/amd64平台和架构。
编译会在当前目录下生成一个_output路径,最终结果在当前路径下:
_output/local/bin/linux/amd64/
自动按系统和Arch创建路径名。
更换Arch或系统
例如需要编译arm64架构时:
KUBE_BUILD_PLATFORMS=linux/arm64 make WHAT=cmd/kubectl GOFLAGS=-v
更多推荐
已为社区贡献4条内容
所有评论(0)