LoginSignup
1
4

More than 1 year has passed since last update.

Windows(WSL2)でMacOSXを使った開発環境を構築

Posted at

目的

  • WindowsからOSXを使った開発環境を整える

おおまかな流れ

  1. WindowsにWSL2・Linux GUIアプリを動かす環境をインストール
  2. WSL2にDockerをインストール
  3. Dockerコンテナ:sickcodes/docker-osx(参考)を立ち上げ
  4. 3.で立ち上げたコンテナにWindowsのVSCodeから接続・操作

スクリーンショット 2022-10-31 181218.png

検証した環境

  • Windows11 (22000.1098)
  • こちらに下記の記述あり

You must have Windows 11 installed with build 22000+ (21H2 or higher).

手順

※ 長文回避のためWSL2、VSCodeなどのインストール手順については割愛。それらを含んだ手順詳細はこちらを参照ください

OSXを実行するコンテナのセットアップ

  1. WSL2をインストール(割愛)
  2. .wslconfigファイルを作成
    • C:/Users/<Your_Name>に.wslconfigというファイルを作成(<Your_Name>の部分はWindowsのユーザーネーム)
    • .wslconfigに下記の内容を追加して保存
    [wsl2]
    nestedVirtualization=true
    
  3. Windows Subsystem for Linux Previewをインストール
  4. WSL2のUbuntuを起動
    • .wslconfigはWSL2起動時に反映されるため、必要なら再起動する
  5. WSL2でDockerをインストール(割愛)
  6. WSL2で下記コマンドを実行
    • タグ(autoの部分)を変更することでバージョンなどを変更できる
    • autoはCatalinaがプレインストールされたイメージ
    $ docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:auto
    
  7. WindowsでQEMUが起動し下記の画面が表示される
    image.png

WindowsのVSCodeから接続

  • 前節で立ち上げたコンテナ上のMacOSXのディレクトリをどこかにマウントしてコーディング・コンテナにssh接続してコマンド操作 ができると効率的と思われるため、下記はそのための手順
  • 前節7.の画面が表示されている状態で、VSCodeのWSLウインドウを開き、VSCodeのターミナルで作業する想定(この状態へはこちらの「VSCodeの準備と動作確認」を参照)

ファイルマウント

  1. 下記コマンドを実行し、sshfsをインストール
    $ sudo apt update
    $ sudo apt install sshfs
  2. 下記コマンドでマウントを実行
    $ sshfs user@localhost:<path-on-OSX> -p 50922 <path-on-WSL>
    • <path-on-OSX> にOSXのパスを<path-on-WSL> にWSLのパスを設定する
    • こだわりがなければ<path-on-OSX> にOSXのパスはとりあえず/と書いておけば全部マウントされる
    • Passwordはデフォルトでalpine

ssh接続

  1. 下記コマンドを実行
    $ ssh user@localhost -p 50922
    • 初回実行時は、Are you sure you want to continue connecting (yes/no/[fingerprint])?と聞かれるのでyesを入力
    • Passwordはデフォルトでalpine
  2. user@users-iMac-Pro ~ % と表示されることを確認
    • この状態でVSCodeのターミナルからGUI関連の処理も実行できる
      例)% open -a Safariを実行すると、前節7.の画面でSafariが立ち上がる
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4