はじめに
最近、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 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
- ruby-build 20200115-8-g73b926b
- rbenv 1.1.2-17-g7795476
- Node.js関連
- nodebrew 1.0.1
- node v12.14.1
- npm 6.13.4
- node v12.14.1
- nodebrew 1.0.1
- 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のアップグレードによって損うことなく動作します。
簡単に説明すると、複数の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.1Rubyのインストール
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
をインストールしています。
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 installedNode.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.1Node.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 successfullyNode.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して使用します。
$ 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\_\_.dviepubの作成
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で探してもらうと情報が沢山あります。
そちらを参考に、自分にあった環境を整えていってください。