LoginSignup
1
2

More than 3 years have passed since last update.

Ubuntu18.04で使用するRe:VIEW4環境構築 ( rbenvを利用したRuby導入〜TechBoosterのRe:VIEWテンプレート導入まで)

Posted at

はじめに

最近、PCを新調してしまったのでRe:VIEWでの執筆環境を再構築してみました。
その時の備忘録・新たにUbuntuでRe:VIEWの執筆環境を構築する人向けに環境構築の情報を記述しておきます。
今の時代、dockerで環境はスグ構築できたりしますが、一度ローカル環境でコツコツ構築していくと新たな知見が得られるかもです!

Re:VIEWとは

EWBやRDあるいはWikiに似た簡易フォーマットで記述した、独自のマークアップ言語テキストファイルを使用した紙書籍・電子書籍作成支援ツールです。
出力フォーマットとしてPDFやEPUBなど、さまざまな書籍のフォーマットに対応しています。

導入PC OSバージョン

  • Ubuntu 18.04.3 LTS

導入したTool群の各種バージョン

  • TeX 3.14159265 (TeX Live 2017/Debian)
  • Ruby関連
    • rbenv 1.1.2-17-g7795476
      • ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
        • gem 3.0.3
        • bundle 2.1.4
    • ruby-build 20200115-8-g73b926b
  • Node.js関連
    • nodebrew 1.0.1
      • node v12.14.1
        • npm 6.13.4
  • Re:VIEW関連
    • Re:VIEW 4.0.0
    • TechBoosterのRe:VIEWテンプレート hash:a563244

TEXのインストール

Re:VIEWは、PDFを生成するために、TeXのインストールも必要となっています。
この為、事前にTEXを導入していきます。

$ sudo apt install texlive-lang-japanese texlive-latex-extra

Rubyのインストール

今回は、rbenvを利用して、Rubyを入れていきます。
rbenvとは、次のようなツールとなっています。

rbenvは、Rubyのバージョンを選択し、開発(development)環境を製品(production)環境にマッチしていることを保証するために使用します。 rbenvはBundlerによるデプロイ環境を、 Rubyのアップグレードによって損うことなく動作します。

引用: rbenv(http://ruby.studio-kingdom.com/rbenv/)

簡単に説明すると、複数のRubyのバージョンを管理して、プロジェクトごとにRubyのバージョンを指定して使う事ができるツールです。
読み方は「アールビー・エンブ」または「アールベンブ」らしいです。)

rbenv をログインユーザのホームディレクトリに設定する

後述するrbenv initを実行することにより、rbenv管理ディレクトリがホームディレクトリ直下の.rbenvに作成されます。
この為、rbenv自体をあらかじめホームディレクトリ直下の.rbenvに設置したほうが管理しやすいと思います。
(当初、/opt/rbenv へ導入して、いろいろハマったのは内緒w)

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv

rbenv clone ログ

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '$HOME/.rbenv'...
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 2811 (delta 10), reused 13 (delta 4), pack-reused 2788
Receiving objects: 100% (2811/2811), 542.41 KiB | 786.00 KiB/s, done.
Resolving deltas: 100% (1756/1756), done.

ruby-buildに導入に必要なパッケージのインストール

$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev

ruby-buildをrbenv管理ディレクトリのpluginのディレクトリに適用する。

rbenv installが使用できるようにrbenvのpluginsディレクトリへruby-buildを導入していく

rbenv管理ディレクトリである.rbenvへ導入しないと
正しくセットアップされているか確認する為のスクリプトチェックで、

Checking `rbenv install' support: not found

となり、rbenv installコマンドが使えない状態になるので、注意が必要です。

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

ruby-build clone ログ

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '$HOME/.rbenv/plugins/ruby-build'...
remote: Enumerating objects: 341, done.
remote: Counting objects: 100% (341/341), done.
remote: Compressing objects: 100% (243/243), done.
remote: Total 10600 (delta 248), reused 120 (delta 83), pack-reused 10259
Receiving objects: 100% (10600/10600), 2.22 MiB | 1005.00 KiB/s, done.
Resolving deltas: 100% (6929/6929), done.

.rbenvへのPATHを通す

rbenv管理ディレクトリである、ホームディレクトリ直下の.rbenvのパスを通すため、.bash_profileへパスが通る設定をする。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

また、実行しているコンソールへ設定したPATHが通るように、先程設定した.bash_profileのシェルの設定を反映される。

$ source ~/.bash_profile

rbenvのセットアップ

次のコマンドを実行することにより、rbenvで使用されるshimsとautocompletionを有効化させる。

$ ~/.rbenv/bin/rbenv init

rbenv init 実行 ログ
# Load rbenv automatically by appending
# the following to ~/.bash_profile:
 
eval "$(rbenv init -)"

実行ログに出ているように、.bash_profileに次の内容を追加し、eval "$(rbenv init -)"を実行できるようにする。

$ echo `eval \"\$\(rbenv init -\)\"` >> ~/.bash_profile

