Fumiのブログ

RustをmacOSにインストール

f:id:fantm21:20190213011256p:plain

macOSへRustを入れるなら、公式サイトに従って行えば楽勝です。 そこで、今回は以下の記事を訳してみました。(私の意訳)

www.rust-lang.org

はじめかた

Rustの開発環境を素早く設定し小さいアプリを書く!

Rustをインストールする

Rust Playgroundを使うとあなたのコンピュータに何もインストールしないでオンライン上でRustをお試しできます。

play.rust-lang.org

Rustup : Rustインストーラとバージョン管理ツール

Rustをインストールする主な方法はRustupと呼ばれるツールを使うことです。 RustupはRustインストーラとバージョン管理ツールです。

macOSやLinux, その他のUnixライクなOSで動作させているように見えます。 RustupのダウンロードとRustをインストールするには、ターミナルで次のコマンドを実行してから、画面上の指示に従います。

curl https://sh.rustup.rs -sSf | sh

www.rust-lang.org



以下、実行後の画面。

info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust programming 
language, and its package manager, Cargo.

It will add the cargo, rustc, rustup and other commands to Cargo's bin 
directory, located at:

  /Users/{user_name}/.cargo/bin

This path will then be added to your PATH environment variable by modifying the
profile files located at:

  /Users/{user_name}/.profile
  /Users/{user_name}/.bash_profile

You can uninstall at any time with rustup self uninstall and these changes will
be reverted.

Current installation options:

   default host triple: x86_64-apple-darwin
     default toolchain: stable
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>

ここで止まるのは、インストールの仕方について聞かれている。
選択肢は以下の通り。

  1. インストールをデフォルトで設定する
  2. カスタマイズしてインストールする
  3. インストールをやめる

私はデフォルト設定でよかったので、何も書かずEnterを押した。
(何も書かない場合は、「1」を選択したのと同じ意味になるらしい。)

その後は以下のように進む。

info: syncing channel updates for 'stable-x86_64-apple-darwin'
info: latest update on 2019-01-17, rust version 1.32.0 (9fda7c223 2019-01-16)
info: downloading component 'rustc'
 64.5 MiB /  64.5 MiB (100 %) 364.8 KiB/s ETA:   0 s                
info: downloading component 'rust-std'
 49.2 MiB /  49.2 MiB (100 %) 345.6 KiB/s ETA:   0 s                 
info: downloading component 'cargo'
  3.4 MiB /   3.4 MiB (100 %) 384.0 KiB/s ETA:   0 s                
info: downloading component 'rust-docs'
  8.5 MiB /   8.5 MiB (100 %) 297.6 KiB/s ETA:   0 s                 
info: installing component 'rustc'
info: installing component 'rust-std'
info: installing component 'cargo'
info: installing component 'rust-docs'
info: default toolchain set to 'stable'

  stable installed - rustc 1.32.0 (9fda7c223 2019-01-16)


Rust is installed now. Great!

To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH 
environment variable. Next time you log in this will be done automatically.

To configure your current shell run source $HOME/.cargo/env


Cargo : Rustビルドツールとパッケージ管理

Rustupをインストールすると最新安定バージョンのCargo(Rustビルドツールとパッケージ管理)を入手できます。
Cargoは多くのことができます。

コマンド 内容
cargo build プロジェクトのビルド
cargo run プロジェクトの実行
cargo test プロジェクトのテスト
cargo doc プロジェクトのドキュメントをビルド
cargo publish crates.io にライブラリを発行する

RustとCargoがインストールされているか確認するには、ターミナルでcargo --versionを実行すればいい。

doc.rust-lang.org

その他のツール

Rustは多くのエディターでサポートされている。

整形ツール(Rustfmt)はrustup component add rustfmtを実行することでインストールできる。
Lintツール(Clippy)はrustup component add clippyを実行することでインストールできる。

新しいプロジェクトを作成する

さぁ、新しいRust開発環境で小さいアプリケーションを書こう。
始めるためには、Cargoを使って新しいプロジェクトを作る。 ターミナルで以下のコマンドを実行する。

cargo new hello-rust

これは以下のファイルたちと共に「hello-rust」という新しいディレクトリが作成する。

hello-rust
|- Cargo.toml
|- src
  |- main.rs

Catgo.tomlはRustのマニフェストファイルです。
これはプロジェクトのメタデータや依存関係を保つためのファイルです。

src/main.rsはアプリケーションコードを書くファイルです。


cargo newは「Hello, world!」プロジェクトを作成します!
このプログラムは、作成した新しいディレクトリに移動してターミナルでcargo runで実行できます。

ターミナルではこのように見えるでしょう。

$ cargo run
   Compiling hello-rust v0.1.0 (/Users/ag_dubs/rust/hello-rust)
    Finished dev [unoptimized + debuginfo] target(s) in 1.34s
     Running `target/debug/hello-rust`
Hello, world!

依存関係を追加する

さぁ、依存関係をアプリケーションに追加しましょう。
Rustのパッケージレジストリであるcrates.ioには、あらゆる種類のライブラリがあります。
Rustでは、パッケージを「crates」と呼ぶことがよくあります。

このプロジェクトの中では、ferris-saysと呼ばれるcreateを作成します。

Cargo.tomlファイルに、(createページから取得した)次のような情報を追加します。

[dependencies]
ferris-says = "0.1"

そしてcargo buildを実行します。

...すると、Cargoは依存関係をインストールします。

このコマンドを実行するとCargo.lockという新しいファイルを作成されたことが分かります。
このファイルはローカルで使用している依存関係の正確なバージョンのログです。

この依存関係を使うには、main.rsを開き、そこにあるものをすべて削除し(別の例に過ぎません)、次の行を追加します。

use ferris_says::say;

この行はferris-saysから出力されるsay関数を利用できるようになったことを意味します。

小さいなRustアプリケーション

さぁ、新しい依存で小さなアプリケーションを書きましょう。
main.rsには、次のコードを追加します。

use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};

fn main() {
    let stdout = stdout();
    let out = b"Hello fellow Rustaceans!";
    let width = 24;

    let mut writer = BufWriter::new(stdout.lock());
    say(out, width, &mut writer).unwrap();
}

これを保存して、cargo runでアプリケーションを実行できます。

全てうまくいった場合、以下の画面が表示されます。

----------------------------
| Hello fellow Rustaceans! |
----------------------------
              \
               \
                 _~^~^~_
             \) /  o o  \ (/
               '_   -   _'
               / '-----' \

もっと学びたい!

さぁ、もうあなたは今からRustacean(ラスタシアン)です!
あなたを歓迎します!
準備ができたなら、学習ページをやってみてください。 学習ページでは、多くの本を見つけることができ、Rustアドベンチャーを続ける手助けになります。

www.rust-lang.org

Ferrisと呼ばれるこの蟹は何?

FerrisはRustコミュニティの非公式キャラクタです。多くのRustプログラマーは自分自身を「Rustaceans」と言うのですが、これは「crustacean(甲殻類)」を文字ったものです。私たちはフェリスを性別の代名詞ではなく代名詞「彼ら」、「彼ら」などと呼びます。

Ferris is a name playing off of the adjective, “ferrous,” meaning of or pertaining to iron. Since Rust often forms on iron, it seemed like a fun origin for our mascot’s name!
(意訳できず。)

Ferrisの画像は「http://rustacean.net/」で見つけられます。