Rubyで始めるプログラミング入門　第1回　〜環境構築編〜


# 対象読者
この記事は下記のような読者を想定しています。

- プログラミングに興味がある入門者の方
- Scratchやmoonblockなどから一歩踏み込んでみたい方

# なにができるようになるか
「何ができるようになるのか」もしくは「何をしたいのか」は学び始める前に問いておくことは非常に重要です。

ただ漠然とプログラミングを習って、入力した値を全部足したような出力を持つプログラムを作っても、「エクセルでいいじゃん」と思うのは当然ですし、FizzBuzzをかけるようになってもそんな機能があったところで誰も使いませんよね。（もちろんこれはこれで重要なのですが）

ですので、具体的に下記のよいな具体的目標を掲げ、それを実現したいと思います。

- 掲示板Webシステムの開発
- 自動画像収集プログラムの開発


# 学習完了時の実力について
一通り見ていただければ[PaizaのCランク](http://paiza.jp/member/guide)は普通に取れるようになりますし、少し練習すればBランクまではすぐに取れるようになります。

# 開発環境構築

Macは標準でRubyの環境がインストールされています。
Winは自分でセットアップを行う必要があります。
今回はMacという前提で進めます。

## XcodeとXcode Command Line Toolsのインストール
RubyはC言語で書かれているため、Rubyをセットアップする際はC言語で書かれたプログラムをコンパイルする必要があります。一連のXcodeをインストールし、C言語をコンパイルできる環境を整えましょう。

AppStoreで[Xcode](https://itunes.apple.com/jp/app/xcode/id497799835?mt=12)をダウンロードし、インストールが完了したら、一度Xcodeを開き、規約に同意した後、下記のコマンドをターミナルに入力してください。

```bash
 $ xcode-select --install
```

## Rubyのバージョンについて

では次にターミナルを起動して下記のコマンドを入力してみましょう。

```bash
 $ ruby -v
```

これで現在使用しているRubyのバージョンが表示されるはずです。


開発者はプロジェクトによって使用しているRubyのバージョンが違うことがままあるので（プロジェクトAではRubyの2.0系統だけどプロジェクトBはRubyの2.1系統を使っている等）Rubyのバージョン管理システムを導入し簡単に切り替えられるようにしておくのが一般的です。ちなみに、現在の最新バージョンは2.3.0-devです。

Rubyのバージョン管理として主に使用されているのは下記の二つです。基本的にはどちらでも構いませんが、rbenvのほうがよく使われているようです。

- [rbenv](https://github.com/sstephenson/rbenv)
- [rvm](https://rvm.io/)

今回は入門編ですので、Rubyのバージョンにはあまり影響がない範囲の解説に止めるつもりですが、よく使われるツールですから後学のためにもインストールしておきましょう。

### Homebrewのインストール
まずは[Homebrew](http://brew.sh/index_ja.html)をインストールします。

「なんでrbenvじゃなくてHomebrewっていうのをインストールしなきゃならないのさ」というツッコミは非常に正しいです。

この辺、結構ややこしいのですが、Homebrewとはいわゆる「パッケージ管理システム」で、これを導入することにより、これからインストールするrbenvなどのツールのインストールやアンインストールなどの管理操作が簡単にできるようになります。

つまり、「Homebrewでrbenvを管理し、rbenvでrubyを管理する」といった体制を整えるのです。

Rubyにかかわらず、Macで開発を行うときは必須といってもよいパッケージ管理システムがHomebrewです。まずはこれを入れましょう。

余談ですが、実は少し前までは同じようなパッケージ管理システムとして[MacPorts](https://www.macports.org/)がよく利用されていましたが、現在はHomebrewのほうが人気です。

公式ページにも書かれている通り、下記のコマンドをターミナルで入力してください。

```bash
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

これだけでHomebrewのインストールは完了ですが、忘れてはいけないのがHomebrew自体もまたバージョンがあるということです。

念のためHomebrew自身を最新バージョンに更新するコマンドを走らせてみましょう。

```bash
$ brew update
```

ちなみに

```bash
$ brew -v
```

とすればHomebrewのバージョンを表示できます。

### rbenvのインストール

さていよいよrbenvのインストールです。
下記のコマンドを同じくターミナルへ入力してみてください。

```bash
$ brew install rbenv
```

はい、これでrbenvのインストールは完了です。
Homebrewを使うことでこんなに簡単にインストールを行うことができるのです。

合わせて下記のコマンドも実行してください。

```bash
$ brew install ruby-build
```

これはrbenvのプラグインで、ruby-buildを導入することによりrbenvから各種バージョンのrubyをインストールできるようになります。


また、詳細は省きますが、下記のコマンドも入力してください。

```bash
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
```

詳しく知りたい方は[rbenv + ruby-build はどうやって動いているのか](http://takatoshiono.hatenablog.com/entry/2015/01/09/012040)が参考になります。

### Rubyのインストール

まずはrbenvで管理できるRubyの一覧を表示させてみましょう。

```bash
$ rbenv install --list
```

```bash
(中略)
  2.2.0-dev
  2.2.0-preview1
  2.2.0-preview2
  2.2.0-rc1
  2.2.0
  2.2.1
  2.2.2
  2.3.0-dev
(中略)
```

上記のような行が表示されたかと思います。
どれを使えばいいのか悩みますね。

ここで簡単にRubyのバージョンの見方を解説します。
たとえばRuby2.1.1だと数字が３つありますが、
それぞぞれ(major).(minor).(teeny)を表しています。

- major アーキテクチャやコンセプトの変更
- minor 大きな仕様や機能の変更や追加
- teeny 小さな仕様や機能の変更や追加

という意味です。

語尾の意味は下記の通りです。

- dev
	- 開発版 多くの不具合が残っている可能性が高く品質が安定していない。
- pre
	- プレビュー版　devより安定しているがリリース前に試験的に公開されるバージョン。
- rc
	- Release Candidate　リリース候補版　不具合がなければ安定版になる。
- 無印
	- 安定版

その後にp247などが付与されているものもありますが、これはパッチのカウントにあたるので、数値が多い方が安定性や速度が向上しています。

```bash
$ rbenv install 2.2.2
```

さて、これでruby2.2.2がインストールできたはずです。
もう一度下記のコマンドを入力してください。

```bash
$ ruby -v
```

さて、rubyのバージョンは2.2.2になりましたでしょうか？最初に確認したバージョンと変わっておらず2.2.2にはなっていないはずです。rbenvでインストールしたrubyの一覧は下記のコマンドで確認できます。

```bash
$ rbenv versions
```

ここには2.2.2が表示されたはずです。
次は2.2.2に切り替えてみましょう。

```bash
$ rbenv global 2.2.2
```

これでrubyのバージョンが切り替わったはずです。
もう一度

```bash
$ ruby -v
```

で確認してみましょう。
2.2.2が表示されたはずです。

このようにrbenvでrubyのインストールと、バージョンの切り替えを行うことができるようになります。

さて、次回はいよいよ実際のプログラミングに移りたいと思います。