Rust プログラミング

Rustの環境構築 for Mac

Rustの環境構築(Appleシリコン版)

AppleシリコンのMacでのRustの環境構築を行ないます!
方法は2つあり、rustupというツールでインストールする方法と、homebrewを使用してインストールするパターンです。

おすすめはrustupを使用してインストールする方法です!
理由は2つあります。

  • 公式でもrustupを使用したドキュメントが載っていること
  • Windowsでの環境構築もrustupを使用した環境構築が主流であること

rustupで環境構築を行うことで、公式ドキュメントでもrustupを使用しているためドキュメントを読みやすくなります。homebrewを使用した場合は、ドキュメントの内容をbrewコマンドに脳内変換する必要が出てきます…
また、homebrewでは対応できないコマンド等が発生したときに不便になるので、やはりrustupを使用した方が圧倒的に良いでしょう。

それでは実際に環境構築をしましょう!

ターミナルでrustupをインストール

公式サイト:https://www.rust-lang.org/ja/tools/install

まずはターミナルを開き、以下のコマンドを入力・実行します。

Zsh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

実行すると以下のようにインストール準備が開始されます。
以下のインストールのオプションを3択で聞かれますので、 1 を入力・Enterを押して続行してください。

  • 1) Proceed with installation (default)  訳:インストールを続行する(デフォルト)
  • 2) Customize installation        訳:インストールのカスタマイズ
  • 3) Cancel installation         訳:インストールのキャンセル
Zsh
info: downloading installer

Welcome to Rust!

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

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /Users/{User Name}/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory is located at:

  /Users/{User Name}/.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added 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
  /Users/{User Name}/.zshenv

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

Current installation options:


   default host triple: aarch64-apple-darwin
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

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

1 を入力し、Enterキーを押すと、インストールが開始されます。

Zsh
~~~省略~~~
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1

info: profile set to 'default'
info: default host triple is aarch64-apple-darwin
info: syncing channel updates for 'stable-aarch64-apple-darwin'
info: latest update on 2023-12-28, rust version 1.75.0 (82e1608df 2023-12-21)
info: downloading component 'cargo'
  5.8 MiB /   5.8 MiB (100 %)   2.0 MiB/s in  2s ETA:  0s
info: downloading component 'clippy'
info: downloading component 'rust-docs'
 14.3 MiB /  14.3 MiB (100 %)   2.4 MiB/s in  5s ETA:  0s
info: downloading component 'rust-std'
 22.2 MiB /  22.2 MiB (100 %)   2.3 MiB/s in 10s ETA:  0s
info: downloading component 'rustc'
 49.1 MiB /  49.1 MiB (100 %)   2.4 MiB/s in 20s ETA:  0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 14.3 MiB /  14.3 MiB (100 %)   6.2 MiB/s in  2s ETA:  0s
info: installing component 'rust-std'
 22.2 MiB /  22.2 MiB (100 %)  19.3 MiB/s in  1s ETA:  0s
info: installing component 'rustc'
 49.1 MiB /  49.1 MiB (100 %)  21.5 MiB/s in  2s ETA:  0s
info: installing component 'rustfmt'
info: default toolchain set to 'stable-aarch64-apple-darwin'

  stable-aarch64-apple-darwin installed - rustc 1.75.0 (82e1608df 2023-12-21)


Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

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

「Rust is installed now. Great!」と出たらエラーが無くインストールできました!

インストールで出力された文字の最終行に、以下のように書いてありますね。
以下のコマンドを入力することで、PATH環境変数を通すようになっています。
To configure your current shell, run:
source "$HOME/.cargo/env"

指示に従って、ターミナル上で以下のコマンドを入力・実行してPATHの情報を反映させましょう!

Zsh
source "$HOME/.cargo/env"

実行したら、インストールされたコンポーネントのバージョン確認ができきるようになります。
早速確認しましょう!
(command not foundと出力されたらPATHが正しく反映されていない可能性があります。その場合はターミナルを再起動したり、手順を見直しましょう!)

