remrin

remrin

github
email

在 MacOS 中搭建獨立Linux開發環境

前言#

Mac OS 中使用 Linux 開發環境本身並不是一件難事,因為 Mac OS 本身就是一個 類Uinx 系統,加上有 HomeBrew 可以直接安裝大部分 Linux 的軟體包,即使不使用虛擬機,也能有一個相對較好的開發體驗,但是難免會有特殊需求,或者不想污染宿主機的開發環境,那就可以使用如 VMware FusionParallels DesktopVirtualBox),然後在虛擬機中安裝完整的 Linux 發行版,但是這類虛擬機比較 ,啟動比較慢,記憶體佔用大,就不在我的考慮範圍內了,當然也可以使用 Docker Desktop 直接使用各類 Linux 發行版的鏡像,或者創建 Dev Container 直接創建一個環境齊全的開發鏡像,但是目前 Docker 鏡像源的問題沒有一勞永逸的方案,所以也不在我的考慮範圍內,最終我決定使用 Orbstack 中的 Mechines 來搭建一個開發環境

安裝 Orbstack#

官網裡可以直接下載安裝包,或者使用 HomeBrew 直接安裝

brew install orbstack

選擇一個合適的發行版#

我這裡使用的是 Fedroa
orbstack 軟體
Fedroa

完善開發環境#

  1. 第一步當然是換
    清華源,首先備份一下默認源
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
  1. 安裝 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
    

    進階請查看 文檔

  1. 使用 VS Code 連接到剛才創建的虛擬機中
  • 安裝插件 Remote Development
  • 添加遠程連接,在左側菜單中選擇遠程資源管理器,點擊 SSH 上的 + 號,或者使用快捷鍵 Shift+Command+P 輸入 remote add,來打開添加 SSH 連接的窗口
    image
    輸入 ssh orb 即可連接至剛創建的虛擬機中
    ::: warning
    如果有多個虛擬機,SSH 連接的時候需要指定連接到哪台主機,如果不指定則連接到默認主機中,例如 ssh debain@orb 使用默認用戶連接到 debain 主機中,示例
    ssh machine@orb
    ssh user@orb
    ssh user@machine@orb
    :::
    image
    image

這樣就有了一個隔離宿主機系統的開發環境,再怎麼折騰也不怕,有點類似於 Windows 中的 WSL,勝在簡單便捷,不需要額外開啟系統的某些功能,下載完 Orbstack 就可以直接使用

此文由 Mix Space 同步更新至 xLog 原始鏈接為 https://remrin.dev/posts/linux/dev-env

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。