Mac 配置Homebrew + Oh My Zsh + npm全局权限问题

macOS 12 上安装 Oh My Zsh 插件非常简单。你可以通过以下步骤来安装和管理插件。

✅ 步骤 1:安装 Oh My Zsh

如果你还没有安装 Oh My Zsh,可以按照以下步骤进行安装:

  1. 打开 终端

  2. 运行以下命令:

    复制代码
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  3. 安装过程中会提示你按回车继续,确认后会自动安装。

安装完成后,你的默认 shell 会变成 zsh,并且 ~/.zshrc 配置文件会被更新。


✅ 步骤 2:安装 Oh My Zsh 插件

  1. 查看可用插件

    Oh My Zsh 有很多内置插件,默认安装在 ~/.oh-my-zsh/plugins/ 文件夹中。你可以在这里找到很多有用的插件,如 git, zsh-autosuggestions 等。

  2. 启用插件

    • 打开 ~/.zshrc 文件:

      复制代码
      nano ~/.zshrc
    • 找到这行:

      复制代码
      plugins=(git)
    • 在括号中添加你需要的插件(可以添加多个插件,用空格分隔)。例如,启用 gitzsh-autosuggestions 插件:

      复制代码
      plugins=(git zsh-autosuggestions)
  3. 保存并退出

    • 按下 Ctrl + O 保存文件。

    • 按下 Ctrl + X 退出编辑器。

  4. 安装额外插件 (例如 zsh-autosuggestions):

    • 你可以通过 Git 来下载插件到 ~/.oh-my-zsh/custom/plugins/ 目录。

    • 例如安装 zsh-autosuggestions 插件:

      复制代码
      git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

✅ 步骤 3:配置插件

  1. 重新加载 zsh 配置文件

    复制代码
    source ~/.zshrc
  2. 确认插件工作正常

    • 例如,输入 git 后,应该能看到命令提示和自动建议(如果启用了 zsh-autosuggestions 插件)。

✅ 推荐插件:

  1. zsh-autosuggestions:自动建议已输入的命令。

    复制代码
    git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
  2. zsh-syntax-highlighting:命令行语法高亮。

    复制代码
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
  3. autoenv:自动激活环境。

    复制代码
    git clone https://github.com/Tarrasch/zsh-autoenv ~/.oh-my-zsh/custom/plugins/autoenv

macOS 12 上安装 Homebrew 非常简单,以下是安装步骤:


✅ 步骤 1:安装 Homebrew

  1. 打开终端(Terminal)。

  2. 运行以下命令来安装 Homebrew

    复制代码
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    这个命令会通过 curl 下载并执行 Homebrew 安装脚本。安装过程中需要你输入 管理员密码

  3. 安装过程结束后,终端会提示你根据系统提示配置 Homebrew,比如将路径添加到环境变量中。你需要运行以下命令(确保它们在终端执行):

    复制代码
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
    source ~/.zprofile

    这会将 Homebrew 的路径添加到 zsh 的配置文件 ~/.zprofile 中。


✅ 步骤 2:确认安装成功

  1. 运行以下命令检查 Homebrew 是否安装成功:

    复制代码
    brew --version

    如果显示 Homebrew 的版本号(比如 Homebrew 3.3.0),说明安装成功。


✅ 步骤 3:更新 Homebrew(可选)

安装完成后,你可以使用以下命令来确保 Homebrew 是最新版本:

复制代码
brew update

✅ 常用命令示例

  • 安装软件包:

    复制代码
    brew install <软件名>

    例如,安装 node

    复制代码
    brew install node
  • 搜索软件包:

    复制代码
    brew search <软件名>
  • 卸载软件包:

    复制代码
    brew uninstall <软件名>
  • 查看安装的软件包列表:

    复制代码
    brew list

⚠️ 注意事项

  • Homebrew 安装默认安装在 /opt/homebrew(适用于 Apple Silicon 芯片的 Mac)。如果是 Intel Mac,则会安装在 /usr/local/Homebrew

  • 在安装时确保你的 macOS 版本支持该版本的 Homebrew。


在使用 npm 时,遇到权限问题是常见的,特别是在安装全局包时。通常,权限问题是因为 npm 尝试在没有足够权限的目录中进行操作。

✅ 解决 npm 权限问题的方法

方法 1:避免使用 sudo 安装全局包

使用 sudo 安装 npm 包时可能会导致权限问题,因为它会将文件的所有权更改为 root 用户,从而影响后续的包管理。为了解决这个问题,建议你重新设置 npm 全局安装目录 ,使它不需要 sudo 权限。

  1. 创建一个新的目录,用来存放全局包:

    复制代码
    mkdir ~/.npm-global
  2. 配置 npm 使用新的目录:

    复制代码
    npm config set prefix '~/.npm-global'
  3. 更新你的 shell 配置文件(如 .zshrc.bash_profile)来确保新的目录在 $PATH 中:

    复制代码
    echo 'export PATH=$HOME/.npm-global/bin:$PATH' >> ~/.zshrc
  4. 重新加载 shell 配置文件:

    复制代码
    source ~/.zshrc
  5. 确认全局包的安装目录已修改:

    复制代码
    npm config get prefix

    输出应该是 ~/.npm-global,这意味着以后安装的全局包会放到这个目录中。


