Nokogiri,rbenv,railsについて

Nokogiri

www.nokogiri.org

Because Nokogiri needs to be compiled and dynamically linked against both libxml2 and libxslt, it has gained a reputation for being complicated to install.

なるほど、Nokogiriが入らないというのをよく聞くのはこのためなのですね。

$ brew install libxml2 libxslt

また、Railsはsprockets-rails→sprockets→nokogiriと依存しているので、よく出くわすと。

ちなみにSprocketsとは

is a Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.

Railsをのassetを司っています。

CentOSにNokogiriをインストールする場合は以下を実行すれば、いい感じになると。

# yum install -y gcc ruby-devel zlib-devel

Yosemiteにupdateして、うまくインストールできない場合は以下のコマンドを実行する。

$ gem update --system

※OSを最新化した際は、合わせてGemも最新化します

当然ですが、Nokogiriが入らない場合はnokogiriの公式サイトを見る。

Nokogiriの依存モジュールに関して理解してから、インストールする。

rbenv

github.com

rbenv works by inserting a directory of shims at the front of your PATH:

~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin

※rbenvはshimsをPATHの先頭に入れます。

Here's what rbenv init actually does:

1.Sets up your shims path. 
This is the only requirement for rbenv to function properly. 
You can do this by hand by prepending ~/.rbenv/shims to your $PATH.

2.Installs autocompletion. 
This is entirely optional but pretty useful. 
Sourcing ~/.rbenv/completions/rbenv.bash will set that up. 
There is also a ~/.rbenv/completions/rbenv.zsh for Zsh users.

3.Rehashes shims. 
From time to time you'll need to rebuild your shim files. 
Doing this automatically makes sure everything is up to date. 
You can always run rbenv rehash manually.

4.Installs the sh dispatcher. 
This bit is also optional, but allows rbenv and plugins to change variables in your current shell,
 making commands like rbenv shell possible. 
The sh dispatcher doesn't do anything crazy like override cd or hack your shell prompt, 
but if for some reason you need rbenv to be a real script rather than a shell function, 
you can safely skip it.

Run rbenv init - for yourself to see exactly what happens under the hood.

※毎回ログイン時には上記内容が実行されていることを頭に入れます。

Installs shims for all Ruby executables known to rbenv (i.e., ~/.rbenv/versions//bin/). Run this command after you install a new version of Ruby, or install a gem that provides commands.

$ rbenv rehash

こちらは基本やると思いますが、 加えて、Rubyのバージョンを変えた後は以下のコマンドも実行します。

$ gem update --system
$ gem install bundler

※rbenvで問題が発生する場合は大抵こちらのコマンドを実行していないことに起因することが多いです
rubyのバージョンとgemは密接に関連しています。
※また、gemとbundlerも密接に関連しています。
※そのため、上記にコマンドは実行する必要があります。

Rails

rails | RubyGems.org | your community gem host

以下が依存モジュールです。

また、そのそれぞれの依存モジュールもあります。

結果として、全ての依存先がうまくいけばRailsは動きます。

RUNTIME DEPENDENCIES:
actionmailer = 4.2.1
actionpack = 4.2.1
actionview = 4.2.1
activejob = 4.2.1
activemodel = 4.2.1
activerecord = 4.2.1
activesupport = 4.2.1
bundler < 2.0, >= 1.3.0
railties = 4.2.1
sprockets-rails >= 0