其实写这一篇时还是十分不好意思的,毕竟无论是学习还是开发这么久,第一步就是配置 SDK,编辑环境变量。然而这一步我为了防止一些未知的谬误,防止踩坑,通常采纳的形式是网上找对应的无效图文教程,跟着一步步实现。整个过程中还是少了一点思考,因而印象不深。明天,借着搭建 go 的开发环境,对整个配置过程进行了梳理,有了一些思考与总结。
名词了解
首先,在开始之前,咱们先要了解以下概念:
SDK
SDK:全称(Software Development Kit 软件开发工具包),个别都是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建设应用软件时的开发工具的汇合。
因而针对不同的操作系统往往有不同的 SDK,以 go 官网给出的 SDK 为例:
darwin
:mac 下的 SDK。其中pkg
是图形化安装包,而tar.gz
是解压就能够应用。linux
:linux 下的 SDK。386 是 32 位零碎,amd64 是 64 位零碎。windows
:win 下的 SDK,其中msi
是图形化安装包,而zip
是解压就能够应用。freebsd
:unix 下的 SDK。
能够把 SDK 了解为由第三方服务商提供的实现软件产品某项性能的工具包,外面个别以汇合 api 和文档、范例、工具的模式呈现,也就是由很多类型文件的汇合。这里以间接从官网下载的 go 的 SDK(zip 解压后)为例:
能够发现,外面有很多文件,例如 api,可执行的二进制 bin 文件(例如 go.exe 用来编译和运行 go 源码,gofmt.exe),doc 文档,lib 相干的库文件,test 测试用的文件,以及 src 源码等等。
环境变量
用户环境变量
用户环境变量,是独属于某个用户的,只有配置这个环境变量的用户能力应用它。一旦切换用户就无奈应用该环境变量。
零碎环境变量
零碎环境变量是整个零碎的。配置了零碎环境变量后,应用该操作系统的任何用户都能通过这个环境变量间接在命令窗口间接找到相应程序。
能够通过零碎变量中的内容可知,该零碎变量有很多,并且每一项都有其对应的值,每个变量名都有其独特的含意与作用。
PATH:指定可执行文件的搜寻门路。个别配置环境常在 PATH 变量放入配置程序门路。个别可执行文件都在二进制 bin 目录中。因而咱们通常会把软件目录下的 bin 门路增加到 PATH 中。
定义 PATH 环境变量的益处是:即便不在该可执行文件的目录下,依然能够通过命令行调用该可执行文件。
这里须要额定留神的一点是,通常零碎在环境变量中寻找程序门路时,是由返回后 (或者说是从上往下) 寻找,找到第一个后会间接应用,并且不再往下寻找。因而存在多个门路时,要把想要应用的门路挪动到 PATH 中靠前的地位。例如同时装了 mysql8.0 和 5.7 两个版本,这两个版本查版本号的命令都是 mysql -V
,对于mysql
这个命令零碎会在 PATH 中寻找它的门路,如果 8.0 的 path 在 5.7 的下面,则会执行 8.0 的程序,而不会执行 5.7 的程序。因而 5.7 的 path 就相当于生效的,所以没有必要增加同一程序的两个 path。
此外,零碎环境变量中,还能够采纳 % %
来调用零碎中的其余环境变量。例如在配置 go 的环境时,先定义了 go 的 SDK 的根目录 D:\go
其变量名为 GOROOT
,作为 go 的执行目录,那么在配置它的 PATH 时,能够将它的值设置为 %GOROOT%\bin
,起到变量替换的作用。将来如果 SDK 根目录扭转的话,也只须要批改GOROOT
变量值即可,而不须要动 PATH 中的变量值。类比 java,java 中也把 JAVA_HOME
作为 java 的执行目录。
最初,一点点感触,通常咱们可能都习惯于.msi 主动装置配置好所有,而疏忽了对于一些根底设置的思考,因而经常会有“最简单的一步是配置环境”这种说法,其实用心去思考总结,这种说法也就不攻自破了。
欢送关注集体公众号【AIShareLab】,一起交换更多前沿算法,Paper 解读,我的项目源码,面经总结。