Rustupをインストールするときに発生したエラーの回避方法

Rust
スポンサーリンク

おはようございます!
暑い日が続きますが、皆様いかがお過ごしでしょうか?

「基礎から学ぶ組込みRust」を読んで、組み込みシステムの開発にRustを使えないか、日々精進しています。

先日、仮想マシン上に構築したUbuntuの環境に、Rustのツールチェインのインストーラrustupを使って、rustをインストールしました。
そのときに、環境の違いのせいか何度かエラーが発生しましたので、rustupのインストール方法と合わせて、エラーの内容と解決方法を時系列でまとめておこうと思います。

開発環境

環境
  • 開発用PC: Windows 10, 64bitにOracleVM Virtual Boxをインストール
    • 仮想マシン環境:Ubuntu20.04.2 LTS

rustupのインストール

コマンドラインからrustupをインストールしようとしたら…

Rustの開発チームが運営しているホームページでおすすめされているrustupをインストールしていきます。
ツールチェインとは、ある機能を実行するために順次実行される一連のプログラムを一つにまとめたプログラム群のことです。
このツールチェインを実行すれば、必要なプログラム一式をまとめて実行してくれます。

Linux上でのインストールとなりますので、以下のコマンドを入力しました。

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

なぜかインストールに失敗

上記のコマンドを入力したところ、以下のようなエラー文が発生してしまいました。

info: downloading installer
curl: (23) Failure writing output to destination
rustup: command failed: downloader https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.34zvl25qz8/rustup-init x86_64-unknown-linux-gnu

エラー文によるとインストーラをダウンロードしようとしたところ、失敗とのこと。

原因を調べていると、redditに同様のエラーに直面した人を発見。

どうやら、直接インストーラをダウンロードしてきて、それを実行すればよいようです。

私も以下のホームページ上からインストーラをダウンロードしました。

Other installation methods - The rustup book

プラットフォームに応じて、インストーラが異なるようですので、今回私はx86_64-unknown-linux-gnuをダウンロードしています。
ちなみに、どのインストーラをダウンロードすべきかについては、発生したエラー文のURL(https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init /tmp/tmp.34zvl25qz8/rustup-init)に記載されています。

インストーラをダウンロードできたので、ダウンロード先に移動してから、以下のコマンドでインストールを開始しました。

$ chmod +x rustup-init
$ sudo ./rustup-init

無事にインストーラが起動しました。

1を入力して、インストールが完了するのを待ちましょう。

指示にある通り、実際の作業を開始するには再起動が必要なようです。一度再起動を行いましょう。

Rust is installed now. Great! (Rustはインストールされた)」との表記があるので、なんとかエラーを回避し無事にインストールできたと喜んでいるのもつかの間、実はまだ正しくインストールされていないことが判明します。

ひとまず、インストールが完了したので、動作を確認しようと以下のコマンドを入力しました。

$ rustup --version

そうすると、以下のようなエラー。

コマンド 'rustup' が見つかりません。次の方法でインストールできます:
sudo snap install rustup

rustupインストールされてないやん…」と心の中で思いつつも、指示に従い、以下のコマンドでrustupをインストールしなおします。

sudo snap install rustup --classic

ちなみに、”–classic”をつけずにインストールをしようとすると、以下の通りエラーがでます。
“–classic” をつければ、無事にインストールが通ります。

ツールチェインのアップデート

さて、これで問題なくインストールできたかなと思いましたが、rustup以外のrustcやcargoなどのバージョンを確認しようとすると、再びエラーが発生しました。

error: no override and no default toolchain set

ツールチェインが正しくインストールできていないようです。
そこで、以下のコマンドを使って、updateを行いました。

$ rustup update stable

このコマンドを入力すると、cargoやrustcのダウンロードが開始され、インストールが行われます。
また、写真のとおりrustcやcargoのバージョンチェックも通るようになりました。

まとめ

上述の方法でなんとかRustツールチェインのインストールを行うことができました。
複数のエラーが発生しましたが、後半に発生したエラーの原因は最初に発生したrustupのダウンロードエラーを回避するために、直接インストーラをダウンロードしたためだと思います。
なぜ、ダウンロードのエラーが発生したのかについては、原因はわかっていません。

最後まで、ご覧いただきありがとうございました!

コメント

  1. にゃんこねん より:

    同じ症状で困っていました。他のサイトは情報が皆無だったのですが、このページに救われました。おかげさまで無事にインストールできました。本当にありがとうございました。

    • higashi より:

      コメント誠にありがとうございます。
      同様のトラブル、解決できたとのこと良かったです。発展している言語ですが、もっとweb上に情報が増えると良いですね!