Open10

WSL2 で Rust をこわごわと触ってみる

htrkwnhtrkwn

WSL ディストリビューションをアンインストールするにはどうすればよいですか。

WSL からディストリビューションを削除し、その Linux ディストリビューションに関連付けられているすべてのデータを削除するには、wsl --unregister <distroName> を実行します。ここで、<distroName> には Linux ディストリビューションの名前を指定します。これは、wsl -l コマンドの一覧から確認できます。

https://learn.microsoft.com/ja-jp/windows/wsl/faq

htrkwnhtrkwn

Ubuntuを一度削除してから再インストール

> wsl --unregister ubuntu
> wsl --install

確認してみる

> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2
  Ubuntu                 Stopped         2

Ubuntuをデフォルトにしておく

wsl --set-default Ubuntu

確認

> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Stopped         2
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2
htrkwnhtrkwn

Rustをインストール

(言語学習目的でwsl入れるので…)

https://www.rust-lang.org/ja/

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

コマンドを入れてしばらく待つ。

Rust is installed now. Great!

とターミナルに表示されたので、指示通りに

. "$HOME/.cargo/env"

を実行した。(windows terminalで作業していた)

バージョン確認してみる。

$ rustc --version
rustc 1.85.0 (4d91de4e4 2025-02-17)
htrkwnhtrkwn

リンカをインストール

You will also need a linker, which is a program that Rust uses to join its compiled outputs into one file. It is likely you already have one. If you get linker errors, you should install a C compiler, which will typically include a linker. A C compiler is also useful because some common Rust packages depend on C code and will need a C compiler.

Linux users should generally install GCC or Clang, according to their distribution’s documentation. For example, if you use Ubuntu, you can install the build-essential package.
https://doc.rust-lang.org/book/ch01-01-installation.html

cc, gcc, clang 入ってなかったので…Ubuntuなのでbuild-essentialを入れます。

$ sudo apt install build-essential

めちゃくちゃいっぱい入ってきた(体感)

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  bzip2 cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev fakeroot g++ g++-13 g++-13-x86-64-linux-gnu
  g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3 libasan8 libatomic1 libc-dev-bin libc-devtools libc6-dev
  libcc1-0 libcrypt-dev libde265-0 libdpkg-perl libfakeroot libfile-fcntllock-perl libgcc-13-dev libgd3 libgomp1
  libheif-plugin-aomdec libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23 libitm1 liblsan0
  libmpc3 libquadmath0 libstdc++-13-dev libtsan2 libubsan1 libxpm4 linux-libc-dev lto-disabled-list make manpages-dev
  rpcsvc-proto
Suggested packages:
  bzip2-doc cpp-doc gcc-13-locales cpp-13-doc debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib
  autoconf automake libtool flex bison gdb gcc-doc gcc-13-multilib gdb-x86-64-linux-gnu glibc-doc bzr libgd-tools
  libheif-plugin-x265 libheif-plugin-ffmpegdec libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec
  libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc libstdc++-13-doc make-doc
The following NEW packages will be installed:
  build-essential bzip2 cpp cpp-13 cpp-13-x86-64-linux-gnu cpp-x86-64-linux-gnu dpkg-dev fakeroot g++ g++-13
  g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3 libasan8 libatomic1 libc-dev-bin
  libc-devtools libc6-dev libcc1-0 libcrypt-dev libde265-0 libdpkg-perl libfakeroot libfile-fcntllock-perl
  libgcc-13-dev libgd3 libgomp1 libheif-plugin-aomdec libheif-plugin-aomenc libheif-plugin-libde265 libheif1
  libhwasan0 libisl23 libitm1 liblsan0 libmpc3 libquadmath0 libstdc++-13-dev libtsan2 libubsan1 libxpm4 linux-libc-dev
  lto-disabled-list make manpages-dev rpcsvc-proto
0 upgraded, 54 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.3 MB of archives.
After this operation, 242 MB of additional disk space will be used.
htrkwnhtrkwn

gitのアップデート

$ git --version
git version 2.43.0

https://git-scm.com/downloads/linux
公式サイトを参照し、アップデートしてみる。

$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git

バージョン確認。

$ git --version
git version 2.48.1
htrkwnhtrkwn

とりあえずハローワールド&ハローカーゴ。

cargo new hello
cd hello
cargo run
src/main.rs
fn main() {
    println!("Hello, world!");
}
cargo run
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/hello`
Hello, world!
htrkwnhtrkwn

treeコマンドがなかったのでここで入れたりする。

sudo apt update
sudo apt install tree

あると嬉しい。