一、安裝步驟
在Windows Subsystem for Linux (WSL)下安裝Rust,可以按照以下步驟進行:
-
打開WSL終端:
首先,確保你的WSL已經安裝并正常運行。你可以在Windows搜索欄中輸入“WSL”并選擇你安裝的Linux發行版(如Ubuntu)來打開它。 -
更新包管理器:
在開始安裝之前,建議更新你的包管理器。如果你使用的是基于Debian的發行版(如Ubuntu),可以運行以下命令來更新apt
:sudo apt update && sudo apt upgrade -y
這將確保所有現有的軟件包都是最新的,同時更新包管理器的索引。
-
安裝Rust和Cargo:
Rust語言和其包管理工具Cargo可以通過Rust的安裝腳本來安裝。在WSL終端中運行以下命令:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
這個命令會下載一個腳本并執行,該腳本將自動安裝Rust編譯器和Cargo。
-
配置環境變量:
安裝完成后,你需要將Cargo的安裝目錄添加到你的PATH
環境變量中。通常,安裝腳本會提示你如何操作。如果你使用的是bash,可以添加如下命令到你的~/.bashrc
或~/.bash_profile
文件中:source $HOME/.cargo/env
然后重新加載配置文件或重新打開終端,以確保環境變量生效。
-
驗證安裝:
安裝完成后,你可以通過運行以下命令來驗證Cargo是否正確安裝:cargo --version
如果安裝成功,你應該會看到Cargo的版本號輸出。
-
使用Rust:
現在你已經成功在WSL下安裝了Rust,可以開始編寫和運行Rust程序了。
請注意,這些步驟可能因你使用的Linux發行版和WSL的版本而略有不同。如果遇到任何問題,建議查閱Rust的官方文檔或尋求社區的幫助。
二、curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh 這個命令停留很久也沒反應
如果你執行 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
命令后很長時間沒有反應,這可能是由于多種原因造成的。以下是一些建議的解決步驟:
-
檢查網絡連接:
確保你的網絡連接是穩定的,并且WSL可以訪問外部網絡。你可以嘗試在WSL終端中ping一個常見的網站,比如ping google.com
,來檢查網絡連通性。 -
代理或VPN:
如果你在使用代理服務器或VPN,請確保它們配置正確,并且允許WSL通過它們進行連接。有時候,代理或VPN的設置可能會阻止或減慢腳本的下載速度。 -
嘗試手動下載:
如果通過curl直接運行腳本沒有反應,你可以嘗試手動下載rustup安裝腳本。在瀏覽器中訪問 https://sh.rustup.rs ,然后將頁面上的腳本內容保存為一個文件(比如rustup-init.sh
),之后在WSL中運行這個腳本:chmod +x rustup-init.sh ./rustup-init.sh
-
查看curl的進度:
如果可能的話,你可以嘗試去掉-sSf
參數來查看curl的下載進度,這樣可以幫助你確定是否真的有數據在傳輸。命令如下:curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -o rustup-init.sh chmod +x rustup-init.sh ./rustup-init.sh
-
檢查防火墻和安全軟件:
確保你的防火墻或安全軟件沒有阻止curl或WSL的網絡訪問。 -
更新WSL和Linux發行版:
有時候,WSL或其Linux發行版可能存在bug或兼容性問題。確保你的WSL和Linux發行版都是最新版本。 -
查看日志和錯誤信息:
如果上述方法都不行,嘗試查看curl或WSL的日志,看是否有任何錯誤信息可以幫助你診斷問題。
如果嘗試了上述所有方法仍然無法解決問題,你可能需要更深入地調查網絡設置,或者尋求社區或專業人士的幫助。在論壇、Stack Overflow或Rust社區中提問時,請提供盡可能多的信息,以便他人能夠幫助你解決問題。
三、Warning: Failed to create the file rustup-init.sh: Permission denied
當你遇到 “Warning: Failed to create the file rustup-init.sh: Permission denied” 錯誤時,這通常意味著當前用戶沒有足夠的權限來在指定的目錄下創建文件。為了解決這個問題,你可以嘗試以下幾個步驟:
-
檢查當前目錄的權限:
確認你當前所在的目錄是否允許你創建文件。你可以使用ls -ld .
命令來查看當前目錄的權限。 -
更改目錄:
如果你沒有在當前目錄的寫入權限,嘗試切換到一個你有寫入權限的目錄,比如你的家目錄(~
或$HOME
),然后再執行下載命令。 -
使用sudo(不推薦):
雖然使用sudo
可以提供必要的權限來創建文件,但是在這種情況下并不推薦,因為rustup-init.sh
腳本將在你的用戶環境下運行,并不需要超級用戶權限。 -
修改文件夾權限:
如果你確實需要在當前目錄下創建文件,而且你有足夠的權限去修改文件夾的權限,你可以使用chmod
命令來更改文件夾的權限。但是,請謹慎操作,因為這可能會影響其他用戶和應用程序對該文件夾的訪問。
建議的解決方法是切換到你的家目錄或其他你有寫入權限的目錄,然后再次嘗試下載 rustup-init.sh
腳本。例如:
cd ~
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init.sh
chmod +x rustup-init.sh
./rustup-init.sh
這將確保你有足夠的權限來創建和執行腳本文件。記得在執行腳本之前先給它執行權限(chmod +x rustup-init.sh
)。
四、查看自己的權限
ls -ld
dr-xr-xr-x 1 xuyeping xuyeping 512 May 20 19:58 .
從給出的目錄權限 dr-xr-xr-x
可以看出,當前用戶(在這個例子中是 xuyeping
)只有讀取(r
)和執行(x
)權限,而沒有寫入(w
)權限。這就是為什么你無法在當前目錄下創建 rustup-init.sh
文件的原因。
為了解決這個問題,你需要改變目錄的權限或者更改到一個有寫入權限的目錄。由于更改目錄權限可能會影響系統的安全性和穩定性,因此建議的做法是切換到用戶有寫入權限的目錄,比如用戶的家目錄。
請按照以下步驟操作:
- 切換到家目錄:
cd ~
或者
cd $HOME
- 在家目錄中下載
rustup-init.sh
:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init.sh
- 賦予腳本執行權限:
chmod +x rustup-init.sh
- 運行安裝腳本:
./rustup-init.sh
這樣你就應該能夠在不遇到權限問題的情況下安裝 Rust 了。如果你需要在家目錄以外的其他地方創建文件,并且有足夠的理由要這么做,你可能需要聯系系統管理員來調整文件夾的權限。但請注意,隨意更改系統文件夾的權限可能會導致安全問題或系統不穩定。
五、安裝過程詳細內容
~$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installerWelcome to Rust!This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:/home/xuyeping/.rustupThis can be modified with the RUSTUP_HOME environment variable.The Cargo home directory is located at:/home/xuyeping/.cargoThis can be modified with the CARGO_HOME environment variable.The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:/home/xuyeping/.cargo/binThis path will then be added to your PATH environment variable by
modifying the profile files located at:/home/xuyeping/.profile/home/xuyeping/.bashrcYou can uninstall at any time with rustup self uninstall and
these changes will be reverted.Current installation options:default host triple: x86_64-unknown-linux-gnudefault toolchain: stable (default)profile: defaultmodify PATH variable: yes1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation
>info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
730.9 KiB / 730.9 KiB (100 %) 127.4 KiB/s in 2s ETA: 0s
info: latest update on 2024-05-02, rust version 1.78.0 (9b00956e5 2024-04-29)
info: downloading component 'cargo'8.0 MiB / 8.0 MiB (100 %) 4.2 MiB/s in 2s ETA: 0s
info: downloading component 'clippy'
info: downloading component 'rust-docs'15.1 MiB / 15.1 MiB (100 %) 4.4 MiB/s in 4s ETA: 0s
info: downloading component 'rust-std'24.3 MiB / 24.3 MiB (100 %) 4.2 MiB/s in 6s ETA: 0s
info: downloading component 'rustc'63.7 MiB / 63.7 MiB (100 %) 4.1 MiB/s in 18s ETA: 0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'15.1 MiB / 15.1 MiB (100 %) 11.5 MiB/s in 1s ETA: 0s
info: installing component 'rust-std'24.3 MiB / 24.3 MiB (100 %) 18.3 MiB/s in 1s ETA: 0s
info: installing component 'rustc'63.7 MiB / 63.7 MiB (100 %) 19.8 MiB/s in 3s ETA: 0s
info: installing component 'rustfmt'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'stable-x86_64-unknown-linux-gnu installed - rustc 1.78.0 (9b00956e5 2024-04-29)Rust is installed now. Great!To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env" # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish" # For fish
英文提示翻譯如下:
看起來你已經成功地開始安裝Rust和Cargo了!安裝程序已經給出了它將要做的事情的詳細說明,包括安裝位置和一些環境變量的修改。這里是安裝過程中所提供信息的中文解釋:
歡迎來到Rust世界!
安裝程序將下載并安裝Rust編程語言的官方編譯器及其包管理器Cargo。
Rustup的元數據和工具鏈將被安裝到Rustup的主目錄中,該目錄位于:
/home/xuyeping/.rustup
你可以通過設置RUSTUP_HOME
環境變量來修改這個目錄位置。
Cargo的主目錄位于:
/home/xuyeping/.cargo
這個目錄也可以通過設置CARGO_HOME
環境變量來修改。
cargo, rustc, rustup等命令將被添加到Cargo的bin目錄中,該目錄位于:
/home/xuyeping/.cargo/bin
安裝程序將通過修改以下配置文件來將這個路徑添加到你的PATH
環境變量中:
/home/xuyeping/.profile
/home/xuyeping/.bashrc
這樣做的目的是讓你能夠在任何位置直接通過命令行運行Rust相關的命令。
你可以隨時卸載:如果你在未來任何時候想要卸載Rust和Cargo,只需運行rustup self uninstall
命令,安裝程序所做的所有更改都將被撤銷。
現在,你應該已經準備好開始使用Rust進行編程了!如果你想要驗證安裝是否成功,可以打開一個新的終端窗口,并嘗試運行rustc --version
和cargo --version
命令來查看Rust編譯器和Cargo的版本信息。
…
很好,你已經成功安裝了Rust!現在,為了讓Rust和Cargo的命令在任何地方都能被識別和執行,你需要將這些命令的路徑添加到你的環境變量PATH
中。安裝過程中已經提到了這一點,并為你準備了一個環境腳本文件,在$HOME/.cargo
目錄下。
根據你的shell類型,你需要運行相應的命令來使這個環境腳本生效。以下是具體的步驟:
-
對于sh/bash/zsh/ash/dash/pdksh用戶:
打開你的終端,并執行以下命令:. "$HOME/.cargo/env"
注意命令前面的點(
.
)是必需的,它表示在當前shell中執行腳本,而不是啟動一個新的shell來執行。 -
對于fish用戶:
如果你使用的是fish shell,你需要執行以下命令:source "$HOME/.cargo/env.fish"
source
命令在fish中與在其他shell中的行為略有不同,但效果是相同的,即在當前shell環境中執行腳本。
執行完上述命令后,你的PATH
環境變量就會被更新,以包含Cargo的bin目錄($HOME/.cargo/bin
),這樣你就可以在任何位置直接運行rustc
, cargo
等命令了。
如果你想要這些變更在每次打開新的終端窗口時都自動生效,你可以將上述命令添加到你的shell配置文件中(如.bashrc
, .zshrc
, config.fish
等),具體取決于你使用的shell類型。
最后,為了驗證安裝和配置是否正確,你可以嘗試在新的終端窗口中運行rustc --version
或cargo --version
,看看是否能正確顯示出Rust編譯器和Cargo的版本信息。