在 MacOS 中搭建 独立Linux 开发环境
前言
在
Mac OS中使用Linux开发环境本身并不是一件难事,因为Mac OS本身就是一个类Uinx系统,加上有HomeBrew可以直接安装大部分Linux的软件包, 即使不使用虚拟机,也能有一个相对较好的开发体验,但是难免会有特殊需求, 或者不想污染宿主机的开发环境,那就可以使用 如VMware Fusion、Parallels Desktop或VirtualBox),然后在虚拟机中安装完整的 Linux 发行版, 但是这类虚拟机比较重,启动比较慢,内存占用大,就不在我的考虑范围内了,当然也可以使用Docker Desktop直接使用各类Linux发行版的镜像, 或者创建Dev Container直接创建一个环境齐全的开发镜像, 但是目前Docker镜像源的问题没有一劳永逸的方案,所以也不在我的考虑范围内,最终我决定使用Orbstack中的Mechines来搭建一个开发环境
安装 Orbstack
官网里可以直接下载安装包, 或者使用 HomeBrew 直接安装
brew install orbstack
选择一个合适的发行版
我这里使用的是 Fedroa

orbstack 软件
Fedroa
完善开发环境
第一步当然是换 清华源,首先备份一下默认源
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup然后直接替换默认源
sudo sed -e 's|^metalink=|#metalink=|g' \ -e 's|^#baseurl=http://download.example/pub/fedora/linux|baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora|g' \ -i.bak \ /etc/yum.repos.d/fedora.repo \ /etc/yum.repos.d/fedora-modular.repo \ /etc/yum.repos.d/fedora-updates.repo \ /etc/yum.repos.d/fedora-updates-modular.repo如果你喜欢手动换
fedora 仓库 (/etc/yum.repos.d/fedora.repo)
[fedora] name=Fedora $releasever - $basearch failovermethod=priority baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$basearch/os/ metadata_expire=28d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=Falseupdates 仓库 (/etc/yum.repos.d/fedora-updates.repo)
[updates] name=Fedora $releasever - $basearch - Updates failovermethod=priority baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Everything/$basearch/ enabled=1 gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=Falsefedora-modular 仓库 (/etc/yum.repos.d/fedora-modular.repo)
[fedora-modular] name=Fedora Modular $releasever - $basearch failovermethod=priority baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Modular/$basearch/os/ enabled=1 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=Falseupdates-modular 仓库 (/etc/yum.repos.d/fedora-updates-modular.repo)
[updates-modular] name=Fedora Modular $releasever - $basearch - Updates failovermethod=priority baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Modular/$basearch/ enabled=1 gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False清理缓存
sudo dnf clean all sudo dnf makecache更新软件包
sudo dnf update
使用
zsh替换默认的bash- 安装
git和zsh
sudo dnf install git zsh- 安装
oh my zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"安装常用的
oh my zsh插件- 自动提示
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions- 高亮显示
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlightinggit clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting- 自动补全
git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git $ZSH_CUSTOM/plugins/zsh-autocomplete修改
zsh配置文件,将其中的 plugins 修改为
vim ~/.zshrcplugins=( git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete )- 应用修改
source ~/.zshrc- 安装
安装
NVM管理NodeJS版本curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash如何使用
$ nvm use 16 Now using node v16.9.1 (npm v7.21.1) $ node -v v16.9.1 $ nvm use 14 Now using node v14.18.0 (npm v6.14.15) $ node -v v14.18.0 $ nvm install 12 Now using node v12.22.6 (npm v6.14.5) $ node -v v12.22.6进阶请查看 文档
使用
VS Code连接到刚才创建的虚拟机中- 安装插件
Remote Development - 添加远程链接,在左侧菜单中选择 远程资源管理器, 点击
SSH上的+号,或者使用快捷键Shift+Command+P输入remote add, 来打开添加SSH链接的窗口 输入
ssh orb即可连接至刚创建的虚拟机中 ::: warning 如果有多个虚拟机,SSH链接的时候需要指定连接到哪台主机,如果不指定则连接到默认主机中,例如ssh debain@orb使用默认用户链接到debain主机中, 示例ssh machine@orb,ssh user@orb,ssh user@machine@orb:::

- 安装插件
这样就有了一个隔离宿主机系统的开发环境,再怎么折腾也不怕,有点类似于
Windows中的WSL,胜在简单便捷,不需要额外开启系统的某些功能,下载完Orbstack就可以直接使用