30
27

More than 3 years have passed since last update.

Re:VIEW環境をWindows10上で簡単に構築してPDFを出力するまで

Last updated at Posted at 2019-05-10

概要

はじめてRe:VIEWを導入する方、且つ、Windows10ユーザーの方、を対象に「とりあえずPDFを作れる環境を構築する」までの手順を記載します(RubyもLaTexも不要で所要1hほど)。

Windows 10(Home含む)環境にて、WSL上にDockerイメージ経由でRe:VIEWコンパイルを行います。これにより、LaTeXやRubyの(ネイティブ)セットアップを不要とできます。

なお、内容としては当方の次の過去記事と同様です。ただし、切り取り方を「背景はさておき、PDFを作れる環境を構築する」に変えたのがこの記事です。

環境構築の所要時間

本記事に記載の手順を実行する所要時間は、インターネット回線の速度に依存しますが、ダウンロードの実効速度が10~30Mbpsの環境で1h程度です。その大半は、ダウンロード時間です。

大まかな手順

次の手順で、Window10へRe:VIEW環境を導入します。

  1. Ubuntu on WSL (=Windows Subsystem for Linux) をセットアップ
  2. Re:VIEW image for Docker をセットアップ
  3. テクブさん(Teckboosterさん)のテンプレートをコンパイルしてサンプルPDF作成

動作環境

動作検証した環境は以下です。

環境構築に必要なストレージの空きスペースは以下です。

  • ストレージ内に最低でも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を有効化します。

  1. スタートメニューの「設定」から「アプリと機能」を開く
    スクリーンショット 2018-07-22 01.07.44-a.png

  2. 下の方へスクロールして「関連設定」の「プログラムと機能」を開く(※右ペインに表示されることもあるので、右側になければ下へ)
    スクリーンショット 2018-07-21 09.23.03-a.png

  3. 「Windowsの機能の有効化または無効化」を開く

  4. 「Windows Subsystem for Linux」にチェックを入れて「OK」ボタンを押す
    スクリーンショット 2018-07-21 09.23.25.png

  5. WSLのインストールが始まるので、終了したら「今すぐ再起動」をクリックして再起動する

※WSLのインストール自体はすぐ終わります。再起動後に「インストールしています・・・」などの追加処理はありません。

Ubuntu 16.04のインストール

つづいて、WSL環境の上で実際に動作するLinuxディストリビューションアプリをインストールします。「Ubuntu 16.04 LTS」を取得します。具体的には以下の操作を行います。

“Microsoft Store”では現在、「Ubuntu」(そのときどきの最新版にアップデートされる)と「Ubuntu 16.04 LTS」、「Ubuntu 18.04 LTS」、「Ubuntu 20.04 LTS」の4バージョンが利用できる。

  1. 再起動後、スタートメニューから「Microsoft Store」を選択し、検索ボックスに「Ubuntu」を入力して「Ubuntu 16.04 LTS」を選択する
    スクリーンショット 2018-07-21 09.30.46-a.png

  2. 「入手」ボタンをクリックして(ダウンロード&)インストールする
    スクリーンショット 2018-07-21 09.31.09.png

  3. インストールが完了すると、次の画面になる(2020-05.02の時点で確認して追記)ので、「起動」を押す。
    スクリーンショット 2020-05-02 18.05.36.png

  4. WSLのコマンドラインが開いて、Ubuntuの初期設定としてユーザー名とパスワードを聞いてくるので、Linux(Ubuntu)上で利用するユーザー名とパスワードを入力する

    • ※ここで入力したパスワードは、今後も入力する場面が多いので覚えておく。 スクリーンショット 2018-07-21 09.37.05-a.png
  5. 初期設定が完了すると、Ubuntu on WSLのコマンドプロンプト(ターミナル)が表示される
    スクリーンショット 2018-07-21 09.37.43-a.png

以上で、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 をインストールします。

  1. 「スタートメニュー>Ubuntu」を選んで(もしくは検索ボックスに入力して検索)、右クリックします
  2. 「その他>管理者として起動」を選択します
  3. 開いたUbunutのコマンドライン上で、次のコマンドを一行ずつ実行します
sudo apt update
sudo apt upgrade

※「一行ずつ」なのは途中でパスワード入力を求められたり、「ディスクスペースをxx使うがOKか?」なのど確認が入るため。
※パスワードを要求された場合は、先ほどの「Ubuntuの初期設定」で設定したパスワードを入れます。

  1. 次のコマンドを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の取得とインストールが進みます。

スクリーンショット 2018-07-21 09.53.30.png

スクリーンショット 2018-07-21 10.05.02.png

  1. 上図のようにコマンドラインが入力待ちに戻ったら、次のコマンドを実行します。
sudo cgroupfs-mount
sudo service docker start
docker version
  1. インストールされたDockerバージョンが表示されるので「Version: 17.03.03-cd」となっていることを確認します。
  2. コマンドライン上で「exit」を入力し、Ubuntu on WSLをいったん終了します
  3. 「スタートメニュー>Ubuntu」を選んで、Ubuntu on WSLを改めて起動します(※この場面では、管理者権限での起動は不要です)
  4. dockder が正しくセットアップされたの確認のため、次のコマンドを入力してHello Worldのイメージを起動します
docker run hello-world

スクリーンショット 2018-07-21 10.11.17-hello-docker.png

上図のように「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

イメージのダウンロードが終わるのを待ちます。

docker-image2.png

ダウンロードが終わりましたら、動作確認を目的に、次の操作を行います。
具体的には、WSLのコマンドライン上で先の「pull ~」に続けて、次のコマンドを実行します。

  1. 作業用のフォルダ「D:\repo-doc」を作成します(※パスは任意に変更可能。変更した場合、以降は読み替え)。
    • このフォルダ配下に、プロジェクトごとのフォルダ(PDFの作成単位)を作成します。
mkdir /mnt/d/repo-doc
  1. 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コンテナから抜ける)、気にしないでください。

docker-image3-pdfmaker.png

Windows上のExplorerでDドライブのルートにある「repo-doc」フォルダを開きます。中に「review-sample」というフォルダが作成され、フォルダ内に「book.pdf」ファイルが生成されていることを確認してください。このpefファイルが、「review-sample」のReviewドキュメント(review-sample.re)から作成されたpdfです。

以上で、Windows10上で、(Ubuntu on WSL上にUbuntus for DockerRe: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して構いません)。

review-techbooster-template.png

取得した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'.

その際は、次の操作を行います。

  1. 「スタートメニュー>Ubuntu」を選んで(もしくは検索ボックスに入力して検索)、右クリックします
  2. 「その他>管理者として起動」を選択します
  3. 開いたUbunutのコマンドライン上で、次のコマンドを実行します
sudo cgroupfs-mount && sudo service docker start

docker-pdfmaker2.png

実行を終えたら「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」コマンドが終了すると、次の図のようになります。

docker-pdfmaker4.png

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での標準操作」と同一なので、変わらない可能性が高い、かな?

参考サイト

30
27
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
27