方法 2:使用 nvm(Node Version Manager)

通过 nvm(Node 版本管理器)安装和管理 Node.js,不仅能避免全局权限问题,还能轻松切换不同的 Node.js 版本。

  1. 安装 nvm

    复制代码
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
  2. 安装最新版本的 Node.js 和 npm(会自动安装 npm):

    复制代码
    nvm install node
  3. 使用新的 Node.js 版本:

    复制代码
    nvm use node
  4. 这样通过 nvm 安装的 Node.js 和 npm 会被管理在用户目录下,避免了权限问题。


方法 3:更改文件和目录的权限

如果你之前使用了 sudo 安装过一些 npm 包,你可以更改文件或目录的权限,恢复权限:

  1. 更改 npm 的全局安装目录权限 (如果你之前用 sudo 安装过):

    复制代码
    sudo chown -R $(whoami) ~/.npm
  2. 更改全局安装目录的权限(如果你使用的是默认的全局目录):

    复制代码
    sudo chown -R $(whoami) /usr/local/lib/node_modules

    这样,你就能恢复目录的所有权,以便不需要 sudo 进行 npm 安装。


方法 4:使用 sudo(不推荐)

如果确实需要使用 sudo,你可以运行以下命令来修改权限:

复制代码
sudo npm install -g <package-name>

但是,这样做不推荐,因为这可能会造成其他潜在的问题,最好是通过方法 1 或 2 来避免权限问题。


✅ 总结

  • 最好的做法 是使用 nvm重新设置 npm 安装目录,这样可以完全避免权限问题。

  • 不要频繁使用 sudo 安装 npm 包,这会导致文件所有权问题。

  • 使用 nvm 可以让你轻松管理不同版本的 Node.js,并且避免权限问题。

在终端中看到的 (base) 是因为你安装了 Anaconda 或 Miniconda,并且它的 base 环境默认被激活了。你可以通过以下几种方式来隐藏它:


✅ 方法一:临时隐藏 (base)

在当前终端中执行以下命令,不影响以后其他终端:

复制代码
conda deactivate

这会退出 base 环境,(base) 前缀也会随之消失。


✅ 方法二:永久禁止自动激活 base 环境

在终端中执行以下命令即可:

复制代码
conda config --set auto_activate_base false

之后重新打开终端就不会自动激活 (base) 环境了。


✅ 方法三:只隐藏提示符中的 (base),但仍激活环境

如果你只是想隐藏 (base),但仍希望环境自动激活,可以自定义 PS1(shell 的提示符变量):

  1. 打开你的 shell 配置文件,例如:

    • ~/.bashrc (大多数 Linux)

    • ~/.zshrc(macOS 或使用 zsh)

  2. 添加以下内容(以 bash 为例):

    复制代码
    export CONDA_CHANGEPS1=false
  3. 保存并运行:

    复制代码
    source ~/.bashrc  # 或 source ~/.zshrc

这样环境还是会激活,只是不会显示 (base) 前缀。


如果你不确定用的是哪种 shell,可以输入:

复制代码
echo $SHELL

结果是 /bin/bash 就是 bash,/bin/zsh 就是 zsh。

✅ 一键配置: 国内源

bash 复制代码
# 1. 清理旧文件(避免冲突)
rm -rf ~/.oh-my-zsh ~/.zshrc

# 2. 安装oh-my-zsh(国内源)
ZSH= sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"

# 3. 安装自动提示插件(国内源)
git clone https://gitee.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

# 4. 启用插件并设置默认shell
sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions)/' ~/.zshrc
chsh -s /usr/bin/zsh

# 5. 生效配置
source ~/.zshrc
相关推荐
eastyuxiao1 小时前
流程图 + 配置清单 在团队 / 公司知识管理场景的应用落地
大数据·流程图
数字化顾问1 小时前
(121页PPT)DG1886IT信息化规划报告(附下载方式)
大数据·人工智能
TDengine (老段)12 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
宁波鹿语心理12 小时前
无条件的在场:一项极简亲子依恋修复练习的机制分析与实证观察
大数据
二哈赛车手17 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
lizhihai_9919 小时前
股市学习心得—半导体12种核心材料
大数据·人工智能·学习
ZGi.ai19 小时前
智能客服系统设计:从工单分类到自动派单的工程实现
大数据·人工智能·分类
PaperData19 小时前
2000-2023年地级市数字基础设施评价指标体系
大数据·网络·数据库·人工智能·数据分析·经管
Blockchain Learning20 小时前
去中心化身份(DID)模型解析:区块链如何重塑身份管理?
大数据·去中心化·区块链