news 2026/9/16 23:32:04

Mac新手必看:用Homebrew安装wget的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mac新手必看:用Homebrew安装wget的完整指南

如果你刚换到 Mac,或者正捧着一台新电脑准备配开发环境,十有八九会遇到这么个场景:翻到一篇教程,第一句写着“用 wget 下载某个文件”,你打开终端敲了个wget,系统很不给面子地回一句command not found

这就是很多 Mac 新手被卡住的第一道坎。wget 在 Linux 世界里几乎是标配,但 macOS 默认只带了curl,并不会帮你把 wget 装好。想把这个缺口补上,最省心、最主流的方式就是先装 Homebrew,然后用一条命令把 wget 请回家。这篇内容就是给 Mac 新手准备的完整操作手册,从为什么要装、怎么装,到中间会踩到的各种报错怎么修,一步步讲透,保证你照着做完能顺利用上 wget。

1. 为什么要用Homebrew装wget

很多刚接触 macOS 的人都会有同一个疑问:系统里不是有curl吗,为什么要费劲再装一个 wget?这个问题的答案,其实也是理解“为什么 Mac 用户普遍依赖 Homebrew”的入口。

1.1 macOS明明自带curl,为什么还要wget

先说实话,日常下载一个文件,curl完全够用。你在终端里敲:

curl -O https://example.com/file.zip

文件就能存到当前目录。但 wget 和 curl 的定位不太一样,wget 是“下载工具”,curl 是“网络传输工具”,两者的侧重点决定了它们在实际使用中的体验差异。

wget 有四个非常实用的能力,是 curl 默认不太好实现的:

  • 递归下载。wget 可以-r参数把一个网页下面链接到的资源一层层拉下来,像镜像整个文档站、批量抓取图片,一条命令搞定。
  • 断点续传。下载到一半断了,wget 用-c接着下,不用从头再来。
  • 重试机制。网络不稳定时,wget 可以在失败之后自动重试,配合--tries参数设置次数,适合挂在后台跑批量任务。
  • 限速下载。--limit-rate直接限制下载速度,避免把带宽全吃满,尤其是你在公司网络或共用网络环境里下载大文件时很有用。

另外很多老牌开源项目、Docker 镜像构建脚本、统计分析工具里,写死的都是wget命令。你跟着教程操作,第一步就需要 wget,这时候再临时去查“curl 怎么替代 wget”,完全没必要,装一个一劳永逸。

1.2 Homebrew是什么,为什么Mac新手推荐用它

Homebrew 是 macOS 上最流行的第三方包管理器,社区里常叫它“brew”。你可以把它理解成 macOS 的命令行版“应用商店”,只是它装的不是图形界面 App,而是开发中常用的命令行工具、软件库和服务端程序。

没有包管理器的时候,装一个软件要手动下载源码包、解压、编译、配置环境变量,依赖关系稍微复杂一点就是连环坑。有了 Homebrew,所有流程被压缩成一条命令,软件被统一安装到固定的目录,卸载也干净,不会在系统里留一堆乱七八糟的残留文件。

Homebrew 装 wget 的好处更直接。wget 本身依赖 OpenSSL、libidn2、libunistring 等一批底层库,如果你手动编译,要先解决这些依赖的版本兼容问题,新手在这一步就能劝退。用 brew 安装时,它会自动把依赖一起处理好,你只需要看着终端滚动完,然后就能直接用。

还有一个隐藏优点:Homebrew 是后续安装很多开发工具的入口。你以后想装 nginx、mysql、git、python、node,大概率都会用到 brew。提前把 Homebrew 装好,等于铺好了后面一整条路。

2. Homebrew安装:从零到能跑通

重头戏来了。这一章我会带你一步步把 Homebrew 装好,过程中会涉及芯片类型判断、安装脚本选择、路径配置和权限处理。很多报错都是在这一阶段冒出来的,值得认真看完。

2.1 装之前先确认三件事

