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だけで完結しそうなのでとても使いやすそうです。