VirtualBoxでUbuntuの仮想環境を作って、Rustを試しに書いてみた
こんにちは。年末、ヒマになったので仮想環境で遊んでいます。
今日のお題はVirtualBoxとUbuntuとRustです。
目次
- Ubuntuをダウンロードする
- Oracle VM VirtualBoxをダウンロードする
- Oracle VM VirtualBoxで仮想環境を作る
- Rustをインストールする
- エディタをインストールする
- Rustで数当てゲームを作ってみる
- おわりに
Ubuntuをダウンロードする
から「Ubuntu Desktop」を選択し、最新版のUbuntuのisoファイルをダウンロードします。最新の16.04だと右クリック「端末を開く」で好きな場所からコンソールが開けるので便利です。超おすすめ。
※日本語サイトの「Ubuntu日本語Remexイメージ」だと、バージョンが古い可能性があるので注意が必要です。後から色々バージョンアップする羽目になるので面倒です。
Oracle VM VirtualBoxをダウンロードする
Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle
OSに合ったインストーラーを選びましょう。32または64bitもお忘れなく。特に難しいことはありません。
Oracle VM VirtualBoxで仮想環境を作る
VirtualBoxをインストールしたら、新規で仮想環境を作成します。名前を入力するとき、Ubuntuと入れると自動でUbuntuを作るモードになってくれます。ちょっと便利。
このあと、仮想環境を起動するときに先ほどダウンロードしておいたUbuntuのisoファイルを指定します。
(設定したハードディスクの容量によっては長時間になるので、お茶でも飲みながらのんびり待つといいです)
Rustをインストールする
ここからはRustの公式サイトを参考にしていくとよいです。
こちらがチュートリアルのページ。
2.はじめるから進めて……まずはRust本体をインストールします。
sudo apt install curl curl https://sh.rustup.rs -sSf | sh sudo apt install rustc rustc --version
Ubuntuをインストールしたてなので、たぶんcurlも一緒に入れることになるはず。
この後、Cargoというパッケージ的なものの説明があるので、よく読んでインストールしておくとよいです。具体的な説明はチュートリアルに譲りますが、「cargo run」のコマンド1つでパッケージごとコンパイルしてくれる、かつ動作してくれるのがいい感じです。
エディタをインストールする
ついでにエディタも用意しておくとよいでしょう。
とりあえず使い慣れたSublime Text 3をダウンロード。
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - sudo apt-get install apt-transport-https echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text/list sudo apt-get update sudo apt-get install sublime-text
これでコーディングも楽々。
Rustで数当てゲームを作ってみる
とりあえず書いて動かしてみました。
extern crate rand; use std::io; use std::cmp::Ordering; use rand::Rng; fn main() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen_range(1, 101); println!("The secret number is: {}", secret_number); loop { println!("Please input your guess."); let mut guess = String::new(); io::stdin().read_line(&mut guess) .expect("failed to read line"); let guess: u32 = match guess.trim().parse() { Ok(num) => num, Err(_) => continue, }; println!("You guessed: {}", guess); match guess.cmp(&secret_number) { Ordering::Less => println!("Too small!"), Ordering::Greater => println!("Too big!"), Ordering::Equal => { println!("You win!"); break; } } } }
ってやると……
$ cargo run Compiling guessing_game v0.1.0 (file:///home/you/projects/guessing_game) Running `target/guessing_game` Guess the number! The secret number is: 61 Please input your guess. 10 You guessed: 10 Too small! Please input your guess. 99 You guessed: 99 Too big! Please input your guess. foo Please input your guess. 61 You guessed: 61 You win!
という感じで数当てゲームができます。