haiju's 開発メモ

開発に必要な情報を自分用にメモ

VMのManjaroにmultirustでRustとCargoをインストール

開発するものに依ってバージョンを切替えたいなと

考える派なのでRustも**env系の管理ツールで切替え

られたらいいなと思っていたら、Rustにはmultirust

というものがあると教えてもらったので早速。

[手順]

1. ターミナルからcurlで以下を実行

 curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sh

 **油断して離席して戻って来ると、途中でsudoのパスワードを聞かれて

 最終的に失敗したので、アンインストールから再実行。

 インストールログはこんな感じ。

 

curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sh

Welcome to Rust.

This script will download, build, and install multirust as root, then
configure multirust with the most common options. It may prompt for
your password for installation via 'sudo'.

You may run /usr/local/lib/rustlib/uninstall.sh to uninstall multirust.

Ready? (y/N) y

blastoff: working in temporary directory /tmp/tmp.u2VklDH261
blastoff: cloning multirust git repo
Cloning into 'multirust'...
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 19 (delta 1), reused 6 (delta 1), pack-reused 0
Unpacking objects: 100% (19/19), done.
Checking connectivity... done.
blastoff: building
Submodule 'src/rust-installer' (https://github.com/rust-lang/rust-installer) registered for path 'src/rust-installer'
Submodule 'src/rustup' (https://github.com/rust-lang/rustup) registered for path 'src/rustup'
Submodule 'test/multirust-v1' (https://github.com/brson/multirust) registered for path 'test/multirust-v1'
Cloning into 'src/rust-installer'...
remote: Counting objects: 354, done.
remote: Total 354 (delta 0), reused 0 (delta 0), pack-reused 354
Receiving objects: 100% (354/354), 112.35 KiB | 133.00 KiB/s, done.
Resolving deltas: 100% (215/215), done.
Checking connectivity... done.
Submodule path 'src/rust-installer': checked out 'c37d3747da75c280237dc2d6b925078e69555499'
Cloning into 'src/rustup'...
remote: Counting objects: 460, done.
remote: Total 460 (delta 0), reused 0 (delta 0), pack-reused 460
Receiving objects: 100% (460/460), 206.74 KiB | 166.00 KiB/s, done.
Resolving deltas: 100% (296/296), done.
Checking connectivity... done.
Submodule path 'src/rustup': checked out 'cb03553d51fb3c72b130c91c25d2aed29d217a24'
Cloning into 'test/multirust-v1'...
remote: Counting objects: 1162, done.
remote: Total 1162 (delta 0), reused 0 (delta 0), pack-reused 1162
Receiving objects: 100% (1162/1162), 333.23 KiB | 202.00 KiB/s, done.
Resolving deltas: 100% (663/663), done.
Checking connectivity... done.
Submodule path 'test/multirust-v1': checked out '2eaf9067314307320d27be510e1ac3949a21eee9'
blastoff: installing
[sudo] haiju のパスワード:
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
install: installing component 'multirust'

Get ready for Maximum Rust.

blastoff: installing stable toolchain
multirust: installing toolchain 'stable'
rustup: gpg available. signatures will be verified
rustup: downloading manifest for 'stable'
rustup: downloading toolchain for 'stable'
######################################################################## 100.0%
gpg: 署名されたデータが'/home/haiju/.multirust/rustup/dl/bcc2c8d128d2c0ca91d5/rust-1.6.0-x86_64-unknown-linux-gnu.tar.gz'にあると想定します
gpg: 2016年01月20日 20時49分50秒 JSTRSA鍵ID 7B3B09DCで施された署名
gpg: "Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: 108F 6620 5EAE B0AA A8DD 5E1C 85AB 96E6 FA1B E5FE
副鍵フィンガープリント: C134 66B7 E169 A085 1886 3216 5CB4 A934 7B3B 09DC
rustup: extracting installer
rustup: installing toolchain for 'stable'
install: creating uninstall script at /home/haiju/.multirust/toolchains/stable/lib/rustlib/uninstall.sh
install: installing component 'rustc'
install: installing component 'rust-std-x86_64-unknown-linux-gnu'
install: installing component 'rust-docs'
install: installing component 'cargo'

Rust is ready to roll.

multirust: default toolchain set to 'stable'
blastoff: all systems go

**デフォルトではstableの最新をインストールするらしいので、1.6.0が

  インストールされる。

# haiju at manjaro-vm in ~/sandbox/myapp on git:master ✖︎ [23:52:47]
→ rustc --version
rustc 1.6.0 (c30b771ad 2016-01-19)

2. サンプルプロジェクトを作成して動作確認

# haiju at manjaro-vm in ~/sandbox [23:51:33]
→ cargo new myapp --bin

# haiju at manjaro-vm in ~/sandbox [23:51:43]
→ cd myapp

# haiju at manjaro-vm in ~/sandbox/myapp on git:master ✖︎ [23:51:49]
→ ls -l
合計 8
-rw-r--r-- 1 haiju haiju 79 2月 17 23:51 Cargo.toml
drwxr-xr-x 2 haiju haiju 4096 2月 17 23:51 src

# haiju at manjaro-vm in ~/sandbox/myapp on git:master ✖︎ [23:52:07]
→ cargo run
Compiling myapp v0.1.0 (file:///home/haiju/sandbox/myapp)
Running `target/debug/myapp`
Hello, world!

 

[参考サイト]

qiita.com

gist.github.com

github.com

github.com