当前位置: 首页 > 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.xdnf.cn/news/1213831.html

相关文章:

  • 如何不让android studio自动换行
  • cpp c++面试常考算法题汇总
  • 高防CDN与高防IP的选择
  • 【ip】IP地址能否直接填写255?
  • SpringBoot升级2.5.3 2.6.8
  • gtest框架的安装与使用
  • 基于成像空间转录组技术的肿瘤亚克隆CNV原位推断方法
  • android-PMS-创建新用户流程
  • VUE -- 基础知识讲解(三)
  • 记录Linux下ping外网失败的问题
  • 时序数据库厂商 TDengine 发布 AI 原生的工业数据管理平台 IDMP,“无问智推”改变数据消费范式
  • 问题1:uniapp在pages样式穿刺没有问题,在components组件中样式穿刺小程序不起效果
  • Django常见模型字段
  • 一篇文章读懂麦科信CP3008系列高频交直流电流探头
  • 基于数字信息化的全面研发项目管理︱裕太微电子股份有限公司研发项目管理部负责人唐超
  • 新手向:DeepSeek 部署中的常见问题及解决方案
  • Jupyter Notebook 中显示图片、音频、视频的方法汇总
  • RabbitMQ 发送方确认的两大工具 (With Spring Boot)
  • 开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放
  • 在线教育场景下AI应用,课程视频智能生成大纲演示
  • 大厂主力双塔模型实践与线上服务
  • 【swoole Windows 开发(swoole-cli 开发 hyperf)】
  • 算法训练营day36 动态规划④ 1049. 最后一块石头的重量 II、494. 目标和、474.一和零
  • 基于Rust与HDFS、YARN、Hue、ZooKeeper、MySQL
  • 【ee类保研面试】数学类---线性代数
  • 【iOS】weak修饰符
  • USRP捕获手机/路由器数据传输信号波形
  • 国内好用的智能三防手机,适合户外、工业、公共安全等场景
  • LLMs之Agent:GLM-4.5的简介、安装和使用方法、案例应用之详细攻略
  • 【MySQL学习|黑马笔记|Day3】多表查询(多表关系、内连接、外连接、自连接、联合查询、子查询),事务(简介、操作、四大体系、并发事务问题、事务隔离级别)