cargo installでCrates.ioからバイナリをインストールする

cargo installコマンドにより、バイナリクレートをローカルにインストールし、使用することができます。 これは、システムパッケージを置き換えることを意図したものではありません。(すなわ)ち、 Rustの開発者が、他人がcrates.ioに共有したツールをインストールするのに便利な方法を意味するのです。 バイナリターゲットを持つパッケージのみインストールできることに注意してください。バイナリターゲットとは、 クレートがsrc/main.rsファイルやバイナリとして指定された他のファイルを持つ場合に生成される実行可能なプログラムのことであり、 単独では実行不可能なものの、他のプログラムに含むのには適しているライブラリターゲットとは一線を画します。 通常、クレートには、READMEファイルに、クレートがライブラリかバイナリターゲットか、両方をもつかという情報があります。

cargo installでインストールされるバイナリは全て、インストールのルートのbinフォルダに保持されます。 Rustをrustupを使用し、独自の設定を何も行なっていなければ、このディレクトリは、$HOME/.cargo/binになります。 cargo installでインストールしたプログラムを実行できるようにするためには、そのディレクトリが$PATHに含まれていることを確かめてください。

例えば、第12章で、ファイルを検索するripgrepというgrepツールのRust版があることに触れました。 ripgrepをインストールしたかったら、以下を実行することができます:

$ cargo install ripgrep
Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading ripgrep v0.3.2
 --snip--
   Compiling ripgrep v0.3.2
    Finished release [optimized + debuginfo] target(s) in 97.91 secs
  Installing ~/.cargo/bin/rg

出力の最後の行が、インストールされたバイナリの位置と名前を示していて、ripgrepの場合、rgです。 インストールディレクトリが$PATHに存在する限り、前述したように、rg --helpを走らせて、 より高速でRustらしいファイル検索ツールを使用し始めることができます!