首页 > 其他分享 >关于环境变量配置的思考总结

关于环境变量配置的思考总结

时间:2023-01-23 15:31:10浏览次数:34  
标签:总结 配置 系统 思考 go PATH 环境变量 SDK

其实写这一篇时还是非常不好意思的,毕竟无论是学习还是开发这么久,第一步就是配置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解压后)为例:

关于环境变量配置的思考总结_可执行文件_02

可以发现,里面有很多文件,例如api,可执行的二进制bin文件(例如go.exe 用来编译和运行go源码,gofmt.exe),doc文档,lib相关的库文件,test测试用的文件,以及src源码等等。

环境变量

关于环境变量配置的思考总结_可执行文件_03

用户环境变量

用户环境变量,是独属于某个用户的,只有配置这个环境变量的用户才能使用它。一旦切换用户就无法使用该环境变量。

系统环境变量

系统环境变量是整个系统的。配置了系统环境变量后,使用该操作系统的任何用户都能通过这个环境变量直接在命令窗口直接找到相应程序。

可以通过系统变量中的内容可知,该系统变量有很多,并且每一项都有其对应的值,每个变量名都有其独特的含义与作用。

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解读,项目源码,面经总结。

标签:总结,配置,系统,思考,go,PATH,环境变量,SDK
From: https://blog.51cto.com/u_15736437/6021927

相关文章

  • 【ubuntu基础】linux常用命令总结
    前言 常用命令查看cpu内存使用情况tophtop 解压文件至某个目录tar-zxvfaaa.tar.gz-C/path/to/untar/​​ 删除size为0的文件​​find.-name"*"-typef-size0c......
  • BeanFactory的总结
    BeanFactoryBeanFactory是Spring容器中的一个基本类也是很重要的一个类是Spring容器中的一个基本类也是很重要的一个类,在BeanFactory中可以创建和管理Spring容器中的Bean,它......
  • effective-c 条款2理解与思考
    尽量使用const,enum,inline替换#define因为,#define替换发生在预处理阶段,编译器对这个替换内容就缺少了类型检测,并且不利于错误信息的查看编译器再声明数组时必须知道......
  • Win10配置环境变量path详解
    一、配置环境变量的目的在刚刚写的代码中,只能存放在bin目录下,才能使用javac和java工具。如果我想把代码存放在任意的目录下,在任意的目录下都可以使用javac和java工......
  • 工作这么多年,我总结的数据传输对象 (DTO) 的最佳实践
    前言数据传输对象(DTO)是一种设计模式,常用于软件开发不同层或者不同系统之间传输数据。DTO的主要目的是封装数据并防止它被其他层或系统直接访问或修改。通过遵循一组......
  • Linux-环境变量
         ......
  • sql基础之from和ansi join一起使用(parse)总结
    createtabletemp1(aidVARCHAR(5)notnull,carVARCHAR(10)notnull);createtabletemp2(bidVARCHAR(5)notnull,username......
  • 微信小程序开发错误总结
    1、真机调试 Error:accessSync:failnosuchfileordirectory,access  遇到这种问题真机调试的时候切换到1.0版本,2.0就是会报这种错误,贼坑 ......
  • 总结集合
    2023.1.4昨天题难大家都差不多,今天就160倒数第二(还是策略问题,感觉都不会考试和调代码了。。。签完到就去写最难写的计算几何,最后才开t1,发现很简单,但是没什么时间了。最......
  • 计算位1的个数方法总结
    tags:DSAC++Python写在前面之前介绍过一种计算整数二进制表示中位​​1​​个数的文章,是介绍通过不断减去右移一位之后的值的方法来完成的,后来发现还有一种更快更经......