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 ...
随机推荐
- ROS机器人校正
vROS机器人IMU自动校正 连接小车 注意:必须在同一区域网 ssh clbrobort@clbrobort 激活树莓派主板 roslaunch clbrobot bringup.launch 自动 ...
- docker启动mysql注意事项
1.编码问题 登录mysql伪终端 mysql查看编码 show variables like 'character%'; 宿主机在conf.d中添加配置my.cnf文件 [client] defau ...
- boot-admin整合Quartz实现动态管理定时任务
淄博烧烤爆红出了圈,当你坐在八大局的烧烤摊,面前是火炉.烤串.小饼和蘸料,音乐响起,啤酒倒满,烧烤灵魂的party即将开场的时候,你系统中的Scheduler(调试器),也自动根据设定的Trigger ...
- js计算当前时间差
1 function timesFun(timesData) { 2 //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 3 var dateBegin = new Date(timesD ...
- HTML中script 标签中的那些属性
在HTML中, <script> 标签用于嵌入或引用JavaScript代码. 在 <script> 标签中,有两个属性可以用来控制脚本的加载和执行方式: async 和 de ...
- 从不均匀性角度浅析AB实验
作者:京东零售 路卫强 本篇的目的是从三个不均匀性的角度,对AB实验进行一个认知的普及,最终着重讲述AB实验的一个普遍的问题,即实验准确度问题. 一.AB实验场景 在首页中,我们是用红色基调还是绿色基 ...
- css知识点简记
1.改变position: fixed; 定位基准元素的方式,父级以上元素的: ① tranform属性值不为none的元素 ② perspective值不为none的元素 ③ will-change ...
- Hibernate 基本操作、懒加载以及缓存
前言 上一篇咱们介绍了 Hibernate 以及写了一个 Hibernate 的工具类,快速入门体验了一波 Hibernate 的使用,我们只需通过 Session 对象就能实现数据库的操作了. 现在 ...
- css设置单行多行超出显示省略号
单行: width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 多行: text-overflow: ...
- vue移动端适配方案
一.安装postcss-px-to-viewport插件 1.使用npm安装 $ npm install postcss-px-to-viewport --save-dev 2.或者使用yarn安装 ...