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

Mac下的Homebrew

Mac下的Homebrew

文章目录

  • Mac下的Homebrew
    • 一:安装Homebrew
      • 1:xcode安装
        • 2:homebrew安装
        • 3:手动安装homebrew
      • 4:软件的安装位置
    • 二:安装实例
      • 1:pyenv
      • 2:jenv
      • 3:nvm

一:安装Homebrew

1:xcode安装

对于Mac用户来说,系统自带了bash、git和curl等工具,这是安装Homebrew所必需的

但是,还需要额外安装Command Line Tools (CLT) for Xcode,以便在命令行中使用一些必要的工具。

可以通过在终端中输入xcode-select --install来安装CLT for Xcode。

2:homebrew安装

直接在终端使用国内镜像源进行安装

/bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)
3:手动安装homebrew

1️⃣ 需要打开终端,并输入以下命令来下载Homebrew的安装脚本:

curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh -o /tmp/homebrew.sh

2️⃣ 增加执行权限

chmod +x /tmp/homebrew.sh

3️⃣ 然后执行脚本

/bin/zsh /tmp/homebrew.sh

4:软件的安装位置

  • Apple Silicon(M1, M2, M3):
    • 二进制程序: /opt/homebrew/bin
    • 库文件: /opt/homebrew/lib
    • 配置文件: /opt/homebrew/etc
    • 共享资源: /opt/homebrew/share
    • 安装的软件包本身: /opt/homebrew/Cellar 📁 (这是核心目录,每个软件一个子文件夹)
  • Intel:
    • 二进制程序: /usr/local/bin
    • 库文件: /usr/local/lib
    • 配置文件: /usr/local/etc
    • 共享资源: /usr/local/share
    • 安装的软件包本身: /usr/local/Cellar 📁 (核心目录)

二:安装实例

可以使用brew安装非常多的常用的应用,但是这里我只介绍三个,分别是:

  • python的版本管理工具:pyenv
  • java的版本管理工具:jenv
  • node和npm的版本管理工具:nvm

1:pyenv

用于管理python的版本环境和快速切换环境

brew install pyenv# 创建缓存目录
mkdir -p ~/.pyenv/cache# 使用 curl 下载(以 Python 3.12.0 为例)
curl -L https://mirrors.huaweicloud.com/python/3.12.0/Python-3.12.0.tar.xz -o ~/.pyenv/cache/Python-3.12.0.tar.xz# 执行安装
pyenv install 3.12.0# ???
# 安装 Xcode 命令行工具(弹出界面点同意)
xcode-select --install
# 通过 Homebrew 安装依赖
brew install openssl readline sqlite3 xz zlib# 查看已安装版本
pyenv versions# 设置全局版本
pyenv global 3.12.0
python --version  # 应输出 3.12.0# 列出所有通过 pyenv 安装的 Python 版本及其路径
pyenv versions# 输出示例:
* system (set by /Users/你的用户名/.pyenv/version)3.8.103.9.53.12.0# 查看某个版本的绝对路径(例如 3.12.0)
pyenv prefix 3.12.0# 输出示例:
/Users/你的用户名/.pyenv/versions/3.12.0

2:jenv

用于管理jdk的版本环境和快速切换环境

# 下载jdk
brew install --cask zulu@8
brew install --cask zulu@11
brew install --cask zulu@17# 安装jenv管理工具
brew install jenv# 配置jenv的环境变量
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc# 检查jdk是否在这个文件夹下
ls /Library/Java/JavaVirtualMachines/# jdk放入jenv的管理范围
jenv add /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home# 检查jenv管理的jdk版本有啥
jenv versions# 检查当前环境的jdk版本
java -version# 切换时候用
jenv global 11          # 全局默认使用 JDK 11
jenv local 1.8          # 当前目录使用 JDK 8(会生成 .java-version 文件)
jenv shell 17           # 当前 Shell 会话临时使用 JDK 17

3:nvm

用于node和npm的版本管理和快速切换

brew install nvm# 创建必要的系统目录
mkdir -p ~/.nvm# 添加对应的环境变量到~/.zshrc(macOS Catalina 及之后默认), 如果之前添加变量到~/.bash_profile
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # Load nvm' >> ~/.zshrc
echo '[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # Load nvm completion' >> ~/.zshrc# 刷新环境
source ~/.zshrc  # 或 source ~/.bash_profile
组件路径
nvm 脚本/opt/homebrew/opt/nvm/nvm.sh (Apple Silicon) /usr/local/opt/nvm/nvm.sh (Intel)
nvm 配置目录~/.nvm (用户主目录下)
Node.js 安装位置~/.nvm/versions/node (所有通过 nvm 安装的 Node 版本在此)

然后输入nvm就可以看到nvm对应的相关命令:

下面是最常用的几个

nvm install [version] # 安装指定的版本的nodenvm ls # 查看已经安装的nodenvm use 18  # 使用 v18.x 最新版

下面是注意事项📢:

  • 不要用 brew install node!这会绕过 nvm 管理,导致版本冲突。
  • 确保 ~/.nvm 路径优先级高于 Homebrew 的 node
  • nvm 是 Shell 函数而非独立程序,打开新终端时自动加载配置才能使用
  • 如果安装node时候出现网络超时,可以配置国内镜像源
# 临时切换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
nvm install 20
http://www.lryc.cn/news/604398.html

相关文章:

  • Python 中使用 OpenCV 库来捕获摄像头视频流并在窗口中显示
  • 深入理解 Doris Compaction:提升查询性能的幕后功臣
  • webpack-性能优化
  • 破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践录
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(二级)
  • C++ 中 NULL 与 nullptr 有什么区别?
  • RAG实战指南 Day 29:RAG系统成本控制与规模化
  • WebRTC核心组件技术解析:架构、作用与协同机制
  • mangoDB面试题及详细答案 117道(071-095)
  • Python深度挖掘:openpyxl与pandas高效数据处理实战指南
  • APM32芯得 EP.27 | 告别IDE,为APM32F411打造轻量级命令行开发工作流
  • 微服务消息队列之——RabbitMQ
  • .NET 10 中的新增功能系列文章2——ASP.NET Core 中的新增功能
  • PostGIS安装与pg_dump/pg_restore排错
  • flutter 记录一个奇怪的问题
  • 在 Mac 上用 Vagrant 安装 K8s
  • InfluxDB 3 数据库命名与创建全攻略:规范、限制与实战指南
  • 《零基础入门AI:传统机器学习核心算法解析(KNN、模型调优与朴素贝叶斯)》
  • GaussDB 数据库架构师(十二) 数据库对象修改审计设置
  • Redis学习------缓存穿透
  • llama factory本地部署常见问题
  • Git版本控制器
  • 人工智能与家庭:智能家居的便捷与隐患
  • gdb调试的限制和配置自动生成core
  • 2023 年 NOI 最后一题题解
  • 【C++篇】哈希扩展:位图和布隆过滤器+哈希切割
  • 【Lambda】flatMap使用案例
  • c++之基础B(第一课)
  • dify离线插件打包步骤
  • 在Trae中使用MoonBit月兔