当前位置: 首页 > news >正文

macOS三种软件安装目录以及环境变量优先级

一、系统自带应用

这些软件(以git为例)位于根目录下的/usr/bin/xxx,又因为系统级环境变量文件/etc/paths已指定了命令查找位置:

/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin

所以这些自带应用可以直接在终端中打开,例如:

~ % git -v
git version 2.42.0
~ % python3 --version
Python 3.9.6

二、用户手动安装软件

用户从官网下载一些软件并手动安装,其安装位置(快捷方式/替身)为/usr/local/bin/xxx。同时,因为系统环境变量中这个路径的优先级高于系统自带软件安装路径的优先级。所以系统中已有该软件时,用户又手动安装了另一个版本的该软件,那么中终端中调用软件时,会调用用户安装的软件。
例如,刚从https://mirrors.huaweicloud.com/python/下载了python3.12的安装包:python-3.12.0-macos11.pkg ,根据向导一步步手动安装好之后,重新打开终端,输入命令,查看python3版本,有如下结果:

~ % python3 --version
Python 3.12.0

可见自动将python3命令连接到刚手动安装的3.12版本上了。因此可以验证结论:由于系统环境变量的配置顺序,导致用户手动安装的软件优先级高于系统自带的同名软件的优先级。

三、Homebrew安装的软件

brew命令非常方便版本维护和管理,通过brew install xxx安装的软件位于/opt/homebrew/bin/xxx(快捷方式/替身地址),实际安装位置为/opt/homebrew/Cellar/xxx
仍以安装Python为例。系统中已有Python3.9.6,通过brew命令安装最新版:brew install python3,关闭终端后重新打开,输入命令检查版本:

~ % python3 --version
Python 3.11.5
brew安装的好处

(1)维护方便,升级/卸载一个命令即可搞定,不用手动删这个删那个
(2)不会引入快捷方式,上面用手动安装的方式装过python3.12,会在开始菜单冒出两个快捷方式,很不美观。同时没有交互界面,所以对如git node python docker等等,这种并不需要界面交互的运行环境,非常建议用brew安装
(3)大部分情况下,可以自动配置环境变量,无需自己二次配置

brew安装的坏处

(1)无界面,对于需要界面交互的软件来说,并不太适合用brew安装
(2)安装的是brew库中的,软件版本可能不是最新版的。上面的例子中,brew install python3安装的仅仅是3.11.5,并不是最新的3.12

http://www.lryc.cn/news/183184.html

相关文章:

  • 嵌入式Linux裸机开发(一)基础介绍及汇编LED驱动
  • 企业微信机器人对接GPT
  • 【数据结构】排序(1) ——插入排序 希尔排序
  • Python 列表推导式深入解析
  • 信息学奥赛一本通-编程启蒙3103:练18.3 组别判断
  • C++ primer plus--探讨 C++ 新标准
  • 2023版 STM32实战6 输出比较(PWM)包含F407/F103方式
  • 选择排序算法:简单但有效的排序方法
  • 安卓教材学习
  • C++设计模式-生成器(Builder)
  • CTFHUB - SSRF
  • 边缘计算网关
  • 1800_vim的宏录制功能尝试
  • Ultra-Fast-Lane-Detection-v2 {后处理优化}//参考
  • 【面试题精讲】Java静态方法和实例方法有何不同?
  • 【数据结构】布隆过滤器
  • linux基础4---内存
  • 图论---拓扑排序
  • java Spring Boot 将日志写入文件中记录
  • Android 开发错误集合
  • VSCode个人设置习惯
  • 代码随想录训练营二刷第四十七天 | 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数
  • beego-简单项目写法--后续放到git上
  • 【算法|动态规划No.9】leetcodeLCR 091. 粉刷房子
  • 基于SpringBoot的图书进销存管理系统
  • 回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测
  • vue3使用v-model控制子组件进行双向数据绑定
  • .netCore .net5,6,7 存日志文件
  • 【数据结构---排序】很详细的哦
  • GitHub爬虫项目详解