Brew 使用指南
Brew 使用指南
一、什么是 brew?
全程:Homebrew
macOS(或 Linux)软件包管理器。它可以让你轻松地安装、更新、卸载软件,解决软件依赖关系,你不再需要手动下载、拖拽安装或处理复杂的编译选项。
Homebrew 会将软件包安装到独立目录,并将其文件软链接至 /opt/homebrew 。
二、安装 Homebrew
在终端(Terminal)中执行以下命令:
1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,运行以下命令确保 Brew 工作正常:
1brew doctor
三、基础使用命令
1. 安装软件
- 安装命令行工具(Formula):
1brew install <formula_name> 2# 示例:安装 wget, tree, node 3brew install wget tree node - 安装图形界面应用(Cask)
1brew install --cask <cask_name> 2# 示例:安装 Chrome, VS Code, Spotify 3brew install --cask google-chrome visual-studio-code spotify
2. 查询软件
- 搜索软件(不确定完整包名时非常有用):
1brew search <keyword> 2# 示例:搜索所有与 python 相关的包 3brew search python - 查看已安装的软件列表:
1brew list # 列出所有通过 Formula 安装的命令行工具 2brew list --cask # 列出所有通过 Cask 安装的应用程序 - 查看某个软件的信息:
1brew info <formula_name> 2brew info --cask <cask_name>
3. 更新软件
- 更新 Homebrew 自身(获取最新的 Formula 和 Cask 列表):
1brew update
- 检查哪些软件可以更新:
1brew outdated - 更新所有软件:
1brew upgrade - 更新指定软件:
1brew upgrade <formula_name> - 更新 Cask 应用: 对于 Cask 应用,upgrade 命令同样有效。如果应用有自动更新功能(如 Chrome),则可能无需通过 Brew 更新。
1brew upgrade --cask <cask_name>
4. 卸载软件
- 卸载软件:
1brew uninstall <formula_name> 2brew uninstall --cask <cask_name> - 清理旧版本和缓存: Homebrew 会保留旧版本和下载缓存,定期清理可以节省空间。
1brew cleanup # 清理所有旧版本软件的缓存
2brew cleanup <formula_name> # 清理指定软件的缓存
3brew cleanup -n # 查看哪些会被清理,但不实际执行(干跑)
四、 高级用法
1. 管理服务(Services)
Homebrew 可以像 systemd 一样管理一些后台服务(如 MySQL, Nginx, PostgreSQL)。
- 安装服务:
1brew install mysql - 在登录时启动并立即运行服务:
1brew services run mysql # 立即运行但不设置开机启动 2brew services start mysql # 设置开机启动并立即运行 - 停止服务:
1brew services stop mysql - 重启服务:
1brew services restart mysql - 查看所有服务状态:
1brew services list
2. 诊断问题
brew doctor: 检查你的系统是否存在潜在问题,并给出修复建议。遇到任何安装问题时首先运行此命令。brew config: 显示 Homebrew 的系统和配置信息,用于故障排除时提供环境详情。brew gist-logs <formula>: 上传某个软件的详细安装日志到 Gist,方便在 GitHub 上提交问题时使用。
3. 安装特定版本软件
有时你需要安装的不是最新版,而是某个特定版本。
- 首先找到你需要的版本的 Formula(可能存在于一个“tap”中):
1brew search node@ # 搜索带版本的 node - 如果找到了(如 node@14),直接安装:
1brew install node@14 - 你需要手动将特定版本添加到 PATH 环境变量中,因为 Brew 默认只链接最新版本。安装后提示会告诉你怎么做。
4. Taps(第三方仓库)
官方仓库没有你需要的软件?可以添加第三方仓库。
- 添加一个 Tap:
1brew tap <user/repo> 2# 示例:添加一个著名的字体仓库 3brew tap homebrew/cask-fonts 4# 然后你就可以安装这个 tap 里的字体了 5brew install --cask font-fira-code - 查看已添加的 Tap:
1brew tap - 删除一个 Tap:
1brew untap <user/repo>
5.更换镜像源
```bash
# 替换 Homebrew 源为国内镜像
# 中科大镜像
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 或者清华镜像
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
# 更新 Homebrew
brew update
```
6. 禁用 Homebrew 自动更新(可选)
```bash
# 如果觉得自动更新烦人,可以禁用
echo 'export HOMEBREW_NO_AUTO_UPDATE=1' >> ~/.zshrc
echo 'export HOMEBREW_NO_ENV_HINTS=1' >> ~/.zshrc
source ~/.zshrc
```
五、mysql为例安装
安装
1# 运行安装命令 2brew install mysql@8.0链接到系统路径
1# 添加到 zshrc 2echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc 3 4# 使配置生效 5source ~/.zshrc 6 7# 验证路径 8which mysql 9# 应该显示: /usr/local/opt/mysql@8.0/bin/mysql启动 MySQL 服务
1# 启动并设置开机自启 2brew services start mysql@8.0 3 4# 或者只启动不设置自启 5mysql.server start安全初始化
1# 运行安全配置脚本 2mysql_secure_installation按照提示操作:
设置 root 密码
移除匿名用户(选 Y)
禁止远程 root 登录(选 Y)
移除测试数据库(选 Y)
重新加载权限表(选 Y)
环境变量配置
- 添加到 shell 配置文件
1# 如果是 zsh(macOS Catalina 及以后) 2echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc 3 4# 如果是 bash 5echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.bash_profile 6 7# 使配置生效 8source ~/.zshrc # 或 source ~/.bash_profile - 验证安装
1# 检查版本 2mysql --version 3 4# 应该显示类似:mysql Ver 8.0.xx for macosx on x86_64 (Homebrew) 5 6# 测试连接 7mysql -u root -p- 添加到 shell 配置文件
常用管理命令
- 服务管理
1# 查看服务状态 2brew services list 3 4# 停止服务 5brew services stop mysql@8.0 6 7# 重启服务 8brew services restart mysql@8.0- 配置文件位置
1# 主配置文件 2/usr/local/etc/my.cnf 3 4# 数据目录 5/usr/local/var/mysql/ 6 7# 错误日志 8/usr/local/var/mysql/your_computer_name.err其他
- 优化
1# 备份原始配置 2cp /usr/local/etc/my.cnf /usr/local/etc/my.cnf.backup 3 4# 编辑配置(添加以下内容) 5echo "[mysqld] 6character-set-server = utf8mb4 7collation-server = utf8mb4_unicode_ci 8innodb_buffer_pool_size = 1G 9slow_query_log = 1 10long_query_time = 2 11 12[client] 13default-character-set = utf8mb4" >> /usr/local/etc/my.cnf 14 15# 重启生效 16brew services restart mysql@8.0 - 忘记密码
1# 停止服务 2brew services stop mysql@8.0 3 4# 安全模式启动 5mysqld_safe --skip-grant-tables & 6 7# 重置密码 8mysql -u root 9FLUSH PRIVILEGES; 10ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; 11exit; 12 13# 重启服务 14brew services restart mysql@8.0 - 自己管理启动
编写start_mysql.sh,chmod +x start_mysql.sh
1#!/bin/zsh 2export HOMEBREW_NO_AUTO_UPDATE=1 3MYSQL_PATH="/usr/local/opt/mysql@8.0/bin/mysql.server" 4 5# 使用不同的变量名避免与系统只读变量冲突 6mysql_status=$($MYSQL_PATH status 2>/dev/null) 7 8if [[ $mysql_status == *"SUCCESS"* ]]; then 9 echo "MySQL 正在运行,准备停止..." 10 $MYSQL_PATH stop 11elif [[ $mysql_status == *"ERROR! MySQL is not running"* ]]; then 12 echo "MySQL 未运行,准备启动..." 13 $MYSQL_PATH start 14else 15 echo "无法确定 MySQL 状态,尝试启动..." 16 $MYSQL_PATH start 17fi- 优化
发表评论