Rust で自作したプログラムをシステムにインストールする (cargo install)

何をするか?

Rust で自作したコマンドラインツール (CLI) は、プロジェクトのワーキングディレクトリ以下で cargo run で実行できますが、毎回ディレクトリを移動するのは面倒です。 cargo install コマンド で、パスの通ったディレクトリに実行ファイルをインストールすれば、どのディレクトリからでもコマンドを実行できるようになります。

自作コマンドをインストールする (cargo install)

Rust のプロジェクトがなければ、次のように適当に作ってください。 ここでは、hello-rust という名前のプログラムを作成することにします。

$ cargo new ~/hello-rust
$ cd ~/hello-rust

ローカルで開発している Rust プログラムをシステムにインストールするには、次のように cargo install コマンドを実行します。 このとき、--path オプションで Cargo.toml ファイルがあるディレクトリを指定する必要があります。 自動的にリリースモードでビルド (cargo build -r) してからインストールしてくれるので、あらかじめビルドしておく必要はありません。

$ cargo install --path .
  Installing hello-rust v0.1.0 (/Users/maku/hello-rust)
   Compiling hello-rust v0.1.0 (/Users/maku/hello-rust)
    Finished release [optimized] target(s) in 0.35s
  Installing /Users/maku/.cargo/bin/hello-rust
   Installed package `hello-rust v0.1.0 (/Users/maku/hello-rust)` (executable `hello-rust`)

生成された実行ファイル (hello-rust) は、~/.cargo/bin ディレクトリにインストールされます(インストール先は --root オプションで変更できます)。 このディレクトリにパスが通っていれば、次のようにコマンド実行できるようになっているはずです。

$ hello-rust
Hello, world!

自作コマンドをアンインストールする (cargo unintall)

cargo install でインストールした自作コマンドをアンインストールするには、Cargo.toml ファイルのあるディレクトリで、cargo uninstall コマンドを実行します。

$ cd ~/hello-rust
$ cargo uninstall
    Removing /Users/maku/.cargo/bin/hello-rust

インストールされたプログラムは、~/.cargo/bin ディレクトリ以下に 1 つのバイナリファイルとして存在しているので、単純にそのファイルを削除するだけでも OK です。

$ rm ~/.cargo/bin/hello-rust