Cargo invocation has failed: Error: exit code: 101.解決辦法

大嘴雀發表於2020-10-01

Rust語言

在VS Code中編輯Rust “ Thebook ” 中第二章 “ 猜猜看 ”遊戲程式碼時,嘗試在cargo.toml 中新增rand依賴項,即

cargo.toml

[dependencies]
rand = "0.7.3"

在命令列鍵入$cargo build之後,發現了

Cargo invocation has failed: Error: exit code: 101.

這樣一條彈窗提醒,提示crate啟用失敗。

OUTPUT視窗提示如下:

Running `cargo build --bin=instances --package=instances
--message-format=json`...
    Blocking waiting for file lock on package cache
    Updating crates.io index warning: spurious network error (2 tries remaining): failed to send request: 操作超時 ; class=Os (2) 
    warning: spurious network error (1 tries remaining): failed to send request: 操作超時 ; class=Os (2) 
    error: failed to get `rand` as a dependency of package `instances v1.46.0 (D:\DataFiles\CodesLearning\RUST\Instances)`

Caused by:   failed to load source for dependency `rand`

Caused by:   Unable to update registry `https://github.com/rust-lang/crates.io-index`

Caused by:   failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:   failed to send request: 操作超時  ; class=Os (2)

最後發現是連線Github網站超時導致。該問題在每次啟動VS Code後,檢查rust-analyzer外掛版本時也會無視已安裝的更新而彈窗提醒。

下面提供連線Github的方法,此方法同樣適用於網頁登入Github連線不上的問題。一般都是通過hosts檔案中新增ip地址解決。
host檔案在C://Windows/system32/dreivrs/etc目錄中。可以先右鍵 -> 屬性更改User的寫入許可權後,再進行編輯儲存。
通過https://github.com.ipaddress.com/www.github.com可以得知當前github網站ip地址已經更改,因此不少文章中提到的hosts修改已經失效。這裡提供向hosts檔案中新增的程式碼如下:

#Github
140.82.113.4 github.com 

當然,更推薦先用上述連結查詢之後再進行更改,防止ip地址更新失效。最後,別忘了儲存hosts檔案,並取消User的寫入許可權

相關文章