macbook M1重装Homebrew到/usr/local

本文介绍如何在MacBook M1芯片上通过Rosetta模拟Intel环境,实现Homebrew的卸载及重新安装至/usr/local路径,并提供安装软件时的操作指南。

macbook M1重装Homebrew到/usr/local


Homebrew官方脚本会根据是否是Arm64架构判断mac系统的芯片为Intel或者M1来选择安装路径为/usr/local/或者/opt/Homebrew/
本文通过苹果提供的Rosetta来模拟Intel芯片,解决想要使用M1芯片并将homebrew安装到/usr/bin目录下的问题。

卸载

1.查看Homebrew安装目录

where brew

2.上一步看到安装目录为/opt/(如果是/usr/local/跳过这一步),打开终端运执行命令。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

安装

1.在访达中找到应用程序–>实用工具–>终端app,右键显示简介,将“使用Rosetta”勾选。
重启终端执行命令

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2.使用Homebrew安装软件时也需要开启Rosstta,安装完记得关闭。

<think> 我们正在解决的是在Mac上使用`brew install wget`时出现的权限问题,错误提示为某些目录(如`/usr/local/Homebrew`)对当前用户不可写。 根据引用[1]中的解决方案,我们可以按照以下步骤操作: 步骤1:更改`/usr/local/Homebrew`目录的所有权为当前用户 命令:`sudo chown -R $(whoami) /usr/local/Homebrew` 步骤2:确保当前用户对`/usr/local/Homebrew`目录有写权限 命令:`chmod u+w /usr/local/Homebrew` 但是,错误提示中还提到了其他目录,比如`/usr/local/etc/bash_completion.d`。因此,我们需要对每个不可写的目录都执行类似的操作。 然而,引用[1]中提到了一个更通用的方法:将`/usr/local`目录下的所有Homebrew相关目录的所有权都改为当前用户。 注意:由于`/usr/local`目录可能包含其他软件的文件,我们不想递归地更改整个`/usr/local`目录的所有权,而只更改Homebrew相关的目录。 但是,根据错误提示,我们需要更改的目录已经列出来了,因此我们可以针对每一个不可写的目录执行: 例如: sudo chown -R $(whoami) /usr/local/Homebrew sudo chown -R $(whoami) /usr/local/etc/bash_completion.d 然后,再给当前用户加上写权限(如果更改所有权后仍然需要的话,因为更改所有权后,当前用户应该已经是所有者,通常已经有写权限了,但为了保险,可以执行写权限添加)。 但是,引用[1]中只对`/usr/local/Homebrew`目录执行了`chmod u+w`,这是因为在更改所有权后,该目录的所有者就是当前用户,而用户默认有读写执行权限(取决于umask),所以可能不需要再单独执行`chmod`。但为了确保,我们可以检查一下目录的权限。 另一种方法:我们可以按照Homebrew的官方建议,将整个Homebrew安装目录(通常为`/usr/local`)的所有权交给当前用户(非root用户)。但是,这需要谨慎,因为`/usr/local`目录下可能还有其他软件的文件。不过,Homebrew安装时就是设计为整个`/usr/local`归当前用户所有(而非root),所以我们可以将整个`/usr/local`目录的所有权改为当前用户。 但是,注意:错误提示中只列出了部分目录,而不是整个`/usr/local`。因此,我们可以只更改那些提示的目录。 然而,引用[3]中提到:Homebrew会将软件包安装到独立目录(`/usr/local/Cellar`),并将其文件软链接至`/usr/local`。因此,我们需要确保`/usr/local`下的相关子目录(比如`bin`、`etc`、`Homebrew`等)当前用户都有写权限。 因此,我们可以采取以下步骤: 1. 首先,尝试运行以下命令,将Homebrew的核心目录的所有权改为当前用户: sudo chown -R $(whoami) /usr/local/Homebrew sudo chown -R $(whoami) /usr/local/etc/bash_completion.d 2. 如果还有其他目录被列出,同样对每个目录执行上述命令。 3. 然后,重新运行`brew install wget`,看是否解决问题。 4. 如果问题仍然存在,或者有更多的目录权限问题,我们可以考虑将整个`/usr/local`目录的所有权改为当前用户(因为Homebrew推荐这样做): sudo chown -R $(whoami) /usr/local 注意:更改整个`/usr/local`目录的所有权可能会影响其他安装在`/usr/local`下的软件,但通常这些软件也是通过Homebrew安装的,所以不会有问题。如果是通过其他方式安装的,可能会受到影响。 5. 最后,确保`/usr/local`下所有目录对于当前用户有写权限,可以运行: chmod u+w /usr/local/Homebrew # 如果之前只改了所有权,权限可能还不够,可以加上写权限 或者,更彻底的做法: chmod -R u+w /usr/local # 递归地给当前用户加上写权限,但这样可能会使一些不应该有写权限的文件也变得可写,所以不推荐,除非必要。 实际上,更改所有权后,当前用户是所有者,默认就有读写权限(取决于创建时的umask,通常是可读写的),所以通常不需要再额外执行`chmod`。 因此,我们推荐先执行: sudo chown -R $(whoami) /usr/local/Homebrew sudo chown -R $(whoami) /usr/local/etc/bash_completion.d 然后再次尝试安装wget。 如果还有其他目录,同样处理。 如果不想一个一个处理,也可以直接对整个`/usr/local`目录执行: sudo chown -R $(whoami) /usr/local 这是Homebrew官方推荐的做法(在引用[1]中其实也隐含了这个意思,因为Homebrew安装在`/usr/local`下,应该由当前用户拥有)。 但是,执行对整个`/usr/local`目录的权限更改需要确认:这个目录之前是否被其他系统软件使用?在Mac系统中,`/usr/local`默认是给用户安装软件使用的,所以通常不会有问题。 最后,我们还可以运行`brew doctor`来检查Homebrew的状态,它会给出更多关于权限问题的建议(引用[4]中提到`brew doctor`可以检测冲突)。 总结步骤: 1. 打开终端。 2. 执行:`sudo chown -R $(whoami) /usr/local/Homebrew` 3. 执行:`sudo chown -R $(whoami) /usr/local/etc/bash_completion.d` (以及其他错误提示的目录) 4. 或者,执行:`sudo chown -R $(whoami) /usr/local` (一步到位) 5. 确保权限:`chmod u+w /usr/local/Homebrew` (如果步骤4已经执行,则不需要单独执行这一步) 6. 再次尝试安装:`brew install wget` 注意:步骤4会更改整个`/usr/local`目录的所有权,请确保你了解这样做的后果。但根据Homebrew安装要求,这是推荐的做法。 根据引用[1],我们也可以只更改错误提示中列出的目录。 因此,我们给出两种方案,并建议先按错误提示的目录逐个更改,如果问题依旧,再更改整个`/usr/local`目录。 最后,我们生成相关问题。 </think> ### 解决 brew install wget 权限错误指南 #### 错误原因分析 当执行 `brew install wget` 时出现 `The following directories are not writable by your user` 错误,核心原因是 **Homebrew 相关目录的所有权不属于当前用户**。关键目录包括: - `/usr/local/Homebrew`(Homebrew 核心目录)[^1] - `/usr/local/etc/bash_completion.d`(命令补全脚本目录) - `/usr/local`(Homebrew 默认安装路径)[^3] #### 解决方案(逐步操作) 1. **递归修改目录所有权** ```bash sudo chown -R $(whoami) /usr/local/Homebrew ``` - `$(whoami)`:自动获取当前用户名(如您的用户名是 `john`) - `-R`:递归处理所有子目录和文件[^1] 2. **修改其他报错目录所有权**(根据错误提示添加) ```bash sudo chown -R $(whoami) /usr/local/etc/bash_completion.d sudo chown -R $(whoami) /usr/local ``` 3. **添加用户写入权限** ```bash chmod u+w /usr/local/Homebrew ``` - `u+w`:给文件**所有者**添加写入权限[^1] 4. **验证修复结果** ```bash brew doctor # 检查Homebrew健康状况 brew install wget # 重新尝试安装 ``` #### 关键原理说明 1. **所有权问题** Homebrew 要求用户对 `/usr/local` 有完全控制权。当使用 `sudo` 安装某些组件时,可能导致目录所有权变为 `root`,引发权限冲突[^3]。 2. **目录作用** | 目录 | 作用 | |---|---| | `/usr/local/Homebrew` | 存储核心程序文件 | | `/usr/local/etc` | 配置文件目录 | | `/usr/local/Cellar` | 软件安装位置(如 wget)[^3] | 3. **安全提醒** ❗ 避免直接修改系统核心目录(如 `/usr/bin`),只需修复 Homebrew 相关目录[^1] #### 验证安装成功 ```bash wget --version # 查看版本信息 ``` 成功输出示例: ``` GNU Wget 1.21.3 built on darwin21.3.0 ``` #### 预防措施 ```bash brew update # 保持Homebrew更新可预防权限问题 brew cleanup # 定期清理旧版本 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值