また、実行しているコンソールへ設定したeval "$(rbenv init -)"を実行させる為、先程設定した.bash_profileのシェルの設定を反映される。

$ source ~/.bash_profile

rbenvならびに、ruby-buildが正しくセットアップされているか確認

チェックする為のスクリプトをcurlを使用してダウンロード実行する。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

次のような実行ログになれば正常です。(私の場合、Rubyは入っていないため、Ruby versionsはnoneとなっています。)

チェックスクリプト 実行 ログ
Checking for `rbenv' in PATH: multiple
You seem to have multiple rbenv installs in the following locations.
Please pick just one installation and remove the others.
 

\$HOME/.rbenv/bin/rbenv
 
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: \$HOME/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20200115-8-g73b926b)
Counting installed Ruby versions: none
There aren't any Ruby versions installed under `\$HOME/.rbenv/versions'.
You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

===== rbenv機能メモ =====

rbenvのバージョン確認

$ rbenv --version
rbenv 1.1.2-17-g7795476

rbenvで使用している現在のRubyバージョン確認

$ rbenv version
system    # rbenv / ubuntuのaptでもRubyを入れてない場合は、このようになる。

rbenvでインストールしてあるrubyのバージョン確認

$ rbenv versions
Warning: no Ruby detected on the system    # rbenvでもRubyを入れてない場合は、このようになる。

rbenvで使用できるRubyバージョンリストの確認

$ rbenv install -l
1.8.5-p52
・・・

