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のバージョン
- WSLのインストール
- Ubuntuの起動
- ネットワークがつながるように設定する
- リポジトリサーバーを日本のサーバーに変更
- FSLに必要なパッケージのインストール
- VcXsrvのダウンロードおよびインストール
- XLaunchの実行
- 設定ファイルの追加
- FSLのインストール
Microsoftの公式サイトによると、WSL2をインストールするためには、Windows 10 バージョン2004 (ビルド 19041) 以上、またはWindows11が必要とされています。
まず、Powershellを管理者として実行します。Windowsの「検索」ウィンドウに Powershell として入力し、「管理者として実行する」を選択してください。
以下のような画面が出てきます。
ここにコマンドをタイプしていきます。
早速Ubuntu 22.04をインストールします。以下のようにタイプして、Ubuntu-22.04 をインストールします。
1 | wsl -- install -d Ubuntu-22.04 |
ダウンロードが終わると、”Enter new UNIX username:” と表示されます。ご自身が好きなユーザー名を入力してください。なお、半角英数字で空白は使わないでください。
次にパスワードの設定画面になります。パスワードは入力しても表示されないことに注意してください。2回入力を求められます。
終わると以下のような画面になります。Ubuntu 22.04となっています。
一度、ここでWindowsを再起動してください。
Windowsのメニューから「Ubuntu 22.04 LTS」を選択します。そうすると、Ubuntuのターミナルが起動します。
WSLはしばしば(少なくとも私の環境では)デフォルトのままだとネットワークにつながりません。以下で対応します。
Ubuntu とは、別に、Powershellを改めて起動します。
そこで、次のコマンドをタイプします。
1 | ipconfig |
そうすると、以下のような画面が表示されます。
ここで着目してもらいたいのは、私は、ノートPCでWi-Fiでネットワークに接続しているので、Wi-Fiの設定が出てきていますが、Wi-Fiのデフォルトゲートウェイが、”192.168.0.1″ となっています。皆様の環境では、別の値かもしれないので、それをメモしてください。
続いて、Ubuntuのターミナルから以下のようにタイプしてください。なお、192.168.0.1 は、ご自身の値に必ず置き換えてください。そうしないとうまくいきません。また、シングルクォートとダブルクォートは意味が違いますので間違えないようにしてください。
1 | sudo sh -c "echo 'nameserver 192.168.0.1' > /etc/resolv.conf" |
パスワードが聞かれますので、パスワードを入力してEnterを押します。パスワードは表示されませんのでご注意ください。
これで外に出られるようになりました。
WSLはデフォルトでは、アメリカのサーバーにつながるため、パッケージのインストールが非常に時間がかかります。このため、日本のサーバーに変更します。以下のコマンドをターミナルにコピペすることで、日本のサーバーに変更できます。
1 | sudo sed -i 's@http://archive@http://jp.archive@' /etc/apt/sources .list |
パスワードが聞かれますので、パスワードを入力してEnterを押します。
その後、以下でアップデートも行います。
1 2 | sudo apt update sudo apt -y upgrade |
“Processing triggers for…” などの文言が出てきたらアップデートできています。
ターミナルに以下をコピペします。コピーしたあと、ターミナルで右クリックをすると貼り付けできます。そしてEnterを押してください。パスワードが聞かれますので、パスワードを入力してEnterを押します。そうするとインストールされます。
1 | sudo apt install -y dc python3 mesa-utils gedit pulseaudio libquadmath0 libgtk2.0-0 firefox libgomp1 |
続いて、UbuntuのアプリをGUIでインストールするためのアプリ、VcXsrvを入手します。https://sourceforge.net/projects/vcxsrv/files/latest/downloadをクリックしてインストーラーを入手してください。2023年5月20日時点では、vcxsrv-64.1.20.14.0.installer.exe がダウンロードされました。
ダウンロードしたら、普通のWindowsのプログラムと同様にインストールします。
VxcSrvのインストールが終わったら、デスクトップにある”XLaunch”を実行してください。
最初の画面は、デフォルトの”Multiple windows” で問題ありません。
次の画面もデフォルトのまま、”Start no client” でかまいません。
次の画面が重要です。”Native opengl” のチェックを外し、そして、”Disable access control” にチェックを入れてください。
そうしたら、次の画面で”Save configuration”を押して、設定ファイルを保存します。次からは、これを押せば上記がワンクリックで設定されます。そのうえで、完了を押せばOKです。
GUIで動かすためにはあともう数行追加する必要があります。
以下をUbuntuのターミナルにコピペしてください。いろんなサイトに.bashrcに追記と書いてありますが、私はできるだけ.bashrcをいじりたくないので、.bash_aliasesに追記します。
1 2 | echo "export DISPLAY=:0.0" >> ~/.bash_aliases echo "export LIBGL_ALWAYS_INDIRECT=0" >> ~/.bash_aliases |
Windows11の方は、以下もコピペしてください。
1 | echo "export LIBGL_ALWAYS_SOFTWARE=1" >> ~/.bash_aliases |
きちんと設定ファイルに書き込めたかは以下のようにすればわかります。
1 | cat ~/.bash_aliases |
この設定を以下で有効化します。
1 | source ~/.bashrc |
.bashrc というファイルを読み込むと自動で .bash_aliases も読み込んでくれます。
そうしたら、以下のコマンドをタイプしてください。
1 | glxgears |
正しく設定されていれば、以下の画面が起動するはずです。これが起動しない場合、DISPLAY変数が :0.0 ではだめということになります。その場合、お問い合わせください。
それでは、一番重要なFSLをインストールします。
Ubuntuのターミナルに以下のコマンドをコピペしてください。
1 | curl -O https: //fsl .fmrib.ox.ac.uk /fsldownloads/fslinstaller .py |
そうすると、fslinstaller.py がダウンロードされます。
次に以下をタイプします。
1 | python3 fslinstaller.py |
そうすると、次のような質問が出るはずです。foo は自分のユーザー名です。
1 2 3 4 5 6 | 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%となっていても、しばらく待つことです。
1 2 3 4 | Installing miniconda at /home/fo/fsl... [#########################################] 100 / 100% Installing FSL into /home/fo/fsl... [#########################################] 100 / 100% |
最後に以下が表示されたら終了です。
1 2 3 | FSL successfully installed Open a new terminal, or log out and log back in, for the environment changes to take effect. |
いわれた通り、ログアウトします。logout とコマンドをうつと、画面が瞬時に消えます。
1 | logout |
改めて、Ubuntu 22.04を起動します。
起動したら、以下をタイプします。
1 | fsl |
FSLの画面が起動すれば、無事にインストールできたことになります。
根本先生
いつもお世話になっております。
過日、ご教示していただいたことを実行するために、FSLをダウンロードしようとしているのですが、errorが出てしまいダウンロードできません。
具体的には、このページの
「自分のディレクトリの中でよければ、そのままEnterを押してください。
そうすると、FSLのダウンロードがはじまります。」
まではできました。
しかし、下記の表記がされて、ダウンロードができません。
ERROR occurred during installation!
This command returned an error: tar -x -f miniconda.sh -C /home/user name/fsl
Removing failed installation directory /home/user name/fsl
FSL installation failed!
色々調べてみて試したのですが、自分では解決できませんでした。
ご多忙のところ大変恐縮ですが、お時間あるときに、解決法を教えていただければ、ありがたいです。
よろしくお願い申し上げます。
二つのことが気になりました。
・fslinstaller.py は最新版では miniconda を使わなくなっています。最新版を改めてダウンロードされてはいかがでしょうか。
・ユーザ名に半角スペースが入っていますでしょうか。もし、それだとすると、エラーになる可能性が高いです。パスに半角スペースが入っていないパスを準備してそこにインストールするのはどうでしょうか。
Nice!!!! Love from China
失礼します。HCP pipelineをwindowsのWSLを用いたUBUNTUで行うことは可能なのでしょうか?
可能だと思います。相当設定は必要ですが。
ありがとうございます。
貴重な情報をありがとうございます。
ご教示のとおり、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.
どうもありがとうございます。