2022-02-18

はじめての Rust #1 環境構築

rust_1.md

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 が嫌いになっていきますね。

0 件のコメント:

コメントを投稿

ラビット・チャレンジ - Stage 3. 深層学習 前編 (Day 1)

提出したレポートです。 絶対書きすぎですが、行間を埋めたくなるので仕方ない。 Rabbit Challenge - Stage 3. 深層学習 前編 (Day 1) 0. 深層学習とは何か この講義(Day1)の内容では、ニューラルネットワークを用いた学習方法として、順...