sai’s diary

プログラミング関連の備忘録とつぶやきを書いています。

Ruby on Rails - railsのインストール

railsのインストール

Rubyのインストールは終わったので次はrailsをインストールします。

railsgemコマンドでインストールするだけなのでとても簡単でした。

gemにもsearchコマンドがあったので事前にrailsのバージョンを確認してみると4.1.5がインストール可能だったのでそのままインストールへ。
#--versionオプションで別バージョンのインストールも可能ですが、Rubyのバージョンと同様に最新版としました。

[user@localhost ~]$ gem search "^rails$"

*** REMOTE GEMS ***

rails (4.1.5)
[user@localhost ruby-2.1.2]$ sudo gem install rails

gemのコマンドはgem help commandsを実行すると一覧が表示されます。 gem help 調べたいコマンド名で詳細な説明が確認出来ます。

取り敢えずinstall,uninstall,outdated,update,searchが使えれば不便はなさそうです。

[user@localhost ~]$ gem -v
2.2.2
[user@localhost ~]$ gem help commands
GEM commands are:

    build             Build a gem from a gemspec
    cert              Manage RubyGems certificates and signing settings
    check             Check a gem repository for added or missing files
    cleanup           Clean up old versions of installed gems
    contents          Display the contents of the installed gems
    dependency        Show the dependencies of an installed gem
    environment       Display information about the RubyGems environment
    fetch             Download a gem and place it in the current directory
    generate_index    Generates the index files for a gem server directory
    help              Provide help on the 'gem' command
    install           Install a gem into the local repository
    list              Display local gems whose name starts with STRING
    lock              Generate a lockdown list of gems
    mirror            Mirror all gem files (requires rubygems-mirror)
    outdated          Display all gems that need updates
    owner             Manage gem owners of a gem on the push server
    pristine          Restores installed gems to pristine condition from files
                      located in the gem cache
    push              Push a gem up to the gem server
    query             Query gem information in local or remote repositories
    rdoc              Generates RDoc for pre-installed gems
    search            Display remote gems whose name contains STRING
    server            Documentation and gem repository HTTP server
    sources           Manage the sources and cache file RubyGems uses to search
                      for gems
    specification     Display gem specification (in yaml)
    stale             List gems along with access times
    uninstall         Uninstall gems from the local repository
    unpack            Unpack an installed gem to the current directory
    update            Update installed gems to the latest version
    which             Find the location of a library file you can require
    yank              Remove a pushed gem from the index

For help on a particular command, use 'gem help COMMAND'.

Commands may be abbreviated, so long as they are unambiguous.
e.g. 'gem i rake' is short for 'gem install rake'.

穴あきですがざっくりの解釈は以下になります。

コマンド名 解釈
build gemspecからgemパッケージをビルドする
cert -
check -
cleanup -
contents 指定したgemパッケージに含まれるコンテンツの表示
dependency 指定したgemパッケージの依存関係を確認
environment gem環境設定の参照・設定
fetch 指定したgemパッケージのダウンロード
generate_index -
help ヘルプの表示
install 指定したgemパッケージのインストール
list gemパッケージのリスト表示
lock -
mirror -
outdated インストール済gemパッケージのアップデートを確認する
owner -
pristine -
push -
query -
rdoc -
search 指定したgemパッケージを検索する
server -
sources -
specification 指定したgemパッケージの詳細情報をyaml形式で表示する
stale インストールしたgemパッケージのアクセス時間を表示する
uninstall 指定したgemパッケージをアンインストールする
unpack -
update インストール済gemパッケージのバージョンをアップデートする
which 指定したgemパッケージに含まれるライブラリの格納場所を表示する
yank 公開したgemパッケージの削除を行う

specificationコマンドを使用すればgemパッケージの作成者も確認出来ます。

[user@localhost ~]$ gem spec rails authors
---
- David Heinemeier Hansson

ひな形の作成

railsのインストールが完了したのでrailsのひな形作成に移ります。

rails newの実施

railsのヘルプを見るとnewコマンドでひな形の作成が行える様ですが、実施したらエラーが発生しました。

[user@localhost ~]$ rails new ~/Code/Ruby/weblog
~省略~
         run  bundle exec spring binstub --all
/usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.2/lib/bundler/resolver.rb:357:in `resolve': Could not find gem 'sqlite3 (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound)

sqlite3パッケージのインストール

エラーにはsqlite3のgemパッケージが見つからないと表示されていたのでgemコマンドでインストールしようとしたところ、sqlite3.hがないため再びエラーになりました。

[user@localhost ~]$ sudo gem install sqlite3
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3:
        ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
~省略~

エラーログにsqliteのdevelパッケージをインストールしてみて、とあるのでyumコマンドでsqlite-develをインストールした後にsqlite3をインストールします。

[user@localhost ~]$ sudo yum install sqlite-devel
[user@localhost ~]$ sudo gem install sqlite3

rails newの再実施

再びrails newを実施すると成功しました。 生成されたファイルを見ると56個ありましたが、先ずはチュートリアルに沿ってアプリの作成に取り掛かりたいと思います。

[user@localhost ~]$ rails new ~/Code/Ruby/weblog
[user@localhost Ruby]$ find ~/Code/Ruby/weblog/ -not -type d
/home/user/Code/Ruby/weblog/test/integration/.keep
/home/user/Code/Ruby/weblog/test/controllers/.keep
/home/user/Code/Ruby/weblog/test/models/.keep
/home/user/Code/Ruby/weblog/test/helpers/.keep
/home/user/Code/Ruby/weblog/test/fixtures/.keep
/home/user/Code/Ruby/weblog/test/mailers/.keep
/home/user/Code/Ruby/weblog/test/test_helper.rb
/home/user/Code/Ruby/weblog/lib/tasks/.keep
/home/user/Code/Ruby/weblog/lib/assets/.keep
/home/user/Code/Ruby/weblog/Gemfile.lock
/home/user/Code/Ruby/weblog/README.rdoc
/home/user/Code/Ruby/weblog/db/seeds.rb
/home/user/Code/Ruby/weblog/app/assets/javascripts/application.js
/home/user/Code/Ruby/weblog/app/assets/images/.keep
/home/user/Code/Ruby/weblog/app/assets/stylesheets/application.css
/home/user/Code/Ruby/weblog/app/controllers/concerns/.keep
/home/user/Code/Ruby/weblog/app/controllers/application_controller.rb
/home/user/Code/Ruby/weblog/app/models/concerns/.keep
/home/user/Code/Ruby/weblog/app/models/.keep
/home/user/Code/Ruby/weblog/app/helpers/application_helper.rb
/home/user/Code/Ruby/weblog/app/mailers/.keep
/home/user/Code/Ruby/weblog/app/views/layouts/application.html.erb
/home/user/Code/Ruby/weblog/vendor/assets/javascripts/.keep
/home/user/Code/Ruby/weblog/vendor/assets/stylesheets/.keep
/home/user/Code/Ruby/weblog/log/.keep
/home/user/Code/Ruby/weblog/public/500.html
/home/user/Code/Ruby/weblog/public/404.html
/home/user/Code/Ruby/weblog/public/favicon.ico
/home/user/Code/Ruby/weblog/public/robots.txt
/home/user/Code/Ruby/weblog/public/422.html
/home/user/Code/Ruby/weblog/config/boot.rb
/home/user/Code/Ruby/weblog/config/environments/test.rb
/home/user/Code/Ruby/weblog/config/environments/production.rb
/home/user/Code/Ruby/weblog/config/environments/development.rb
/home/user/Code/Ruby/weblog/config/database.yml
/home/user/Code/Ruby/weblog/config/secrets.yml
/home/user/Code/Ruby/weblog/config/routes.rb
/home/user/Code/Ruby/weblog/config/locales/en.yml
/home/user/Code/Ruby/weblog/config/application.rb
/home/user/Code/Ruby/weblog/config/initializers/cookies_serializer.rb
/home/user/Code/Ruby/weblog/config/initializers/mime_types.rb
/home/user/Code/Ruby/weblog/config/initializers/wrap_parameters.rb
/home/user/Code/Ruby/weblog/config/initializers/backtrace_silencers.rb
/home/user/Code/Ruby/weblog/config/initializers/filter_parameter_logging.rb
/home/user/Code/Ruby/weblog/config/initializers/session_store.rb
/home/user/Code/Ruby/weblog/config/initializers/inflections.rb
/home/user/Code/Ruby/weblog/config/initializers/assets.rb
/home/user/Code/Ruby/weblog/config/environment.rb
/home/user/Code/Ruby/weblog/Rakefile
/home/user/Code/Ruby/weblog/.gitignore
/home/user/Code/Ruby/weblog/bin/bundle
/home/user/Code/Ruby/weblog/bin/rake
/home/user/Code/Ruby/weblog/bin/spring
/home/user/Code/Ruby/weblog/bin/rails
/home/user/Code/Ruby/weblog/Gemfile
/home/user/Code/Ruby/weblog/config.ru
[user@localhost Ruby]$ find ~/Code/Ruby/weblog/ -not -type d | wc -l
56

【追記】
こちらの記事にアクセスがあるので補足を足しました。
ネットで見つけた以下のチュートリアルを利用するとrailsインストール後にGitHubでソース管理をしたり、 Herokuにアプリをデプロイしたり、scaffoldジェネレータを利用してMVCの動作をみたりといったことが出来ますので 私と同じ様にこれから勉強される方は是非ともご覧ください。

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう