MAC机后端开发必备

2023-10-27

开篇:

相信很多日常使用 MAC 进行软件开发的同学会有一种感受,在换 MAC 机的时候,拿到的都是一些裸系统,有一些常用必备的软件需要重新来安装一遍。我也遇到几次这样的问题,发现每次配置开发环境时都要安装这么几个方便好用的工具,在这总结一下,备忘踩过的坑。

有意思的是,之前使用的都是 Intel 芯片的 MAC 机,这次换成了 M1 的了。一般服务器使用的都是 Intel 芯片,自然很多服务器软件平台对 Intel 芯片支持的较好,对 M1 的支持不是那么好,使用的时候自然会遇到很多问题,只能兵来将挡,水来土掩,慢慢填坑了。

安装brew

安装 brew 之前,先安装好 Xcode、Git,

安装好 brew 后,再安装 iterm2,配置 iterm2 的自定义主题,

Vim自定义配置

通用IDE,安装 VSCode 及常用插件

抓包,安装 Charles、Wireshark

容器,安装 Docker

电子书,安装 Kindle

访达偏好设置

MAC 根目录创建工作文件夹并挂载出来


XCode、Git、brew

brew(Homebrew),Mac上的包管理器,包管理器可以让你安装和更新程序变得更方便,目前在 OS X 系统中最受欢迎的包管理器是 Homebrew,类似 Linux 中的 yum。Mac上有Homebrew和Homebrew-cask,它俩之间的区别可以参考之前的记录:Mac上的Homebrew和Homebrew-cask_满守园的博客-CSDN博客_mac 类似homebrew

安装 brew 时,执行以下命令,

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

如果在执行安装命令时,遇到各种源的问题,可以换成 国内源 执行,

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

上面的脚本首先会安装 XCode 和 XCode Command Line Tools,然后去安装 brew,安装 brew 的时候会去 Github 下载,所以你首先要安装 Git。MAC 安装 Git,可以去 Git - Downloads 下载 Binary installer 二进制安装,也可以直接安装 XCode,XCode 中包含 Git 组件。MacBook安装Git三种方式 - 简书

在安装 Homebrew 之前,将 Xcode Command Line Tools 安装完成,这样就可以使用基于 Xcode Command Line Tools 编译的 Homebrew。如果没有安装 tools,会报下面的错误。

xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
安装Git后再运行此脚本,在系统弹窗中点击“安装”按钮
        如果没有弹窗的老系统,需要自己下载安装:https://sourceforge.net/projects/git-osx-installer/ 
xcode-select: note: install requested for command line developer tools

但有过体验的同学会知道,安装 XCode 是一个很漫长的过程,网速慢点的话动辄6-7小时,还有可能遇到XCode在安装时卡住了的情况,所以建议先在 App Store 或苹果开发者网站中下载安装好 XCode,再来执行上面的命令,这个过程就需要你的 Apple ID 了。

紧接着,安装 XCode Command Line Tools,执行命令,按照指引安装即可。

xcode-select --install

但如果在上述命令执行过程中卡住了(我在下载Xcode命令行工具的过程中卡住了),就可以放弃这个命令执行,选择去苹果开发者网站Download页面下载操作系统支持的最新命令行工具包 dmg 文件来安装,这个过程需要 Apple ID。

注:如果你不是一名 iOS 或 OS X 开发者,可以跳过 XCode 的安装,直接安装 XCode Command Line Tools。安装完成后,你将可以直接在 terminal 中使用主要的命令,比如:make, GCC, clang, perl, svn, git, size, strip, strings, libtool, cpp 等等。如果你想了解 XCode Command Line Tools 包含多少可用的命令,可以到 /Library/Developer/CommandLineTools/ 查看。

mac 安装Homebrew提示brew command not found错误的解决方法-陈新明博客

mac装机系列:安装brew&常见问题_Lvan的前端生活的博客-CSDN博客_mac repo 安装

Macbook Pro M1如何安装Arm版和intel版的Homebrew | 贪吃的夜猫子

mac m1芯片安装homebrew完整版_理想地芳华的博客-程序员信息网_m1芯片安装homebrew - 程序员信息网

HomeBrew和HomeBrew cask的安装和使用 - 知乎

homebrew的安装和一些常用指令_L8Higher的博客-CSDN博客

