2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rust + Vim の開発環境を整える際の動く nightly の探し方

Last updated at Posted at 2019-10-31

(追記: termoshtt さんから、最近 1 週間の状況なら https://rust-lang.github.io/rustup-components-history/x86_64-apple-darwin.html で確認できるとのこと)

プロジェクトで最新の nightly を使おうとした時に、ソースコードのコンパイルは通っても、開発支援ツールのダウンロードやインストールに失敗することがあります。

探し方

まずは適当なディレクトリで $ cargo init します。これはこの後の試行錯誤の時間を短くするためです。

$ cd /tmp
$ cargo init foo
$ cd foo/

後は rust-toolchain を追加し、日付を徐々に古くしつつチェック用の一連のインストールコマンドを実行していきます。

rust-toolchain についてはこの辺りをご参考に。

記事を書いている時点での最新の nightlynightly-2019-10-31 なので、そこから試していきます。

$ echo nightly-2019-10-31 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
    Checking foo v0.1.0 (/private/tmp/foo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.35s
info: component 'rustfmt' for target 'x86_64-apple-darwin' is up to date
info: component 'rust-analysis' for target 'x86_64-apple-darwin' is up to date
info: component 'rust-src' is up to date
error: component 'rls' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-31

失敗しました。次は nightly-2019-10-30 を試していきます。

$ echo nightly-2019-10-30 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
...(省略)...
error: component 'rls' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-30

失敗しました。といった感じで、どんどん試していきます。

$ echo nightly-2019-10-29 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
info: syncing channel updates for 'nightly-2019-10-29-x86_64-apple-darwin'
info: latest update on 2019-10-29, rust version 1.40.0-nightly (b497e1899 2019-10-28)
error: component 'clippy' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-29

$ echo nightly-2019-10-28 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
...(省略)...
error: component 'rls' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-28

$ echo nightly-2019-10-27 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
...(省略)...
error: component 'rls' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-27

$ echo nightly-2019-10-26 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
...(省略)...
error: component 'rls' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-26

$ echo nightly-2019-10-25 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
...(省略)...
error: component 'clippy' for target 'x86_64-apple-darwin' is unavailable for download for channel nightly-2019-10-25

$ echo nightly-2019-10-24 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
error: process didn't exit successfully: `rustc -vV` (exit code: 1)
--- stderr
error: 'rustc' is not installed for the toolchain 'nightly-2019-10-24-x86_64-apple-darwin'
To install, run `rustup component add rustc --toolchain nightly-2019-10-24-x86_64-apple-darwin`

nightly-2019-10-29 から nightly-2019-10-24 もだめでした。nightly-2019-10-23 を試します。

$ echo nightly-2019-10-23 > rust-toolchain; cargo check && rustup component add rustfmt rust-analysis rust-src rls-preview && cargo install racer --force
info: syncing channel updates for 'nightly-2019-10-23-x86_64-apple-darwin'
info: latest update on 2019-10-23, rust version 1.40.0-nightly (d6e4028a0 2019-10-23)
info: downloading component 'cargo'
info: downloading component 'clippy'
...(省略)...
info: downloading component 'rls'
info: installing component 'rls'
    Updating crates.io index
  Installing racer v2.1.28
   Compiling libc v0.2.65
...(省略)...
   Compiling racer v2.1.28
    Finished release [optimized] target(s) in 2m 54s
   Replacing /Users/daichi/.cargo/bin/racer
    Replaced package `racer v2.1.28` with `racer v2.1.28` (executable `racer`)

成功しました。というわけで、今回の場合は nightly-2019-10-23 がちゃんと動く最新の nightly とわかりました。

その他

普段 https://github.com/autozimu/LanguageClient-neovim を使っていまして、その設定内では例えば rustup run nightly-2019-10-23 rls が呼ばれるように書かなければならないのですが、<toolchain> の部分 (nightly-2019-10-23) は必ず指定しなければなりません。rust-toolchain を書き換えるたびにこの設定を書き直すのは面倒だし忘れてしまいます。なので自分はこんなふうに書くようにしました。

let g:LanguageClient_serverCommands = {
  \ 'rust': ['rustup', 'run', system("echo -n $(cat rust-toolchain)"), 'rls'],
  \ }

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?