概要
はじめてRe:VIEWを導入する方、且つ、Windows10ユーザーの方、を対象に「とりあえずPDFを作れる環境を構築する」までの手順を記載します(RubyもLaTexも不要で所要1hほど)。
Windows 10(Home含む)環境にて、WSL上にDockerイメージ経由でRe:VIEWコンパイルを行います。これにより、LaTeXやRubyの(ネイティブ)セットアップを不要とできます。
なお、内容としては当方の次の過去記事と同様です。ただし、切り取り方を「背景はさておき、PDFを作れる環境を構築する」に変えたのがこの記事です。
環境構築の所要時間
本記事に記載の手順を実行する所要時間は、インターネット回線の速度に依存しますが、ダウンロードの実効速度が10~30Mbpsの環境で1h程度です。その大半は、ダウンロード時間です。
大まかな手順
次の手順で、Window10へRe:VIEW環境を導入します。
- Ubuntu on WSL (=Windows Subsystem for Linux) をセットアップ
- Re:VIEW image for Docker をセットアップ
- テクブさん(Teckboosterさん)のテンプレートをコンパイルしてサンプルPDF作成
動作環境
動作検証した環境は以下です。
- Microsoft Windows 10 Home (10.0.17134)
- Windows 10 April Update 2018 適用済み。
- メモリ:4GB
- WSL : Ubuntu 16.04
- Docker version : 17.03.2-ce
- より詳しいバージョン情報は過去記事の「 §動作検証した環境(2019/07/22) 」を参照
- WSLとDockerバージョンの組み合わせによっては動作しないことがあるので注意
- 少なくとも、Decker 18.xxだと動かない(→ 最新のdocker-ceではなく、docker.ioを入れる )
環境構築に必要なストレージの空きスペースは以下です。
- ストレージ内に最低でも3.2GB以上の空き領域。
- Windows Subsystem for Linuxをインストールすると1GBと少し使用します。
- Re:VIEW image for Dockerをインストールすると2GB前後を使用します(Re:VIEW 2.5、3.1で確認)。
なお、実行時のメモリ使用量は、0.1GB程度です。
§1. Ubuntu on WSL のセットアップ
※過去記事の「Windows Subsystem for Linux のセットアップ」節と全く同じです。
WSLの機能を有効化
以下の操作で、WSLを有効化します。
-
下の方へスクロールして「関連設定」の「プログラムと機能」を開く(※右ペインに表示されることもあるので、右側になければ下へ)
-
「Windowsの機能の有効化または無効化」を開く
-
WSLのインストールが始まるので、終了したら「今すぐ再起動」をクリックして再起動する
※WSLのインストール自体はすぐ終わります。再起動後に「インストールしています・・・」などの追加処理はありません。
Ubuntu 16.04のインストール
つづいて、WSL環境の上で実際に動作するLinuxディストリビューションアプリをインストールします。「Ubuntu 16.04 LTS」を取得します。具体的には以下の操作を行います。
- ※2020-05-02現在、当方の環境ではStoreの検索ボックスに「
Ubuntu 16.04 LTS
」を入力してもヒットしなくなっていました。以下のリンクから直接ジャンプすると未だ取得できる(~2022年まで?)ようです。
“Microsoft Store”では現在、「Ubuntu」(そのときどきの最新版にアップデートされる)と「Ubuntu 16.04 LTS」、「Ubuntu 18.04 LTS」、「Ubuntu 20.04 LTS」の4バージョンが利用できる。
-
再起動後、スタートメニューから「Microsoft Store」を選択し、検索ボックスに「Ubuntu」を入力して「
Ubuntu 16.04 LTS
」を選択する
-
WSLのコマンドラインが開いて、Ubuntuの初期設定としてユーザー名とパスワードを聞いてくるので、Linux(Ubuntu)上で利用するユーザー名とパスワードを入力する
以上で、Docker for UbuntuをWindows10上で利用するための準備「Ubuntu on WSL
」環境のセットアップが完了しました。
次のコマンドを打ち、WSLをいったん閉じます。
exit
§2. Re:VIEW image for Docker をセットアップ
Docker for Ubuntu on WSLをインストール
先ほどまでの手順で準備した「Ubuntu on WSL
」環境に対して、次の手順でDocker for Ubuntu をインストールします。
- 「スタートメニュー>Ubuntu」を選んで(もしくは検索ボックスに入力して検索)、右クリックします
- 「その他>管理者として起動」を選択します
- 開いたUbunutのコマンドライン上で、次のコマンドを一行ずつ実行します
sudo apt update
sudo apt upgrade
※「一行ずつ」なのは途中でパスワード入力を求められたり、「ディスクスペースをxx使うがOKか?」なのど確認が入るため。
※パスワードを要求された場合は、先ほどの「Ubuntuの初期設定」で設定したパスワードを入れます。
- 次のコマンドを1行ずつ打ち込み、Dockerの17.03.3-ceを明示的に指定して取得してインストールします。(以前、~2020/01の時点では、
sudo apt install -y docker.io
でインストールすれば動くバージョンが入っていたのだが、その後NGになったようだ)
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt update
$ sudo apt install -y docker-ce=17.03.3~ce-0~ubuntu-xenial
$ sudo usermod -aG docker $USER
次のように画面表示で、Dockerの取得とインストールが進みます。
- 上図のようにコマンドラインが入力待ちに戻ったら、次のコマンドを実行します。
sudo cgroupfs-mount
sudo service docker start
docker version
- インストールされたDockerバージョンが表示されるので「
Version: 17.03.03-cd
」となっていることを確認します。 - コマンドライン上で「
exit
」を入力し、Ubuntu on WSLをいったん終了します - 「スタートメニュー>Ubuntu」を選んで、Ubuntu on WSLを改めて起動します(※この場面では、管理者権限での起動は不要です)
- dockder が正しくセットアップされたの確認のため、次のコマンドを入力してHello Worldのイメージを起動します
docker run hello-world
上図のように「Hello from Docker!」が表示されれば成功です。
Re:VIEW image for Dockerの取得
続いて、「Re:VIEW image for Docker」を取得します。
これは「必要なコマンドや動作環境を、簡単に導入できるようまとめたパッケージ」と捉えてください。
先の「Hello World」を実行したコマンドライン上で、次のコマンドを実行します(※2019/05/08時点で最新のVer.3.1を指定)。
※パスワードを要求された場合は、先ほどの「Ubuntuの初期設定」で設定したパスワードを入れます。
sudo docker pull vvakame/review:3.1
イメージのダウンロードが終わるのを待ちます。
ダウンロードが終わりましたら、動作確認を目的に、次の操作を行います。
具体的には、WSLのコマンドライン上で先の「pull
~」に続けて、次のコマンドを実行します。
- 作業用のフォルダ「
D:\repo-doc
」を作成します(※パスは任意に変更可能。変更した場合、以降は読み替え)。- このフォルダ配下に、プロジェクトごとのフォルダ(PDFの作成単位)を作成します。
mkdir /mnt/d/repo-doc
- dockerイメージを利用して、reviewのサンプルファイルの作成とコンパイル(PDFの作成)を行います。
docker run -v /mnt/d/repo-doc:/work -it vvakame/review:3.1 /bin/sh
コマンドラインの表示が微妙に($
→#
)切り替わりますが(WSL上からdockerコンテナ上に切り替わる)、気にせず続けて次のコマンドを実行します。
cd /work
review-init review-sample
cd review-sample
review-pdfmaker config.yml
exit
※上記をコピペで一気に入力すると、表示の順序の異なる場合がありますが、気にしなくてよいです。気になる場合は、一行ずつ入力してください。
最後で、コマンドラインの表示が微妙に(#
→$
)切り替わりますが(dockerコンテナから抜ける)、気にしないでください。
Windows上のExplorerでDドライブのルートにある「repo-doc」フォルダを開きます。中に「review-sample」というフォルダが作成され、フォルダ内に「book.pdf
」ファイルが生成されていることを確認してください。このpefファイルが、「review-sample」のReviewドキュメント(review-sample.re
)から作成されたpdfです。
以上で、Windows10上で、(Ubuntu on WSL上にUbuntus for Docker
とRe:VIEW image for Docker
を用いて)Re:VIEWのreviewコマンドによるPDF作成を行う環境構築が完了しました。
次のコマンドを打ち、WSLを抜けて通常のコマンドラインに戻ります。コマンドラインはそのまま閉じてください。
exit
ここまでの作業は初回のみです。
普段の作業「Re:VIEWファイル(*.re
)を書く→PDFファイルに出力する」は、次の節の「§3」からになります。
§3. テクブさん(Teckboosterさん)のテンプレートをコンパイルしてサンプルPDF作成
テクブさん(Teckboosterさん)のテンプレートを用いて、書籍用(同人誌などの製本用)のPDFを作成します。
※ここでテクブさんのテンプレを使うのは、単に筆者の好みです。
TechBooster/ReVIEW-Templateを取得
次のURLのページを開き、「clone or download」>「Download ZIP」からテンプレートをZipファイルで取得します(Gitが分かる方は、Cloneして構いません)。
取得したZipファイルを展開します。ここでは、「D:\repo-doc\ReVIEW-Template-master
」に展開したものとして話を進めます。なおフォルダ名は任意に変更可能です。変更した場合は、以降は読み替えてください。
この時点で、D:\repo-doc\ReVIEW-Template-master\articles
配下にはPDFファイルがまだありません。
article.reをreviewコマンドでコンパイルしてPDFファイルを作る
D:\repo-doc\ReVIEW-Template-master\articles
配下にある article.re
がPDF作成のもとになるテキストファイルです。
1つ上のフォルダ「D:\repo-doc\ReVIEW-Template-master
」でコマンドラインを開きます。※通常のコマンドラインで、WSLではありません。
コマンドライン上で、次のコマンドを実行します。wslコマンド実行で、表示が微妙に変わりますが気にしないでください(WSL上に入った)。
wsl
docker run --rm -v `pwd`/articles:/work vvakame/review:3.1 /bin/sh -c "cd /work && review-pdfmaker config.yml"
「Cannot connect to the Docker」のエラーが出る場合
先のコマンドの実行時にもし次のようなエラーが出る場合があります。
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
その際は、次の操作を行います。
- 「スタートメニュー>Ubuntu」を選んで(もしくは検索ボックスに入力して検索)、右クリックします
- 「その他>管理者として起動」を選択します
- 開いたUbunutのコマンドライン上で、次のコマンドを実行します
sudo cgroupfs-mount && sudo service docker start
実行を終えたら「exit
」と打ち、後から開いたUbuntuコマンドライン閉じます。先のWSL上のコマンドラインに戻り、改めて、次のコマンドを実行します。
docker run --rm -v `pwd`/articles:/work vvakame/review:3.1 /bin/sh -c "cd /work && review-pdfmaker config.yml"
reviewコマンドによるPDF作成結果
正常に「docker ~(中略)~ review-pdfmaker
」コマンドが終了すると、次の図のようになります。
D:\repo-doc\ReVIEW-Template-master\articles
フォルダ配下に、PDFファイル「ReVIEW-Template.pdf
」が作成されていることを確認してください。
以降、article.re
ファイル他に文章を書き足したら、先の節「article.reをreviewコマンドでコンパイルしてPDFファイルを作る」を再実行することで、PDFファイルを再作成できます。
なお、「wsl
」コマンドを一度打った後は、「exit
」コマンドを実行するまでは、「wsl
」は省略して「docker ~(中略)~ review-pdfmaker ~(略)
」のみでPDF作成を行えます。
以上です。
余談
「re:view windows10
」で検索すると、「LaTex+Rubyをインストールして」という正攻法の記事がヒットする。その方法でも構わないのだけれど、LaTexやRubyは環境依存でハマることがあるので、その辺りの「環境依存を回避しやすい」Docker使う方法を纏めたくなって、まとめてみた。
なお本記事は、2019/05/10時点のWSLを前提としている。
今月2019/05月末に「WSL2が出る」との噂話なので、そちらだと変わるかも知らん?でも操作としては「Docker for Ubuntuでの標準操作」と同一なので、変わらない可能性が高い、かな?
参考サイト
- Re:VIEW ナレッジベース
- 公式FAQ(Re VIEW knowledge ドキュメント) - Re VIEW の使い方について
- https://review-knowledge-ja.readthedocs.io/ja/latest/faq/faq-usage.html?highlight=Windows
- 「
Ruby インタプリタ 2.1 以上がインストールされた OS 環境であれば、基本的に動作します。TeX を使った PDF 生成を行う場合は、別途日本語 TeX 環境のセットアップが必要です。
」の記載がありますが、本記事で紹介したDockerを使う方法では、Docker Image内にRubyもTexも内包されています。個別調達は不要です。
- Re:VIEW公式Github
- vvakame_docker-review Re VIEW build container by docker
- Re:VIEWの3.10での更新履歴 - kmuto_review
- TechBooster_ReVIEW-Template TechBoosterで利用しているRe VIEWのテンプレート(B5_A5_電子書籍)を公開しています
- [2019年1月版]WSL + Ubuntu で Docker が動くっ!動くぞコイツッ!
- https://qiita.com/koinori/items/78a946fc74452af9afba#ubuntu-1604-lts--docker-17033
- ↑こちらの記事、Dockerのバージョンを指定してインストールする方法を「コピペで使える」レベルで記載してくれており、大変助かりました!