Rust に挑戦します。
ちなみに、環境構築で何度も挫折して、やっとの思いでできました。Mac でやったときは一瞬だったのにね。
環境
OS は、以下の通りです。
- OS : Microsoft Windows
- バージョン : 21H1 (OS ビルド 19043.1466)
実際は、Windows Subsystem for Linux (WSL) を使用します。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
rustup をインストールする
rustup は、Rust に必要なものをいろいろ入れるためのインストーラーだそうです。
以下の公式サイトに記載されているコマンドを実行します。
途中で聞かれる質問は、とりあえずデフォルトの 1 で良さそうです。
動作確認です。
$ cargo new hello
$ cd hello
これでプロジェクトディレクトリを作成して、移動します。
$ cargo run
これで実行します。
$ cargo run
Compiling hello v0.1.0 (/mnt/d/GitHub/rust-tutorial/hello)
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: could not compile `hello` due to previous error
C コンパイラがないとダメだそうです。
gcc をインストールする
gcc (GNU Compiler Collection) です。
$ sudo apt install gcc
なんかすごい怒られましたが、最後の一行が、
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
だったので、とりあえず、
$ apt-get update
で更新して、もう一度 gcc をインストールしたらいけました。
VS Code の拡張機能をインストールする
エディタはとりあえず VS Code で間違いないでしょう。
以下の拡張機能を検索して、インストールします。
- rust-analyzer
最初は、Rust という名前の公式の拡張機能を使用していましたが、あまり補完とかしてくれませんでした。
不思議に思って調べたところ、上記の拡張機能がすすめられていたので、こちらを使用しています。
今のところ、満足しています。
cargo-edit をインストールする
Cargo.toml の編集が楽になるそうです。
この Cargo.toml というファイルでは、クレート (他の言語で言うパッケージ) 管理を行います。
$ cargo install cargo-edit
またすごい怒られました。エラーログを見ると、
error: failed to run custom build command for `openssl-sys v0.9.72`
とのこと。
これを解決するために、何度も挫折して時間が掛かりましたが、結局、このエラーメッセージでググれば解決できました。
OpenSSL を入れろってことのようですが、Ubuntu は以下のコマンドでうまくいきました。
$ sudo apt-get install libssl-dev
ちなみに、Mac は brew install openssl でいけるようなのですが、自分は Ubuntu で何度もこれを試していました。
これでもう一度、cargo-edit をインストールするとうまくいきました。
cargo-edit の動作確認をする
hello/ でクレートを追加・更新・削除をしてみます。
まずは、追加です。
$ cargo add clap@3.0.0
Updating 'https://github.com/rust-lang/crates.io-index' index
Adding clap v3.0.0 to dependencies
Cargo.toml に、以下の記述が追加されていることを確認します。
[dependencies]
clap = "3.0.0"
次は、更新です。
$ cargo upgrade clap
Updating 'https://github.com/rust-lang/crates.io-index' index
sandbox:
Upgrading clap v3.0.0 -> v3.1.0
Cargo.toml に、以下の内容の更新がされていることを確認します。
[dependencies]
clap = "3.1.0"
最後に、削除です。
$ cargo rm clap
Removing clap from dependencies
Cargo.toml から、[dependencies] が削除されていることを確認します。
メモ
すごく疲れました。
こういうことが積み重なると、どんどん Windows が嫌いになっていきますね。