Setting up Rust Lang on Alpine is relatively straight-forward. You get the dependencies that includes clang and lld from the apk repositories and curl to download and install the Rust Toolchain.
1. Getting the dependencies
We will need a C compiler and a Linker. Actually only the linker will be used to
link your binaries against the standard C library unless your Rust project is
explicitly called C programs. I will be using the LLVM Project’s
$ apk add clang lld
I would also need curl to actually download the Rust comiler toolchain in the second step.
2. Getting Rust
I will just use the standard Rust installation method as shown in the official website.
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
I will go ahead and select all the defaults, which in case of Alpine will look something like below:
Current installation options: default host triple: x86_64-unknown-linux-musl default toolchain: stable (default) profile: default modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation
You can change the defaults if you like. Make sure to add ~/.cargo/bin to your
$ source ~/.cargo/env
3. Compiling a Rust Program
To get started with Rust, let’s try running a simple “Hello, World!” program:
$ cargo new hello $ cd ./hello $ RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=lld" cargo build
Notice, we have to pass
RUSTFLAGS variable so that the
rustc compiler would
know which C compiler and linker to invoke.
4. Static binaries
That’s it. Now you have a barely working Rust Lang environment. Have fun fellow
Rustaceans. If you want to build static binaries for some targets with glibc
defaults, you can use the flag