rbenv versions 実行 ログ(2020.1.20現在の使用できるRubyバージョン一覧)
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
1.8.6-p36
1.8.6-p110
1.8.6-p111
1.8.6-p114
1.8.6-p230
1.8.6-p286
1.8.6-p287
1.8.6-p368
1.8.6-p369
1.8.6-p383
1.8.6-p388
1.8.6-p398
1.8.6-p399
1.8.6-p420
1.8.7-preview1
1.8.7-preview2
1.8.7-preview3
1.8.7-preview4
1.8.7
1.8.7-p17
1.8.7-p22
1.8.7-p71
1.8.7-p72
1.8.7-p160
1.8.7-p173
1.8.7-p174
1.8.7-p248
1.8.7-p249
1.8.7-p299
1.8.7-p301
1.8.7-p302
1.8.7-p330
1.8.7-p334
1.8.7-p352
1.8.7-p357
1.8.7-p358
1.8.7-p370
1.8.7-p371
1.8.7-p373
1.8.7-p374
1.8.7-p375
1.9.0-0
1.9.0-1
1.9.0-2
1.9.0-3
1.9.0-4
1.9.0-5
1.9.1-preview1
1.9.1-preview2
1.9.1-rc1
1.9.1-rc2
1.9.1-p0
1.9.1-p129
1.9.1-p243
1.9.1-p376
1.9.1-p378
1.9.1-p429
1.9.1-p430
1.9.1-p431
1.9.2-preview1
1.9.2-preview3
1.9.2-rc1
1.9.2-rc2
1.9.2-p0
1.9.2-p136
1.9.2-p180
1.9.2-p290
1.9.2-p318
1.9.2-p320
1.9.2-p326
1.9.2-p330
1.9.3-dev
1.9.3-preview1
1.9.3-rc1
1.9.3-p0
1.9.3-p105
1.9.3-p125
1.9.3-p194
1.9.3-p286
1.9.3-p327
1.9.3-p362
1.9.3-p374
1.9.3-p385
1.9.3-p392
1.9.3-p426
1.9.3-p429
1.9.3-p448
1.9.3-p484
1.9.3-p545
1.9.3-p547
1.9.3-p550
1.9.3-p551
2.0.0-dev
2.0.0-preview1
2.0.0-preview2
2.0.0-rc1
2.0.0-rc2
2.0.0-p0
2.0.0-p195
2.0.0-p247
2.0.0-p353
2.0.0-p451
2.0.0-p481
2.0.0-p576
2.0.0-p594
2.0.0-p598
2.0.0-p643
2.0.0-p645
2.0.0-p647
2.0.0-p648
2.1.0-dev
2.1.0-preview1
2.1.0-preview2
2.1.0-rc1
2.1.0
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.1.8
2.1.9
2.1.10
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
2.2.0-rc1
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.2.10
2.3.0-dev
2.3.0-preview1
2.3.0-preview2
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
2.4.0-rc1
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.4.7
2.4.8
2.4.9
2.5.0-dev
2.5.0-preview1
2.5.0-rc1
2.5.0
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.5.7
2.6.0-dev
2.6.0-preview1
2.6.0-preview2
2.6.0-preview3
2.6.0-rc1
2.6.0-rc2
2.6.0
2.6.1
2.6.2
2.6.3
2.6.4
2.6.5
2.7.0-dev
2.7.0-preview1
2.7.0-preview2
2.7.0-preview3
2.7.0-rc1
2.7.0-rc2
2.7.0
2.8.0-dev
jruby-1.5.6
jruby-1.6.3
jruby-1.6.4
jruby-1.6.5
jruby-1.6.5.1
jruby-1.6.6
jruby-1.6.7
jruby-1.6.7.2
jruby-1.6.8
jruby-1.7.0-preview1
jruby-1.7.0-preview2
jruby-1.7.0-rc1
jruby-1.7.0-rc2
jruby-1.7.0
jruby-1.7.1
jruby-1.7.2
jruby-1.7.3
jruby-1.7.4
jruby-1.7.5
jruby-1.7.6
jruby-1.7.7
jruby-1.7.8
jruby-1.7.9
jruby-1.7.10
jruby-1.7.11
jruby-1.7.12
jruby-1.7.13
jruby-1.7.14
jruby-1.7.15
jruby-1.7.16
jruby-1.7.16.1
jruby-1.7.16.2
jruby-1.7.17
jruby-1.7.18
jruby-1.7.19
jruby-1.7.20
jruby-1.7.20.1
jruby-1.7.21
jruby-1.7.22
jruby-1.7.23
jruby-1.7.24
jruby-1.7.25
jruby-1.7.26
jruby-1.7.27
jruby-9.0.0.0.pre1
jruby-9.0.0.0.pre2
jruby-9.0.0.0.rc1
jruby-9.0.0.0.rc2
jruby-9.0.0.0
jruby-9.0.1.0
jruby-9.0.3.0
jruby-9.0.4.0
jruby-9.0.5.0
jruby-9.1.0.0-dev
jruby-9.1.0.0
jruby-9.1.1.0
jruby-9.1.2.0
jruby-9.1.3.0
jruby-9.1.4.0
jruby-9.1.5.0
jruby-9.1.6.0
jruby-9.1.7.0
jruby-9.1.8.0
jruby-9.1.9.0
jruby-9.1.10.0
jruby-9.1.11.0
jruby-9.1.12.0
jruby-9.1.13.0
jruby-9.1.14.0
jruby-9.1.15.0
jruby-9.1.16.0
jruby-9.1.17.0
jruby-9.2.0.0-dev
jruby-9.2.0.0
jruby-9.2.1.0-dev
jruby-9.2.1.0
jruby-9.2.3.0
jruby-9.2.4.0
jruby-9.2.4.1
jruby-9.2.5.0
jruby-9.2.6.0
jruby-9.2.7.0
jruby-9.2.8.0
jruby-9.2.9.0
maglev-1.0.0
maglev-1.1.0-dev
maglev-2.0.0-dev
mruby-dev
mruby-1.0.0
mruby-1.1.0
mruby-1.2.0
mruby-1.3.0
mruby-1.4.0
mruby-1.4.1
mruby-2.0.0
mruby-2.0.1
mruby-2.1.0
rbx-2.2.2
rbx-2.2.3
rbx-2.2.4
rbx-2.2.5
rbx-2.2.6
rbx-2.2.7
rbx-2.2.8
rbx-2.2.9
rbx-2.2.10
rbx-2.3.0
rbx-2.4.0
rbx-2.4.1
rbx-2.5.0
rbx-2.5.1
rbx-2.5.2
rbx-2.5.3
rbx-2.5.4
rbx-2.5.5
rbx-2.5.6
rbx-2.5.7
rbx-2.5.8
rbx-2.6
rbx-2.7
rbx-2.8
rbx-2.9
rbx-2.10
rbx-2.11
rbx-2.71828182
rbx-3.0
rbx-3.1
rbx-3.2
rbx-3.3
rbx-3.4
rbx-3.5
rbx-3.6
rbx-3.7
rbx-3.8
rbx-3.9
rbx-3.10
rbx-3.11
rbx-3.12
rbx-3.13
rbx-3.14
rbx-3.15
rbx-3.16
rbx-3.17
rbx-3.18
rbx-3.19
rbx-3.20
rbx-3.21
rbx-3.22
rbx-3.23
rbx-3.24
rbx-3.25
rbx-3.26
rbx-3.27
rbx-3.28
rbx-3.29
rbx-3.30
rbx-3.31
rbx-3.32
rbx-3.33
rbx-3.34
rbx-3.35
rbx-3.36
rbx-3.37
rbx-3.38
rbx-3.39
rbx-3.40
rbx-3.41
rbx-3.42
rbx-3.43
rbx-3.44
rbx-3.45
rbx-3.46
rbx-3.47
rbx-3.48
rbx-3.49
rbx-3.50
rbx-3.51
rbx-3.52
rbx-3.53
rbx-3.54
rbx-3.55
rbx-3.56
rbx-3.57
rbx-3.58
rbx-3.59
rbx-3.60
rbx-3.61
rbx-3.62
rbx-3.63
rbx-3.64
rbx-3.65
rbx-3.66
rbx-3.67
rbx-3.68
rbx-3.69
rbx-3.70
rbx-3.71
rbx-3.72
rbx-3.73
rbx-3.74
rbx-3.75
rbx-3.76
rbx-3.77
rbx-3.78
rbx-3.79
rbx-3.80
rbx-3.81
rbx-3.82
rbx-3.83
rbx-3.84
rbx-3.85
rbx-3.86
rbx-3.87
rbx-3.88
rbx-3.89
rbx-3.90
rbx-3.91
rbx-3.92
rbx-3.93
rbx-3.94
rbx-3.95
rbx-3.96
rbx-3.97
rbx-3.98
rbx-3.99
rbx-3.100
rbx-3.101
rbx-3.102
rbx-3.103
rbx-3.104
rbx-3.105
rbx-3.106
rbx-3.107
ree-1.8.7-2011.03
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
truffleruby-1.0.0-rc10
truffleruby-1.0.0-rc11
truffleruby-1.0.0-rc12
truffleruby-1.0.0-rc13
truffleruby-1.0.0-rc14
truffleruby-1.0.0-rc15
truffleruby-1.0.0-rc16
truffleruby-1.0.0-rc2
truffleruby-1.0.0-rc3
truffleruby-1.0.0-rc5
truffleruby-1.0.0-rc6
truffleruby-1.0.0-rc7
truffleruby-1.0.0-rc8
truffleruby-1.0.0-rc9
truffleruby-19.0.0
truffleruby-19.1.0
truffleruby-19.2.0
truffleruby-19.2.0.1
truffleruby-19.3.0
truffleruby-19.3.0.2
truffleruby-19.3.1

