「Windows Server のインストールガイド「リンク」に「Windows Subsystem for Linux ディストリビューション パッケージを手動でダウンロードする」では、公式に提供されているいくつかのディストリビューションについて言及しています:Debian、Kali、Ubuntu、OpenSUSE、Fedora、SLES
Debian と Slackware ベースのディストリビューションが手元にあるので:
- Arch など、それ以外のディストリビューション/ツリーを使用することは可能ですか?
- 公式ディストリビューションを使用しない場合のデメリットはありますか?
私は特にWindowsストアの使用を避ける方法に興味があります。ブロックされたグループポリシーによる。
答え1
これはWindows 10 v1709でテストされており、今後のWindows 10ビルドでは手順が変更される可能性があります。
- インストーラーのコンパイル:
を呼び出すには実行ファイルをコンパイルする必要がありますWslRegisterDistribution()
関数:
(この文書化された機能は変更されないことが予想されます)
これを任意のCコンパイラ(例#include <Windows.h> #include <stdio.h> typedef HRESULT (WINAPI* RegisterDistro)(PCWSTR distroName, PCWSTR tarGzFilename); int main() { int wargc; wchar_t** wargv; wargv = CommandLineToArgvW(GetCommandLineW(), &wargc); HMODULE dll = LoadLibraryExW(L"wslapi.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); RegisterDistro func = (RegisterDistro)GetProcAddress(dll, "WslRegisterDistribution"); HRESULT result = func(wargv[1], wargv[2]); (result == S_OK) ? printf("%ls installed\n", wargv[1]) : printf("Error: 0x%x\n", result); }
gcc
:)でコンパイルし、実行可能ファイル名Wslnstall.exe
(ステップ3で必要)を入力します。コンパイルされたバージョンは私のGitHubにあります。リポジトリ - RootFSをダウンロード
.tar.gz
:
ディストリビューションのRootFSを取得する方法は多数あります(ISOファイルから、Dockerイメージから、コマンドを使用するなど)。私の個人的な経験では、そのファイルには、ファイルが次のように圧縮されている必要があるなど、debootstrap
いくつかの条件があります。.tar.gz
.tar.gz
gzipのみ、有効な/bin/bash
バイナリ/bin/sh
と/etc/passwd
ファイル(通常どおり)が含まれます。- これらは単なるガイドラインですユーザーはスキップできますここではこれらの手順を省略し、プレビルド
.tar.gz
Alpine用(ダウンロードのみ.tar.gz
)
- これらは単なるガイドラインですユーザーはスキップできますここではこれらの手順を省略し、プレビルド
- インストール:
コンパイルされた実行ファイル(ステップ1)と.tar.gz
(ステップ2)を同じフォルダインストールしたいフォルダ内から実行します:# WslInstall.exe <distro_name> <file_name.tar.gz> WslInstall.exe Alpine alpine-minirootfs-xxx.tar.gz
これで、Alpine ディストリビューションがインストールされます。