前言#
在
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
完善开发环境#
- 第一步当然是换
清华源,首先备份一下默认源
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=False
-
updates 仓库 (/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=False
-
fedora-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=False
-
updates-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
- 更新软件包
```bash
sudo dnf update
```
---
2. 使用 `zsh` 替换默认的 `bash`
- 安装 `git` 和 `zsh`
```bash
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-highlighting
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
```
- 自动补全
``` bash
git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git $ZSH_CUSTOM/plugins/zsh-autocomplete
```
-
修改
zsh
配置文件,将其中的 plugins 修改为vim ~/.zshrc
plugins=( git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete
)
- 应用修改
```bash
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
就可以直接使用
此文由 Mix Space 同步更新至 xLog
原始链接为 https://remrin.dev/posts/linux/dev-env