Rubyのインストール

rbenvを利用して、rbenv install -l一覧からインストールするRubyのバージョンを選択してインストールする。

$ rbenv install 2.6.3

rbenv install 2.6.3 実行 ログ
Downloading ruby-2.6.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2
Installing ruby-2.6.3...
Installed ruby-2.6.3 to \$HOME/.rbenv/versions/2.6.3

ちなみにre:viewのgithubのリポジトリから、v4.0.0タグのTravisCIの使用するRubyのバージョンをみてみると、Rubyのバージョン2.6.3でCIを回しているようですので、2.6.3をインストールしています。

review/.travis.yml
29: rvm:
30:   - 2.4.6
31:   - 2.5.5
32:   - 2.6.3

参照 : https://github.com/kmuto/review/blob/v4.0.0/.travis.yml#L29

インストールしたRubyをshimsへ通知し、使用可能な状態にする

$ rbenv rehash

インストールされたRubyのバージョンを確認

$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

TechBoosterのRe:VIEWテンプレートを使用する上で必要なToolのインストール

TechBoosterのRe:VIEWテンプレートではgemfileを使用して、bundlerによるgem経由でRuby言語用のパッケージ管理システムにより執筆に必要なRuby Packageが使用できるようになっています(Re:Viewも含まれています)。
ここでは、必要となるToolを事前にインストールしていきます。

Rubyを使用する上で必要なPackageシステムの導入

gem / bundlerとは、次のようなツールとなっています。

gem(RubyGemsは)、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと("gem" と呼ばれる)ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。
 
gem コマンドは gem パッケージのビルド, アップロード, ダウンロード, インストールに使われる。
 
