🐧

WSL開発環境: カスタムDebianによる高速セットアップ

2024/01/20に公開

はじめに

WSL[1]にカスタマイズされた Debian[2] をインポートして、効率的に開発環境を構築する方法を紹介します。
この方法により、一貫性のある開発環境を素早く構築でき、開発効率が向上できます。

1. Debian アーカイブの概要

カスタマイズ済み Debian アーカイブは、開発ツールとカスタマイズされた設定を含むtar アーカイブ[3]です。
これをインポートすることで、開発環境構築にかかる時間が大幅に短縮できます。

この記事で使用するアーカイブは、環境構築の記事まとめ で事前にセットアップされたものです。

個人の認証情報を削除するため、dotfiles[4]は直接ダウンロードしたものを使用しています。

2. wslインポートの概要

WSL に Debian アーカイブをインポートする際には、wsl --import[5]コマンドを使用します。
これにより、環境設定の複製や移行が簡単になります。

2.1. wsl インポートのコマンドライン

wsl --importコマンドは、tarアーカイブ形式の Linux ディストリビューションを WSL上にインポートします。
そして、エクスポート時の Linux ディストリビューションの状態を再現します。

このコマンドを用いることで、既存の設定を保持したまま迅速に環境を構築できます。

wsl --importコマンドは、次の形式で実行します。

wsl --import <ディストリビューション> <インポートディレクトリ> <tarアーカイブ>

各パラメーターの意味は、次の通りです:

  • <ディストリビューション>:
    WSL が起動する Linux の名前、通常は Linux ディストリビューション名
  • <インポートディレクトリ>:
    ディストリビューションのインポートするディレクトリ、インポート前に作成しておく必要がある
  • <tarアーカイブ>
    wslがエクスポートしたtarアーカイブ

注意事項:
インポートディレクトリは絶対ディレクトリで指定する必要があります。

3. カスタマイズ済みの Debian のインポート

カスタマイズ済み Debian アーカイブをダウンロードし、WSL にインポートする手順を紹介します。
これにより、ユーザーは作業を迷うことなく進めることができます。

3.1 Debianアーカイブのダウンロード

Debian アーカイブは、PublicArchives からダウンロードできます。

次の手順で、Debian アーカイブをダウンロードします:

  1. [PublicArchives]にアクセス
    PublicArchivesフォルダのスクリーンショット

  2. custom-debian.tar-x.y.z.7zの右端のメニューでダウンロードを選択
    custom-Debian.tar.7zの右端のメニューでダウンロードを選択

  3. ダイアログの[エラーを無視してダウンロード]ボタンをクリックしてダウンロード
    ボタンをクリック

注意:
ウィルススキャンできないためエラーが出る。無視してよい。

以上で、custom-debian.tar-x.y.z.7zのダウンロードは終了です。

3.2 Debianアーカイブの展開

ダウンロードした Debian アーカイブを7zip[6]で展開します。
7zipは、さまざまな形式の圧縮ファイルを扱うことができる強力なツールで、7z型式にも対応しています。
このコマンドを使って、ダウンロードした7zファイルを展開し、WSL で使用できる形式にします。

次のコマンドを実行して展開します:

  1. 7zコマンドによる展開:
    7z xコマンドで、Debian アーカイブを展開する。

    7z x custom-debian.tar-x.y.z.7z
    

    実行結果が次のようになれば、展開は成功しています。

     .
     .
    Everything is Ok
    
    $
    

3.3 インポートディレクトリの設定

インポートディレクトリは、ユーザーが管理できるディレクトリを指定する必要があります。
インポートディレクトリは、XDG Base Directory[7] (Linux システムでのファイル配置の標準規格) に準じます。
よって、Debian のインポートディレクトリは/~/.local/share/wsl/debianとします。
このように、XDG Base Directoryに従うことで、.local下に WSL のファイルを置くことになり、安全性が増します。

次の手順で、インポートディレクトリを作成します:

  1. インポートディレクトリの作成
    インポートディレクトリを作成します。

    mkdir ~/.local/share/wsl/debian
    

以上で、インポートディレクトリの設定は終了です。

3.4 Debianアーカイブのインポート

正常に展開できていればcustom-debian.tarファイルができているはずです。
Debian アーカイブのインポートには、PowerShell で、次のコマンドを実行します:

  1. Debian のインポート

    wsl --import Debian C:\Users\<myaccount>\.local\share\wsl\debian .\custom-debian.tar  # <myaccount>は、自分のアカウントに置き換えてください
    

    実行結果は、次のようになります。

    
    インポート中です。この処理には数分かかることがあります。
    この操作を正しく終了しました。
    
    $
    

上記のように、"この操作を正しく終了しました。"と出力されれば、インポートは成功しています。

4. デフォルトユーザーアカウントの変更

デフォルトユーザーアカウントの変更方法を説明します。
これにより、自分のアカウントで環境を設定できます。