第一件事:确认你的 Mac 是 Intel 芯片还是 Apple Silicon 芯片。这一步直接决定 Homebrew 的安装路径和后续 PATH 配置。

打开终端,输入:

uname -m

输出x86_64的是 Intel 芯片,输出arm64的是 Apple Silicon(M 系列芯片)。你也可以点击左上角苹果图标 -> 关于本机,处理器一栏看是 Intel 还是 Apple M 系列。

第二件事:确认是否已经安装 Xcode Command Line Tools。Homebrew 安装时需要用到这套命令行工具里的编译器。你可以直接运行安装命令,如果缺少它会自动弹出安装提示,也可以提前手动安装:

xcode-select --install

系统会弹窗问你是否安装,点击安装,等待几分钟。如果提示“command line tools are already installed”,说明已经有了,继续下一步即可。

第三件事:确认是否已经装过 Homebrew。可以在终端输入:

brew --version

如果返回版本号,说明以前已经装过,可以直接跳到第三部分安装 wget;如果提示command not found: brew,就按照下面的流程走。

2.2 官方安装命令与国内镜像加速方案

Homebrew 官方安装脚本长这样:

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

问题在于,整个安装过程要从 GitHub 拉取仓库和安装包,网络状况不好时,很容易卡住,或者直接报Failed to connect to raw.githubusercontent.com port 443: Connection refused。这时候我不建议你硬磕官方脚本,换成国内镜像会顺畅得多。

我自己给新 Mac 配环境时,用得比较顺手的是中科大镜像。安装前先写入环境变量,再执行官方安装脚本:

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

这里的环境变量意思是:Homebrew 主仓库、核心仓库、预编译包的下载地址都指向中科大的镜像服务器。这样即使官方地址不能用,镜像站也能把安装包给你。

如果你发现上面命令里curl拉取 GitHub 原始脚本那一步也很慢,可以直接用国内社区维护的 Homebrew 安装脚本。下载执行时,建议先看一眼脚本内容再跑:

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

这个脚本会自动识别你的芯片类型、帮你判断本机网络环境,并提供多个镜像源选项。全程就像问答向导一样,选完之后它会自动完成下载、安装、换源等一系列操作,对新手尤其友好。

执行安装时,终端会先提示你输入开机密码(输入时屏幕不会显示字符,这是正常的),然后开始下载 Command Line Tools、拉取 Homebrew 仓库、创建目录,整个过程在镜像源加速下一般 5 分钟左右。如果中途没报错,看到Installation successful!就说明成了。

2.3 安装完成后的三件小事

装完不代表立刻能用。下面这三件事不做好,后面基本都会冒出来问题。

第一件:确认安装路径。Apple Silicon 芯片的 Mac,Homebrew 默认装在/opt/homebrew;Intel 芯片的 Mac,默认装在/usr/local。你可以用命令确认:

brew --prefix

看到路径后,后面配置 PATH 就要用它。

第二件:让终端能找到 brew 命令。如果你是 Apple Silicon Mac,安装脚本结束时会提示你运行两行命令把 Homebrew 加入 PATH,类似:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"

其中~/.zprofile是 zsh 的配置文件,写入之后每次打开终端都会自动加载 Homebrew 的环境。Intel Mac 一般不需要额外配置,因为/usr/local/bin已经在 PATH 里了。

第三件:运行自检命令。

brew doctor

看到类似Your system is ready to brew的输出,就说明 Homebrew 装得没问题。如果输出了一堆 Warning,不用慌,大多只是建议性质的提示,认真看描述就知道怎么处理,比如告诉你某路径没有写入权限、某个依赖需要更新,按提示操作即可。

3. 用Homebrew安装wget与基本玩法

Homebrew 装好之后,wget 就跟白送一样简单。这一章不仅教你怎么装,还会给你一套可以直接拿走的 wget 常用命令参考。

3.1 一条命令装好wget

直接运行:

brew install wget

