tasuwo blog

Rubyの基礎知識についてのメモ

| Comments

Rubyの基礎知識についてまとめたので,自分用のメモを残す.

今回の目的

gemとかbundlerとかevmとかrbenvとか,言葉は聞いたことあるし利用したことあっても理解してなかったので,まとめる.

そもそもRubyとは

日本人発のスクリプト言語…?くらいの知識しかない.一言で言い表すなら,オブジェクト指向スクリプト言語,ということらしい.

公式

1. 設計思想

Wikipediaもあるけど,インタビュー記事とかも見つけたのでざっと読んでみる.

三年予測 -トップリーダーと考えるエンジニアの未来- 第7回 Ruby言語設計者まつもとゆきひろ

印象に残った文章をいくつか引用しておく.

Ruby言語は純粋なオブジェクト指向言語なので、数値や文字列を含めすべてをオブジェクトとして扱う。"Hello, World!"の文字列を表示するだけの最も簡単なプログラムを動かすにも、まずオブジェクトを管理する枠組みを作り、最小限必要なクラス群を作り、さらにI/Oライブラリを作らなければならない。この段階に到達するまでに半年を要したのだ。

まつもとゆきひろの有名な言葉の一つに「Rubyをキメると気持ちいい!」というものがある。「新しいものを作ろうとは思っていない。気分がよく開発できる言語を作りたい」のだ。

特定分野に特化して設計された言語よりも、プログラミング言語として隅々まで配慮されている汎用言語が好みだという。「Rubyには目的はない。科学技術計算とかWeb開発とか、特定の目的に偏った言語ではない」

まつもと氏の言語愛から生まれた言語なんだね.

2. 環境構築

公式サイトを見ると,インストール方法は以下のように示されている.

  • Linux/Unix
    • システムのパッケージ管理ツール
    • rbenv,RVM等のサードパーティ製のツール
  • OS X
    • rbenv,RVM等のサードパーティ製のツール
  • Windows
    • RubyInstaller

わざわざ管理ツールを用いてインストールするのは,Rubyはバージョン更新が早く,バージョンによってはアプリケーションが動作しないことがよくあるから,だと思う.たぶん.
当方Macのため,今回はrbenvとRVMの概要についてまとめる.

2.1 rbenv

複数バージョンのRubyを管理できる.

デフォルトでは,Rubyのインストール自体はサポートしていない.
しかし,ruby-buildというプラグインによってインストール可能となる.

rbenvドキュメント
rbenv + ruby-build はどうやって動いているのか
rbenvおよびbundlerの基本的な使用方法
Rubyのrvmやgemってなんだ?て調べたらrbenvが出てきたの巻

2.2 RVM

略はそのまま,Ruby Version Manager.
複数のRubyのインストール及び管理をサポートする.

rvm.io

2.3 その他の方法

その他の方法として,システムのパッケージマネージャを用いる方法がある.

  • Debian or Ubuntu
    • apt
  • CentOS, Fedora, or RHEL
    • yum
  • OS X
    • homebrew

2.4 MacにおけるRuby

Mac OS X にはruby 2.2.0,OS X Moutain Lion, Lion, Snow Leopardには1.8.7が含まれている.また,Homebrewを用いると簡単にインストールが可能.

1
$ brew install ruby

rbenvおよびbundlerの基本的な使用方法
Rubyのrvmやgemってなんだ?て調べたらrbenvが出てきたの巻

rbenv + ruby-build はどうやって動いているのか

3. ライブラリ

3.1 Gem

Rubyではサードパーティ製のライブラリやアプリケーションが多く提供されている.これらはGemという形式でパッケージングされ,公開されている.有名なフレームワークであるRailsも,Gem形式でパッケージ化されている.たまに,.zip.tar.gz等のアーカイブ形式で配布されている場合もある.

3.2 RubyGems

gemのためのパッケージ管理ツール.コマンド名はgem.gem形式のパッケージの公開,インストールを助けるシステムで,Ruby のバージョン 1.9 以降では標準添付されている.
gem形式で公開されている様々なライブラリを使用できる窓口として動作するっぽい.

  • Gemファイルの検索
  • RubyGemsドキュメント
  • Gemコマンドリファレンス
  • 使用頻度の高いコマンド
    • gem search -r:RubyGems のリポジトリを調べる
    • gem search -l:インストール済のgemを調べる
    • gem list:インストール済のgem一覧
    • gem install [gem]:gemのインストール

ライブラリ - Ruby
初心者は覚えておきたいRubygemsのコマンドまとめ

Rubygemsのススメ | Rubyに慣れていない初心者さんへ

3.3 Bundler

アプリケーションが依存するgemを管理するツール.gem形式で公開されている.

アプリケーション開発の際,いくつもgem installしていると,どのアプリケーションがどの gem に依存しているのか?必要なバージョンは?等の依存関係がわからなくなる.bundlerはこれを解決するためのツール.

3.3.1 インストール

1
$ gem install bundler

3.3.2 Gemfile

アプリケーションのルートディレクトリ直下に,Gemfileというファイルを作成する.ここに,アプリケーションに依存する gem を記述しておく.

1
2
3
4
5
6
7
8
9
# 例
source 'https://rubygems.org'
gem "sinatra"
gem "mysql2"
gem "activerecord", "3.1.1", :require => 'active_record'

group :development do
  gem "shotgun"
  end

3.3.3 依存gemのインストール

Gemfileに従って,依存する gem をインストールする.--pathを指定すると,gemのインストール先ディレクトリを指定できる.

1
$ bundle install --path=./vendor/bundler

Bundler(公式)
Bundlerを使ったGemパッケージの管理
Rubyで開発するときに入れておきたい三種のRubyGems

4. まとめ

Rubyとは?

Rubyは,オブジェクト指向スクリプト言語
特定の目的のために作成されたわけではなく,プログラマが楽しくプログラミングできるように設計された汎用的な言語,とされている.
Webページを楽に制作できるフレームワークRailsに採用されたことで広く認知されるようになった.

環境は?

Rubyはオープンソースであり,更新がめまぐるしい.
そのため,複数バージョンを切り替えるためのrbenvRVM等のサードパーティ製のパッケージ管理ツールによってインストール・管理するのが一般的.

ライブラリは?

また,ライブラリはgemという形式でパッケージングされている.
RubyGemsを用いてこれらのライブラリを利用できる.
また,その依存関係を管理するのにbundlerというgemパッケージが広く用いられている.
bundler は アプリケーション毎に Gemfile を用意する.
Gemfile にアプリケーションが依存する gem やそのバージョンを記述することで,アプリケーションとライブラリの依存関係を管理する.

Comments