macOS 开发环境搭建

发布于 2023-08-21 21:53:13 字数 15423 浏览 43 评论 0

macOS 是许多开发者最爱用的操作系统(这其中就包括了我自己)。本文将介绍 macOS 系统上的基础开发环境搭建。

如果你不使用 macOS,很显然,这篇文章不是为你准备的。

就我自己而言,我觉得 macOS 应该是最适合开发者使用的操作系统了。因为它不仅时尚,功能强大,而且包含了完整的 UNIX 体验。每次使用 Windows 的命令行,都让我厌恶至极。更不要说,M1 芯片的功耗要远胜 Windows 及 Intel 了(每当提到 Windows + Intel 这对组合,我的脑海中就不由的出现了呜呜的风扇声)。

本文不打算对比桌面操作系统的优劣性,也不打算写成一个万能通用的 macOS 开发者环境搭建百科全书(因为我不认为自己有这个能力)。

这篇文章的目的,仅仅是给最基础的开发者阅读,介绍几个最常用开发工具的安装方法。节省大家新拿到一台 Mac,或者重装系统的时间,仅此而已。

如果你是更换新的 Mac,使用 Time Machine 备份和恢复可能是最节省时间的方法。但是,对于有“洁癖”的人来说,不想继续背负旧电脑上各种隐藏的垃圾文件,重新设置一台电脑以保证干净整洁可能也是一个不错的选择。

考虑到国内的特殊环境,很多工具的官方服务器我们都无法正常访问。因此本文还隐含了一个目标就是:同时给出在国内网络下能够完成的开发环境构建方法。

本文写于 2021 年底,随着时间的流逝,有些内容可能会过期。考虑到一些国内镜像的稳定性,这个过期的速度可能会更快。另外一方面,随着我自己开发环境的变更,我所觉得的最常用开发工具的集合也会发生变化。

所以,这篇文章可能会是一次写完,后面不定期更新的文章。

本文测试所用的是最新的 macOS 系统: macOS Monterey 12.0.1 。使用别的版本可能会存在一些差异。

但事实上,Apple 的产品以及整个开源社区的版本兼容性做的还是相当好的。只要是最近的几个版本,几乎不会出现什么差异。

首先我们来说开发者最常用的工具:命令行工具。

单就 Terminal 这一点而言,Windows 就足以让我厌恶至极了:反人类的斜杠,反人类的 C 盘和 D 盘,反人类命令参数格式…庆幸的是,从我使用 Mac 这十多年以来,Windows 的命令行还是一样的丑陋和难用。

自 2019 年以来,从 macOS 10.15 Catalina 版本开始,Mac 已经将命令行工具从 bash 切换到 zsh。因此,本文仅仅讲解 zsh 的基本配置。

关于 zsh 的介绍可以自行查询 维基百科:zsh

之所以 Apple 将 Mac 的 shell 从 bash 换成 zsh,主要是 license 的原因

关于 zsh 好在哪,可以看一下知乎: 为什么说 zsh 是 shell 中的极品?

事实上,bash 并没有从 Mac 上消失。不过既然已经有了更好的工具,而且 Apple 已经帮我们设为默认,那我们也不必过于守旧。有更好的工具,花点时间适应,从长远来看,肯定是值得的。

如果你已经决定了使用 zsh,那么就一定不要错过 Oh My Zsh 。这是一个非常强大的扩展工具。它包含了非常多的主题以及插件。

通过下面这条命令就可以安装它:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

如果你的网络访问不了 github 的服务器,可以考虑国内的版本:

步骤一、在命令行切换到一个临时目录(例如:下载目录),下载码云版本的镜像包:

cd ~/Downloads
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh

如果你还没有安装 wget ,可以先跳到下面 Homebrew 章节,先安装 Homebrew,然后通过 brew install wget 安装。

步骤二、替换脚本中原始链接为码云版本:

REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}

替换为:

REPO=${REPO:-mirrors/oh-my-zsh}
REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}

步骤三、给予 install.sh 可执行权限,然后运行它:

chmod a+x install.sh
ZSH= sh install.sh

步骤四、安装完成之后便可以删除 install.sh 了。

oh-my-zsh 会被安装在 ~/.oh-my-zsh 目录下。一旦安装好之后我们就可以继续折腾了。

oh-my-zsh 包含了非常多的主题,你可以通过下面命令找到它们:

Githuh 上的这个网页 提供了预览。

通过修改 ~/.zshrc 中的 ZSH_THEM 就可以更换主题了,例如: ZSH_THEME=robbyrussell

不仅仅是美观,oh-my-zsh 还包含了很多实用功能,即: 几百个插件 。这些插件可以简化命令的使用。由于范围太广,请根据自己的需要使能。

除了自带的几百个插件,还有这两个自定义插件尤其值得推荐: Oh my zsh with autosuggestions & syntax-highlighting