你会看到终端先输出一串依赖包名称,比如libidn2libunistringopenssl@3,这是因为 wget 需要这些库才能正常工作,Homebrew 会自动帮你装好。下载预编译包(也叫 bottle)时,速度一般很快,装完会提示你运行wget --version验证。

如果你希望装最新的开发版 wget,可以用--HEAD参数,会从源码编译:

brew install --HEAD wget

这个操作耗时较长,而且依赖你的 Xcode 编译器配置。除非你有特殊需求,否则不建议新手用。

有个细节值得注意:安装过程中如果出现Error: wget: undefined symbol或类似编译错误,大概率是 Homebrew 和 Xcode Command Line Tools 版本不匹配导致的。先运行brew update && brew upgrade,把 Homebrew 自身和依赖全部更新一遍,再重装 wget 一般能解决。

3.2 验证安装与最常用的wget命令

装完先验证:

wget --version

能看到GNU Wget 1.21.4之类的版本号,说明安装成功。接下来是几个最常用的场景。

普通下载,直接跟 URL:

wget https://example.com/file.zip

文件会以 URL 里的名字保存到当前目录,下载过程中会显示进度、速度、剩余时间。

改名保存,使用-O

wget -O myapp.tar.gz https://example.com/download/latest.tar.gz

适合那些 URL 里文件名没有意义的下载链接。

断点续传,使用-c

wget -c https://example.com/bigfile.iso

如果上次下载到一半断了,加上-c会接着下。注意:如果服务器不支持断点续传,wget 会提示改用--continue或者直接重新下载。

镜像整个网站,使用-r -l -np组合:

wget -r -l 2 -np https://docs.example.com/

-r开启递归,-l 2限制只抓取两层链接,-np表示不往上爬到上级目录。这个命令常用于把在线文档站拉下来离线阅读。

限速下载:

wget --limit-rate=500k https://example.com/video.mp4

单位可以是k(KB/s)、m(MB/s),适合在共享网络环境里避免占满带宽。

3.3 顺手装个wget2?新版本有什么不同

Homebrew 里还有一个 wget2,安装命令是:

brew install wget2

wget2 是 wget 的重写版本,最大卖点是支持 HTTP/2、多线程并发下载,理论上速度更快。但要注意,它的命令名是wget2,不是直接替换wget

什么时候需要 wget2?我个人的看法是,日常脚本和教程里出现的命令几乎都是wget,普通用户没必要追新。老版本 wget 的兼容性更好,网上大量现成的命令直接复制就能用,不折腾。只有当你明确需要 HTTP/2 或者更高并发下载,再去考虑 wget2。

4. 高频报错与一键修复方案

我见过太多人在这一步卡死。Homebrew 安装 wget 本身不难,难的是各种报错信息让人看不懂。这里我把最常见的几类问题整理出来,你遇到报错时可以直接对号入座。

4.1 网络类报错:raw.githubusercontent.com连接失败、克隆超时

典型报错一:

Failed to connect to raw.githubusercontent.com port 443: Connection refused

这个错误出现在执行官方安装脚本时,说明你的网络无法访问 GitHub 的原始文件服务器。修复方法是改用国内镜像安装脚本,也就是前面 2.2 小节里的 gitee 脚本,或者提前设置中科大镜像相关环境变量再跑官方脚本。注意要看清楚安装脚本来源是否可靠。

典型报错二:

fatal: unable to access 'https://github.com/Homebrew/brew/': Failed to connect to github.com port 443

安装过程中拉取 Homebrew 仓库失败。修复方法是先设置 Git 代理镜像,但这里我不建议新人折腾代理,直接重新用中科大镜像的安装命令,同时执行export HOMEBREW_NO_INSTALL_CLEANUP=1,减少安装时的额外网络请求。

典型报错三:

Cloning into '/tmp/homebrew-homebrew-core'... 然后长时间无反应

这是 Git 正在克隆仓库但网络速度极慢。可以先Ctrl+C中断,然后重新执行安装脚本并选择源。

4.2 权限类报错:/usr/local/Homebrew is not writable

