Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Step by step instruction to install Rust and Cargo for mingw with Msys2?

Tags:

I tried to install Rust on Cygwin but failed to be able link with mingw. Now I am trying to install it with Msys2. I already installed Msys2 and Mingw. I tried to follow this wiki page but I got lost at number 2:

Download and install Rust+Cargo using the installer but be sure to disable the Linker and platform libraries option.

Is it referring to the "rustup-init.exe" on the install page? Should I double click to run this file or run it from Msys2? I tried to run from Msys2 and got the options:

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

I don't know what to do next.

I tried to follow Francis' answer:

Thang@Thang-Laptop MINGW64 /c/Software/Rust $ ./rustup-init.exe  Rust Visual C++ prerequisites  Rust requires the Microsoft C++ build tools for Visual Studio 2013 or later, but they don't seem to be installed.  The easiest way to acquire the build tools is by installing Microsoft Visual C++ Build Tools 2015 which provides just the Visual C++ build tools:    http://landinghub.visualstudio.com/visual-cpp-build-tools  Alternately, you can install Visual Studio 2015 or Visual Studio 2013 and during install select the "C++ tools":    https://www.visualstudio.com/downloads/  Install the C++ build tools before proceeding.  If you will be targetting the GNU ABI or otherwise know what you are doing then it is fine to continue installation without the build tools, but otherwise, install the C++ build tools before proceeding.  Continue? (Y/n) Y   Welcome to Rust!  This will download and install the official compiler for the Rust programming language, and its package manager, Cargo.  It will add the cargo, rustc, rustup and other commands to Cargo's bin directory, located at:    C:\Users\Thang\.cargo\bin  This path will then be added to your PATH environment variable by modifying the HKEY_CURRENT_USER/Environment/PATH registry key.  You can uninstall at any time with rustup self uninstall and these changes will be reverted.  Current installation options:     default host triple: x86_64-pc-windows-msvc      default toolchain: stable   modify PATH variable: yes  1) Proceed with installation (default) 2) Customize installation 3) Cancel installation 2  I'm going to ask you the value of each these installation options. You may simply press the Enter key to leave unchanged.  Default host triple? x86_64-pc-windows-gnu  Default toolchain? (stable/beta/nightly/none) stable  Modify PATH variable? (y/n) y   Current installation options:     default host triple: x86_64-pc-windows-gnu      default toolchain: stable   modify PATH variable: yes  1) Proceed with installation (default) 2) Customize installation 3) Cancel installation 1  info: updating existing rustup installation   Rust is installed now. Great!  To get started you need Cargo's bin directory (%USERPROFILE%\.cargo\bin) in your PATH environment variable. Future applications will automatically have the correct environment, but you may need to restart your current shell.  Press the Enter key to continue.   Thang@Thang-Laptop MINGW64 /c/Software/Rust $ rustc --version bash: rustc: command not found 

I added the config file. Not sure if I miss anything

Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo $ cat config [target.x86_64-pc-windows-gnu] linker = "C:\msys2\mingw64\bin\gcc.exe" ar = "C:\msys2\mingw64\bin\ar.exe" Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo $ cargo --version bash: cargo: command not found 

Edit 2:
I have just restarted my laptop. It's still not work, I check the Path in msys2, there is no cargo folder

Thang@Thang-Laptop MINGW64 ~ $ echo $PATH /mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/ 

but I saw it in user variables in Environment Variables.

Edit 3:

Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo/bin $ ./rustup default stable-x86_64-pc-windows-gnu info: syncing channel updates for 'stable-x86_64-pc-windows-gnu' info: latest update on 2017-10-12, rust version 1.21.0 (3b72af97e 2017-10-09) info: downloading component 'rustc' info: downloading component 'rust-std' info: downloading component 'cargo' info: downloading component 'rust-docs' info: downloading component 'rust-mingw' info: installing component 'rustc' info: installing component 'rust-std' info: installing component 'cargo' info: installing component 'rust-docs' info: installing component 'rust-mingw' info: default toolchain set to 'stable-x86_64-pc-windows-gnu'    stable-x86_64-pc-windows-gnu installed - rustc 1.21.0 (3b72af97e 2017-10-09)   Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo/bin $ ls cargo.exe  rustc.exe    rust-gdb.exe   rustup.exe rls.exe    rustdoc.exe  rust-lldb.exe  Thang@Thang-Laptop MINGW64 /c/Users/Thang/.cargo/bin $ rustc --version bash: rustc: command not found 
like image 672
ThangNguyen Avatar asked Nov 19 '17 16:11

ThangNguyen


People also ask

Does Rustup install Cargo?

rustup installs rustc , cargo , rustup and other standard tools to Cargo's bin directory.

What is Rustup in Rust?

Rustup can be used to install Rust and keep it updated. It also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling.


1 Answers

The Using Rust on Windows page you linked to dates from before rustup replaced the installer as the default option to install Rust. Installers are still available, but you should use rustup if possible, because it makes it easy to update and to use multiple toolchains at once (e.g. stable, beta and nightly). If you must use the installer, just select the x86_64-pc-windows-gnu installer and follow the step from the Using Rust on Windows page. If you're using rustup, read on.

By default, rustup on Windows installs the compiler and tools targeting the MSVC toolchain, rather than the GNU/MinGW-w64 toolchain. At the initial menu, select 2) Customize installation. When asked for a host triple, enter x86_64-pc-windows-gnu. Then make a choice for the other questions, then proceed with the installation.

Note: If rustup is already installed, then rerunning rustup-init won't actually install the requested toolchain. Instead, run rustup toolchain install stable-x86_64-pc-windows-gnu if you already have the MSVC-based toolchain. Then run rustup default stable-x86_64-pc-windows-gnu to set the GNU-based toolchain as the default.

Rustup will install the MinGW linker and platform libraries automatically (as part of the rust-mingw component) and refuses to let you remove them. If you prefer to use the MinGW linker and libraries you installed with MSYS2, you'll need to create a .cargo/config file (either in your profile directory, i.e. C:\Users\you\.cargo\config, or in your project's directory if this configuration is specific to a project). The contents of that file might look like this:

[target.x86_64-pc-windows-gnu] linker = "C:\\msys2\\mingw64\\bin\\gcc.exe" ar = "C:\\msys2\\mingw64\\bin\\ar.exe" 

Rustup will modify the PATH environment variable unless you told it not to. However, MSYS2 resets PATH by default when you launch, so when you try to invoke cargo or rustc from your MSYS2 shell, it might not find it. You'll need to edit your .profile/.bash_profile script to set the PATH correctly (you need to prepend /c/Users/yourname/.cargo/bin: to PATH).

like image 168
Francis Gagné Avatar answered Sep 29 '22 18:09

Francis Gagné