安装好 Homebrew 后,我们需要让通过 Hombrew 安装的程序的启动链接 (一般 intel CPU 的在 /usr/local/bin 中,M1 arm CPU 的在 /opt/homebrew/bin 中)可以直接运行,无需将完整路径写出。通过以下命令将 /usr/local/bin 添加至 $PATH 环境变量中,

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

运行下面的命令,检查是否安装成功。安装完成后,Homwbrew 会将本地 /usr/local 初始化为 git 的工作树,并将目录所有者变更为当前所操作的用户,将来 brew 的相关操作不需要 sudo。

brew doctor

brew tap 命令将更多存储库添加到 Homebrew 跟踪、更新和安装的公式列表中。默认情况下, tap 假定存储库来自 GitHub,但该命令不限于任何一个位置。

brew tag 功能

MAC homebrew的tap功能详解_马克88的博客-CSDN博客_brew tap


iterm2

Linux 上除了原生终端,还有类似终结者 Terminator 终端。类似地,Mac 自带的终端,用起来虽然有些不太方便,但还可以,MAC 上也有一款终端 iterm2,功能强大,非常方便,先贴图。 

iterm2 安装方法网上有很多文章,这里可以参考

Mac OS 终端利器 iTerm2 - 田园里的蟋蟀 - 博客园

Mac下终端工具iTerm2安装 - 简书

安装完后,可以安装各种插件来优化,比如配置 iterm2 主题、窗体半透明、设置背景图片、配置 / 卸载 Oh My Zsh、配置 Meslo 字体、声明高亮、自动建议填充、左右键跳转、快速显示和隐藏、隐藏用户名和主机名、配置代理、iterm2 快捷键。

关于终端窗体透明度,iterm2 中,左上角 iTerm2->preferences->Profiles,右侧找到 window 选项卡,拖动Transparency 调整。

关于使用 item2 + oh my zsh 优化终端体验,可参考

使用item2+oh my zsh优化终端体验 - 云+社区 - 腾讯云

MAC终端神器iterm2——告别黑白 - xiaobe - 博客园

mac下iterm配色、半透明与样式设置_thatway_wp的博客-CSDN博客_iterm 样式

iTerm2 如何设置半透明窗口? - 知乎

$ vi .bashrc
# iTerm 2

#enables colorin the terminal bash shell export
export CLICOLOR=1

#setsup thecolor scheme for list export
export LSCOLORS=gxfxcxdxbxegedabagacad

#enables colorfor iTerm
export TERM=xterm-256color

注意,安装好 oh my zsh 之后,需要把 Zsh 设置为当前用户的默认 Shell,这样新建标签的时候才会使用 Zsh。

关于 iterm2 中 agnoster 主题乱码,可参考

zsh主题agnoster的配置和乱码问题的解决 · Issue #33 · ccyongzhi/the-Learned · GitHub

agnoster主题乱码问题 - 云+社区 - 腾讯云

关于 iterm2 中文乱码,可参考

iTerm2连接远程,中文乱码_大道泛兮的博客-CSDN博客_iterm2 中文乱码


VSCode

工欲善其事,必先利其器。

开发必须要有一款合适的 IDE,VSCode 免费、开源、较轻量,支持多插件等特性,可支持多种语言的开发工作,比如 C++、Go、PHP、JS、Python、Java 等等,目前是个不错的选择。

虽然各个语言有各自专门的IDE,比如 PHP的 PhpStorm、Web前端的WebStorm,Go的 GoLand,Python的 Pycharm、Anacode,Java的 IntelliJ IDEA,C++的 Visual Studio 系列、CodeBlock等,但这些语言定制性太强,个人认为是优点也是缺点,如果对于多语言开发技术栈的同学来说,有一个统一的编辑器,安装不同的插件来适配不同的开发语言环境,是个不错的选择。

VSCode安装和配置_满守园的博客-CSDN博客_vscode安装配置

搭建Go开发环境,开发 RPC 服务(MAC)_满守园的博客-CSDN博客

How To Change the VSCode Terminal Font Size

2022年前端小白必看VSCode常用插件和好用配置总结-VSCode-PHP中文网

VS Code配置Go语言开发环境 | 李文周的博客

使用 VSCode 配置 Go 开发环境_mob604756fec84d的技术博客_51CTO博客


vim 配置

Linux 系统上的一款文本编辑器,它是操作 Linux 的一款利器,有一套强大的 Vim 配置非常方便。

一份方便的 Vim 配置_满守园的博客-CSDN博客

常用 vi 命令总结,可参考

