Skip to content

rustbookのインストール方法

Tatsuya Kawano edited this page Jun 18, 2016 · 5 revisions

公式マニュアル The Rust Programming Language や The Rustonomicon の HTML を生成するには、rustbook コマンドが必要です。 このページでは、rustbook コマンドのインストール方法を説明します。

ソースコードの置き場所

rustbook コマンドのソースコードは Rust のメインリポジトリ内にあります。 しかし、そのリポジトリを clone して、そこから rustbook をビルドするのはかなり面倒です。 なぜなら、LLVM と rustc 自体のビルドから始めないといけないからです。 マシンの性能にもよりますが、ビルドが終わるまで、およそ1時間から2時間かかります。

そこで、関連するソースコードだけをコピーしたリポジトリを用意しました。

これを使うと、nightly 版の Rust と cargo があれば、すぐにインストールできます。

なお、Crates.io に rustbook クレートがありますが、そちらはもうメンテナンスされていないようですので、使わないで下さい。 2016年6月現在、コンパイルエラーでビルドできなくなっています。(PR はだいぶ前に送りました)

Rust プロジェクトの方針により、今後は rustbook から mdbook へ移行していく そうです。

推奨する方法:rustup-rs でインストール・実行する

rustbook コマンドをビルドするには、nightly 版の Rust が必要です。 OS X、Linux、*BSD 限定ですが、rustup コマンドを使用するのがおすすめです。

rustup-rs を使って nightly 版の Rust をインストールする

まず、https://www.rustup.rs/ の手順に従って、rustup をインストールしてください。

なおその際、stable 版の Rust もインストールされますが、rustbook をビルドするだけなら stable 版は不要です。もし nightly 版だけをインストールしたいのなら、Rust のダウンロードページに書かれているコマンドを使ってください。

rustup がインストールできたら、nightly 版の Rust をインストールします。ターミナルから以下のコマンドを入力してください。

$ rustup install nightly
$ rustup run nightly rustc --version
rustc 1.11.0-nightly (0554abac6 2016-06-10)

rustbook をビルドしてインストールする

nightly 版の cargo install コマンドで、rustbook をインストールします。

$ rustup run nightly cargo install --git https://github.com/rust-lang-ja/rustbook.git --branch master

これで、rustbook のソースコードがダウンロードされ、ビルドとインストールが行われます。

rustbook の実行

インストールできたら、rustbook コマンドが使えるかどうか試してみてください。

$ rustup run nightly $HOME/.cargo/bin/rustbook
Usage: rustbook <command> [<args>]

The <command> must be one of:
  help    Print this message.
  build   Build the book in subdirectory _book
  serve   --NOT YET IMPLEMENTED--
  test    --NOT YET IMPLEMENTED--

このコマンドを毎回入力するのは面倒なので、shell にコマンドエイリアスを設定するといいかもしれません。

なお、rustbook は nightly 版 Rust の動的ライブラリに依存しているので、rustbook のバイナリだけを他の環境にコピーしても実行できません。 Rust の環境をキープしておく必要があります。

その他の方法

既成の Docker イメージを使って実行する

参考:rustbook の入った Docker イメージを作りました

CI サービスで実行する

CircleCI

参考:rust-lang-ja/the-rust-programming-language-ja/circle.yml

wercker

参考:tatsuya6502/the-rust-programming-language-ja/wercker.yml