20210118golang测试单元(1) - ziyouzy/2021blog GitHub Wiki

这个其实不是很难,请看文章:

https://zhuanlan.zhihu.com/p/91072465

这是基础的使用规则,但是需要先安装gcc,这似乎是测试组件所必需的组成单元,缺少gcc会报如下错误:

# runtime/cgo
exec: "gcc": executable file not found in $PATH
FAIL    heartbeating [build failed]

如下文章有做解释:

https://blog.csdn.net/zhh763984017/article/details/102971284

安装gcc:

https://www.cnblogs.com/lsc666js/p/13423418.html

似乎可以gcc,g++,make一并安装,似乎早晚都会用到

sudo apt install build-essential

然而缺少依赖库:

The following packages have unmet dependencies:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:5.2) but it is not going to be installed
Depends: dpkg-dev (>= 1.17.11) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

解决问题的文章:

https://blog.csdn.net/duanlove/article/details/54666441

“问题在于,当前系统以安装的 libc6的版本为“2.19-10ubuntu2 ” ,而我们安装其他软件(包括build-essential 、g++等)的时候,所依赖的是“2.19-0ubuntu6.9” 。也就是问题在于, 依赖的某个软件的版本,跟系统以安装的版本不一致。但 apt-get又不会自动去卸载以安装的自动安装上依赖的目标版本。 所以导致我们需要手动去解决这个问题。 当前解决这个问题办法有很多种,我们这里选择了,直接强制覆盖安装目标版本,替代原来系统已安装的版本”

使用dpkg -l | grep libc6查询我的版本:

ii libc6:amd64 2.27-3ubuntu1.2 amd64 GNU C Library: Shared libraries ii libc6-dbg:amd64 2.27-3ubuntu1.2 amd64 GNU C Library: detached debugging symbols

确实存在同样的问题

文章的版本更新方案是直接覆盖旧版本,不是很认同,但是去找了其他解决方法,覆盖确实是主流的解决方案,相关文章:

https://blog.csdn.net/qinglingls/article/details/106318989

解决方式如下:

sudo apt-get install  libc6=2.19-0ubuntu6.9

遇到了新问题,远程找不到包

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version '2.19-0ubuntu6.9' for 'libc6' was not found

!!!!都错了万幸没有胡乱覆盖和安装!!!!

只是因为golang的环境变量没有配置gcc的目录!!!!