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 ...
随机推荐
- 深度学习02-03(图像处理、OpenCV实验案例)
OpenCV实验案例 文章目录 OpenCV实验案例 一.OpenCV安装 1. OpenCV介绍 2. 安装 二.OpenCV基本操作 1. 图像读取与保存 1)读取.图像.保存图像 2. 图像色彩 ...
- [双目视差] 立体校正源码分析(opencv)
文章目录 [双目视差] 立体校正源码分析(opencv) 一.源码解析 二.源码中的方法 [双目视差] 立体校正源码分析(opencv) 一.源码解析 立体校正:把实际中非共面行对准的两幅图像,校正成 ...
- OpenCV-Python 中文教程
OpenCV-Python 中文教程 目录 I 走进 OpenCV 关于 OpenCV-Python 教程 在 Windows 上安装 OpenCV-Python 在 Fedora 上安装 OpenC ...
- 【Docker】安装及部署
一.Ubuntu使用apt安装Docker 官方安装文档:https://docs.docker.com/engine/install/ubuntu/ 1.准备安装环境 [root@Docker-Ub ...
- rnacos——用rust重新实现的nacos开源配置、注册中心服务
1. 简介 rnacos 是一个用rust实现的nacos服务. rnacos是一个轻量.快速.稳定的服务,包含注册中心.配置中心.web管理控制台功能. rnacos兼容nacos client s ...
- 猿人学内部js练习平台习题记录
猿人学内部js练习平台习题记录 根据课程更新 当前先完成第7题和第10题 第7题 骚操作 请求规律检测1 - post 1)通过fiddler抓包,看看请求头和请求体有什么骚操作的地方,如果没有反爬就 ...
- import MySQLdb as Database ModuleNotFoundError: No module named ‘MySQLdb‘
import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' import MySQLdb as Database ...
- Vue选日期滚动条自动定位到选定的日期位置
html 这里的关键点就是 :id="'scroll'+index" 以及 :scroll-into-view="intoIndex" <view c ...
- sipp重放rtp数据测试FreeSWITCH
环境:CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 sipp版本:3.6.1 一.背景描述 sipp是一款VoIP测试工具,日常开发过程中会使用到该软件,但其自身携带的pca ...
- ir_ui_view: 字段 `group_display_incoterm` 不存在
ir_ui_view: 字段 `group_display_incoterm` 不存在 这种提示是没有这个字段, IR_UI_VIEW 模型存在这个视图: 1 可以登陆数据库,查询 SELECT * ...