这个报错多出现在 Intel Mac、或者之前装过 Homebrew 但后来系统升级过的机器上。因为系统升级后,/usr/local下部分目录的所有权被重置为 root,当前用户没有写入权限了。

典型报错:

Error: /usr/local/Homebrew is not writable.

修复方法是把关键目录的所有权还给当前用户,命令里的$(whoami)会自动替换成你的用户名:

sudo chown -R $(whoami) /usr/local/Homebrew /usr/local/Cellar /usr/local/Caskroom /usr/local/bin /usr/local/share /usr/local/var

输入密码后,再运行brew --version确认。需要提醒的是,这条命令只适用于/usr/local路径的 Intel Mac。如果你用的是 Apple Silicon Mac,Homebrew 在/opt/homebrew下,通常不会出现这个权限问题,除非你手动改过目录所有权。

4.3 PATH类报错:zsh: command not found

典型场景:安装时明明成功了,重启终端之后再敲brew,提示:

zsh: command not found: brew

问题出在 zsh 没有自动加载 Homebrew 的环境变量。Apple Silicon Mac 上修复方法如下:

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

Intel Mac 上一般用:

echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zprofile source ~/.zprofile

配置好之后,关掉终端重新打开,再输入brew --version应该就能正常识别。这类命令找不到的问题,其实不只影响 brew,后面 wget 如果提示command not found,同样要检查 PATH 是不是漏了。

4.4 下载与校验类报错:下载慢、Checksum mismatch

新装 Homebrew 后第一次brew install wget时,经常会遇到“下载慢得像蜗牛”的情况。这是因为 Homebrew 默认去 GitHub 下载预编译包。解决方法是在~/.zprofile里加入镜像源配置:

export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_NO_AUTO_UPDATE=1

其中HOMEBREW_BOTTLE_DOMAIN让 brew 从国内镜像下载软件包,HOMEBREW_NO_AUTO_UPDATE=1禁止每次安装软件前自动检查更新,能明显缩短等待时间。改完之后source ~/.zprofile生效。

另一个典型的下载类报错是:

Error: Checksum mismatch. Expected: 8a1c... Got: 9d4a...

意思是你下载到的安装包和官方记录的校验值对不上。多半是之前下载一半的缓存文件损坏了,或者镜像源和官方源文件不同步。修复方法清理 Homebrew 缓存后重试:

rm -rf "$(brew --cache)" brew install wget

brew --cache会返回 Homebrew 的缓存目录,删掉之后 brew 会强制重新下载,基本都能解决。

5. 日常使用技巧与维护建议

wget 装好之后,除了“能用”还要“用好”。这一章分享几个我实际使用中觉得最值的技巧,以及 Homebrew 的日常维护习惯。

5.1 wget的实用参数组合

很多新手背不住参数,我这里整理一张速查表,用的时候直接查。

参数作用示例
-O指定保存的文件名wget -O file.tar.gz URL
-c断点续传wget -c URL
-r递归下载wget -r URL
-l递归下载的最大层级wget -r -l 3 URL
-np不递归上一级目录wget -r -np URL
--limit-rate限制下载速度wget --limit-rate=1m URL
--tries设置最大重试次数wget --tries=5 URL
-b后台下载wget -b URL
--user-agent伪装请求头wget --user-agent="Mozilla/5.0" URL
-q静默模式,不输出日志wget -q URL

后台下载是我使用频率比较高的功能。比如半夜要下一个大文件,终端窗口又不能关,用了-b之后,命令会写入wget-log文件,你可以随时查看进度。日志文件默认生成在当前目录,用tail -f wget-log跟踪下载状态。

镜像整个网站这个功能也值得多说一句,很多工程师喜欢用wget -r -l 1 -np -k -p URL做整站离线备份。其中-k会把页面里的链接从绝对路径改成相对路径,-p会下载页面里引用的图片、CSS、JS 等静态资源。这样拉下来的网站在本地直接双击 HTML 就能正常浏览,非常方便。

5.2 Homebrew日常维护三条命令

