Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-その他- Maximaの環境整備(3) maxima jupyterとmaxima asdfのコンテナ をWindows 10 home version 2004のWSL2で!!

f:id:jurupapa:20180712205935j:plain

 

こちらの記事の続きです。

Jupyter notebookは良いけど、Maximaを使えるようにする仕組みをWindowsで動かすのは大変そう、とか、将来はこんな環境がコンテナ化されて使えるようになる、という話を書きました。

 

実は今、Microsoftがとても頑張っているおかげで、Windowsの世界で大きな変化が起きています。先月末くらいに公式リリースされたWindows 10 version 2004というやつです。このバージョンからWindows 10 homeでもWSL2という機能が標準搭載されました。Windows 10の中で仮想機能を使ってLinuxカーネルが動く、という仕組みです。

早速Docker Desktopがこれに対応したバージョンを配布しており、DockerコンテナがWindows10 homeでも動かせる!!ということなのです。

 

で、やってみました。実はこの話を知った先月頃から次のものを全て含むDockerコンテナを作って手元で試し始めていました。

実は、最近ブログ記事を書くためのmaxima環境はまさに上記の通り(+ gitくらい)です。

 

一昨日くらいから新しく初めた作業は以下の通り:

  • 上記のDockerfileから作成したDocker imageをDockerhubに登録
  • 家の古いWindows 10 home PCをversion 2004に更新
  • 手順に従ってWSL2を有効化
  • 手順に従ってDocker Desktop for Windowsをインストール
  • Powershellの中でDockerhubに登録したイメージを指定して実行

うまく動きました!! 

Windows 10 home上でコンテナが起動してその中でjupyter notebookの起動、Windows上のEdgeブラウザでjupyter notebookをアクセスし、ノートを開きmaximaセッションを実行することが出来ました。もちろん公開済みのMaximaパッケージ(GaloisGroupSolver, qepmax, euler-maclaurin-sum)をGithubから直接インストールして実行することもできました。同じことは既にMac OS Xでも可能ですし、クラウドでもこのコンテナは動作すると思います。つまりDockerコンテナがとても汎用的なアプリ実行環境になるのです。

実はこの環境が出来たことでもう一つ長年の夢が叶いました。それはqepcad Bを呼び出すqepmaxの実行がWindows PC単体で実現できたことです。

 

このストーリーの残念な点は、上記手順のうち「WSL2を有効化」とか「Powershellの中でDockerhubに登録したイメージを指定して実行」のハードルが高く、やはりエンジニアの方にしかお勧めできないことです。

マクロソフトがWSL2をデフォルトで有効にし、Docker Desktop for Windowsがもう少しだけ使いやすくなれば、この環境を誰にでもお勧めできるようになると思います。

 

 追記:既にDocker desktop (win/mac/linux)を導入済みの場合、上記のDockerコンテナを使ってみたい方は、

docker run -it --rm --name maxima-jupyter-asdf-sbcl -p 8888:8888 yasuakihonda/maxima-jupyter-asdf-sbcl jupyter notebook --ip 0.0.0.0 --allow-root

でコンテナを起動してください。jupyterの起動メッセージに表示されるURL(トークン付きです)を同じマシン上のブラウザのアドレスバーにコピペすればアクセスできるはずです。初期画面の右上のnewを押して、ドロップメニューからmaximaを選択してください。新しいMaximaセッションが始まります。