引用: RubyGems(https://ja.wikipedia.org/wiki/RubyGems)

Bundlerは、必要なgemとバージョンを正確に追跡そしてインストールできる仕組みで、Rubyプロジェクト毎に一貫した環境を提供してくれます。
 
BundlerはRubyパッケージ間の依存関係による地獄からの脱出であり、必要なパッケージをgem経由によりdevelopment、staging、そして, productionに存在することを保証します。プロジェクトでの作業を開始するのは簡単でbundle installでおこなえます。
 
引用: Bundler(https://bundler.io/)

一言で説明すると、

  • gem
    Ruby言語用のパッケージ管理システム (aptみたいなもの)。
  • bundler
    gemの依存関係とバージョンを管理するために、gemfile"と"gemfile.lock"に従って、gemを管理をするライブラリ。

ですね。
前述のRubyのインストールにて、既にRubyを導入した際にgemも導入されています。

その為、ここではbundlerのみを追加していきます。

bundlerをインストールする

bundlerもRuby言語用のパッケージ管理システムのgemから導入できます。

rbenvで適用されているRubyのgemを指定して実行するために、rbenv exec gemと実行させます。

$ rbenv exec gem install bundler

bundler install 実行 ログ
Fetching bundler-2.1.4.gem
Successfully installed bundler-2.1.4
Parsing documentation for bundler-2.1.4
Installing ri documentation for bundler-2.1.4
Done installing documentation for bundler after 5 seconds
1 gem installed

Node.jsを使用する上で必要なPackageシステムの導入

TechBoosterのRe:VIEWテンプレートは、npmによりreviewファイルからPDFやepubの作成が可能です。
ただし、npm使うだけでもNode.jsが必要になり、さまざまなWeb開発を行うPCを使用する場合、開発環境ごとにNode.jsのversionが異なったりする為、ここではNode.jsについてもversion管理するためのtoolであるnodebrewを導入することにより、Node.jsの追加をおこなっていきます。

Node.js / npmとは、次のようなツールとなっています。

Node.js は、イベント化された入出力を扱うUnix系プラットフォーム上のサーバーサイドJavaScript環境である。Webサーバなどのスケーラブルなネットワークプログラムの記述を意図している。
 
引用: Node.js(https://ja.wikipedia.org/wiki/Node.js)

npmとはパッケージ管理システムの1種。Node Package Managerの意。
 
ライセンスはArtistic License 2.0。Node.jsのパッケージ管理システムであり、V8 JavaScriptエンジンで動作する[4]。npm自身もJavaScriptで記述されている。
 
Node.jsは、サーバ上で動作するJavaScriptであるが、Node.jsを使ったツールが開発されるようになると、これらを管理するバージョン管理システムの必要性が生まれた。
 
npmは、Node.jsのツールやパッケージ(モジュール)をインストールしたり管理したりするだけでなく、パッケージを扱うためにインターフェイスを備えている。リポジトリ機能も備えており、必要とするパッケージ(モジュール)の検索、ダウンロード、インストール、アップデートを行えたり、開発したパッケージ(モジュール)を他者に公開できたりする。
 
引用: npm (パッケージ管理ツール)(https://ja.wikipedia.org/wiki/npm (パッケージ管理ツール)

一言で説明すると、

  • Node.js
    (ネットワークアプリケーションなどで使用される)非同期型のイベント駆動のJavaScript環境。
  • npm
    Node.jsを使用したパッケージを管理するツール。

ですね。
'Node.js'のインストールにて、npmも導入されます。

導入するパッケージは、各プロジェクトのディレクトリにありpackage.jsonにて管理することができ、TechBoosterのRe:VIEWテンプレートでは既に配置済みとなっています。

その為、ここではNode.jsのversion管理するtoolであるnodebrewを追加。Node.jsを追加していきます。

nodebrewの導入

nodebrewは、 https://github.com/hokaccha/nodebrew で公開されており、インストールの仕方も記載されています。
ここでは、リポジトリをダウンロード(取得)してInstallではなくcurlによるインストールを行います。

$ curl -L git.io/nodebrew | perl - setup

nodebrew curlによる install 実行 ログ
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
100 24634 100 24634 0 0 9626 0 0:00:02 0:00:02 --:--:-- 60377
Fetching nodebrew...
Installed nodebrew in \$HOME/.nodebrew

 
========================================

Export a path to nodebrew:

 
export PATH=$HOME/.nodebrew/current/bin:$PATH

========================================

.nodebrewへのPATHを通す

nodebrew管理ディレクトリは、デフォルトではホームディレクトリ直下の.nodebrewに配置されます。
nodebrewの導入時に出てきているlogにあるように、ホームディレクトリ直下の.nodebrewのパスを通すため、.bash_profileへパスが通る設定をする。

$ echo 'export PATH="$HOME/.nodebrew/current/bin:$PATH"' >> ~/.bash_profile

また、実行しているコンソールへ設定したPATHが通るように、先程設定した.bash_profileのシェルの設定を反映される。

$ source ~/.bash_profile

nodebrewが正しくセットアップされているか確認

次のコマンドを実行する。

$ nodebrew help

次のようなヘルプ表示されれば正常です。

nodebrew help 実行 ログ
nodebrew 1.0.1
 
Usage:
   nodebrew help Show this message
   nodebrew install Download and install (from binary)
   nodebrew compile Download and install (from source)
   nodebrew install-binary Alias of `install` (For backward compatibility)
   nodebrew uninstall Uninstall
   nodebrew use Use
   nodebrew list List installed versions
   nodebrew ls Alias for `list`
   nodebrew ls-remote List remote versions
   nodebrew ls-all List remote and installed versions
   nodebrew alias Set alias
   nodebrew unalias Remove alias
   nodebrew clean | all Remove source file
   nodebrew selfupdate Update nodebrew
   nodebrew migrate-package Install global NPM packages contained in to current version
   nodebrew exec -- Execute using specified
 
Example:
   # install
   nodebrew install v8.9.4
 
   # use a specific version number
   nodebrew use v8.9.4

===== nodebrew機能メモ =====

nodebrewのバージョン確認
$ rbenv help
nodebrew 1.0.1
・・・
nodebrewで管理対象(導入済み)のNode.jsのバージョンと、現在適用されているNode.jsバージョン確認
$ nodebrew ls
v12.14.1             # nodebrew install-binaryでv12.14.1をインストールした場合

current: v12.14.1    # nodebrew useでv12.14.1を指定した場合。設定していない場合は、`current: none`の表示
nodebrewで使用できるNode.jsバージョンリストの確認
$ nodebrew ls-remote
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6 
 
・・・

nodebrew ls-remote 実行 ログ(2020.2.1現在の使用できるNode.jsバージョン一覧)
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6

 
v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7
v0.1.8 v0.1.9 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15
v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23
v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31
v0.1.32 v0.1.33 v0.1.90 v0.1.91 v0.1.92 v0.1.93 v0.1.94 v0.1.95
v0.1.96 v0.1.97 v0.1.98 v0.1.99 v0.1.100 v0.1.101 v0.1.102 v0.1.103
v0.1.104

 
v0.2.0 v0.2.1 v0.2.2 v0.2.3 v0.2.4 v0.2.5 v0.2.6

 
v0.3.0 v0.3.1 v0.3.2 v0.3.3 v0.3.4 v0.3.5 v0.3.6 v0.3.7
v0.3.8

 
v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.4.7
v0.4.8 v0.4.9 v0.4.10 v0.4.11 v0.4.12

 
v0.5.0 v0.5.1 v0.5.2 v0.5.3 v0.5.4 v0.5.5 v0.5.6 v0.5.7
v0.5.8 v0.5.9 v0.5.10

 
v0.6.0 v0.6.1 v0.6.2 v0.6.3 v0.6.4 v0.6.5 v0.6.6 v0.6.7
v0.6.8 v0.6.9 v0.6.10 v0.6.11 v0.6.12 v0.6.13 v0.6.14 v0.6.15
v0.6.16 v0.6.17 v0.6.18 v0.6.19 v0.6.20 v0.6.21

 
v0.7.0 v0.7.1 v0.7.2 v0.7.3 v0.7.4 v0.7.5 v0.7.6 v0.7.7
v0.7.8 v0.7.9 v0.7.10 v0.7.11 v0.7.12

 
v0.8.0 v0.8.1 v0.8.2 v0.8.3 v0.8.4 v0.8.5 v0.8.6 v0.8.7
v0.8.8 v0.8.9 v0.8.10 v0.8.11 v0.8.12 v0.8.13 v0.8.14 v0.8.15
v0.8.16 v0.8.17 v0.8.18 v0.8.19 v0.8.20 v0.8.21 v0.8.22 v0.8.23
v0.8.24 v0.8.25 v0.8.26 v0.8.27 v0.8.28

 
v0.9.0 v0.9.1 v0.9.2 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7
v0.9.8 v0.9.9 v0.9.10 v0.9.11 v0.9.12

 
v0.10.0 v0.10.1 v0.10.2 v0.10.3 v0.10.4 v0.10.5 v0.10.6 v0.10.7
v0.10.8 v0.10.9 v0.10.10 v0.10.11 v0.10.12 v0.10.13 v0.10.14 v0.10.15
v0.10.16 v0.10.17 v0.10.18 v0.10.19 v0.10.20 v0.10.21 v0.10.22 v0.10.23
v0.10.24 v0.10.25 v0.10.26 v0.10.27 v0.10.28 v0.10.29 v0.10.30 v0.10.31
v0.10.32 v0.10.33 v0.10.34 v0.10.35 v0.10.36 v0.10.37 v0.10.38 v0.10.39
v0.10.40 v0.10.41 v0.10.42 v0.10.43 v0.10.44 v0.10.45 v0.10.46 v0.10.47
v0.10.48

 
v0.11.0 v0.11.1 v0.11.2 v0.11.3 v0.11.4 v0.11.5 v0.11.6 v0.11.7
v0.11.8 v0.11.9 v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14 v0.11.15
v0.11.16

 
v0.12.0 v0.12.1 v0.12.2 v0.12.3 v0.12.4 v0.12.5 v0.12.6 v0.12.7
v0.12.8 v0.12.9 v0.12.10 v0.12.11 v0.12.12 v0.12.13 v0.12.14 v0.12.15
v0.12.16 v0.12.17 v0.12.18

 
v4.0.0 v4.1.0 v4.1.1 v4.1.2 v4.2.0 v4.2.1 v4.2.2 v4.2.3
v4.2.4 v4.2.5 v4.2.6 v4.3.0 v4.3.1 v4.3.2 v4.4.0 v4.4.1
v4.4.2 v4.4.3 v4.4.4 v4.4.5 v4.4.6 v4.4.7 v4.5.0 v4.6.0
v4.6.1 v4.6.2 v4.7.0 v4.7.1 v4.7.2 v4.7.3 v4.8.0 v4.8.1
v4.8.2 v4.8.3 v4.8.4 v4.8.5 v4.8.6 v4.8.7 v4.9.0 v4.9.1
 
 
v5.0.0 v5.1.0 v5.1.1 v5.2.0 v5.3.0 v5.4.0 v5.4.1 v5.5.0
v5.6.0 v5.7.0 v5.7.1 v5.8.0 v5.9.0 v5.9.1 v5.10.0 v5.10.1
v5.11.0 v5.11.1 v5.12.0

 
v6.0.0 v6.1.0 v6.2.0 v6.2.1 v6.2.2 v6.3.0 v6.3.1 v6.4.0
v6.5.0 v6.6.0 v6.7.0 v6.8.0 v6.8.1 v6.9.0 v6.9.1 v6.9.2
v6.9.3 v6.9.4 v6.9.5 v6.10.0 v6.10.1 v6.10.2 v6.10.3 v6.11.0
v6.11.1 v6.11.2 v6.11.3 v6.11.4 v6.11.5 v6.12.0 v6.12.1 v6.12.2
v6.12.3 v6.13.0 v6.13.1 v6.14.0 v6.14.1 v6.14.2 v6.14.3 v6.14.4
v6.15.0 v6.15.1 v6.16.0 v6.17.0 v6.17.1

 
v7.0.0 v7.1.0 v7.2.0 v7.2.1 v7.3.0 v7.4.0 v7.5.0 v7.6.0
v7.7.0 v7.7.1 v7.7.2 v7.7.3 v7.7.4 v7.8.0 v7.9.0 v7.10.0
v7.10.1

 
v8.0.0 v8.1.0 v8.1.1 v8.1.2 v8.1.3 v8.1.4 v8.2.0 v8.2.1
v8.3.0 v8.4.0 v8.5.0 v8.6.0 v8.7.0 v8.8.0 v8.8.1 v8.9.0
v8.9.1 v8.9.2 v8.9.3 v8.9.4 v8.10.0 v8.11.0 v8.11.1 v8.11.2
v8.11.3 v8.11.4 v8.12.0 v8.13.0 v8.14.0 v8.14.1 v8.15.0 v8.15.1
v8.16.0 v8.16.1 v8.16.2 v8.17.0

 
v9.0.0 v9.1.0 v9.2.0 v9.2.1 v9.3.0 v9.4.0 v9.5.0 v9.6.0
v9.6.1 v9.7.0 v9.7.1 v9.8.0 v9.9.0 v9.10.0 v9.10.1 v9.11.0
v9.11.1 v9.11.2

 
v10.0.0 v10.1.0 v10.2.0 v10.2.1 v10.3.0 v10.4.0 v10.4.1 v10.5.0
v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0
v10.14.0 v10.14.1 v10.14.2 v10.15.0 v10.15.1 v10.15.2 v10.15.3 v10.16.0
v10.16.1 v10.16.2 v10.16.3 v10.17.0 v10.18.0 v10.18.1

 
v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0
v11.8.0 v11.9.0 v11.10.0 v11.10.1 v11.11.0 v11.12.0 v11.13.0 v11.14.0
v11.15.0

 
v12.0.0 v12.1.0 v12.2.0 v12.3.0 v12.3.1 v12.4.0 v12.5.0 v12.6.0
v12.7.0 v12.8.0 v12.8.1 v12.9.0 v12.9.1 v12.10.0 v12.11.0 v12.11.1
v12.12.0 v12.13.0 v12.13.1 v12.14.0 v12.14.1

 
v13.0.0 v13.0.1 v13.1.0 v13.2.0 v13.3.0 v13.4.0 v13.5.0 v13.6.0
v13.7.0

 
io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0
io@v1.4.1 io@v1.4.2 io@v1.4.3 io@v1.5.0 io@v1.5.1 io@v1.6.0 io@v1.6.1 io@v1.6.2
io@v1.6.3 io@v1.6.4 io@v1.7.1 io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4
 
io@v2.0.0 io@v2.0.1 io@v2.0.2 io@v2.1.0 io@v2.2.0 io@v2.2.1 io@v2.3.0 io@v2.3.1
io@v2.3.2 io@v2.3.3 io@v2.3.4 io@v2.4.0 io@v2.5.0
 
io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1

Node.jsのインストール

nodebrewを利用して、ls-remote一覧からインストールするRubyのバージョンを選択してインストールする。

$ nodebrew install-binary v12.14.1

nodebrew install-binary v12.14.1 実行 ログ
Fetching: https://nodejs.org/dist/v12.14.1/node-v12.14.1-linux-x64.tar.gz
########################################################################################################################################### 100.0%
Installed successfully

Node.jsは、メジャーバージョン(AA.BB.CCのAA番号)が、

  • 奇数番号バージョン
    最新の機能を取り込んでいるが、安定性の保証がないもの(CURRENT版)
  • 偶数番号バージョン
    長期の保守運用に使用することを目的とした安定版(LTS版)

となっています。安定してかつ長期保守運用されている偶数番号のバージョンを使用するのがおすすめです。
さらに、TechBoosterのRe:VIEWテンプレートで使用するNode.jsは4.x系以上が必須となっています。(2020.2.1現在)
今回は、Node.js( https://github.com/nodejs/Release )のページを確認した所、StableでLTS(Long Time Support)版は、12.xとなっていた為、v12.14.1をインストールしています。
nodebrewでは、以外にNode.jsの最新のLTS版を入れたい場合には、

$ nodebrew install stable

でも導入可能です。(2020.2.1現在、v12.14.1がインストールされるので、nodebrew install-binary v12.14.1と同じものがセットアップされます。)

導入したnoe.jsのバージョンを指定してcurrentバージョンとして、使用可能な状態にする。

$ nodebrew use v12.14.1

使用するNode.jsバージョン確認と、npmの動作確認(バージョン表示)

$ nodebrew ls
v12.14.1

current: v12.14.1
$ npm -v
6.13.4

TechBoosterのRe:VIEWテンプレートを使用して、Re:VIEWフォーマットからPDF/epubを作成する

TechBoosterのRe:VIEWテンプレートの導入

TechBoosterのRe:VIEWテンプレートは、 https://github.com/TechBooster/ReVIEW-Template で公開されています。
gitを使用してcloneしてきます。

$ git clone https://github.com/TechBooster/ReVIEW-Template.git

Re:VIEW v4.0 に対応したテンプレートを使用していきます。
techbooster-doujin-base.styの適用がされているa563244のcommitされたものをbranchして使用します。
github.png

$ cd ./ReVIEW-Template
$ git checkout -b Branch_a563244 a563244
Switched to a new branch 'Branch_a563244'

現在のBranchが作成した、Branch_a563244になっているか確認してみます。

$ git branch 
* Branch_a563244
  master

TechBoosterのRe:VIEWテンプレートで必要なNode.jsを使用したパッケージの導入

npmを使用してReVIEW-Template/package.jsonを使用して必要なNode.js`を使用したパッケージの導入をおこないます。

$ npm install

npm install 実行 ログ
> review-template @0.0.2 postinstall /opt/mysrc/ReVIEW-Template
> bundle install
 
Fetching gem metadata from https://rubygems.org/...
Resolving dependencies...
Using bundler 2.1.4
Using image_size 2.0.2
Using rouge 3.15.0
Fetching rubyzip 2.2.0
Installing rubyzip 2.2.0
Using review 4.0.0
Bundle complete! 1 Gemfile dependency, 5 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
added 263 packages from 174 contributors and audited 1217 packages in 6.224s
found 0 vulnerabilities

以上でTechBoosterのRe:VIEWテンプレートで、re:view v4.0も含めてInstall完了です。
執筆は、ReVIEW-Template/articlesのディレクトリにある次のファイルを修正して、執筆開始です。

  • config.yml (Re:Viewで生成するドキュメントの設定ファイル)
  • catalog.yml (目次(章立て)の設定ファイル)
  • re拡張子のre:viewファイル(Re:VIEW 原稿本文ファイル)

詳しい使い方等は、Re:VIEW Wikiに記載されている、
"config.yml"、"Re:VIEW カタログファイル(catalog.yml) ガイド"、"Re:VIEW フォーマットガイド(Re:VIEWファイルの記述方法)"
を参考にしてください。

PDFの作成

Node.js経由でのPDF出力

次のコマンドを実行することにより、ReVIEW-Template/articlesのディレクトリにPDFが出力されます。

$ npm run pdf

npm run pdf 実行 ログ
> review-template @0.0.2 pdf /opt/mysrc/ReVIEW-Template
> grunt pdf
 
Running "clean:review" (clean) task
>> 3 paths cleaned.
 
Running "shell:preprocess" (shell) task
 
Running "shell:compile2pdf" (shell) task
INFO review-pdfmaker: compiling preface.tex
INFO review-pdfmaker: compiling article.tex
INFO review-pdfmaker: compiling contributors.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
INFO review-pdfmaker: dvipdfmx -d 5 -z 9 __REVIEW_BOOK__.dvi
 
Done.

Re:VIEWコマンドでのPDF出力

Re:VIEWコマンドでのPDF出力するには、config.ymlのある、ReVIEW-Template/articlesディレクトリに入って、
次のコマンドを実行することにより、ReVIEW-Template/articlesのディレクトリにPDFが出力されます。

$ cd ./articles
$ rake pdf

rake pdf 実行 ログ
review-pdfmaker config.yml
INFO review-pdfmaker: compiling preface.tex
INFO review-pdfmaker: compiling article.tex
INFO review-pdfmaker: compiling contributors.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
INFO review-pdfmaker: dvipdfmx -d 5 -z 9 __REVIEW_BOOK__.dvi

epubの作成

Node.js経由でのepub出力

次のコマンドを実行することにより、ReVIEW-Template/articlesのディレクトリにepubファイルが出力されます。

$ npm run epub

npm run epub 実行 ログ
> review-template @0.0.2 epub /opt/mysrc/ReVIEW-Template
> grunt epub
 
Running "clean:review" (clean) task
>> 1 path cleaned.
 
Running "shell:preprocess" (shell) task
 
Running "shell:compile2epub" (shell) task
 
Done.

Re:VIEWコマンドでのepub出力

Re:VIEWコマンドでのepub出力するには、config.ymlのある、ReVIEW-Template/articlesディレクトリに入って、
次のコマンドを実行することにより、ReVIEW-Template/articlesのディレクトリにepubが出力されます。

$ cd ./articles
$ rake epub
review-epubmaker config.yml

まとめ

初めてRe:VIEWの執筆環境を整える人向けに、環境構築についてまとめてみました。
Re:VIEWの各種設定や執筆環境については、いろいろWebで探してもらうと情報が沢山あります。
そちらを参考に、自分にあった環境を整えていってください。

1
2
0

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
1
2