Rustをインストールしてプロジェクトを作ってみる
環境
以下の環境で動作させることを想定しています。
- ubuntu 18.04
Rustのインストール
以下のコマンドを実行してインストールします。
$ curl https://sh.rustup.rs -sSf | sh
大まかに、
- rustup
- コンパイラーのアップデートや、安定版/ベータ版などリリースチャンネルを切り替えることができるツール
- rustc
- Rustのコンパイラー
- cargo
- Rustプロジェクトの作成やプロジェクトのビルド、また、パッケージの管理を行うツール
の3つのツールがインストールされます。
コンパイラーがインストールされますが、cargo
というツールの方でコンパイラーの仕事もカバーしてくれるので、初めのうちは基本的にcargo
を使ってプログラミングを進めていくので問題なさそうです。
Rustのアンインストール
Rustのアンインストールは以下のコマンドでできるようです。
$ rustup self uninstall
プロジェクトを作る
早速、Rustプロジェクトを作成してみたいと思います。 以下のコマンドで、プロジェクトを作成します。 プロジェクトは、バイナリ(アプリケーション)プロジェクトとライブラリプロジェクトのテンプレートから作成できます。 デフォルトでは、バイナリプロジェクトのテンプレートから作成されます。
$ cd ~
$ cargo new hello-rust # ライブラリプロジェクトを作る場合は、--lib オプションを指定する
以下のようなディレクトリ構成でプロジェクトが作成されます。
hello-rust
├── Cargo.toml
└── src
└── main.rs
デフォルトで以下のHello world!
を出力する処理がsrc/main.rs
に記載されています。
main.rs
fn main() {
println!("Hello world!");
}
作成したプロジェクトを実行する
cargo run
コマンドでローカルプロジェクトをビルド&実行することができます。
$ cd ~/hello-rust
$ cargo run
Compiling hello-rust v0.1.0 (/home/mani/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 5.21s
Running `target/debug/hello-rust`
Hello, world!
ビルドが実行され、target/debug/hello-rust
という実行可能ファイルが生成されています。
ビルド後にtarget/debug/hello-rust
が自動で実行されているのがわかります。
作成したプロジェクトをインストールする
cargo install
コマンドで作成したプロジェクトをインストールします。
--path
オプションで、インストールする対象のプロジェクトを指定します。
$ cd ~/hello-rust
$ cargo install --path .
Installing hello-rust v0.1.0 (/home/mani/hello-rust)
Compiling hello-rust v0.1.0 (/home/mani/hello-rust)
Finished release [optimized] target(s) in 0.11s
Installing /home/mani/.cargo/bin/hello-rust
Installed package `hello-rust v0.1.0 (/home/mani/hello-rust)` (executable `hello-rust`)
$ hello-rust
Hello, world!
$ which hello-rust
/home/mani/.cargo/bin/hello-rust
ビルドが実行され、target/release
以下にリリース用のバイナリファイルを作成し、~/.cargo/bin/
にファイルにバイナリがインストールされます。
インストール先の指定
以下の優先順で、プロジェクトのインストール先を指定することができます。
cargo install
コマンドの--root
オプションで指定- 環境変数
CARGO_INSTALL_ROOT
で指定 - プロジェクトの設定ファイル
Cargo.toml
で指定
# In Cargo.toml
[install]
root = "/path/to/target/directory"
- 環境変数
CARGO_HOME
で指定 $HOME/.cargo
今回は、1〜4を指定していないので、5番目の$HOME/.cargo
が指定されたようです。
試しに1のcargo install
でインストール先にホームディレクトリを指定して実行してみます。
$ cd ~/hello-rust
$ cargo install --path . --root ~
Installing hello-rust v0.1.0 (/home/mani/hello-rust)
Finished release [optimized] target(s) in 0.01s
Installing /home/mani/bin/hello-rust
Installed package `hello-rust v0.1.0 (/home/mani/hello-rust)` (executable `hello-rust`)
$ which hello-rust
/home/mani/bin/hello-rust
ホームディレクトリ以下にbin
ディレクトリが掘られ、そこにバイナリがインストールされるようです。
作成したプロジェクトのアンインストール
cargo uninstall
コマンドで自作のプロジェクトのアンインストールも行えます。
$ cargo uninstall hello-rust
Removing /home/mani/.cargo/bin/hello-rust
$ cargo uninstall --root ~ hello-rust # インストール時にインストール先を指定していた場合は、--rootオプションでバイナリがインストールされているディレクトリを指定する
Removing /home/mani/bin/hello-rust
まとめ
Rust
のインストールと、プロジェクトの作成やインストール方法を試してみました。
cargo
コマンドで簡単にプロジェクトの作成からインストール・アンインストールまでを一通りできることがわかりました。
自作したコマンドラインツールなどのインストールする場合などcargo
だけで完結しそうなのでとても使いやすそうです。