处理etcd源码包编译异常

1、下载etcd包,执行go build报异常:

client\v2\example_keys_test.go:1:1: expected 'package', found '.'
client\v3\example_auth_test.go:1:1: expected 'package', found '.'
client\v3\concurrency\example_election_test.go:1:1: expected 'package', found '.'

2、尝试解决方案:

我照网上的解决方案去处理,处理完之后报另外一个错误:

replace google.golang.org/grpc => google.golang.org/grpc v1.26.0
//在主目录下执行go.mod的replace下添加最后一行:
replace (go.etcd.io/etcd/api/v3 => ./apigo.etcd.io/etcd/client/pkg/v3 => ./client/pkggo.etcd.io/etcd/client/v2 => ./client/v2go.etcd.io/etcd/client/v3 => ./client/v3go.etcd.io/etcd/etcdctl/v3 => ./etcdctlgo.etcd.io/etcd/etcdutl/v3 => ./etcdutlgo.etcd.io/etcd/pkg/v3 => ./pkggo.etcd.io/etcd/raft/v3 => ./raftgo.etcd.io/etcd/server/v3 => ./servergo.etcd.io/etcd/tests/v3 => ./testsgoogle.golang.org/grpc => google.golang.org/grpc v1.26.0
)
​

之后会报执行go build后报:

client\v2\example_keys_test.go:1:1: expected 'package', found '.'
api\etcdserverpb\rpc.pb.go:18:2: missing go.sum entry for module providing package google.golang.org/grpc (imported by go.etcd.io/etcd/
tests/v3/integration); to add:go get go.etcd.io/etcd/tests/v3/integration@v3.5.11
api\etcdserverpb\rpc.pb.go:19:2: missing go.sum entry for module providing package google.golang.org/grpc/codes (imported by go.etcd.io
/etcd/api/v3/etcdserverpb); to add:go get go.etcd.io/etcd/api/v3/etcdserverpb@v3.5.11
api\etcdserverpb\rpc.pb.go:20:2: missing go.sum entry for module providing package google.golang.org/grpc/status (imported by go.etcd.i
o/etcd/api/v3/etcdserverpb); to add:go get go.etcd.io/etcd/api/v3/etcdserverpb@v3.5.11
client\v3\credentials\credentials.go:26:2: missing go.sum entry for module providing package google.golang.org/grpc/credentials (import
ed by go.etcd.io/etcd/client/v3); to add:go get go.etcd.io/etcd/client/v3@v3.5.11
client\v3\internal\resolver\resolver.go:19:2: missing go.sum entry for module providing package google.golang.org/grpc/resolver (import
ed by go.etcd.io/etcd/client/v3/internal/resolver); to add:go get go.etcd.io/etcd/client/v3/internal/resolver@v3.5.11
client\v3\internal\resolver\resolver.go:20:2: missing go.sum entry for module providing package google.golang.org/grpc/resolver/manual
(imported by go.etcd.io/etcd/client/v3/internal/resolver); to add:go get go.etcd.io/etcd/client/v3/internal/resolver@v3.5.11
client\v3\internal\resolver\resolver.go:21:2: missing go.sum entry for module providing package google.golang.org/grpc/serviceconfig (i
mported by go.etcd.io/etcd/client/v3/internal/resolver); to add:go get go.etcd.io/etcd/client/v3/internal/resolver@v3.5.11
client\v3\logger.go:24:2: missing go.sum entry for module providing package google.golang.org/grpc/grpclog (imported by go.etcd.io/etcd
/etcdctl/v3/ctlv3/command); to add:go get go.etcd.io/etcd/etcdctl/v3/ctlv3/command@v3.5.11
client\v3\client.go:35:2: missing go.sum entry for module providing package google.golang.org/grpc/keepalive (imported by go.etcd.io/et
cd/tests/v3/integration); to add:go get go.etcd.io/etcd/tests/v3/integration@v3.5.11
client\v3\ctx.go:22:2: missing go.sum entry for module providing package google.golang.org/grpc/metadata (imported by go.etcd.io/etcd/c
lient/v3); to add:go get go.etcd.io/etcd/client/v3@v3.5.11
client\v3\example_auth_test.go:1:1: expected 'package', found '.'
client\v3\concurrency\example_election_test.go:1:1: expected 'package', found '.'
C:\software\go\pkg\mod\go.opentelemetry.io\contrib\instrumentation\google.golang.org\grpc\otelgrpc@v0.46.0\interceptor.go:29:2: missinggo.sum entry for module providing package google.golang.org/grpc/peer (imported by go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc); toadd:go get go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc@v3.5.11
C:\software\go\pkg\mod\go.opentelemetry.io\contrib\instrumentation\google.golang.org\grpc\otelgrpc@v0.46.0\stats_handler.go:23:2: missi
ng go.sum entry for module providing package google.golang.org/grpc/stats (imported by go.opentelemetry.io/contrib/instrumentation/goog
le.golang.org/grpc/otelgrpc); to add:go get go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc@v0.46.0
pkg\grpc_testing\stub_server.go:9:2: missing go.sum entry for module providing package google.golang.org/grpc/interop/grpc_testing (imp
orted by go.etcd.io/etcd/pkg/v3/grpc_testing); to add:go get go.etcd.io/etcd/pkg/v3/grpc_testing@v3.5.11
server\etcdserver\api\v3rpc\grpc.go:29:2: missing go.sum entry for module providing package google.golang.org/grpc/health (imported by
go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc); to add:go get go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc@v3.5.11
server\etcdserver\api\v3rpc\grpc.go:30:2: missing go.sum entry for module providing package google.golang.org/grpc/health/grpc_health_v
1 (imported by go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc); to add:go get go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc@v3.5.11
C:\software\go\pkg\mod\go.opentelemetry.io\otel\exporters\otlp\otlptrace\otlptracegrpc@v1.20.0\internal\otlpconfig\options.go:28:2: mis
sing go.sum entry for module providing package google.golang.org/grpc/backoff (imported by go.opentelemetry.io/otel/exporters/otlp/otlp
trace/otlptracegrpc/internal/otlpconfig); to add:go get go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/otlpconfig@v1.20.0
C:\software\go\pkg\mod\go.opentelemetry.io\otel\exporters\otlp\otlptrace\otlptracegrpc@v1.20.0\internal\otlpconfig\options.go:30:2: mis
sing go.sum entry for module providing package google.golang.org/grpc/credentials/insecure (imported by go.etcd.io/etcd/server/v3/embed
); to add:go get go.etcd.io/etcd/server/v3/embed@v3.5.11
C:\software\go\pkg\mod\go.opentelemetry.io\otel\exporters\otlp\otlptrace\otlptracegrpc@v1.20.0\internal\otlpconfig\options.go:31:2: mis
sing go.sum entry for module providing package google.golang.org/grpc/encoding/gzip (imported by go.opentelemetry.io/otel/exporters/otl
p/otlptrace/otlptracegrpc/internal/otlpconfig); to add:go get go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/otlpconfig@v1.20.0---------------------------
这个错误提示说明在你的项目中,有一个 `go.etcd.io/etcd/tests/v3/integration` 包导入了 `google.golang.org/grpc`,但是在你的 `go.sum` 文件中缺少了与 `google.golang.org/grpc` 相关的模块条目
go get google.golang.org/grpc@v1.26.0