Homebrew 跟手机应用商店一样,软件装在本地,但软件列表和版本信息需要经常更新。我的建议是每周抽两分钟做一次维护。

更新软件列表:

brew update

升级所有已安装的软件:

brew upgrade

清理旧版本和缓存文件:

brew cleanup -n

先加上-n看一眼哪些会被清掉,确认没问题再去掉-n正式清理。这样做的好处是避免 Homebrew 目录无限膨胀,尤其是/opt/homebrew/Cellar里堆满旧版本软件时,磁盘空间可能悄悄少了好几个 GB。

如果你用 Homebrew 装了服务类软件,比如 mysql、nginx,还可以用brew services list查看服务状态。这是 Homebrew 另一个隐藏能力,不过和 wget 无关,这里不多展开。

5.3 把wget下载变成习惯的几个场景

wget 不只是“下载文件”的命令,它还能帮你解决几个真实场景里的痛点。

场景一:下载 GitHub Release 里的附件。有时候网页访问慢,直接把附件地址给 wget,配合--tries-c挂着重试,体验往往比浏览器里傻等好。

场景二:批量下载某个页面里的所有图片。比如一个图集合集页面,运行wget -r -l 1 -nd -A jpg,png URL-nd表示不创建目录层级,-A指定只下载 jpg 和 png 文件。一圈下来图片全部落进当前文件夹。

场景三:给运维脚本提供稳定的下载源。写自动化脚本时,用wget --timeout=10 --tries=3 -q -O /tmp/installer.sh URL拉取安装脚本,能避免网络波动导致脚本中断。

我个人最常用的其实是断点续传。公司在弱网环境下载几个 GB 的安装镜像,以前浏览器下载一断就要重来,用上wget -c之后就再没犯过愁。

最后再分享一个使用心法:遇到任何报错,先别急着复制到搜索引擎,把终端里的第一行红色Error看完,再顺着往下看文件名、路径、权限这几个关键词,八成问题就定位了。Homebrew 的报错提示写得已经很友好,它往往会直接告诉你“什么东西访问不了”“哪个目录没有权限”。能读懂报错,比会背命令更重要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 23:31:24

Kali无线安全:WiFi密码暴力破解原理与WPA2/WPA3防御

1. 先把边界钉死:这从来不是"蹭网教程"Kali、暴力破解、WiFi密码,这三个词被绑在一起搜,多半是刚装完 Kali 虚拟机、看着一堆陌生工具不知道从哪下手的新人,也有相当一部分是好奇"隔壁的网能不能白嫖"。我在安…

作者头像 李华
网站建设 2026/9/16 23:31:20

从零散创意到技术落地的系统化方法

1. 项目概述作为一名从业多年的技术博主,我经常遇到一个困扰:当灵感来临时,常常随手记录下零散的想法或项目标题,但事后回顾却发现缺乏系统性的整理和深入挖掘。这种"无标题"状态下的创意火花,往往蕴含着巨大…

作者头像 李华
网站建设 2026/9/16 23:29:44

PLC与组态软件实现水箱水位控制系统实战

1. 项目概述与系统架构这个水箱水位控制系统是我去年在化工厂改造项目中实际应用的方案,核心目标是通过PLC实现水位精准控制,同时用组态软件搭建可视化监控界面。系统采用西门子S7-200 SMART PLC作为控制核心,搭配MCGS组态王进行人机交互&…

作者头像 李华
网站建设 2026/9/16 23:29:41

GVIM高效文本处理实战:三模式操作与配置优化

1. 为什么今天还要学 GVIM?——一个被低估的文本处理核心工具GVIM 不是古董,而是我每天打开频率最高的三个软件之一。很多人看到“VIM”两个字就下意识划走,觉得这是程序员才碰的硬核工具,或者以为它和 VS Code、Sublime Text 一样…

作者头像 李华
网站建设 2026/9/16 23:25:41

工控安全成熟度模型怎么用?从GB/T 41400-2026看企业安全能力落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华