WSL (Linux 用 Windows サブシステム) の統合¶
WSL を使用すると、完全な Linux 環境を Windows 上で直接実行できます。セットアップが完了すると、STT シェル統合は Linux Bash または Zsh ガイドと同様に動作します。シェル関数自体に Windows 固有の調整を行う必要はありません。
推奨対象者: Linux ターミナルに慣れている、または開発作業のために WSL がすでにインストールされている Windows ユーザー。 WSL は、最も忠実なエクスペリエンスと互換性の侵害を最小限に抑えます。
前提条件¶
WSL をインストールする (1 回限りのセットアップ)¶
PowerShell または CMD を 管理者 として開き、以下を実行します。
wsl --install
これにより、デフォルトで WSL2 が Ubuntu とともにインストールされます。プロンプトが表示されたらマシンを再起動します。
特定のディストリビューションをインストールするには:
wsl --install -d Ubuntu-24.04
# or
wsl --install -d Debian
利用可能なすべてのディストリビューションをリストします。
wsl --list --online
WSL バージョンを確認する¶
wsl --list --verbose
「VERSION」列に「2」が表示されていることを確認してください。 「1」と表示されている場合は、次のようにアップグレードします。
wsl --set-version <DistroName> 2
WSL 内でのシェルの統合¶
WSL が実行されたら、Linux ターミナルを開き、希望するシェルの Linux シェル ガイドに従います。
シェル |
ガイド |
|---|---|
Bash (WSL のデフォルト) |
|
ズシュ |
|
魚 |
|
キシュ |
|
POSIX sh / ダッシュ |
Bash を使用したデフォルトの Ubuntu/Debian WSL セットアップのクイック パスは次のとおりです。
nano ~/.bashrc
# Paste the function block from bash-integration.md
source ~/.bashrc
WSL 固有の考慮事項¶
WSL から Windows ファイルにアクセスする¶
Windows ドライブは /mnt/ の下にマウントされます。
/mnt/c/ # → C:\
/mnt/d/ # → D:\
プロジェクトが Windows ファイルシステム (例 C:\Projects\stt) 上にある場合は、SL5NET_AURA_PROJECT_ROOT を次のように設定します。
export SL5NET_AURA_PROJECT_ROOT="/mnt/c/Projects/stt"
この行を ~/.bashrc (またはシェルの同等のもの) の s() 関数の上に追加します。
パフォーマンスのヒント: 最高の I/O パフォーマンスを得るには、プロジェクト ファイルを
/mnt/c/...ではなく WSL ファイルシステム (例:~/projects/stt) 内に保持してください。 WSL と Windows 間のファイルシステム間のアクセスは大幅に遅くなります。
WSL 内の Python 仮想環境¶
WSL 内で標準の Linux 仮想環境を作成して使用します。
cd "$SL5NET_AURA_PROJECT_ROOT"
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
関数内の PY_EXEC パス ($SL5NET_AURA_PROJECT_ROOT/.venv/bin/python3) はそのままで正しく動作します。
Windows ターミナルから s を実行する¶
Windows で WSL を使用するには、Windows Terminal が推奨される方法です。各 WSL ディストリビューションの複数のタブ、ペイン、プロファイルをサポートします。 Microsoft Store から、または次の方法でインストールします。
winget install Microsoft.WindowsTerminal
最もシームレスなエクスペリエンスを実現するには、Windows ターミナル設定で WSL ディストリビューションをデフォルトのプロファイルとして設定します。
Docker オンデマンド (Linux)¶
システム リソースを節約するために、Docker をバックグラウンドで常に実行するのではなく、必要なとき (Aura が Trino データベースを要求したときなど) にのみ起動するように設定できます。
次のコマンドを実行して、継続的なバックグラウンド サービスを無効にし、代わりに「ソケット アクティベーション」を有効にします。
sudo systemctl disable docker.service
sudo systemctl enable docker.socket
sudo systemctl start docker.socket
安全に更新できるようにします (Linux Arch/Manjaro ユーザー): パッケージの更新によりソケット構成がリセットされる場合があります。これを防ぐには、永続的なローカル オーバーライドを作成します。
sudo systemctl edit docker.socket
次の行が存在し、コメントが解除されていることを確認し (「#」を削除)、保存して終了します。
[Install]
WantedBy=sockets.target
WSL 内の Docker と Kiwix¶
Kiwix ヘルパー スクリプト (kiwix-docker-start-if-not-running.sh) には Docker が必要です。 Docker Desktop for Windows をインストールし、WSL 2 統合を有効にします。
1.Docker Desktopをダウンロードしてインストールします。 2. [Docker Desktop] → [設定] → [リソース] → [WSL 統合] で、WSL ディストリビューションを有効にします。 3. WSL 内で確認します。
docker --version
Windows から WSL s 関数を呼び出す (オプション)¶
WSL ターミナルを開かずに Windows CMD または PowerShell ウィンドウから「s」ショートカットを呼び出したい場合は、それをラップできます。
# PowerShell wrapper
function s { wsl bash -i -c "s $args" }
:: CMD wrapper — save as s.bat on your PATH
@echo off
wsl bash -i -c "s %*"
-iフラグは対話型シェルをロードし、~/.bashrc(およびs関数) が自動的にソースされるようにします。
## 特徴
完全な Linux 互換性: すべての Unix ツール (
timeout、pgrep、mktemp、grep) はネイティブに動作します。回避策は必要ありません。動的パス: シェル設定に設定された
SL5NET_AURA_PROJECT_ROOT変数を介してプロジェクト ルートを自動的に検索します。自動再起動: バックエンドがダウンしている場合、「start_service」とローカルの Wikipedia サービスの実行を試みます (Docker が実行されている必要があります)。
スマート タイムアウト: 最初に 2 秒の素早い応答を試み、その後 70 秒の詳細な処理モードに戻ります。