关于环境变量:关于环境变量配置的思考总结
其实写这一篇时还是十分不好意思的,毕竟无论是学习还是开发这么久,第一步就是配置SDK,编辑环境变量。然而这一步我为了防止一些未知的谬误,防止踩坑,通常采纳的形式是网上找对应的无效图文教程,跟着一步步实现。整个过程中还是少了一点思考,因而印象不深。明天,借着搭建go的开发环境,对整个配置过程进行了梳理,有了一些思考与总结。 名词了解首先,在开始之前,咱们先要了解以下概念: SDKSDK:全称(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解读,我的项目源码,面经总结。