2026-02-10 programming
Risa/Asirのインストール2 Risa Asir Install
Risa/Asirのインストール解説 Risa/Asirのインストール解説
2026年2月9日, 東北大学で開催された第5回保型形式小集会で聴講しているとき, メールで神戸大学の高山信毅先生からhttps://github.com/openxm-org/OpenXMとhttps://github.com/openxm-org/OpenXM_contrib2からソースをダウンロードすることを推奨する旨のメールを頂いた. お伝え頂いた日本大学の濱田龍義先生ありがとうございます.
本稿ではRisa/Asirのインストールの内容を指摘していただいた内容で再構成し, 最低限必要なパッケージをインストールするようにしたdockerfileを公開する. また, この最低限のdockerfileはビルドが最後まで通るという意味であるため, 本稿ではエラーを洗い出した道程と追加したパッケージに関しても記述する.
完全版Dockerfileに関してはGitHubにも公開しておく.
ビルド成功までの最低限のDockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
git \
build-essential \
autoconf \
curl \
libncurses5-dev \
libncursesw5-dev \
libncurses-dev \
libtinfo-dev \
bison \
file \
flex \
xorg-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/openxm-org/OpenXM
RUN git clone https://github.com/openxm-org/OpenXM_contrib2
WORKDIR /OpenXM/src
RUN make configure
RUN make install
WORKDIR /OpenXM/rc
RUN make && mkdir ~/bin && cp openxm ~/bin
CMD ["/bin/bash"]
次のコマンドを実行しビルドした.
DOCKER_BUILDKIT=1 docker build --no-cache -t risa-asir . 2>&1 | tee build.log
この時点でビルドは成功したが, いくつかエラーが出ていたため, 恐らく使用している中で不都合が出てくると思われる.
grep -nEi 'not found|command not found|No such file or directory|cannot find' build.log > error.log
でnot foundであるエラーを抽出して対応する.
コマンドが存在しない系
md5.sh: not found
uudecode: command not found
javac (java compiler) is not found in your search path
ptex: not found
pstoimg: not found
makeinfo is not found
pkg-config による依存パッケージ未検出系
Package 'libcerf', required by 'virtual:world', not found
Package 'cairo', required by 'virtual:world', not found
Package 'pango', required by 'virtual:world', not found
Package 'pangocairo', required by 'virtual:world', not found
Package 'glib-2.0', required by 'virtual:world', not found
Package 'Qt5Core', required by 'virtual:world', not found
Package 'Qt5Gui', required by 'virtual:world', not found
Package 'Qt5Network', required by 'virtual:world', not found
Package 'Qt5Svg', required by 'virtual:world', not found
Package 'Qt5PrintSupport', required by 'virtual:world', not found
Package 'QtCore', required by 'virtual:world', not found
Package 'QtGui', required by 'virtual:world', not found
Package 'QtNetwork', required by 'virtual:world', not found
Package 'QtSvg', required by 'virtual:world', not found
追加パッケージ
以下, 優先度が高い順に記載する.
pkg-config- ライブラリのコンパイル, リンク時の設定情報を取得するための補助ツール. 依存関係の検出に広く用いられるため必須.
texinfoconfigureが必須条件とする場合があるため必須.
texlive-extra-utilskpsexpand,kpsewhichなどを提供する.configureが TeX のインストール先検出に用いるため事実上必須.
texi2html- Texinfo を HTML に変換するためのツール. ドキュメント生成時に使用されるためほぼ必須.
libcerf-dev- 複素誤差関数(Cerf 関数)を提供する開発用ライブラリ. 数値計算機能の有効化に必要なため必須.
libcerf2libcerfの実行時ライブラリ.libcerf-devと併せて導入する必要があるため必須.
sharutils- 古い配布形式(shar アーカイブ)を復元するためのツール.
texlive-latex-recommended- LaTeX の基本的なクラス, パッケージ集合. ドキュメント生成の最低限として必要.
libgd-dev- GD ライブラリの開発ヘッダ. 画像出力や
texi2html/gnuplot 関連の機能有効化に必要.
- GD ライブラリの開発ヘッダ. 画像出力や
libgd3- GD ライブラリの実行時パッケージ.
libgd-devが有効にする機能の実行時依存として必要.
- GD ライブラリの実行時パッケージ.
libpng-dev- PNG 画像処理の開発ヘッダ. GD, gnuplot, ドキュメント生成系で画像出力を扱う際に必要.
libjpeg-dev- JPEG 画像処理の開発ヘッダ. 画像変換や描画系機能を有効化する際に必要.
libcairo2-dev- gnuplot の pdfcairo, pngcairo, svgcairo 端末用描画ライブラリ. 高品質な PDF, PNG, SVG 出力を行う場合に必要.
libpango1.0-dev- フォントレイアウト用ライブラリ. cairo と組み合わせて高品質な文字描画を行う場合に必要.
libglib2.0-dev- pango, cairo の基盤ライブラリ. 描画系依存を有効化するために必要.
qtbase5-dev- gnuplot の Qt 端末(
set term qt)用. GUI 表示を行う場合に必要.
- gnuplot の Qt 端末(
libqt5svg5-dev- Qt による SVG 描画サポート. gnuplot の Qt, SVG 出力を利用する場合に必要.
netpbm- LaTeX → HTML 変換時に PostScript 出力を画像化するためのコマンド. 導入しない場合, ドキュメント生成結果が不完全になることがある.
texlive-latex-extra- LaTeX 拡張パッケージ群. 導入しない場合でもビルドは通るが, ドキュメント生成が途中で失敗することがあるため推奨.
texlive-fonts-recommended- 標準的な追加フォント群. PDF, HTML 出力時の互換性向上のため推奨.
qttools5-dev- Qt 補助ツール群. Qt 端末を完全に利用する場合に有用.
texlive-xetex- XeTeX, XeLaTeX を提供する. Unicode, 日本語対応を含む近代的な LaTeX 処理を行う場合に有用.
texlive-lang-japanese- 日本語ドキュメント生成用の TeX 環境. 日本語文書を生成しない場合は不要.
latex2html- LaTeX 文書を HTML に変換するためのツール. ドキュメント生成用途. 必須ではない.
ghostscript- PostScript, PDF 処理用ユーティリティ. LaTeX → HTML 変換時に間接的に利用される. 必須ではない.
default-jdk- Java 開発キット. Java を用いる機能を使用しない場合は不要.
nkf- 文字コード変換ユーティリティ. 日本語文書処理や文字コードの正規化に用いられる. 必須ではない.
その他対応
md5.sh: not foundはPATHに/OpenXM/binを通すことにより解決.
configure スクリプトの異常実行系
./configure: line 2703: 0: command not found
md5.shはOpenXMが提供するスクリプトで, インストール後は/OpenXM/binに置かれるためPATHを追加して解決した.
完全版Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
\
# ----- 最優先:ビルドそのものに必須 -----
build-essential \
autoconf \
bison \
flex \
file \
curl \
git \
pkg-config \
\
# ----- 数値計算・OpenXM 本体依存 -----
libcerf2 \
libcerf-dev \
\
# ----- 端末・UI・gnuplot 関連 -----
libncurses5-dev \
libncursesw5-dev \
libncurses-dev \
libtinfo-dev \
xorg-dev \
\
# ----- gd(画像/texi2html/gnuplot 等で検出されがち)-----
libgd-dev \
libgd3 \
libpng-dev \
libjpeg-dev \
\
# ----- gnuplot 高品質描画(cairo / pango)-----
libcairo2-dev \
libpango1.0-dev \
libglib2.0-dev \
\
# ----- gnuplot Qt 端末(GUI)-----
qtbase5-dev \
qttools5-dev \
libqt5svg5-dev \
\
# ----- configure / doc 判定で必須になりがち -----
texinfo \
texi2html \
sharutils \
\
# ----- TeX 検出・kpsexpand(最重要 TeX ユーティリティ) -----
texlive-extra-utils \
\
# ----- LaTeX基本環境(doc 生成の最低ライン) -----
texlive-latex-recommended \
texlive-fonts-recommended \
\
# ----- LaTeX拡張(doc が途中で死ぬのを防ぐ) -----
texlive-latex-extra \
\
# ----- XeTeX / Unicode(日本語・近代 LaTeX) -----
texlive-xetex \
texlive-lang-japanese \
\
# ----- LaTeX→HTML / 画像変換系 -----
latex2html \
ghostscript \
netpbm \
\
# ----- 補助ツール -----
nkf \
default-jdk \
\
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/openxm-org/OpenXM
RUN git clone https://github.com/openxm-org/OpenXM_contrib2
WORKDIR /OpenXM/src
ENV PATH="/OpenXM/bin:${PATH}"
RUN make configure
RUN make install
WORKDIR /OpenXM/rc
RUN make && mkdir ~/bin && cp openxm ~/bin
WORKDIR /
CMD ["/bin/bash"]
議論やフィードバックは nakano.ryunosuke.i3[at]elms.hokudai.ac.jp まで.
Feedback and discussion: nakano.ryunosuke.i3[at]elms.hokudai.ac.jp.