在编译zgrab2遇到的那些坑,外加爬坑指南

在编译zgrab2遇到的那些坑,外加爬坑指南由于工作原因需要基于 zgrab2 进行开发 但在 Linux 下安装 zgrab2 时便遇到了一些挺难绕过去的坑 跌跌撞撞终于解决了 写篇文章记录一下 准备工作 GO 环境安装 由于 zgrab2 是由 Go 语言开发 所以需要安装 GO 环境 关于 Go 语言环境的配置 Linux 请点我移步至相关文章 Git 安装

大家好,我是讯享网,很高兴认识大家。

由于工作原因需要基于zgrab2进行开发,但在Linux下安装zgrab2时便遇到了一些挺难绕过去的坑,跌跌撞撞终于解决了,写篇文章记录一下。

准备工作

GO环境安装
由于zgrab2是由Go语言开发,所以需要安装GO环境,关于Go语言环境的配置(Linux)请点我移步至相关文章。
Git安装
需要从GitHub上拷贝源码,所以要安装一下Git,我用的是Ubuntu,直接一条命令搞定:

sudo apt-get install git 

讯享网

zgrab2项目地址

点我进入或直接访问:https://github.com/zmap/zgrab2
在这里插入图片描述
讯享网

完成准备工作后,根据zgrab2的README.md文件,首先运行如下命令克隆项目:

讯享网$ go get github.com/zmap/zgrab2 

然后就遇到了这个问题:
在这里插入图片描述
复制下来是这样的:

cheo@cheo:~$ go get github.com/zmap/zgrab2 package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" (https fetch: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: connect: connection refused) 

原因我们也知道,被墙了嘛,这篇文章肯定不是教你搭梯子,而是利用 golang 在GitHub上建立的一个镜像库,直接安装:
首先,在GOPATH(你的工作目录)建立文件夹golang.org/x,然后进入文件夹把缺的这个东西克隆下来:
在这里插入图片描述
方便大家复制,把命令贴出来:

讯享网cheo@cheo:/Users/cheo/gopath/src$ mkdir -p golang.org/x cheo@cheo:/Users/cheo/gopath/src$ cd golang.org/x/ cheo@cheo:/Users/cheo/gopath/src/golang.org/x$ git clone https://github.com/golang/sys.git 

解决了这个麻烦之后,执行官方文档中的下一步编译(make)的时候又出了问题:
在这里插入图片描述
还缺少上边那几个依赖文件!!!
于是乎,重新打开刚才建立的golang.org/x目录,执行差不多的命令,把这三个依赖也安装一下:

$ git clone https://github.com/golang/crypto.git $ git clone https://github.com/golang/net.git $ git clone https://github.com/golang/text.git 

接下来我又傻乎乎的以为现在可以编译了,然而事实却是:
在这里插入图片描述

讯享网cd cmd/zgrab2 && go build && cd ../.. ../../modules/mongodb/scanner.go:9:2: cannot find package "gopkg.in/mgo.v2/bson" in any of: /usr/local/go/src/gopkg.in/mgo.v2/bson (from $GOROOT) /Users/cheo/gopath/src/gopkg.in/mgo.v2/bson (from $GOPATH) ../../modules/redis/scanner.go:27:2: cannot find package "gopkg.in/yaml.v2" in any of: /usr/local/go/src/gopkg.in/yaml.v2 (from $GOROOT) /Users/cheo/gopath/src/gopkg.in/yaml.v2 (from $GOPATH) Makefile:24: recipe for target 'zgrab2' failed make: * [zgrab2] Error 1 

还少两个包!!!
没脾气,再回GOPATH下的src目录,建立gopkg.in,还用原来的配方安装这两个依赖~
在这里插入图片描述

$ mkdir gopkg.in $ cd gopkg.in/ $ git clone https://github.com/go-yaml/yaml.git $ mv yaml/ yaml.v2 

注:这里从GitHub上克隆下来的名字叫yaml改个名就好了。
安装mgo

讯享网$ cd gopkg.in/ $ git clone https://github.com/go-mgo/mgo.git $ mv mgo/ mgo.v2 

注:同样改个名字就好。

执行编译

终于,编译成功!沃德天~
在这里插入图片描述

小讯
上一篇 2025-01-11 11:33
下一篇 2025-04-05 20:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/54149.html