go install 和 go get的区别
go install 和 go get 都是 Go 语言中的命令行工具,用于处理依赖关系和安装包。它们的主要区别在于功能和使用场景。
go install:- 功能:
go install命令用于编译并安装指定的包或可执行程序到 Go 语言的工作空间(GOPATH)的bin目录下。如果没有指定包名,则会安装当前目录下的包或可执行程序。 - 使用场景:适用于在本地编译和安装自己的 Go 程序或库。安装后的二进制可执行文件将位于
$GOPATH/bin目录下,可以直接执行,或者可以被其他 Go 程序引用。
- 功能:
go get:- 功能:
go get命令用于获取、编译并安装远程代码库或工具。它会下载指定的包及其依赖,并将它们安装到工作空间中。除非指定了-u(update)标志,否则它只会下载并安装代码一次。 - 使用场景:适用于获取和安装第三方库或工具。通常用于获取项目的依赖项。例如,如果您想使用某个开源库,可以使用
go get来快速获取并安装该库,使您的项目可以引用并使用它。
- 功能:
综合考虑,两者的主要区别在于:
go install用于本地编译和安装自己的程序或库。go get用于获取和安装远程代码库或工具,适用于获取第三方依赖。
在实际使用中,推荐根据需求来选择合适的命令。如果您只需要安装本地程序或库,使用 go install 更为直接。如果您需要获取并安装第三方依赖,使用 go get 可以方便地实现这一目标。另外,在Go 1.17版本以后,推荐使用Go的新模块系统,不再强制使用GOPATH,而是使用go mod命令管理依赖,这也是更为现代化的方式。
从 Go 1.11 版本开始,Go 引入了新的依赖管理系统,称为模块(Module)系统。使用模块系统后,不再强制需要设置 GOPATH,而是直接在项目目录下使用 go mod 命令来管理依赖关系。
在 Go 模块系统中,您不再需要使用 go get 命令来获取和安装第三方依赖。相反,您可以使用以下步骤来管理依赖:
初始化模块:在项目根目录执行以下命令,创建一个新的模块或将当前项目转换为模块:
go mod init <module-name>
添加依赖:在项目中导入其他包,然后运行
go build或go mod tidy命令,Go 会自动解析并下载所需的依赖项,并将它们添加到模块的go.mod文件中。更新依赖:如果需要更新依赖到最新版本,可以运行以下命令:
go get -u
总结来说,使用 Go 模块系统后,您不再需要显式地使用 go get 来管理依赖项,而是直接使用 go mod 相关命令来管理项目的依赖关系。这是更为现代化和推荐的方式。
go install 和 go get的区别的更多相关文章
- pod install 和 pod update的区别
pod install 和 pod update的区别 pod install(下载并安装pod) 1,当pod file文件中有“增加pod,删除pod,修改pod”的操作之后使用. 2,pod i ...
- eclipse中的maven build、maven clean、maven install和maven test的区别
eclipse中的maven build.maven clean.maven install和maven test的区别 https://www.cnblogs.com/Marydon20170307 ...
- eclipse maven build、maven clean、maven install和maven test的区别 精析
1.情景展示 选中maven项目,右键-->Run As或Debug As-->maven buid,maven install,maven test有什么区别? 2.区别说明 ...
- Cmake的install与file命令的区别
实际上他们两个可以达到一个目标(对于文件操作),但是又有本质上的区别,文档没有细看,但是一般利于项目的管理,使用install,install命令如果在cmake命令中没有指名install参数,实际 ...
- npm -i 与npm install -s与-d的区别
npm i module_name -S = > npm install module_name --save 写入到 dependencies 对象 npm i module_name -D ...
- webpack——npm -i 与npm install -s与-d的区别
在 package.json 文件里面的[devDependencies]和[dependencies]对象有什么区别呢? devDependencies 里面的插件只用于开发环境,不用于生产环境, ...
- composer install与composer update的区别
1.composer install install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下. php composer.phar i ...
- yum install 与 yum groupinstall 的区别
原文:http://blog.51yip.com/linux/1171.html yum 提供二种安装软件的方式 1,yum install 它安装单个软件,以及这个软件的依赖关系 2,yum gro ...
- maven install与maven package 的区别
mvn install 是将你打好的jar包安装到你的本地库中,一般没有设置过是在 用户目录下的 .m2\下面.mvn package 只是将你的代码打包到输出目录,一般的是 target下面.
- 【laravel54】composer install与composer update的区别
1.基础概念: 我们需要明白laravel项目里面有2个配置文件,composer.json和composer.lock文件,前者是下载的依赖包配置文件,后者是锁定的包版本信息. 使用之前,需要cd ...
随机推荐
- 深度学习入门系列之doc
这周老师让把深度学习的名词过一遍,小玛同学准备在过一遍Deep Learning名词的同时把基本的模型也过一遍. 感谢杰哥发我深度学习入门系列能让我有机会快速入门. 下面就来doc一些学到的东西 线性 ...
- 使用RAMMap+PoolMon分析Windows内存异常使用问题
由于技术能力有限,文章仅能进行简要分析和说明,如有不对的地方,请指正,谢谢. 1 RAMMap和PoolMon工具简介 RAMMap和PoolMon都是微软Sysinternals的工具,前者可以从使 ...
- Sentinel为什么这么强,我扒了扒背后的实现原理
大家好,我是三友~~ 最近我在整理代码仓库的时候突然发现了被尘封了接近两年之久的Sentinel源码库 两年前我出于好奇心扒了一下Sentinel的源码,但是由于Sentinel本身源码并不复杂,在简 ...
- 新员工入职,前端基础环境变量的配置!node、nvm、vue-cli的安装和下载
1.安装nvm及配置 首先下载nvm不要下载node,如果电脑已经有node的话需要卸载node,并使用命令提示符来查看node的位置(where node)手动删除 nvm下载链接:https:// ...
- Python-趣味小程序
1.效果 2.代码 import sys import time def print_act(word): #print('\n'+' '+'\r') #让光标回到行首 sys.stdout.writ ...
- IDP中的黄金路径究竟是什么?
在云原生时代,开发人员面临着越来越多的工具.技术.思维方式的选择,给他们带来了极大的认知负担和工作量.为了提高开发人员的开发效率与开发体验,一些头部科技公司开始建立自己的内部开发者平台(IDP).在之 ...
- 2.OS-Virtualization|抽象:进程
进程:运行中的程序. 没有运行前,就是一个代码,他是静态的. 通过一系列抽象,有了状态. 通过进程抽象,我们需要明白计算机设计的一些思考点:如何分离?如何管理?如何抽象? 运行 就绪 阻塞 它就是一个 ...
- 2021-10-04:解码方法 II。‘A‘ -> 1,‘B‘ -> 2,...‘Z‘ -> 26。*是1-9,不包含0。给你一个字符串 s ,由数字和 ‘*‘ 字符组成,返回 解码 该字符串的方法
2021-10-04:解码方法 II.'A' -> 1,'B' -> 2,-'Z' -> 26.是1-9,不包含0.给你一个字符串 s ,由数字和 '' 字符组成,返回 解码 该字符 ...
- django model字段类型
1.models.AutoField 自增列=int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的定义一个自增列,必须把该列设置为主键(primary_key=True)2.mod ...
- [ABC270F] Transportation
[ABC270F] Transportation 题意 有 \(n\) 个点,有 \(m\) 条可以加上的边,如果两个点同时建立了一种东西,那么也算连了一条边,每条边都有个代价,每个点建一个东西也有不 ...