当前位置: 首页 > news >正文

macos m1 芯片无法安装kubeedge keadm 解决办法

官方提供的几种下载方式,不论是下载二进制文件还是运行镜像从容器中复制到外面文件都无法执行

MacBookM1Pro keadm % ./keadm --help
zsh: exec format error: ./keadm

在尝试下载不同的包无法使用之后,最后通过下载源码编译解决问题

git clone https://github.com/kubeedge/kubeedge.git
git checkout v1.17.0
make BUILD_WITH_CONTAINER=false

然后可以看到输出了一些日志

MacBookM1Pro kubeedge % make BUILD_WITH_CONTAINER=false
KUBEEDGE_OUTPUT_SUBPATH=_output/local hack/make-rules/build.sh
go detail version: go version go1.22.0 darwin/arm64
go version: 1.22.0
building github.com/kubeedge/kubeedge/cloud/cmd/cloudcore
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/cloudcore -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/cloud/cmd/cloudcore
+ set +x
building github.com/kubeedge/kubeedge/cloud/cmd/admission
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/admission -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/cloud/cmd/admission
+ set +x
building github.com/kubeedge/kubeedge/keadm/cmd/keadm
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/keadm -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/keadm/cmd/keadm
+ set +x
building github.com/kubeedge/kubeedge/edge/cmd/edgecore
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/edgecore -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/edge/cmd/edgecore
+ set +x
building github.com/kubeedge/kubeedge/edgesite/cmd/edgesite-agent
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/edgesite-agent -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/edgesite/cmd/edgesite-agent
+ set +x
building github.com/kubeedge/kubeedge/edgesite/cmd/edgesite-server
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/edgesite-server -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/edgesite/cmd/edgesite-server
+ set +x
building github.com/kubeedge/kubeedge/cloud/cmd/csidriver
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/csidriver -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/cloud/cmd/csidriver
+ set +x
building github.com/kubeedge/kubeedge/cloud/cmd/iptablesmanager
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/iptablesmanager -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/cloud/cmd/iptablesmanager
+ set +x
building github.com/kubeedge/kubeedge/edge/cmd/edgemark
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/edgemark -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/edge/cmd/edgemark
+ set +x
building github.com/kubeedge/kubeedge/cloud/cmd/controllermanager
+ go build -o /Users/liudui/go/src/kubeedge/_output/local/bin/controllermanager -gcflags= -ldflags '-s -w -buildid= -X github.com/kubeedge/kubeedge/pkg/version.buildDate=2025-09-18T00:56:22Z -X github.com/kubeedge/kubeedge/pkg/version.gitCommit=d9bbf3d5b8c90d763e9a4bb3353264a866221ffe -X github.com/kubeedge/kubeedge/pkg/version.gitTreeState=clean -X github.com/kubeedge/kubeedge/pkg/version.gitVersion=v1.17.0 -X github.com/kubeedge/kubeedge/pkg/version.gitMajor=1 -X github.com/kubeedge/kubeedge/pkg/version.gitMinor=17' github.com/kubeedge/kubeedge/cloud/cmd/controllermanager
+ set +x

编译成功之后的结果

MacBookM1Pro bin % ls
admission		cloudcore		controllermanager	csidriver		edgecore		edgemark		edgesite-agent		edgesite-server		iptablesmanager		keadm
liudui@MacBookM1Pro bin % ./keadm --help+----------------------------------------------------------+| KEADM                                                    || Easily bootstrap a KubeEdge cluster                      ||                                                          || Please give us feedback at:                              || https://github.com/kubeedge/kubeedge/issues              |+----------------------------------------------------------+Create a cluster with cloud node(which controls the edge node cluster), and edge nodes(where native containerized application, in the form ofpods and deployments run), connects to devices.

补充内容,在安装好之后执行 keadm init 出现了错误具体内容是

failed to exec 'bash -c pidof cloudcore 2>&1', err: , err: exit status 127

127 表示你没有 pidof 命令, 当然也没有必要安装这个命令。因为 pidof 命令是一个依赖于linux内核/proc文件系统的工具,所以在macos上就算安装了也会无法工作出现错误的逻辑。这里需要修改源码,这个命令主要用来检测cloudcore有没有安装,我们肯定没有安装,所以直接跳过这一步,然后再次打包。

keadm/cmd/keadm/app/cmd/util/common_others.go

func IsKubeEdgeProcessRunning(proc string) (bool, error) {procRunning := fmt.Sprintf("pidof %s 2>&1", proc)cmd := NewCommand(procRunning)err := cmd.Exec()//if cmd.ExitCode == 0 {//	return true, nil//} else if cmd.ExitCode == 1 {//	return false, nil//}return false, err
}
http://www.dtcms.com/a/389601.html

相关文章:

  • 猎板 PCB:以全维度工艺突破,构建 PCB 制造技术壁垒
  • android12 SDK31 wifi开发(仅提供连接wifi的工具类)
  • Android播放视频适配黑边问题类型总结
  • 第十一章:AI进阶之--模块的概念与使用(二)
  • 异常检测patchcore 学习笔记 2025
  • [iOS] 网络 - AFNetWorking
  • iOS App 混淆与性能稳定性优化 混淆开销、崩溃风险、CI 集成与落地实务(
  • Freertos系统(任务挂起和恢复)
  • Git更新仓库时,忽略指定文件
  • 告别“瞎练”!数据闭环正成机器人智能进化核心引擎!
  • 基于MATLAB的无人机遥感数据预处理与农林植被性状估算
  • MATLAB基于AHP-模糊综合评价法的工程实践能力评价
  • 特征选择+优化算法+GBDT+SHAP分析!ReliefF-CPO-GBDT分类预测结合SHAP可解释分析MATLAB
  • 设计模式-外观模式详解
  • 《FastAPI零基础入门与进阶实战》第19篇:消息管理
  • 类和对象(下):static成员、友元类、内部类、匿名对象、优化——对象拷贝时的编译器优化
  • 虚拟线程(Virtual Thread)
  • 1688 店铺全商品接口技术全解:从页面解析到分页采集的完整实现方案
  • 日志轮转策略针对香港VPS存储空间的设置标准
  • 线性分组码及其相关概念
  • JWT的工作流程
  • Java 25 新特性 更简洁、更高效、更现代
  • 探讨前端与后端的安全策略:保护用户数据的关键措施
  • 如何使用DeepSeek等AI工具来帮助自己的工作
  • 灵途科技亮相CIOE2025 | 光电感知赋能具身智能升级
  • 我的云端影院:LibreTV+cpolar的异地观影记
  • NW748NW765美光固态闪存NW775NW781
  • 软考中级习题与解答——第八章_计算机网络(1)
  • Playwright 完全指南:从入门到实战,解锁自动化测试新范式
  • OpenCV:直接用NV21/NV12格式,画线、贴图都是相加效果,而不是替换、覆盖