ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

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 SiliconM 系列芯片。你也可以点击左上角苹果图标 - 关于本机处理器一栏看是 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_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git export HOMEBREW_BOTTLE_DOMAINhttps://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 芯片的 MacHomebrew 默认装在/opt/homebrewIntel 芯片的 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你会看到终端先输出一串依赖包名称比如libidn2、libunistring、openssl3这是因为 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之类的版本号说明安装成功。接下来是几个最常用的场景。普通下载直接跟 URLwget https://example.com/file.zip文件会以 URL 里的名字保存到当前目录下载过程中会显示进度、速度、剩余时间。改名保存使用-Owget -O myapp.tar.gz https://example.com/download/latest.tar.gz适合那些 URL 里文件名没有意义的下载链接。断点续传使用-cwget -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-rate500k https://example.com/video.mp4单位可以是kKB/s、mMB/s适合在共享网络环境里避免占满带宽。3.3 顺手装个wget2新版本有什么不同Homebrew 里还有一个 wget2安装命令是brew install wget2wget2 是 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_CLEANUP1减少安装时的额外网络请求。典型报错三Cloning into /tmp/homebrew-homebrew-core... 然后长时间无反应这是 Git 正在克隆仓库但网络速度极慢。可以先CtrlC中断然后重新执行安装脚本并选择源。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 MacHomebrew 在/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 ~/.zprofileIntel 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_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles/api export HOMEBREW_BOTTLE_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles export HOMEBREW_NO_AUTO_UPDATE1其中HOMEBREW_BOTTLE_DOMAIN让 brew 从国内镜像下载软件包HOMEBREW_NO_AUTO_UPDATE1禁止每次安装软件前自动检查更新能明显缩短等待时间。改完之后source ~/.zprofile生效。另一个典型的下载类报错是Error: Checksum mismatch. Expected: 8a1c... Got: 9d4a...意思是你下载到的安装包和官方记录的校验值对不上。多半是之前下载一半的缓存文件损坏了或者镜像源和官方源文件不同步。修复方法清理 Homebrew 缓存后重试rm -rf $(brew --cache) brew install wgetbrew --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-rate1m URL--tries设置最大重试次数wget --tries5 URL-b后台下载wget -b URL--user-agent伪装请求头wget --user-agentMozilla/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 --timeout10 --tries3 -q -O /tmp/installer.sh URL拉取安装脚本能避免网络波动导致脚本中断。我个人最常用的其实是断点续传。公司在弱网环境下载几个 GB 的安装镜像以前浏览器下载一断就要重来用上wget -c之后就再没犯过愁。最后再分享一个使用心法遇到任何报错先别急着复制到搜索引擎把终端里的第一行红色Error看完再顺着往下看文件名、路径、权限这几个关键词八成问题就定位了。Homebrew 的报错提示写得已经很友好它往往会直接告诉你“什么东西访问不了”“哪个目录没有权限”。能读懂报错比会背命令更重要。
返回列表