之后又报,最后又提示我这个,搜了一圈之后,说是我的grpc的版本不包含当前的某个包,也就是转来转去又转回去了:

dummy.go:21:2: module go.etcd.io/etcd/client/v2 provides package go.etcd.io/etcd/client/v2 and is replaced but not required; to add it:go get go.etcd.io/etcd/client/v2
dummy.go:22:2: module go.etcd.io/etcd/etcdctl/v3 provides package go.etcd.io/etcd/etcdctl/v3/ctlv3/command and is replaced but not requ
ired; to add it:go get go.etcd.io/etcd/etcdctl/v3
dummy.go:23:2: module go.etcd.io/etcd/etcdutl/v3 provides package go.etcd.io/etcd/etcdutl/v3/etcdutl and is replaced but not required;
to add it:go get go.etcd.io/etcd/etcdutl/v3
dummy.go:24:2: module go.etcd.io/etcd/tests/v3 provides package go.etcd.io/etcd/tests/v3/integration and is replaced but not required;
to add it:go get go.etcd.io/etcd/tests/v3

3、最终解决方案:

报错的就是:

../../tests/integration/client/examples/example_keys_test.go

因为不符合go的包校验,所以build错误,我看这块确认不符合,不知道etcd官方3.5版本之后为什么会把样例测试文件分离出来,有高手看到可以评论一下:

我这块解决方式是通过,把对应路径下的代码一个一个的copy过来,处理解决:

大概有7、8个文件:

之后执行编译,则无错误异常,也不需要替换上面所谓grpc的包版本,问题得到解决:

go build
go mod tidy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/224434.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型说明书

在浩瀚的信息宇宙中,大语言模型如同一颗璀璨的星星正在熠熠生辉。21世纪以来,人工智能可谓是飞速发展,从简单的神经网络到大语言模型、生成式AI,这并非仅仅是一种技术的进步,更是人类智慧的飞跃。大语言模型不仅仅是语…

CGAL的3D Alpha Shapes

假设我们给定一个二维或三维的点集S,我们希望得到类似“这些点形成的形状”的东西。这是一个相当模糊的概念,可能有许多可能的解释,阿尔法形状就是其中之一。阿尔法形状可用于从密集的无组织数据点集进行形状重建。事实上,阿尔法形…

2023年最新版的linux运维面试题(二)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面 11. LVS三种负载均衡模式的比较 12…

需求分析工程师岗位的职责描述(合集)

