Sinatraのインストール
Sinatraのインストールを行います。
gem install コマンドを叩けばいいんですが、Gemの管理がややこしくなるので、Bundlerを使います。
Bundlerとは
BundlerはRuby on Railsで標準採用されている、RubyGemsの依存関係管理ソフトウェアです。
Ruby on Rails専用なわけではなく、SinatraやフツーのRuby(Frameworkとかじゃない)など、Ruby系であれば使うことが出来ます。
Bundlerのインストール
以下のコマンドを実行すればOK
gem install bundler
railsとかを使っている人はすでに入ってると思います。
2度実行しても別段害はないです。
Bundlerの使い方
プロジェクトのディレクトリがない場合は作成します。
mkdir sinatra
cd sinatra
Gemfileと言われるファイルを作成します。
このファイルに使用するRubyのGemを記載していきます。
今回はSinatraを使いたいのでSinatra関連のGemを入れます。
$ bundle init
$ vi Gemfile
# A sample Gemfile
source "https://rubygems.org"
gem 'sinatra'
gem 'sinatra-contrib'
gem 'sqlite3'
gem 'activerecord'
# gem "rails"
bundle init はGemfileが存在しない場合は新しく作成してくれるbundlerのコマンドです。
Gemfileの中身です。
$ cat Gemfile
# A sample Gemfile
source "https://rubygems.org"
gem 'sinatra'
gem 'sinatra-contrib'
gem 'sqlite3'
gem 'activerecord'
# gem "rails"
sourceはbundle initでファイル作った時に書かれてなければ書いて下さい。
3行目以降は、使用するGemを書きます。
sinatraを使うのでgem \'sinatra\'
を記載して下さい。
gem \'sinatra-contrib\'
はsinatraをオートリロードするgemです。
rubyファイルを編集した際にその内容を自動で反映させてくれます。
DBにSQLiteを使いたいので、gem \'sqlite3\'
も追加します。
あと、DBを便利に使うことができるActiveRecordも使いたいので、
gem \'activerecord\'
も追加します。
Gemfileの用意ができたらGemfileがあるディレクトリでbundle install
を実行して下さい。
Gemfileに記載したgemと、そのgemを使うために必要なgemがインストールされます。
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Installing i18n 0.7.0
Installing json 1.8.2
Installing minitest 5.6.0
Installing thread_safe 0.3.5
Installing tzinfo 1.2.2
Installing activesupport 4.2.1
Installing builder 3.2.2
Installing activemodel 4.2.1
Installing arel 6.0.0
Installing activerecord 4.2.1
Installing backports 3.6.4
Installing multi_json 1.11.0
Installing rack 1.6.0
Installing rack-protection 1.5.3
Installing rack-test 0.6.3
Installing tilt 1.4.1
Installing sinatra 1.4.6
Installing sinatra-contrib 1.4.2
Installing sqlite3 1.3.10
Using bundler 1.7.6
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
きちんと入ったか確認するため、gem list
を実行してみます。
$ gem list
*** LOCAL GEMS ***
activemodel (4.2.1)
activerecord (4.2.1)
activesupport (4.2.1)
arel (6.0.0)
backports (3.6.4)
bigdecimal (1.2.4)
builder (3.2.2)
bundler (1.7.6)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
i18n (0.7.0)
io-console (0.4.2)
json (1.8.2, 1.8.1)
minitest (5.6.0, 4.7.5)
multi_json (1.11.0)
psych (2.0.5)
rack (1.6.0)
rack-protection (1.5.3)
rack-test (0.6.3)
rake (10.1.0)
rdoc (4.1.0)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
sinatra (1.4.6)
sinatra-contrib (1.4.2)
sqlite3 (1.3.10)
test-unit (2.1.5.0)
thread_safe (0.3.5)
tilt (1.4.1)
tzinfo (1.2.2)
OKですね!!
その他Bundlerで知っておくといいこと
bundle update
を実行するとgemのバージョンなどを上げてくれます。
ただし、Gemfile内で
gem "sinatra", "~> 1.4.2"
といったように、gemのバージョンを指定していると
アップデートされずそのバージョンのgemが使用されます。
Bundlerの使い方自体はこんなかんじです。
次は実際にSinatraを使ってみます。