Ubuntu 18.04.1 LTSでSATySFi 0.0.3をインストールしてみる


この記事について

この記事は自分のLinuxPCにSATySFiを2018年1月に入れてみたときのメモです。

SATySFiのインストールに参考にしたのは公式のREADME-ja.mdです。ほぼこのままになるのでREADME-ja.mdを見ながらやったほうが早いかもしれません。

対象はタイトルの通り


  • Ubuntu 18.04.1 LTS

  • SATySFi 0.0.3

となります。


準備

まずSATySFiをインストールするための準備をしていきます。

sudo apt-get update

sudo apt-get install build-essential ruby git m4 unzip curl

sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)

# 以下のコマンドは OPAM がファイルに追記してもよいか聞いてきます。
# 必ず説明を読み,環境変数を適切に設定してください。
# ここで--disable-sandboxingを指定することでOpam2をインストールする。
# これをしないとOCamlを4.06.0に変更できない
opam init --comp 4.06.0 --disable-sandboxing

eval $(opam env)

ocaml --version

# ここでもしバージョンが4.06.0でないなら次のコマンドを打ちます
# もしERRORが起きたら指示通りにopam switch create 4.06.0を打ってください
# このコマンドは時間がかかるかもしれないので気長にお待ちください
opam switch 4.06.0

opam repository add satysfi-external https://github.com/gfngfn/satysfi-external-repo.git
# このコマンドも時間がかかります
opam update

これでSATySFiを入れるための準備は終了です。


SATySFiをインストールする

Githubのリポジトリをクローンで落としてきて、ビルドしてインストールします。

# clone

cd (SATySFiを入れたいフォルダ)
git clone https://github.com/gfngfn/SATySFi.git
cd SATySFi

# build
opam pin add satysfi . # 最後の"."を忘れずに。実行すると大量にインストールが行われます。
opam install satysfi

これでSATySFiのインストールは完了です。試しにsatysfi --helpsatysfi --versionと入力してみるとSATySFiの情報が色々と出てくるかと思います。(出てこなきゃこれまでのインストールのどこかで失敗しているはず。)


世界への挨拶

git cloneしたときのSATySFi/demoのフォルダごと適当なワークスペースにコピーして中に入ります。そこでsatysfi demo.satyと入力すると

  target file: 'demo.pdf'

! [Error] package file not found:
dist/hash/default-font.satysfi-hash
candidate paths:
/home/(USER_NAME)/.satysfi/dist/hash/default-font.satysfi-hash
/usr/local/share/satysfi/dist/hash/default-font.satysfi-hash
/usr/share/satysfi/dist/hash/default-font.satysfi-hash

というエラーが発生します。このエラーの内容を読んでみるとフォントファイルが~/.satysfi/distの下で見つからなかったようなのでここを参考に~/.satysfiフォルダを作成していきます。.satysfiについてはこちらを参考にしてください。それでは.satysfi/distを用意していきます。

まずフォルダが存在しないのでmkdir ~/.satisfiとしてフォルダを作成します。

そして @na4zagin3 さんにコメントで教えていただいた情報によると、cp -a "$(opam var share)/satysfi/dist" ~/.satysfiを実行すると、SATySFi本体のビルド中にダウンロードされていたフォントをインストール完了後にopam管理下のディレクトリにコピーされたdistごと~/.satysfiにコピーしてきます。

再度satysfi demo.satyを実行してみるとうまく行く…かと思いきやまだ次のエラーがでてきます。

! [Error] satysfi-logo.jpg: No such file or directory

このエラーによるとsatysfi-logo.jpgが見つからないと言うだけなのでここsatysfi-logo-rgb.jpgsatysfi-logo.jpgという名前でダウンロードしてきてdemo.satyと同じフォルダに配置します。


そして何度めかの正直でsatysfi demo.satyを実行してみるとoutput written on 'demo.pdf'.と出力されてdemo.satyと同じフォルダにdemo.pdfという名前でPDFが吐き出されているはずです。


これでようやく世界に挨拶ができました。


SATySFiのアップデートとアンインストール

再インストール(アップデート)はopam reinstall satysfi を実行、アンインストールはopam uninstall satysfiを実行するとできます。


感想

SATySFiをインストールしてみて感じたのはとにかく時間がかかるということのみです。OpamやOCaml、Ocaml4.06.0、Rubyなどをインストールする必要がある為か大量のインストールが発生します。実際Windows XPに入れたUbuntu 18.04.1でのSATySFiのインストールは約3時間かかりました。

この記事はREADME-ja.mdの丸パクリ記事に少しだけのインストールメモとフォントのダウンロードの指定を追記しただけの記事ですが参考になると嬉しいです。