Chapter 08無料公開

インストール後にrustupを使ってすること

数寄屋
数寄屋
2020.09.25に更新

Rustupとは

さて、rustupは何をするものかといいますと、

  • rustをアップデートする
  • ツールチェーンを管理する

といったことを行うツールです。
 公式はこれを使ってrustをインストールすることを推奨しています。
 要するに、rustのバージョンアップがあればrustupを使ってバージョンアップしたり、rustのnightly版を使いたければrustupを使ってnightly版に切り替えたり…というような感じで、ツールチェインを管理できます。クロスコンパイル環境の構築もできるようです。
 間違えてgnuのコンパイラを使うように指定してしまったがVisual Studio Build Toolsを使いたい、という場合も対応できます。
 しかもRustの公式からのツールですので、色々安心です。Node.jsにおけるnodistとかnvmとかのような複数の選択肢で迷うことはありません。
 さらに、rustup componentコマンドによって、開発に便利なコンポーネント(ツールのバイナリらしいです)を導入することも可能です。

また、rustにおけるパッケージマネージャのような役割を果たすcargoも、rustupをインストールする過程で入ります。
 一応コンパイラだけのインストーラやパッケージ(chocolateyに存在するrustパッケージとか)もあるのですが、このrustupをインストールする方がはるかに便利なので、rustupが対応している環境では、rustupを入れる方針でいくのが基本のようになっているところがあります。
 ですので、本書でもrustupをインストールしました。というかrustupに付属してくるもろもろが便利すぎて素のrustcは私が環境構築した際も最初の選択肢から外れていました。

rustupのインストール後にすること

rustup自体への設定はあまりいらない

さてそんなrustupですが、stableなrustを使う場合、いくつか便利なコンポーネントをrustup component add コマンドで追加するだけで、基本的に他は設定することがありませんので、細かい使い方は割愛します。
 nightlyやbetaチャンネルからのリリースを使いたい場合など、細かい使い方に関しては公式ドキュメント(英語)を参照ください。

アップデートチェック

なにはともあれ、rustup自身と、rustが最新でないことには始まりません。以下2つのコマンドを実行します。

rustup self update #rustup自身のアップデートがないかチェックし、ある場合はアップデート
rustup update #rustのアップデートがないかチェックし、ある場合はアップデート

コンポーネントの追加

以下のコマンドを使い、開発時に便利なツールをコンポーネントとして追加しておきます。

rustup component add clippy rls rust-analysis rust-src rust-docs rustfmt

一部はあらかじめ入っているかもしれませんが、念のため。
 追加するコンポーネントは以下6種類です。

  • clippy: rust公式リンター。変数名のルールとかdocコメント抜けとかいろいろチェックしてくれます。
  • rls: rust language server. VSCodeでrust-analyzer拡張を使う場合はいらないと思います。なお公式のRust拡張を使う場合は必要だったはず。念のため追加。
  • rust-analysis: 標準ライブラリのメタデータ、らしい
  • rust-src: Rustにおける標準ライブラリのソースコードのローカルコピー。rust-analyzerとかrlsで使用される。
  • rust-docs: 公式のRustドキュメンテーションのローカルコピー。要するに、これを入れておくとrustup docコマンドからローカルで公式ドキュメントが開ける。
  • rustfmt: fmtという語尾の通り、フォーマッタ。

ちなみに、追加できるcomponentの一覧はrustupの公式ドキュメント、componentの項にあります。ただこれはstableチャンネルで追加できないコンポーネントも含まれています。現在の状態で追加できるコンポーネントをチェックしたい場合は、rustup component listコマンドを実行してください。

追加後は、rustup component list --installedコマンドで一覧を見ることができます。

これで大体一通りのツールをrustupでそろえることができました。