WSLに公式Arch Linuxをインストールして開発環境をUbuntuから移行する

## はじめに

この記事ではWSLにArch Linuxをインストールし、既存のUbuntu環境から開発環境を移行するために実施したことを順に説明します。


## 環境

- Windows 11 Home
- WSL2が有効化されていること
- 既存のUbuntu WSL環境（なければ3を飛ばしてください）

## 1. Arch Linux WSLのインストール

### 1.1 Arch WSLのダウンロード


```powershell
# PowerShellを管理者権限で実行
wsl --install archlinux
```


### 1.2 インストールの確認


```powershell
wsl --list
```
ここで「archlinux」があればOK

### 1.3 (必要なら)WSLのデフォルト設定

必要に応じてArch Linuxをデフォルトディストリビューションに設定
```powershell
wsl --set-default archlinux
```

## 2. Arch Linuxの初期設定

### 2.1 Arch Linuxを起動

```powershell
# Arch Linuxを起動
wsl -d archlinux
```

### 2.2 パッケージマネージャの初期化

```
# キーリングの初期化
pacman-key --init
pacman-key --populate

# パッケージの更新
pacman -Syu
```

### 2.3 基本的なツールのインストール



```bash
# 基本的な開発ツール
pacman -S base-devel git openssh vim wget curl
```

### 2.4 デフォルトユーザー作成

```bash
# 新しいユーザーの作成
useradd -m -G wheel -s /bin/bash ユーザー名
passwd ユーザー名

# sudoの設定
pacman -S sudo
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel

# wsl.confを編集
sudo vim /etc/wsl.conf
```

wsl.confに以下の2行を書き加える。
```vim
[user] 
default = ユーザー名
```

PowerShellにて、WSLをシャットダウンする。
```powershell
wsl --shutdown
```

その後再度ログインし、ユーザー名を確認する。
```powershell
wsl -d archlinux
```

## 3. Ubuntuからのデータ移行

### 3.1 ホームディレクトリのバックアップ



```bash
# PowerShellで実行し、Ubuntu起動
wsl -d Ubuntu
```
```
# Ubuntuで実行

# 重要なデータのバックアップ
cd ~
tar -czvf home_backup.tar.gz \
    .ssh .bash_history .bashrc .profile .vimrc \
    Documents Projects .config .local \
    --exclude=node_modules --exclude=.git

# Windowsの一時ディレクトリに移動
cp home_backup.tar.gz /mnt/c/Users/ユーザー名/Downloads/
```

### 3.2 Arch Linuxへのデータリストア

archlinux内で実行

```powershell
# PowerShellで実行し、ArchLinux起動
wsl -d archlinux
```

```bash
# バックアップの取得
cp /mnt/c/Users/ユーザー名/Downloads/home_backup.tar.gz ~
cd ~
tar -xzvf home_backup.tar.gz

# パーミッションの修正
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa*
chmod 644 ~/.ssh/id_rsa.pub
chmod -R 755 ~/bin 2>/dev/null || true
```

### 3.3 インストール済みパッケージの移行

```powershell
# Ubuntuで実行（再度接続）
wsl -d Ubuntu
```

```bash
dpkg --get-selections | grep -v deinstall | cut -f1 > ~/installed_packages.txt
cp ~/installed_packages.txt /mnt/c/Users/Windowsのユーザー名/Downloads/
```

```Powershell
# Arch Linuxで対応するパッケージをインストール
# パッケージ名が異なるため、手動で確認が必要
wsl -d archlinux
```

```bash
cp /mnt/c/Users/Windowsのユーザー名/Downloads/installed_packages.txt ~
```

## 4. 開発環境の設定

### 4.1 Git設定の移行

archlinux内で実行

```bash
# Arch Linuxで実行
# Git設定を確認
git config --global --list

# もしくは新たに設定
git config --global user.name "あなたの名前"
git config --global user.email "あなたのメール"
git config --global core.editor vim
git config --global init.defaultBranch main
```

### 4.2 プログラミング言語環境の構築

#### Node.js環境

archlinux内で実行

```bash
# Node.jsとnpmのインストール
sudo pacman -S nodejs npm

# nvm（Node Version Manager）のインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
```

#### Python環境

archlinux内で実行

```bash
# Pythonとpipのインストール
sudo pacman -S python python-pip

# pyenvのインストール
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
source ~/.bashrc
```

#### Docker環境

archlinux内で実行

```bash
# Dockerのインストール
sudo pacman -S docker
```

### 4.3 エディタ/IDE設定の移行

archlinux内で実行

```bash
# VSCodeの設定は自動的に引き継がれる
# （Windowsで実行するVSCodeの設定は共通）

# Vimの場合は設定を確認
cat ~/.vimrc
```

## 5. 動作確認とトラブルシューティング

### 5.1 SSH接続の確認

archlinux内で実行

```bash
# SSH鍵の確認
ls -la ~/.ssh
ssh -T git@github.com
```
「 You've successfully authenticated, 」と出たら成功
### 5.2 プロジェクトのクローンとビルド

archlinux内で実行

```bash
# 既存プロジェクトのクローン
git clone git@github.com:ユーザー名/リポジトリ名.git
cd リポジトリ名

# 依存関係のインストールと動作確認
# Nodeプロジェクトの例
npm install
npm run build
npm start
```

### 5.3 よくある問題と対処法

#### パッケージが見つからない場合

Arch LinuxのAURを活用しましょう。


```bash
# yayのインストール（AURヘルパー）
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
```

#### パーミッションエラー

archlinux内で実行

```bash
# ホームディレクトリの権限修正
find ~ -type d -exec chmod 755 {} \;
find ~ -type f -exec chmod 644 {} \;
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
```

## 6. WSL間の切り替えと共存

powershell

```powershell
# 利用可能なWSLディストリビューションの確認
wsl --list --verbose

# ディストリビューションの切り替え
wsl -d Ubuntu  # Ubuntuに切り替え
wsl -d Arch    # Arch Linuxに切り替え

# デフォルトディストリビューションの設定
wsl --set-default Arch
```

## まとめ

Arch Linuxは最新のパッケージが利用でき、一度環境が整えば、カスタマイズ性の高い開発環境として長く使い続けることができるそうです。

Arch Linuxは「自分で構築する」ディストリビューションなので、この記事の手順をベースに、自分の好みの環境を構築してみてください。何か問題が発生した場合は、Arch Wikiが非常に参考になります。

## 参考リンク

- [ArchWSL GitHub](https://github.com/yuk7/ArchWSL)
- [Arch Linux Wiki](https://wiki.archlinux.org/)
- [WSL 公式ドキュメント](https://docs.microsoft.com/ja-jp/windows/wsl/)