Linux vi 命令 + 命令行 快捷操作_满守园的博客-CSDN博客

关于 vim 其他风格配置的文章很多,可参考

Vim的终极配置方案,完美的写代码界面! ——.vimrc_amoscykl的博客-CSDN博客_vimrc

我的 vim 配置文件 .vimrc - 掘金

精通 VIM ,此文就够了 - 知乎

vim插件管理器:Vundle的介绍及安装(很全)_zhangpower1993的博客-CSDN博客_vundle

使用Vim插件管理器Vundle - 简书


MAC 根目录创建工作文件夹并挂载出来

拿到新的 MAC 后,你可能想在访达的位置挂载出自己的工作空间,专门用来存放自己的重要工作文件,可以方便的索引到自己的工作空间。

姿势

在自己的 home 目录下创建 workspace 目录,接着

$ sudo vi /etc/synthetic.conf
WorkSpace    /User/shouyuan/workspace

WorkSpace 换成你要创建的文件夹,后面是映射目录,注意,中间是 Tab,不是空格。

重启系统后,系统根目录出现了对应的文件夹,这个文件夹是一个软链接,链接到了前面写的映射目录中。

我在电脑根目录下创建了一个 workspace 的软链接,实际存储在 /User/shouyuan 这个目录中。

如何在macOS根目录创建文件夹 - 知乎

mac根目录创建文件/文件夹_m0_60868404的博客-CSDN博客_mac根目录创建文件夹

mac Apple M1 在根目录无法创建文件和文件夹 mkdir: /data : Read-only file system_youwen21的博客-CSDN博客

或者,换一种简单的方法, 

打开“访达——偏好设置——边栏”,动态设置边栏的内容,需要显示什么就勾选什么。

直接拖动 workspace 文件夹到边栏适当的位置,然后松开鼠标即可完成。


 

Alfred  Alfred从入门到精通:Alfred的基础入门操作 - 知乎

sublime text 一款强大的文本编辑器

Kindle 看电子书必备

访达的偏好设置(习惯设置边栏靠左)

还有其他一些方便的软件,比如思维导图工具、Beyond Compare等,安装就比较简单。

参考

Mac 开发配置手册 - 一生守候 - 博客园

苹果电脑为什么要换 CPU:Intel 与 ARM 的战争 - 阮一峰的网络日志

https://www.tiaotiaowen.com/articles/ih3dnm