如果你不想安装 oh-my-zsh,有兴趣自己配置 zsh,可以从这篇文章开始: Scripting OS X: Moving to zsh

当我们需要做 C/C++项目时(例如:当我们需要 clanggccgit 这些命令),Xcode 就是一个几乎必须的工具了。

Apple 为开发者提供了两个选择:

  • Xcode Command Line Tools:一个比较小的软件包,你可以通过 xcode-select –install 命令安装它。
  • Xcode App:一个完整 IDE,同时包含了命令行工具。你可以通过 Mac App Store 安装它。

当然,你还可以通过开发者网站手动下载和安装它们: https://developer.apple.com/download/all/

对于大部分人来说,如果你不是 Apple 平台的开发者,通常体积更小的 Xcode Command Line Tools 更适合你。

为 Xcode 瘦身

作为本文的读者,如何安装 Xcode 我想不需要做过多的说明了。

如果你已经安装 Xcode App,那 Xcode Command Line Tools 就没有存在的必要了,它位于这个路径: /Library/Developer/CommandLineTools 。你可以考虑将其删除:

sudo rm -rf /Library/Developer/CommandLineTools

在你删除了这个目录之后,你可能发现 gcc 无法使用了。

这说明你的 gcc 绑定的就是 Command Line Tools 目录下的。

不过不要紧,接下来你可以通过下面这个命令切换 gcc 绑定到 Xcode App 目录下:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

你可以通过 gcc --version 确认绑定的结果:

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: x86_64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

删除 Command Line Tools 这还不够,Xcode 单单一个应用就占用了几十个 G 的空间,很显然,这里面有很多内容不是我们所有人都需要的。

首先在 Finder 中右键选择“查看显示选项”,然后勾选“计算所有大小”:

然后通过下面这条命令打开 Xcode 所在的目录:

open /Applications/Xcode.app/Contents

这下可以直观的看到 Xcode 每个目录占用的空间了:

Platforms 下的各平台子目录占用太多空间了。如果你不做 TV 和 Watch 开发,这些目录就对你没太大用处了。

如果你删除了上面这两个目录,下次升级安装 Xcode 之后,它们可能还会回来。那只能再删一次了。好在 Xcode 的版本更新频度很低,基本上是和 macOS 以及 iOS 版本节奏一致的。

除了 Xcode App 中包含的内容,以下两个目录你可能也想把它们删除掉:

具体这两个目录的作用,可以点击链接查看。

接下来是一个强烈推荐的工具:Homebrew。

Homebrew 是一个包管理工具,它支持 Mac 和 Linux。用它我们可以方便的安装各种其他工具。

除了 Homebrew,Mac 上还有一个独占的包管理工具: MacPorts

官网安装

Homebrew 的官网是: https://brew.sh 。通过下面的命令可以一键安装它:

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

当然,国内的网络环境可能无法正常访问上面的服务器。并且,就算你运气好安装上了,今后通过 brew 安装新的包时,还要再再次连接国外的服务器,这常常慢到让人无法接受。

所以更推荐下面这种方法:通过国内的源安装。

国内清华镜像安装

Homebrew 在国内 有不止一种源

我个人通常使用清华的镜像源,速度比较快,也比较稳定。你可以访问这里获取相关信息: Homebrew / Linuxbrew 镜像使用帮助 。这个文档中包含了详细的步骤,我就不拷贝粘贴了。

请确保将以下三个环境变量添加到你的 shell 环境中(例如, ~/.zshrc 或者是 ~/.bashrc 中):

export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"

这是确保今后使用国内源安装和更新的关键(这决定了使用的速度,因此也是使用体验的关键)。

你可以通过 brew config 确认配置是否生效:

brew config
HOMEBREW_VERSION: 3.3.4
ORIGIN: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
HEAD: 819eea5669807c1cf29e0d29985fc765ad7a9597
Last commit: 5 days ago
Core tap ORIGIN: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
Core tap HEAD: 4567f25b438ff644424f934d339f06688514e67b
Core tap last commit: 12 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_BOTTLE_DOMAIN: https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
HOMEBREW_BREW_GIT_REMOTE: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
HOMEBREW_CASK_OPTS: []
HOMEBREW_CORE_GIT_REMOTE: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
HOMEBREW_MAKE_JOBS: 16
Homebrew Ruby: 2.6.8 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: 16-core 64-bit skylake
Clang: 13.0.0 build 1300
Git: 2.30.1 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.77.0 => /usr/bin/curl
macOS: 12.0.1-x86_64
CLT: 11.0.0.33.16
Xcode: 13.1

有了 Homebrew 之后,安装其他工具就非常的方便了。下面这条命令便直接安装了 nodenpm

npm 是 JavaScript 的包管理工具。很自然的,它的默认软件包源(npm 称之为 registry)也在国外,所以我们要继续使用国内的源代替。

国内源

同样的,npm 国内也有 好几个不同的镜像源

我个人通常使用的 taobao 的镜像 。你可以下面这条命令切换镜像源:

npm config set registry https://registry.npmmirror.com/

我通常是直接修改 ~/.npmrc 文件来设置源:

cat ~/.npmrc 
registry=https://registry.npmmirror.com

你可以通过 npm config list 来确认源配置环境:

npm config list    
; "builtin" config from /usr/local/lib/node_modules/npm/npmrc

prefix = "/usr/local" 

; "user" config from /Users/paul/.npmrc

registry = "https://registry.npmmirror.com/" 

; node bin location = /usr/local/Cellar/node/17.0.1/bin/node
; cwd = /Users/paul
; HOME = /Users/paul
; Run `npm config ls -l` to show all defaults.

Python

Mac 自带了 Python 2.7。但它其实已经 于 2020 年退休了

作为一个严肃的开发者,如果不是处理遗留项目,你更应该选择 Python 3。

如果你安装了最新版本的 Xcode,它已经自带了 Python 3。如果你没有,那你可以到 Python 的官网上下载自行安装: Python Releases for macOS

当然,如果你安装了 Homebrew,更好的方法是通过它来安装:

Python 通过 pip 来安装软件包。Python 3 对应的是 pip3 。为了彻底使用 Python 3 代替 Python 2,请将下面两个别名加到的 shell 配置文件中(例如: .zshrc 或者 .bashrc ):

alias python="python3"
alias pip="pip3"

在命令行环境下,我们常常要编辑文本文件,这个时候我通常会使用 Vim,其命令是 vi

如果你还没有听说过或者用过 Vim,那么你一定还是个新人,赶紧了解一下吧: 为什么不少程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻?

Mac 自带了 Vim,你通常不需要安装它。

开源世界的玩法是:官方版本只包含了基础功能,更多的功能是通过扩展和插件来完成的。所以如果你用 Vim 比较多,那么下面两个工具可能让你根据得心应手:

如果你无法访问 github,我已经将这两个包放在这里: vimrc-master.zipmaximum-awesome-master.zip 。这种方法你获取到的可能不是最新版的软件包,但好在这些工具都非常稳定,更新频率很低。

获取 The Ultimate vimrc 之后你可以通过下面的命令选择安装基础版,还是完全版。首先将它移动到需要的目录,然后安装:

mv vimrc-master ~/.vim_runtime

sh ~/.vim_runtime/install_basic_vimrc.sh
sh ~/.vim_runtime/install_awesome_vimrc.sh

安装 Maximum Awesome 的方法也很简单,切换的相应目录执行 rake 即可:

这一步需要连接 github 服务器,目前还没找到国内代替的方法。

cd ~/Downloads/maximum-awesome-master
rake

这一步会自动安装一系列的软件:

paul:/Users/paul/Downloads/maximum-awesome-master$ rake

-- Homebrew --------------------------------------------------------------------

-- the_silver_searcher ---------------------------------------------------------

-- iterm2 ----------------------------------------------------------------------

-- ctags -----------------------------------------------------------------------

-- reattach-to-user-namespace --------------------------------------------------

-- tmux ------------------------------------------------------------------------

-- MacVim ----------------------------------------------------------------------
Please add ~/bin to your PATH, e.g. run this command:

  echo 'export PATH="~/bin:$PATH"' >> ~/.bashrc

The exact command and file will vary by your shell and configuration.
You may need to restart your shell.

-- symlink ---------------------------------------------------------------------

-- vundle ----------------------------------------------------------------------
~/bin/vim -c "PluginInstall!" -c "q" -c "q"

-- iterm2 colorschemes ---------------------------------------------------------
2021-11-23 13:58:27.444 defaults[22234:673936] 
The domain/default pair of (com.googlecode.iterm2, Custom Color Presets) does not exist
open -a /Applications/iTerm.app /Users/paul/Downloads/maximum-awesome-master/iterm2-colors-solarized/Solarized Dark.itermcolors
open -a /Applications/iTerm.app /Users/paul/Downloads/maximum-awesome-master/iterm2-colors-solarized/Solarized Light.itermcolors

-- iterm2 profiles -------------------------------------------------------------

  Your turn!

  Go and manually set up Solarized Light and Dark profiles in iTerm2.
  (You can do this in 'Preferences' -> 'Profiles' by adding a new profile,
  then clicking the 'Colors' tab, 'Load Presets...' and choosing a Solarized option.)
  Also be sure to set Terminal Type to 'xterm-256color' in the 'Terminal' tab.

  Enjoy!

其中还包含了好多个 Vim 插件:

这样配置之后,你的 Vim 就会用起来更加顺手了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

小糖芽

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文