4.1 ユーザーアカウントの変更

ユーザーアカウントをpwruserから自分のアカウントに変更する必要があります。
変更は、move_useraccount.shスクリプトを使用します。
スクリプトは次のように実行します:

move_useraccount.sh <myaccount>

次の手順で、アカウントを変更します:

  1. ユーザーアカウントの変更

    move_useraccount.sh <myaccount>   # <myaccount>は、自分のアカウントに置き換えてください
    

以上で、ユーザーアカウントの変更は終了です。

4.2 デフォルトユーザーの設定

起動時のデフォルトユーザーをrootから自分のアカウントに変更します。
エディタで/etc/wsl.confを編集し、以下のように設定します:

/etc/wsl.conf


## User settings
[user]
default=<myaccount>    # <myaccount>は、自分のアカウントに置き換えてください。

このように、/etc/wsl.conf[user]セクションでdefaultに自分のアカウントを設定します。
この結果、デフォルトユーザーが自分のアカウントになります。

WSL を再起動すると、Debian 起動時に自分のアカウントでログインするように変更されます。

4.3 パスワードの設定

セキュリティを保つため、自分のアカウントに強固なパスワードを設定します。
アカウントのセキュリティを確保するため、強固なパスワードを設定してください。推奨されるパスワードは、複雑で長く、予測しにくいものです。

bash で、次のコマンドを実行してパスワードを設定します:

passwd <myaccount>  # <myaccount>.は自分のアカウントに置き換えてください。

実行結果は、次のようになります。

$ passwd <myaccount>
New password:
Retype new password:
passwd: password updated successfully

$

以上で、パスワードの設定は終了です。

5. WSLの再起動

以上のステップで、WSL の設定は完了です。
設定を完了後、WSL を再起動して新しい設定を反映させます。これにより、カスタマイズされた Debian 環境が正しく動作します。

次のコマンドを実行し、WSL を再起動します:

  1. WSL のシャットダウン
    WSL をシャットダウンします。

    wsl --shutdown
    
  2. Debian の起動
    Windows Terminalで Debian を選び、WSL上の Debian を起動します。

再起動後は、Debian は新しくカスタマイズされた状態で動作し、ユーザーのアカウントでログインします。

6. 追加の設定

WSL の再起動までのステップで、Debian の開発環境を構築できました。
この章では、Debian の環境設定をバージョン管理システムで管理する方法を紹介します。

6.1 dotfilesの組み込み

既存のdotfilesがあると、gitでクローンができません。
そのため、既存のdotfilesを削除して、その後に最新版を組み込みます。

次の手順で、既存のdotfilesを削除し最新版を組み込みます。

  1. /opt/下のサブディレクトリを削除:
    /opt/bin, /opt/etc をシンボリックリンクにするため削除します。
    次のコマンドを実行します:

    sudo rm -fr /opt/etc /opt/bin
    
  2. dotfilesを削除:
    ~/.local/下のdotfilesディレクトリを削除します。
    次のコマンドを実行します:

    rm -fr ~/.local/dotfiles
    
  3. dotfilesの組み込み:
    dotfilesを使った環境管理 にしたがって、dotfilesを組み込みます。

以上で、dotfilesの組み込みは完了です。

6.2 whatコマンドの再インストール

whatコマンド[8]は、シェルスクリプトや設定ファイルの特定のコメントを解析し、ファイルの概要やバージョンを出力するユーティリティです。

次の手順で、whatコマンドを再インストールします:

  1. whatコマンドの再インストール
    whatコマンドによるスクリプト管理 にしたがって、whatコマンドを再インストールします。

おわりに

以上で、カスタマイズ済みの Debian のセットアップは完了です。
この記事を参考にして、個々のプロジェクトにあわせた開発環境を素早く構築し、効率的な開発体験をしてください。

それでは、Happy Hacking!

参考資料

Webサイト

脚注
  1. WSL (Windows Subsystem for Linux): Windows 上で Linux 環境を実行するためのサブシステム ↩︎

  2. Debian: Linux ディストリビューションの 1つ ↩︎

  3. tarアーカイブ: UNIX/Linux で標準的な複数のファイル/ディレクトリをまとめる型式 ↩︎

  4. dotfiles: UNIX/Linux の設定ファイル用を管理するリポジトリ、または設定ファイル自身 ↩︎

  5. wsl --import: WSL に Linux ディストリビューションをインポートするためのコマンド ↩︎

  6. 7zip: 7z型式およびzip型式に対応したファイルアーカイブ・圧縮・展開ツール ↩︎

  7. XDG Base Directory: Linux システムで設定ファイルやデータファイルを管理するための標準ディレクトリ構造 ↩︎

  8. whatコマンド: シェルスクリプトや設定ファイルの概要を出力するコマンド ↩︎

GitHubで編集を提案

Discussion