2021/05/01

Docker で wxmaxima を動かす

Mac OS で Maxima を使うのに単純に Homebrew とかでインストールしてもうまくいかないことが多い. そのためビルドする必要があるが, 環境構築とかがいろいろ必要になって面倒なので docker でまるまるパッケージした.

環境

  • Docker version 20.10.5, build 55c4c88
  • XQuarz 2.8.1 (xorg-server 1.20.11)

構築

Dockerfile とかは以下.

wxMaxima on docker - gist.github.com

Dockerfile 内でやることは大まかに3つ.

  1. GUIを使えるようにするためにX11系をインストール
  2. maximaをビルド[1]
  3. wxMaximaをビルド[2]

あとこっそり gnuplot と fonts-jsmath を apt で入れている.

タグつけてイメージビルド.

$ docker build -t maxima-docker .

Docker 起動

設定ファイルを拾ってくるために一度起動してみる.

$ docker run --rm -e DISPLAY=$(hostname):0 \
    -v ~/.Xauthority:/root/.Xauthority \
    maxima-docker /usr/bin/wxmaxima

動いた.

画面の設定をしたら, wxMaximaの設定ファイル (/root/.wxMaxima) を拾ってホストのローカルディレクトリに保存しておく. あとでホスト側から設定ファイルをマウントしたときに上書きできないとエラーが出るがとりあえず無視.

docker を起動するスクリプトを用意.

#!/bin/bash
/usr/local/bin/docker run --rm -e DISPLAY=$(hostname):0 \
    -v ~/.Xauthority:/root/.Xauthority \
    -v ~/.wxMaxima:/root/.wxMaxima \
    -v $(pwd):/mnt \
    maxima-docker /usr/bin/wxmaxima

あとで Automator に登録するときにPATHが通らないので docker の指定は絶対パスで指定する. -v $(pwd):/mnt だと Automator ではトップ (/) になるので, 好みで設定する.

Automator 登録

参考をもとに[3], Automator に登録. .app/Applications に保存すると launchpad からも起動できるようになる.

参考

[1] maxima-docker/Dockerfile.debian at master · jgoldfar/maxima-docker

[2] docker-wxmaxima/Dockerfile at master · wxMaxima-developers/docker-wxmaxima

[3] Macでシェルスクリプトを .appアイコン化する方法 - Qiita

0 件のコメント:

コメントを投稿