Windows 10/11 で、WSL2 を使って FSL をインストールする方法

Windows 10/11 では、Windows Subsystem for Linux (WSL) を使ってUbuntuなどのLinuxをインストールできます。WSL2 を使うと、GPUも使えるとのことです。

しかし、WSL2は基本、コマンドラインです。LinuxのGUIを起動するためには、工夫が必要です。現在、いくつかのアプリが公開されていますが、FSLの公式ページでは、VcXsrv を勧めていますのでそれを使うのが無難でしょう。

Ubuntu 22.04 も発表されて1年が過ぎて安定してきましたので、ここでは、

  • WSL2
  • Ubuntu 22.04
  • VcXsrv

をいれたうえで、FSL をインストールしてみます。

なお、このページは、FSLの公式サイトを参考に作成しました。

  • Windowsのバージョン
  • Microsoftの公式サイトによると、WSL2をインストールするためには、Windows 10 バージョン2004 (ビルド 19041) 以上、またはWindows11が必要とされています。

  • WSLのインストール
  • まず、Powershellを管理者として実行します。Windowsの「検索」ウィンドウに Powershell として入力し、「管理者として実行する」を選択してください。

    以下のような画面が出てきます。

    ここにコマンドをタイプしていきます。

    早速Ubuntu 22.04をインストールします。以下のようにタイプして、Ubuntu-22.04 をインストールします。

    wsl --install -d Ubuntu-22.04
    

    ダウンロードが終わると、”Enter new UNIX username:” と表示されます。ご自身が好きなユーザー名を入力してください。なお、半角英数字で空白は使わないでください。

    次にパスワードの設定画面になります。パスワードは入力しても表示されないことに注意してください。2回入力を求められます。

    終わると以下のような画面になります。Ubuntu 22.04となっています。

    一度、ここでWindowsを再起動してください。

  • Ubuntuの起動
  • Windowsのメニューから「Ubuntu 22.04 LTS」を選択します。そうすると、Ubuntuのターミナルが起動します。

  • ネットワークがつながるように設定する
  • WSLはしばしば(少なくとも私の環境では)デフォルトのままだとネットワークにつながりません。以下で対応します。

    Ubuntu とは、別に、Powershellを改めて起動します。

    そこで、次のコマンドをタイプします。

    ipconfig
    

    そうすると、以下のような画面が表示されます。

    ここで着目してもらいたいのは、私は、ノートPCでWi-Fiでネットワークに接続しているので、Wi-Fiの設定が出てきていますが、Wi-Fiのデフォルトゲートウェイが、”192.168.0.1″ となっています。皆様の環境では、別の値かもしれないので、それをメモしてください。

    続いて、Ubuntuのターミナルから以下のようにタイプしてください。なお、192.168.0.1 は、ご自身の値に必ず置き換えてください。そうしないとうまくいきません。また、シングルクォートとダブルクォートは意味が違いますので間違えないようにしてください。

    sudo sh -c "echo 'nameserver 192.168.0.1' > /etc/resolv.conf"
    

    パスワードが聞かれますので、パスワードを入力してEnterを押します。パスワードは表示されませんのでご注意ください。

    これで外に出られるようになりました。

  • リポジトリサーバーを日本のサーバーに変更
  • WSLはデフォルトでは、アメリカのサーバーにつながるため、パッケージのインストールが非常に時間がかかります。このため、日本のサーバーに変更します。以下のコマンドをターミナルにコピペすることで、日本のサーバーに変更できます。

    sudo sed -i 's@http://archive@http://jp.archive@' /etc/apt/sources.list
    

    パスワードが聞かれますので、パスワードを入力してEnterを押します。

    その後、以下でアップデートも行います。

    sudo apt update
    sudo apt -y upgrade
    

    “Processing triggers for…” などの文言が出てきたらアップデートできています。

  • FSLに必要なパッケージのインストール
  • ターミナルに以下をコピペします。コピーしたあと、ターミナルで右クリックをすると貼り付けできます。そしてEnterを押してください。パスワードが聞かれますので、パスワードを入力してEnterを押します。そうするとインストールされます。

    sudo apt install -y dc python3 mesa-utils gedit pulseaudio libquadmath0 libgtk2.0-0 firefox  libgomp1
    
  • VcXsrvのダウンロードおよびインストール
  • 続いて、UbuntuのアプリをGUIでインストールするためのアプリ、VcXsrvを入手します。https://sourceforge.net/projects/vcxsrv/files/latest/downloadをクリックしてインストーラーを入手してください。2023年5月20日時点では、vcxsrv-64.1.20.14.0.installer.exe がダウンロードされました。

    ダウンロードしたら、普通のWindowsのプログラムと同様にインストールします。

  • XLaunchの実行
  • VxcSrvのインストールが終わったら、デスクトップにある”XLaunch”を実行してください。

    最初の画面は、デフォルトの”Multiple windows” で問題ありません。

    次の画面もデフォルトのまま、”Start no client” でかまいません。

    次の画面が重要です。”Native opengl” のチェックを外し、そして、”Disable access control” にチェックを入れてください。

    そうしたら、次の画面で”Save configuration”を押して、設定ファイルを保存します。次からは、これを押せば上記がワンクリックで設定されます。そのうえで、完了を押せばOKです。

  • 設定ファイルの追加
  • GUIで動かすためにはあともう数行追加する必要があります。

    以下をUbuntuのターミナルにコピペしてください。いろんなサイトに.bashrcに追記と書いてありますが、私はできるだけ.bashrcをいじりたくないので、.bash_aliasesに追記します。

    echo "export DISPLAY=:0.0" >> ~/.bash_aliases
    echo "export LIBGL_ALWAYS_INDIRECT=0" >> ~/.bash_aliases
    

    Windows11の方は、以下もコピペしてください。

    echo "export LIBGL_ALWAYS_SOFTWARE=1" >> ~/.bash_aliases
    

    きちんと設定ファイルに書き込めたかは以下のようにすればわかります。

    cat ~/.bash_aliases
    

    この設定を以下で有効化します。

    source ~/.bashrc
    

    .bashrc というファイルを読み込むと自動で .bash_aliases も読み込んでくれます。

    そうしたら、以下のコマンドをタイプしてください。

    glxgears
    

    正しく設定されていれば、以下の画面が起動するはずです。これが起動しない場合、DISPLAY変数が :0.0 ではだめということになります。その場合、お問い合わせください。

  • FSLのインストール
  • それでは、一番重要なFSLをインストールします。

    Ubuntuのターミナルに以下のコマンドをコピペしてください。

    curl -O https://fsl.fmrib.ox.ac.uk/fsldownloads/fslinstaller.py
    

    そうすると、fslinstaller.py がダウンロードされます。

    次に以下をタイプします。

    python3 fslinstaller.py
    

    そうすると、次のような質問が出るはずです。foo は自分のユーザー名です。

    FSL 6.0.6.5 selected for installation
    
    Where do you want to install FSL?
    Press enter to install to the default location [/home/foo/fsl]
    
    FSL installation directory [/home/foo/fsl]:
    

    自分のディレクトリの中でよければ、そのままEnterを押してください。

    そうすると、FSLのダウンロードがはじまります。

    ポイントは、下のように100%となっていても、しばらく待つことです。

    Installing miniconda at /home/fo/fsl...
    [#########################################] 100 / 100%
    Installing FSL into /home/fo/fsl...
    [#########################################] 100 / 100%
    

    最後に以下が表示されたら終了です。

    FSL successfully installed
    
    Open a new terminal, or log out and log back in, for the environment changes to take effect.
    

    いわれた通り、ログアウトします。logout とコマンドをうつと、画面が瞬時に消えます。

    logout
    

    改めて、Ubuntu 22.04を起動します。

    起動したら、以下をタイプします。

    fsl
    

    FSLの画面が起動すれば、無事にインストールできたことになります。

Windows 10/11 で、WSL2 を使って FSL をインストールする方法” へのコメント

  1. 失礼します。HCP pipelineをwindowsのWSLを用いたUBUNTUで行うことは可能なのでしょうか?

  2. 貴重な情報をありがとうございます。
    ご教示のとおり、WindowsのWSL(Ubuntu22.04)コマンドラインを導入、FSLをセットアップできました。

    以下、追記のTIPsです。


    dcm2niixのインストール(WSLコマンドライン)
    sudo apt install dcm2niix でうまくいきました。

    mrtrix3のインストール(WSLコマンドライン)
    このフリーウェアのHPにあるAnaconda をインストール、そこからの導入でうまくいきました。
    https://www.mrtrix.org/download/linux-anaconda/

    ANTsのインストール(WSLコマンドライン)
    Lin4Neuroに内蔵されたスクリプトを使いました。

    上述、PATH設定のファイルを弄っていません。それでもうまく行きました。

    Windows デスクトップとのデータのやりとり WSL(Ubuntu)ターミナルから。
    /mnt/c/Users/ユーザー名/Desktop/


    本格的な解析は大学/施設/病院に設置したマシンで行ったあと、論文を書くに際して普段使いのWindowsノートPCでちょっと追加解析したい … Windows ユーザーが多いなか、貴重な情報です。

    ありがとうございます。

    T.K.

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください