Homebrew包管理器可让您轻松地在Mac上安装和更新应用程序和实用程序。在我寻求“自动化一切”的过程中,我一直在用代码管理我的Mac笔记本电脑。与其使用鼠标或触控板手动管理我的应用程序和实用程序,我更喜欢使用包管理软件来安装、更新和删除不需要的软件。这对Mac用户来说是一个挑战。Mac的操作系统macOS一直落后于Linux的一个地方是包管理。Mac用户没有默认的包管理器,而Linux用户有很多选择——从熟悉的yum和apt到现代的Flatpak。但是Mac呢?这就是Homebrew所做的。Homebrew(自制软件)填补了作为MacOS事实上的包管理器的空白(它也是Linux的可选包管理器)。它为任何熟悉命令行的人提供了令人难以置信的流畅和直接的体验,如果您是新手,这是学习命令行的好方法。(LCTT译注:Homebrew系统使用了很多与homebrew相关的比喻,你在使用过程中会发现这些有趣的描述。)如果你的Mac上没有Homebrew,你可以这样安装:$/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)"此命令将执行Homebrew团队提供的安装程序脚本。如果您想更谨慎一些,可以卷起此文件,查看它,然后手动运行它。$curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh--outputhomebrew_installer.sh$morehomebrew_installer.sh#审核脚本直到你觉得没问题$bashhomebrew_installer.sh使用“brew”来管理你的命令行实用程序Homebrew声称它“安装了Apple(或你的Linux系统)默认情况下不安装的基本东西”。安装是通过brew(酿造)命令进行的,它使我们能够访问数以千计的命令行实用程序,但不能访问更复杂的应用程序。对于我们这些更懂技术的人来说,属于“必备”类别的实用程序包括显示目录结构的便捷树命令和我用来管理多个Python版本的pyenv。你可以使用search子命令查看Homebrew中所有的“秘方”,我使用wc命令来显示有多少个“秘方”。#-l计数行$brewsearch|wc-l5013有超过5000个“秘方”,这是一个令人难以置信的软件量。所以,在搜索那个庞大的列表之前,最好先了解一下自己想要什么。值得庆幸的是,它很容易浏览。“食谱”被编码并集中存储在核心存储库中,该存储库按操作系统(HomebrewCore中的Mac,LinuxCore中的Linux)进行划分。它们也可以通过HomebrewAPI和网站列出。口口相传是另一种找到实用性的好方法。考虑到这一点,如果你正在寻找灵感,这里有一些我最喜欢的:pyenv、rbenv和nodenv,分别用于管理Python、Ruby和Node.js的版本;用于可编写脚本的图像编辑的imagemagick;用于可编写脚本的图像编辑的pandoc;脚本文件转换(我经常从.docx切换到.md或.html)中心为GitHub用户提供更好的Git体验。tldr提供了如何使用命令行工具的示例。例如,查看tldr页面,它是滚动浏览应用程序手册页的一种用户友好的替代方法。您可以通过再次运行搜索来确认它可用:$brewsearchtldr==>Formulaetldr?成功!此勾号让您知道它可用。现在你可以安装它了:$brewinstalltldr==>下载https://homebrew.bintray.com/bottles/tldr-1.3.0_2.catalina.bottle.tar.gz已经下载:/Users/mbbroberg/Library/Caches/Homebrew/downloads/901bc14594a9283e9ab20aec942dc5a9a2befb7e96e1b0fcccb4e3257918813c--tldr-1.3.0_2.catalina.bottle.tar.gz==>安装tldr==>浇注tldr-1.3.0_2.catalina.z6Vbottle2.tar/usr/local/Cellar/tldr/1.3.0_2:6个文件,35.5KB值得庆幸的是,Homebrew带有预构建的二进制文件,因此您不必在本地计算机上从源代码构建。这样可以节省很多时间,也消除了CPU风扇的噪音。我对Homebrew表示赞赏的另一件事是,您可以在不完全理解其含义的情况下欣赏此功能。但如果你愿意,看复杂的东西也很有趣。在tldr上运行info子命令,你可以看到所有的依赖管理、源代码,甚至公共分析。$brewinfotldrtldr:稳定版1.3.0(瓶装)、HEADSimplified和社区驱动的手册页https://tldr.sh/与:tealdeer冲突(因为两者都安装了`tldr`二进制文件)/usr/local/Cellar/tldr/1.3.0_2(6个文件,35.5KB)*于2020-05-2015:12:12从瓶子中倒出来自:https://github.com/Homebrew/homebrew-core/blob/master/Formula/tldr.rb==>DependenciesBuild:pkg-config?Required:libzip?==>Options--HEADInstallHEADversion==>Analyticsinstall:2,811(30天)、7,875(90天)、27,105(365天)按需安装:2,806(30天)、7,860(90天)、27,080(365天)构建错误:0(30天)最后,与任何优秀的包管理器一样,Homebrew的brewuninstall子命令可用于快速清理和删除未使用的实用程序。使用“酒桶”管理您的应用程序命令行实用程序是一头孤狼,但是完整的应用程序呢?Homebrew保持其标准命令简单,并且仅通过其默认的brew命令行界面安装单文件应用程序。而应用程序不符合这种结构。它们的目录层次结构更复杂,比单个二进制文件复杂得多。幸运的是,Mac上的Homebrew包含一个名为cask(木桶)的子命令,用于处理更复杂的多目录结构。特别好的是cask使用与标准brew命令类似的命令结构,因此您可以使用类似的搜索、安装和信息子命令:brewsearch--cask|wc-l4772哇,有将近5000个应用程序,在Homebrew的网站上浏览更容易。我将使用我最喜欢的应用程序之一带您了解木桶。Meld(我在Opensource.com上读到过)。这是一个功能丰富的编辑器,有助于管理合并冲突。它的网站上有一个下载链接,我可以运行安装程序,然后将其拖放到我的应用程序文件夹中。但我不想再这样做了,我正在使用Homebrew。首先,我可以确认它使用稍微不同的语法来工作:$brewsearch--casksmeld==>Casksmeld然后我使用cask子命令安装它:$brewcaskinstallmeld==>下载https://github。com/yousseb/meld/releases/download/osx-19/meldmerge.dmg==>从https://github-production-release-asset-2e65be.s3.amazonaws.com/28624006/66cb25#####下载#####################################################################100.0%==>验证Cask'meld'的SHA-256校验和。==>安装Caskmeld==>移动应用'Meld.app'到'/Applications/Meld.app'。==>将二进制'meld.wrapper.sh'链接到'/usr/local/bin/meld'。🍺meld安装成功!Homebrew不仅安装了应用程序,还在我当前路径/usr/local/bin/下提供了它。现在,我可以从命令行运行meld或从应用程序文件夹启动应用程序。更新所有内容的“brew升级”我一直使用包管理器的主要原因是我可以不断升级我的软件以避免已知的安全漏洞并确保我始终拥有最新的功能。如果我手动安装所有东西,我必须密切关注每个工具和应用程序,看它是否有自动更新程序,如果没有,我必须自己拉回最新版本。升级功能是良好的包管理的亮点。由于我没有任何特殊的版本要求,我只需要运行一条命令就可以顺利更新所有内容:$brewupgrade==>Upgrading6outdatedpackages:helm3.2.1->3.2.2python@3.83.8.2_4->3.8.3ipython7.14.0->7.15.0go1.14.2_1->1.14.3libzip1.6.1->1.6.1_1sqlite3.31.1->3.32.1如果你有更复杂的需求,或者想安装前注意升级升级的话,有很多功能标志可以选择。例如,-n提供一个“虚拟运行”,列出可用的升级而不安装它们。您还可以“固定”应用程序版本以防止其升级。备份您的安装当此工具允许您像其他点文件版本控制方案一样备份您的安装环境时,命令行实用程序和应用程序管理跳到一个全新的水平。Homebrew有这样的功能,可以在dump子命令下使用。它生成一个Brewfile,它是所有当前已安装工具的可重用列表。要从你安装的环境中生成一个,转到你合适的文件夹并运行:$cd~/Development/dotfiles#Thisismydotfilesfolder$brewbundledump当我更换机器时,我想使用当Homebrew安装相同的应用程序时,我进入包含Brewfile的文件夹并运行它。$brewbundle它将安装我的新机器上列出的所有“配方”和“桶”。使用Homebrew进行包管理Homebrew是我的命令行工具和应用程序的首选管理器。它让我井井有条并保持最新状态,其设计在易用性和功能深度之间取得了完美的平衡。Homebrew将包管理的细节最小化到只有你需要知道的程度,大多数用户都会从中受益。如果您已经熟悉Linux包管理器,您可能会认为Homebrew太简单了,但不要将Homebrew的易用性误认为是缺乏功能。看得更深一点,您会发现许多高级选项,远远超出我在这里向您展示的内容。将-h添加到任何brew子命令会显示大量功能,可用于升级、删除、故障排除,甚至使用模板贡献新的“配方”。总的来说,Homebrew可以让命令行重度Mac用户非常开心。此外,它是开源的,因此您可以根据需要贡献代码。试一试,请在下方发表评论让我知道您的想法。
