kubernetes源码编译

写在前面

前一阵项目赶进度上线,10106了很久,现在喘口气,写写博客^ ^.
后面计划看几个模块的代码了,所以先今天进行kubernetes源码的编译,我看源码的时候习惯是先看流程,在自己觉得模糊的地方打上日志,所以源码编译是第一步,往源码里塞完日志,然后编译出二进制跑一跑。

编译遇到的问题

我是clone的代码,然后利用官方的容器进行编译:

KUBE_BUILD_PLATFORMS=linux/amd64 build/run.sh make all WHAT=cmd/kubeadm GOFLAGS=-v GOGCFLAGS="-N -l"

一直报这个错误,耽误了很多青春:

Makefile:1: *** missing separator.  Stop.
!!! [1112 10:13:32] Call tree:
!!! [1112 10:13:32]  1: build/../build/common.sh:519 kube::build::run_build_command_ex(...)
!!! [1112 10:13:32]  2: build/run.sh:39 kube::build::run_build_command(...)
!!! Error in build/../build/common.sh:594
  Error in build/../build/common.sh:594. '((i<4-1))' exited with status 2
Call stack:
  1: build/../build/common.sh:594 kube::build::run_build_command_ex(...)
  2: build/../build/common.sh:519 kube::build::run_build_command(...)
  3: build/run.sh:39 main(...)
Exiting with status 1

这个问题原因是源码里有几个文件链接,类似这种:

lrwxrwxrwx  1 root root     19 Jun 15 08:58 Makefile -> build/root/Makefile
lrwxrwxrwx  1 root root     35 Jun 15 08:58 Makefile.generated_files -> build/root/Makefile.generated_files

clone后的代码文件链接失效了,所以还是下载官方的release source code的tar包,解压后发现里边的文件链接都是正常的,编译成功。

你可能感兴趣的:(kubernetes源码编译)