メモ: WSLでcondaをインストール
ことのアラマシ
FDTD法という電磁波シミュレーションしたい
↓
高額なソフトが必要
↓
MEEPというフリーソフトで可能
↓
MEEPはLinux or Mac環境でしか動作しないらしい…
ということでLinux環境をWindows上に構築する必要が生じました。
最近は便利なものでWindows Subsystem for Linux(WSL)というMicrosoft謹製ツールが配布されており,手軽にLinux環境が構築できるとのこと。いまにして思えばこれを鵜呑みにしたのが良くなかったような…
導入手順
導入自体はMEEPの公式ドキュメントで説明されている。
まずはパッケージ管理ツールminicondaを導入する
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p <desired_prefix>
export PATH=<desired_prefix>/bin:$PATH
conda
でpymeep
を導入する。
conda create -n mp -c conda-forge pymeep
ところが,2手目の
bash miniconda.sh -b -p
がうまくいかなかった。
OSError: [Errno 40] Too many levels of symbolic links:
原因がよくわからず2週間を費やした(さすがにこればっかりやってたわけじゃないけど…)。
解決
調べても情報があまり出てこなくて時間を費やした。
結局のところWSL上でAnacondaを入れようとしたときに発生する不具合のようだった(たぶん)。
Githubでタイムリーなissueが立っていて,これを参考に解決に至った。
あとはこのissueに追記した通り。
原因は
pkgs/ncurses-6.2-h58526e2_4/share/terminfo/N/ncr260vt300wpp
pkgs/ncurses-6.2-h58526e2_4/share/terminfo/E/Eterm
で,これらに含まれるリンクが良くないとのこと。
issue #10333 (comment)では別途ncursesパッケージをAnacondaのページから拾ってきて上記2ファイルを差し替えれば良いとのことだったが,これでは解消しなかった。
渡邉の環境ではリンク先である
miniconda3/share/terminfo/N/ncr260vt300wpp
をコピーしてきて
pkgs/ncurses-6.2-h58526e2_4/share/terminfo/N/ncr260vt300wpp
を置き換えたところminicondaのインストールが成功した
(Eterm
のファイルサイズが違うぞって怒られたけど無視)。