Have Fun

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MAC机后端开发必备 的相关文章

  • 已安装的不带依赖项的 MacPort 列表

    当我做port installed 我得到了数百个无用的项目列表 然而 其中只有少数是我实际安装的第一手端口 其余的都是我不需要直接关联的依赖项 有没有办法只列出我实际安装的端口 即 那些我在命令行手动输入的 比如顶级节点列表或安装历史文件
  • 无论 Rosetta 如何,获取 M1 Mac 的真实架构

    我需要检索 Mac 的真实架构 无论该进程是否通过 Rosetta 运行 现在在 Node js 中 process arch回报x64并在外壳中 uname m回报x86 64 感谢 Ouroborus 这张纸条 https develo
  • Mac OS X 上的 ASP.NET MVC 5

    我想了解如何在运行 OS X 10 10 5 的 Mac 上使用 Microsoft ASP NET 框架构建网站 我将跟随一个使用 ASP NET MVC 5 的在线课程 到目前为止我读过的所有教程都说要使用Homebrew http b
  • 为什么我无法在 OS X 上更改 tkMessagebox.askyesno() 上的图标?

    tkMessageBox askyesno Title Message icon tkMessageBox WARNING 在 OS X 上只给我火箭图标 我知道 OS X 和 tkMessageBox 图标有些奇怪 因为tkMessage
  • 如何在 Mac OS X 中获取 aio 信号处理程序的用户数据

    我尝试在 Mac OS X 下使用 aio 函数进行异步文件 IO 但在将某种形式的用户数据输入信号处理程序时遇到问题 这是设置操作的代码 class aio context public aio context int fildes bo
  • Python libusb pyusb“mach-o,但架构错误”

    我在使用 pyusb 模块时遇到一些问题 我已将问题范围缩小到一行 并创建了一个小示例脚本来复制错误 usr bin env python This module was created to isolate the problem in
  • 为什么 NSToolbarItem 自动被禁用?

    我的 Mac 幻灯片应用程序工具栏中的按钮有点问题 我希望在没有活动幻灯片时禁用这些按钮 在有活动幻灯片时启用这些按钮 为了实现这一点 我设置了按钮isEnabled财产给false在开始时 我已经尝试过 Interface Builder
  • MacOS 每秒唤醒次数错误

    构建 Rails 应用程序 ruby 2 4 0p0 Rails 5 1 4 并使用我的 Macbook Air MacOS High Sierra 10 13 2 进行本地测试 我不断遇到此问题 过去 241 秒内有 45001 次唤醒
  • CGContextDrawImage 绘制非常模糊的大图像

    我正在尝试制作一个可以使用 CGContextDrawImage 绘制大图像 例如 2048 x 1537 图像的一部分的对象 它工作得很好 只是它非常模糊 我正在使用一个 drawingController 它覆盖了drawLayer i
  • 从内存加载动态库

    是否可以从内存而不是从 mac gcc 上的文件系统加载库 在 Windows 中 我使用 MemoryModule 但它显然不跨平台兼容 首先 要做到这一点 我建议您阅读OS X ABI 动态加载器参考 https developer a
  • 更新 Mac OS 10.7 的 grep

    我想将 Mac 上的 grep 更新到比 Mac OS 10 7 2 附带的 2 5 1 更新的版本 我的问题是 为 Mac 更新 grep 或任何类似程序 的最佳方法是什么 我可以使用 Fink 或 MacPorts 安装新版本并设置路径
  • Mac OS X 上的 Qt 字体系列和样式

    我有一个基于 Qt PyQt 的 GUI 应用程序 在 Mac OS X 和其他平台 上运行 它允许用户选择字体并具有粗体和斜体选项的复选框 在更新到新的基于 Cocoa 的 Qt 时 用户发现QFontComboBox不再显示不同的字体样
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Apache PHP/OSX Mavericks: - 无法打开流:打开的文件太多

    我最近升级到 OSX Mavericks 从那时起 我开始在我的开发计算机上收到上述错误 代码中没有明显的问题 它是自动生成的Yii http www yiiframework com 示例应用程序 Mavericks 升级过程中发生的事情
  • gem install rmagick 在 OS X El Capitan 上失败

    几天前我升级到 El Capitan 并运行了 brew update brew upgrade 它更新了 imagemagick 导致 ruby 的 rmagick gem 停止工作 我想没问题 我就跑 gem install rmagi
  • QFileSystemModel setRootPath

    我正在尝试创建一个 Qt 应用程序来显示文件夹 Mac OS 中的 Users 文件夹 的内容 这是代码 QFileSystemModel dirModel new QFileSystemModel dirModel gt setRootP
  • NSSharingService 共享子菜单

    如何在 Mac 应用程序中添加共享子菜单 例如 Safari gt 文件 gt 共享 我戳了戳Apple 共享服务示例代码 http developer apple com library mac samplecode SharingSer
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会

随机推荐

  • 2.6.35内核的gpio子系统详解

    1 内核gpio子系统介绍 1 1 gpio子系统为驱动程序提供的服务 1 系统中GPIO信息的管理 比如有多少个GPIO 每个GPIO的编号是什么等 2 GPIO的申请 释放 3 IO的输入 输出方向的设置 IO电平的输出或者输入设置 以
  • 计算机硬件架构示意图

    图1 计算机总线示意图 图2 存储结构 图3 I7 Nehalem处理器芯片布局 图4 IBM Cell处理器芯片布局 图5 典型的现代CPU缓存组成结构
  • Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告

    Polyworks脚本开发学习笔记 二二 调取视角用脚本自动生成报告 Polyworks中 3D场景的视图可用标准视角及等轴侧视角 项目视角等方式调用 也可以用txt格式保存下来调用 如果以脚本的形式保存下来并保存为快照 就可以自动生成报告
  • 强化学习算法 Policy Gradient 解决 CartPole 问题,代码逐条详解

    本文内容源自百度强化学习 7 日入门课程学习整理 感谢百度 PARL 团队李科浇老师的课程讲解 强化学习算法 DQN 解决 CartPole 问题 移动小车使得车上的摆杆保持直立 这个游戏环境可以说是强化学习中的 Hello World 大
  • 基于LayUI使用FullCalendar实现日程管理

    引言 最新工作中需要实现日程管理功能 由于技术选型 基于layui 限制 从网上对比查询最终选定使用FullCalendar插件来实现日程管理 其中对比的日程还有XgCalendar Google Calendar 实现效果 1 打开界面后
  • php--如何编写一个简易的论坛

    include3 php 数据库连接 function doDB global conn3 conn3 mysqli connect localhost root php project01 if mysqli connect errno
  • 通用视觉大模型综述

    背景 近两年视觉大模型发展很快 各家公司已经训练出自己的视觉大模型 包括微软的 swin transformer 系列 Google 的 vit 系列以及 150 亿参数量的 V MOE 模型 从paperwithcode榜单上可以看到 目
  • STM32HAL库CubeMX配置ADC多通道选择读取(非DMA)

    CubeMX配置ADC多通道选择读取 非DMA 最近在做项目时需要stm32f103分别读取角度传感器值和电压值 采用HAL库 CubeMX方式并没有找到像标准库一样直接可以调用ADC RegularChannelConfig 函数选择AD
  • 基于Spring + Spring MVC + Mybatis 高性能web构建

    原文地址 http blog csdn net zoutongyuan article details 41379851 参考地址 http blog csdn net gebitan505 article details 44455235
  • @PathVariable注解的简单使用,常用于restful传参

    1 测试代码的控制层 GetMapping getChapterInfo1 id name public R getChapterInfo1 PathVariable id String chapterId PathVariable nam
  • 秒杀系统(二)——商品模块展示技术难点

    秒杀系统 商品模块展示技术难点 商品详情页 商品详情页是展示商品详细信息的一个页面 承载在网站的大部分流量和订单的入口 京东商城目前有通用版 全球购 闪购 易车 惠买车 服装 拼购 今日抄底等许多套模板 各套模板的元数据是一样的 只是展示方
  • 设备全生命周期管理系统软件平台

    设备全生命周期管理系统软件平台 设备全生命周期管理系统构建设备全生命周期管理平台是解决当下设备管理问题 实现设备效能利用最优化的重要举措 设备全生命周期管理系统哪些特点 设备全生命周期管理系统传统意义上的设备管理工具或软件 往往局限在业务层
  • 如何利用Python中实现高效的网络爬虫

    目录 怎么提高爬虫效率 代码示例 使用合适的库 并发和异步 使用缓存 优化请求频率 错误处理和重试 测试和调优 注意事项 在数字化时代 网络爬虫已成为获取和分析数据的重要工具 Python作为一种功能强大的编程语言 拥有丰富的库和工具 可以
  • MATLAB小技巧(14)三角函数作图

    MATLAB小技巧 14 三角函数作图 前言 一 MATLAB仿真 二 仿真结果 三 小结 前言 MATLAB进行图像处理相关的学习是非常友好的 可以从零开始 对基础的图像处理都已经有了封装好的许多可直接调用的函数 这个系列文章的话主要就是
  • win7/win10安装Ubuntu20.04双系统详细操作步骤

    0 磁盘分区 我的电脑 右键 管理 磁盘管理 选择一个盘 安装Ubuntu 我选的是F盘 右键 压缩卷 选择压缩大小 20G以上 1 Ubuntu安装包下载 方法一 官网下载20 04最新版本 URL https ubuntu com 方法
  • 数据库课程设计------书店管理系统

    书店会员管理系统 具体的效果图看博客 书店管理系统2 https blog csdn net qq 45981397 article details 124062654 spm 1001 2014 3001 5502 需求分析 1 信息需求
  • oracle游标双循环

    oracle双循环 循环资源表 T SYS RESOURCE 和角色表 T SYS ROLE 插入角色资源表t sys role resource declare a表游标定义 cursor a SYS RESOURCE cur is SE
  • 傻白入门芯片设计,史上最最最全DRAM介绍(十二)

    目录 1 DRAM单元阵列 1 1 DRAM基本单元 1 2 cell阵列 1 3 cell阵列的读取 1 4 DRAM刷新 2 DRAM芯片的读写 2 1 必须的周围逻辑 2 2 完整的读过程 重点 2 3 完整的写过程 2 4 时间消耗
  • javascript 数组一键乱序

    方法1 给数组原生的sort方法传入一个函数 此函数随机返回1或 1 达到随机排列数组元素的目的 const arr1 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 const shuffleArray arr g
  • MAC机后端开发必备

    开篇 相信很多日常使用 MAC 进行软件开发的同学会有一种感受 在换 MAC 机的时候 拿到的都是一些裸系统 有一些常用必备的软件需要重新来安装一遍 我也遇到几次这样的问题 发现每次配置开发环境时都要安装这么几个方便好用的工具 在这总结一下