处理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.hqwc.cn/news/299329.html

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

相关文章

挖到宝了,大数据分析工具做分析真的太快了

随着企业越做越大,累积数据的速度越来越快,但分析的效率却不升反降,不利于数字化运营决策。但大数据分析工具的出现让这一现象成为过去,无他,就是大数据分析工具做分析的真的太快了,可在任意终端上随时按需…

什么是流媒体

所谓的流媒体是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网上即时传输音视频以供观赏的一种技术。如果没有流媒体技术,那么在观赏前必须下载整个媒体文件。 常见流媒体协议: RTSPRTPHTTPHLSRTMPHTTP-FLV等 目前应用…

欧洲:数百家电商网站泄露了用户支付信息

欧洲刑警组织在12月22日发布的新闻稿中,称由 17 个国家联合参与的执法行动已发现数百个电商平台存在恶意脚本攻击,其用户的信用卡或支付卡数据已遭到泄露。 这项已进行两个月的执法行动由希腊牵头,欧洲刑警组织参与协调,并得到网络…

《运维人员的未来:IT界的“万金油“如何继续闪耀光芒》

文章目录 每日一句正能量前言35岁被称为运维半衰期,究竟为何?如何顺利过渡半衰期运维的职业发展路径后记 每日一句正能量 凡事顺其自然,遇事处于泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历…

AIGC|什么是深度学习?

深度学习是近年来人工智能领域最热门的话题之一。它是一种通过模拟人脑神经网络工作原理,进行大规模数据处理和模式识别的机器学习方法。随着计算能力的提升和大数据时代的到来,深度学习在图像识别、语音识别、自然语言处理等领域取得了突破性进展&#…

浮点数的转换--IEEE 754

IEEE754标准是一种浮点数表示标准,一般分为 单精度(32位的二进制数);双精度(64位的二进制数) 根据国际标准IEEE754,任意一个二进制浮点数V可以表示为下面形式: V (-1)^s *&#…

【技术分享】单网口远程透传网关快速实现昆仑通态触摸屏程序远程上下载及监控

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条,用于实现网络连接和连接触摸屏一台昆仑通态触摸屏及其编程软件一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡,WIFI联网则将WIFI天线插入USB口&#xff0…

python的import功能,你需要了解的导入机制

1 基本概念 概念 解释 import 即导入,方式就是在import位置将代码文件拷贝过去。 模块(module) python中一个.py文件定义为一个模块 常用的几种模块导入方式: import module_nameimport module_name.function_nameimport mod…

AI Earth平台简介

AI Earth地球科学云平台由达摩院-视觉技术实验室打造,基于地球科学智能计算分析方面的创新研究,致力于解决地球科学领域基础性、前沿性、业务性问题,目标成为国内一流的地球科学云计算平台。(摘自官网) 下面&#xff…

C++11(上):新特性讲解

C11新特性讲解 前言1.列表初始化1.1{ }初始化1.2std::initializer_list 2.类型推导2.1 auto2.2 typeid2.3 decltype 3.范围for4.STL的变化4.1新容器4.2容器的新方法 5.右值引用和移动语义5.1 左值引用和右值引用5.2 左值引用与右值引用比较5.3 右值引用的使用场景5.4 右值、左值…

华清远见嵌入式学习——ARM——作业3

作业要求: 代码效果图: 代码: led.h #ifndef __LED_H__ #define __LED_H__#define RCC_GPIO (*(unsigned int *)0x50000a28) #define GPIOE_MODER (*(unsigned int *)0x50006000) #define GPIOF_MODER (*(unsigned int *)0x50007000) #defi…

vue3使用i18n 实现国际化

目录 一、需求 二、实现原理 三、实现步骤 1.安装依赖 vue-i18n 2.配置语言包 3.如何使用 模板中使用 ts动态t函数使用 4.如何切换语言 一、需求 博主最近重构了自己的单页面SSR博客,打算添加国际化功能,众所周知,实现国际化已是一…