Zsh
rustc --version
#出力
rustc 1.75.0 (82e1608df 2023-12-21)
Zsh
cargo --version
#出力
cargo 1.75.0 (1d8b05cdd 2023-11-20)


プロジェクトの作成

Rustのインストールができたので早速プロジェクトを作成してみましょう!

ターミナル上でプロジェクトを作成したいディレクトリまでチェンジディレクトリ(cd)コマンドなどで移動してください。
移動できたら以下のコマンドを実行しましょう!(プロジェクト名は任意の名前に変えてください。)
コマンドを実行すると、プロジェクト名のディレクトリが作成されます!

Zsh
cargo new プロジェクト名 --bin

私はrustprojectディレクトリ以下でsample-appという名前のプロジェクトを作成しました。

rustproject配下にプロジェクト名のディレクトリが作成された!


VSCodeでRustプロジェクトを動かす

Rustのプロジェクトが作成できましたので、VSCodeで作成されたプロジェクトフォルダを開いてください!

作成したプロジェクトを開けました!

このままビルド・実行しても良いのですが、今後の開発を考えるとVSCodeの拡張機能を入れた方が便利ですので、先に拡張機能をインストールしていきます!

拡張機能のインストール

インストールする拡張機能は以下の2つです!

  • rust-analyzer ・・・コード補完やハイライトなどを担ってくれる拡張機能です。
  • CodeLLDB   ・・・デバッグ時に役立つ拡張機能です。

上記2つを入れたら、一度VSCodeを再起動してください。一度再起動しないと、後ほど行うデバッグが機能しません


デバッグ実行

拡張機能を入れることができたので、実際にデバッグを行いましょう!

src/main.rsを選択した状態で、VSCodeの実行タブから「デバッグの開始」を選択するか、F5キーを押してください。

「デバッガーの選択」というパレットが表示されました。先ほど拡張機能でインストールした「LLDB」を選択しましょう!

するとこのような警告が表示されます。問題ありませんので、OKボタンを押してください。

ダイアログを閉じると、.vscodeディレクトリとその中にlaunch.jsonが追加されました。
このlaunch.jsonファイルがないから警告が出ていたことがわかりますね!

ただし、launch.jsonの内容がこのままではまだデバッグできないので、少し編集します!
編集する場所は、"program"の項目です。デバッグの際にコンパルされる実行ファイルのパスが、以下の通りとなるのでプロジェクト名を変えて、"program"の内容を変更してください。
"${workspaceFolder}/target/debug/プロジェクト名"(Winodwsでデバッグするときは末尾がプロジェクト名.exeになるかも?)

ここまでできたら、再度src/main.rsを選択して、デバッグを開始しましょう!
デバッグして、VSCodeのターミナルを見るとターミナルに「Hello, World!」の文字が出力されてますね!デバッグ成功です!



おまけ

前述までの内容で「デバッグの開始」、もしくはF5キーでデバッグを行うことができるようになりました!
それではプログラムに少し追記をしてデバッグしてみましょう!

あれ、「abcde」という文字列がターミナルに表示されません。。。

こうなってしまう理由は「プログラムを変更した後に再ビルドせずにデバッグを行ったから」です!

対処法はいくつかありますが私の場合は、launch.jsonにデバッグ実行前にビルドを行うように追加で記述を行いました。
理由は、デバッグを行うときにコマンド入力したくないからです!
"cwd"の下に、以下の"preLaunchTask": "rust: cargo build"を追記し、F5キーでデバッグ実行してみましょう!
ターミナルにabcdeの文字列が表示されましたね!

JSON
"preLaunchTask": "rust: cargo build"



おわりに

今回はRustの環境構築について説明しました!
デフォルトでデバッグ時にビルドされないことに、最初は焦りましたが対処法が見つかって良かったなぁと思った次第でした!笑

私はGo言語でWebバックエンドの実装も行なっているので、RustでもWebバックエンドの実装してみて比較できたらなと思います!

参考記事

  • この記事を書いた人
  • 最新記事

kuron

Webやモバイルアプリ開発しているエンジニア。 プログラミングや動画編集、ガジェットなどの雑談系の話もブログにしていきます!

-Rust, プログラミング
-, ,