需求分析工程师岗位的职责描述1 职责: 1,负责需求调研,对需求进行分析,编写解决方案、需求规格说明书等 2,根据需求制作原型,并负责原型展示以及客户沟通等工作 3,负责向技术团队精确地传达业务…

数据挖掘-11-利用python进行信用卡欺诈检测(包含数据代码)

文章目录 0. 数据代码下载1. 项目介绍1.1 背景描述1.2 常见信用卡欺诈使用的情况有:1.3 数据描述a. 数据集内容b. 属性描述c. 注意 2. 提出问题3. 数据预处理3.1 加载数据3.2 查看数据类型,是否需要做数据转换处理3.3 对数据进行简单的统计,检…

跨平台Markdown编辑软件Typora mac功能介绍

Typora mac是一款跨平台的Markdown编辑器,支持Windows、MacOS和Linux操作系统。它具有实时预览功能,能够自动将Markdown文本转换为漂亮的排版效果,让用户专注于写作内容而不必关心格式调整。Typora Mac版除了支持常见的Markdown语法外&#x…

线程的同步与互斥

抢票的例子 竞争过程 进程A被切走 进程B被切走 结论: 互斥 int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); mutex: 指向要初始化的互斥锁的指针。attr: 用于设置互斥锁属性的指针,通常可以传入 NULL 以使用默认属性…

react 路由v6

这里是区别:V5 vs V6 这里是官网:可以查看更多高级属性 一、基本使用: 1、配置文件 src/routes/index import React from "react";const Home React.lazy(() > import("../Pages/Home")); const About React.laz…

Spring之国际化:i18n

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

【强化学习】PPO:近端策略优化算法

近端策略优化算法 《Proximal Policy Optimization Algorithms》 论文地址:https://arxiv.org/pdf/1707.06347.pdf 一、 置信域方法(Trust Region Methods) ​ 设 π θ o l d \pi_{\theta_{old}} πθold​​是先前参数为 θ o l d \theta_{old} θold​的策略网…

Java@RequestParam注解和@RequestBody注解接收参数

目录 Java后端接收数据 第一章、后端不写任何注解情况下接收参数1.1)后端不写注解postman发出get请求1.2)后端不写注解postman发出post请求 第二章、后端写RequestParam注解接收参数2.1)postman发出post请求2.2)postman发出get请求…

docker-compose 安装Sonar并集成gitlab

文章目录 1. 前置条件2. 编写docker-compose-sonar.yml文件3. 集成 gitlab4. Sonar Login with GitLab 1. 前置条件 安装docker-compose 安装docker 创建容器运行的特有网络 创建挂载目录 2. 编写docker-compose-sonar.yml文件 version: "3" services:sonar-postgre…

【计算机网络】网络层——IP协议

目录 一. 基本概念 二. 协议报文格式 三. 网段划分 1. 第一次划分 2. CIDR方案 3. 特殊的IP地址 四. IP地址不足 1. 私有IP和公网IP 2. DHCP协议 3. 路由器 4. NAT技术 内网穿透(NAT穿透) 五. 路由转发 路由表生成算法 结束语 一. 基本概念 IP指网络互连协议…

android内存管理机制概览

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、相关概念3.1 垃圾回收3.2 应用内存的分配与回…

Linux与Bash 编程——Linux文件处理命令-L1

目录: linux系统与shell环境准备 Linux系统简介操作系统简史Linux的发行版:Linux与Windows比较:Linux安装安装包下载Linux的访问方式远程登录方式远程登录软件:mobaxterm的使用:使用电脑命令行连接:sshd的…

一篇讲透:箭头函数、普通函数有什么区别

前言 📫 大家好,我是南木元元,热衷分享有趣实用的文章,希望大家多多支持,一起进步! 🍅 个人主页:南木元元 目录 什么是箭头函数 箭头函数和普通函数的区别 更简洁的语法 箭头函数…

10-让Java性能提升的JIT深度剖析

文章目录 JVM的语言无关性解释执行与JITC1、C2与Graal编译器C1编译器C2编译器 分层编译(了解即可)热点代码热点探测方法调用计数器回边计数器 编译优化技术方法内联锁消除标量替换逃逸分析技术逃逸分析的原理逃逸分析 JVM的语言无关性 跨语言(语言无关性&#xff0…

OpenHarmony之内核层解析~

OpenHarmony简介 技术架构 OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件…

平衡二叉树的构建(递归

目录 1.概念:2.特点:3.构建方法:4.代码:小结: 1.概念: 平衡二叉树(Balanced Binary Tree),也称为AVL树,是一种二叉树,它满足每个节点的左子树和右…

BDD - Python Behave Runner Script

BDD - Python Behave Runner Script 引言Runner Scriptsubprocess.run 调用 Behave 命令行调用 Behave 提供的 API behave_main 引言 通过终端命令执行 Behave 测试用例,有时 IDE 重启了,还得重新敲一遍命令,很是麻烦,说实话我都…