本篇文章将介绍最近几个月,我在使用的工具,它们的优势和不足。希望能够帮助到有类似需求的同学。...这也是我最初没有坚持 gvm 的原因之一。除此之外,gvm 虽然用户者众,但是很长一段时间作者已经不活跃了,所以在 Issue 和 PR 区都堆积了一堆待办事项。...在相同文件的比较靠下的位置,我么可以看到一个名为 download_binary() 的函数: # `GO_BINARY_BASE_URL` env allow user setting base URL...这里给出我目前使用的配置,在将下面的配置添加到你的 SHELL 的 rc 后,你就可以正常的使用 gvm 对 Golang 进行快速的版本切换啦。...://github.com/golang/dl/blob/master/internal/version/version.go中的写死的逻辑会让你安装的目录在用户目录的 sdk 文件夹中,所以如果你使用这种方式
文章目录 df -h和du -sh区别 df -h查看整个系统中文件系统的使用情况 du -sh *查看当前目录下各个文件及目录占用空间大小 查看Linux系统版本的命令: VirtualBox管理工具...在进行源代码编译,或者执行命令无法确认所执行的命令是否成功执行的情况下,会使用 echo $? 来进行测试。 如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。...PAM是一套适用于Linux的身份验证共享库系统,它为系统中的应用程序或服务提供动态身份验证模块支持 libedit库编辑程序 安装 make clean(清缓存,尤其是在configure失败时.../go sudo mv go /usr/local 之后需要设置Go Paths sudo nano ~/.profile 在文件的末尾添加下列信息,Ctrl+o 保存, Ctrl+x 退出 export.../mlog/server/bbs-go.yaml 修改配置文件,这里是修改域名 BaseUrl: https://mlog.club # 网站域名 修改数据库信息,这里我用宝塔已经建好数据了 MySqlUrl
在工程经过 go build xxx、 go install xxx或 gogetxxx等指令后,会将拉取的第三方xxx依赖包放在 GOPATH/src目录下,产生的二进制可执行文件放在 GOPATH/...编译 Go 代码会优先从 vendor目录先寻找依赖包, vendor目录如果没有找到,然后在 GOPATH 中查找,都没找到最后在 GOROOT 中查找。...GOMODULE模式下所有依赖的包存放在 GOPATH/pkg/mod目录下,所有第三方二进制可执行文件放在 GOPATH/bin目录下,且工程项目可以放在 GOPATH路径之外,但要求项目中需要有go.mod...文件,事实上,如果你的环境中GO111MODULE=on,使用类似goland的工具创建工程会自动生成go.mod 在 GO111MODULE=on且项目中包含go.mod文件时,执行go get xxx...或 go install xxx下载的包或者二进制可执行文件将放入 GOPATH/pkg/mod目录和 GOPATH/bin目录下。
现在可以build和install, $ go install example.com/user/hello $ 这条命令会build然后生成可执行二进制文件(这是我比较喜欢Go的一个原因,直接生成可执行文件...不同点在于 go build 不能生成包文件, go install 可以生成包文件 go build 生成可执行文件在当前目录下, go install 生成可执行文件在bin目录下 install生成文件的...install等命令需要在源文件目录下执行,准确点说是“当前工作目录”。否则会报错。...先build测试下编译成功 $ cd $HOME/hello/morestrings $ go build $ 因为只是在package中,不是在module根目录,go build不会生成文件,而是会把...测试框架识别以_test.go结尾的文件,包含TestXXX命名的函数,函数签名func (t *testing.T)。如果函数调用失败如t.Error 或 t.Fail,那么test就会失败。
-在该文件上运行massdns和httpx。 在阅读了很多关于侦察方法的博客文章后,我想到了整个想法。几乎每个人都建议拥有VPS(这不是强制性的,但有帮助)。...这将基本上所有复制您的GitHub库到虚拟机的文件,这意味着如果你有称为文件scope.txt存储库中的话反而会使得一个文件名为scope.txt在/home/虚拟机的目录中(其中一个将运行我们的工作)...因此,如果您必须从normal文件系统的角度来思考,您可以将其想像成一个虚拟机,其中有一个虚拟机,该/home目录中有一个目录,我们有一个目录名为go(假设所有go软件包都安装在其中)名为的目录go/。...将文件推回仓库 现在,一旦子查找器生成了输出,您显然希望看到该输出。最好的选择就是将文件推回到您的仓库中。...如果您在VPS上设置了cron作业,则必须保留该cron的日志,以防万一它可能在某个时候失败,这将有助于调试脚本/代码 但是如果使用Github Action,如果任何步骤失败,它将显示导致失败的详细错误
在官网上下载vscode对应的安装包,进行安装; 安装的时候记得勾选加入到path路径; 下载go语言的SDK: https://studygolang.com/dl 目前最新版本是1.13.4,我就下这个吧...则说明安装成功了 为了在任意目录下都可以运行go指令,将bin加入到path环境变量; 找个磁盘,建立如下结构文件夹: ?...出现我们要安装的一些工具,但是极大可能会安装失败, 我们进行手动安装相应的工具: 在F:\golang\go\src(注意自己的路径)下新建golang.org文件夹,在golang.org下新建x...最后我们返回到F:\golang\go目录下,在终端输入: go install github.com/ramya-rao-a/go-outline go install github.com/acroca...go install github.com/mdempsky/gocode go install golang.org/x/lint/golint 在安装完成相应的插件后,我们进入到hello.go目录下
由于demo.go是$GOPATH/src目录下的一个包,main.go在import该包后,可以直接使用,运行main.go: $ go run main.go call demo ......现在,需要将demo.go编译成动态库libdemo.so,让main.go以动态库方式编译,详细步骤如下: 1 将go语言标准库编译成动态库 $ go install -buildmode=shared...如果以静态库方式编译,可执行文件main大小为1.5M,如下所示: $ go build main.go $ ll -h total 1.5M drwxrwx---. 1 root vboxsf 4.0K...语言动态库的编译和使用方法,需要注意的是,其他go程序在使用go动态库时,必须提供动态库的源码,否则会编译失败。...例如,这里将demo.go代码删除,再以动态库方式编译main.go时,会编译失败: $ go install -buildmode=shared -linkshared demo $ rm demo
至于我们在大规模生产中高频使用的容器环境,我将单独写为它写一篇文章,聊聊如何进行镜像构建和优化。...Ubuntu 22.04 环境的 cmake在 Ubuntu 22.04 环境中,除了使用“源代码编译”这个方式之外,我们有一个更简单的方案:使用 apt install 来完成软件的安装,不过因为在...所以,在 Ubuntu 环境下,如果我们想要安装和使用这两个工具,推荐使用下面的命令,来安装来自官方团队维护的软件包:sudo apt-get update && \sudo apt install -...Default target: x86_64-unknown-linux-gnu Host CPU: znver1因为我们不需要 clang-format 和 clang-tidy 之外的程序,所以我们可以手动将两个可执行文件复制到系统的可执行程序目录中.../errors v0.9.1go: downloading google.golang.org/grpc v1.44.0...当一切运行完毕之后,我们能够在代码目录子目录 .
安装 MacOS 我使用的是 Mac ,所以通过 Homebrew 安装 go : brew install go 。如果你的 Mac 还没有安装 Homebrew ,我强烈建议你使用。...bin 目录存放你下载的二进制形式的依赖 ,你可以将 bin 目录添加到你的 PATH 环境变量里面。...学习 Golang , 你可以在终端运行命令 go get golang.org/x/tour/gotour 下载 Go 编程指南, go get 将下载参数里面指定的第三方依赖的源码和二进制文件。...您还可以运行 go install,程序将被编译并放在 bin 目录中,这样您就可以在终端中执行 helloworld,它将运行您的代码。...如果你的 Go 代码中有一个名为 controllers 的文件夹,在这个文件夹下的所有文件都需要以 package controllers 开头。
背景 本章描述了如何配置本地环境,开始使用Go编程 我的机器是 mac ,本文按此环境配置。...如果你将你的代码放到了某处的源码库,那就应当使用该源码库的根目录作为你的基本路径。 例如,若你在 GitHub 上有账户 github.com/user 那么它就应该是你的基本路径。...你的第一个程序 在 src/github.com/user/hello 目录下 创建名为 hello.go 的文件,其内容为以下Go代码: package main import "fmt" func...\n") } 现在你可以用 go 工具构建并安装此程序了: $ cd src/github.com/user/hello $ go install 现在,你可以在命令行下输入它的完整路径来运行它了: $...这不会产生输出文件。想要输出的话,必须使用 go install 命令,它会将包的对象放到工作空间的 pkg 目录中。
--go-grpc\_out=. sms.proto分别执行,安装插件并生成proto的Go文件。...// go install google.golang.org/protobuf/cmd/protoc-gen-go@latest// go install google.golang.org/grpc...本文将介绍在 RPC 中也用上 Protobuf。在一般项目架构中,前后端交互使用Json格式,后端服务间交互使用Protobuf格式。...--go-grpc\_out=. sms.proto分别执行,安装插件并生成proto的Go文件。...--go-grpc\_out=. sms.proto分别执行,安装插件并生成proto的Go文件。
go:install/update tools 安装全部工具 [7epe74mx1r.png] 配置系统环境 查询当前 go 语言的配置命令是 go env 进入 bash_profile 文件进行配置...main import ( "fmt" ) func main() { fmt.Println("done") } GOPATH :是开发目录,建议不要和 go 的安装目录是一样的,这个目录里面有...src,pkg,bin GOBIN:是 GO 的 bin 文件 PATH:环境变量,需要 go/bin 目录加入到 path 路径下,生成的文件可以直接运行 在 GOPATH 中,还有一个是 pkg...文件夹存放在go install后生成的非main函数的文件 会遇到的问题 安装失败 godef: failed to install godef(github.com/rogpeppe/godef):...,我的习惯是在安装的时候开启梯子,但是还是有一些是安装不了 可以在命令行切换到 GOPATH 的目录下,执行 go install github.com/ramya-rao-a/go-outline@latest
,在进行使用,通常拉取到本地后,配合go mod tidy和go mod vendor就能有效的加载到我们程序中使用的包,同时会更新掉go.mod配置文件。...当指定一个版本时,'go install'将在模块感知模式下运行并忽略当前目录下的go.mod文件。...除了build中的标记提示(在“go help build”中列出)之外,“go get”还接受以下命令: -t 指示考虑构建在命令行上指定的包测试所需的模块。...在未来的版本中,-d标志将默认启用,'go get'将仅用于调整当前模块的依赖关系。要使用来自当前模块的依赖项来安装一个包,请使用'go install'。...本文就先分享到这里,更多内容欢迎持续关注我,我将每天带着大家学习一个小知识,进行每天的积累成长。
如果你拥有M1 Mac,则现在可以在计算机上本地构建和运行Go程序;如果你使用的是其他操作系统或基于Intel的Mac,需要针对ARM Mac为你的程序构建二进制文件时,可以使用下面命令: GOARCH...如果你尝试在函数中使用它,则代码将无法编译: package main import ( _ "embed" "fmt" ) func main() { //go:embed...Go 1.13确保只要当前工作目录或父目录中存在go.mod文件,即使该目录位于GOPATH中,模块模式都会自动激活,而Go 1.14和1.15仍然如此。...go install命令现在也可以识别模块,这意味着它不会影响当前目录或任何父目录(如果有)中的go.mod文件。而且,现在可以将版本号作为后缀。...例如: $ go install github.com/example@v3.5.0 在Go 1.16中,不赞成使用go get生成和安装软件包,而建议使用go install。
如果任何生成器返回错误退出状态,“go generate”将跳过该包的所有进一步处理。 生成器在包的源目录中运行。...GOBIN'go install'将安装命令的目录。 GOCACHE go命令将存储缓存 信息的目录,以便在将来的构建中重用。...这样可以很容易地在通常的工作空间之外试验小型多包装程序,但是这些程序不能通过“go install”安装(没有可以安装它们的工作空间),所以每次它们都是从头开始重建的。建成了。...利用新的Go 1.11模块支持的最快方法是将您的存储库签出到GOPATH / src之外的目录中,在那里创建一个go.mod文件(在下一节中描述),并从该文件中运行go命令树。...仅当当前目录位于GOPATH / src之外并且其本身包含go.mod文件或位于包含go的目录下时,才启用模块支持。
测试文件中如果声明的包后缀为_test将被作为单独的包来编译,然后与主测试二进制文件链接并运行。 go test 命令还会忽略 testdata 目录,该目录用来保存测试需要用到的辅助数据。...在此模式下,go 测试编译并测试在命令上列出的每个包。如果一个包测试通过,go test 只打印最终的 ok 总结行。如果一个包测试失败,go test 将输出完整的测试输出。...如果运行 go test 时任何测试选项或非测试选项在此集合之外,则不会缓存结果。要禁用缓存,请使用除可缓存选项之外的任何测试选项或参数。明确禁用测试缓存的惯用方法是使用 -count=1。...测试在包的根目录(通常为 $GOPATH)打开的文件和依赖的环境变量,只有不发生变化时才能匹配缓存。...如果想查看代码行的单测覆盖情况,可以使用内置的 go tool cover 命令将覆盖率报告转换为 HTML 文件。然后通过浏览器打开查看。
双击下载好的安装文件,双击安装即可。 安装中文简体插件 点击左侧菜单栏最后一项 管理扩展 ,在 搜索框 中输入 chinese ,选中结果列表第一项,点击 install 安装。...我们在这个输入框中输入 >go:install ,下面会自动搜索相关命令,我们选择 Go:Install/Update Tools 这个命令 ?.../x目录 第二步:在终端/cmd中cd到GOPATH/src/golang.org/x目录下 第三步:执行git clone https://github.com/golang/tools.git tools...这个时候创建一个Go文件,就能正常使用代码提示、代码格式化等工具了。...方法二:下载已经编译好的可执行文件 如果上面的步骤执行失败了或者懒得一步一步执行,可以直接下载我已经编译好的可执行文件,拷贝到自己电脑上的 GOROOT/bin 目录下。
vendor 在Go1.5 release的版本的发布vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找的解决方法。...查找依赖包路径的解决 当前包下的vendor目录 先上级的目录查找,直到找到scr的vendor目录 在GOPATH下面查找依赖包 在GOROOT目录下查找 dep dep安装方式的安装方式是:...除了go.mod之外,go命令还维护一个名为go.sum的文件,其中包含特定模块版本内容的预期加密哈希,go.sum 文件不需要手工维护。...版本是在go.mod中指定的。 如果,在go.mod中没有指定,go命令会自动下载代码中的依赖的最新版本,本例就是自动下载最新的版本。...如果,在go.mod用require语句指定包和版本 ,go命令会根据指定的路径和版本下载包, 指定版本时可以用latest,这样它会自动下载指定包的最新版本;如果包的作者还没有标记版本,默认为 v0.0.0
或.zshrc中,根据你的系统进行选择,因为我是mac,所以我将alias air='~/.air'加到了vim ~/.zshrc中了。...Fresh将监视文件事件,并且每次创建/修改/删除文件时,Fresh都会生成并重新启动应用程序。如果go build返回错误,它会将记录在tmp文件夹中。...只需gin在您的应用程序目录中运行,您的网络应用程序将 gin作为代理提供。gin检测到更改后,将自动重新编译您的代码。您的应用在下次收到HTTP请求时将重新启动。...支持所有Go命令。 在不同的Go版本之间切换。 项目的自定义环境变量。 在文件更改前后或全局执行自定义命令。 将日志和错误导出到外部文件。 分步项目初始化。...安装 $ go get github.com/oxequa/realize 我直接这么安装失败了,出现了错误,我的GO版本是1.14,所以使用如下方式安装成功: $ GO111MODULE=off
领取专属 10元无门槛券
手把手带您无忧上云