前言#
在
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