Help us understand the problem. What is going on with this article?

rustup を非対話的環境でインストールする方法

TL;DR

rustupのインストールを非対話環境でインストールするには、以下のコマンドを実行する

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

動機および調査ログ

Rust をインストールするにあたって、rustup.rs - The Rust toolchain installerにあるコマンドをコピペして実行することが定石だと思います。

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

これを実行すると、以下のような表示が出て、ユーザーの入力待ち状態となります。

info: downloading installer

Welcome to Rust!

----中略----

Current installation options:


   default host triple: x86_64-unknown-linux-gnu
     default toolchain: stable
               profile: default
  modify PATH variable: yes

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

通常の環境であればここで1などを入力すれば良いのですが、そういうわけにはいかない環境ではどのようにすればいいのか。
curl でダウンロードした対話式シェルスクリプトが bash にパイプ渡しできない - Qiita
を参考にして

yes | sh <(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)

でいけないかと試してみましたが、ダメでした。

解決策はこちらにありました。
Non-interactive install · Issue #83 · rust-lang-deprecated/rustup.sh

-s-- については Man page of BASH を確認すると以下のように書いてあります。

-s オプションが指定された場合と、 オプションを全て処理した後に引き数が残っていなかった場合には、 コマンドは標準入力から読み込まれます。 このオプションを使うと、 対話的シェルを起動するときに 位置パラメータを設定できます。

-- はオプションの終わりを示し、それ以降のオプション処理を行いません。 -- 以降の引き数は全て、ファイル名や引き数として扱われます。 引き数 - は -- と同じです。

そんなわけで、結果的に冒頭に書いたコマンド(以下再掲)を実行すればOKです。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした