Help us understand the problem. What is going on with this article?

Node.jsで理解する、Ruby開発環境入門

More than 3 years have passed since last update.

Rubyの環境構築といえば...その昔Railsの入門サイトみたいなやつで、どう動くかも分からずただ書いてあるままにポチポチとコマンドを実行して構築した覚えがあります。

結局、なんだかよく分からなくなって「Ruby on RailsはサルでもWebアプリが作れると聞いたが、ぼくはサルより下だった。」と放り投げた記憶があります。

ときは流れ、私はRubyのRの字にも触れることなくNode.js / npmの文化で育ちました。

そうした中、何やらRubyを触らないといけないことになりまして、次こそはちゃんと理解して環境を構築しようという気持ちになりました。

以下、Node.js/npmで理解するRubyの環境構築です。

前提

  • Node.js / npmについての知識がある
  • Node.js / npmの知識でRubyを理解したい
  • Rubyのバージョン管理はrbenv、Node.jsのバージョン管理はnodebrewということで進める

Node.jsで置き換えてみる

rbenvとは

どの言語にも存在する、手軽にバージョンを切り替えるやつです。
Node.jsで言うところのnodebrewです。

ruby-build

いきなりですが、これは該当するコマンドが無いです。
強いていうと、Node.jsで言うところのnodebrew installに該当します。
rbenv installruby-build無しでは動かないということのようです。

gem

だいたいの言語に存在する、パッケージを管理する便利なやつです。
Node.jsで言うところのnpmです。

gem installの落とし穴

Node.jsしか知らない人からすると、落とし穴なのがgem installはグローバルにインストールされるというところです。
つまり、gem install hogeすると、npm install hoge -gみたいな動作をするということです。

「マジかよ。全てグローバルとか正気かよ。」と思ってしまいます。

bundler

上で書いた、gem installの落とし穴をなんとかするのがbundlerです。
bundle installという感じで使います。
Node.jsで言うところの、npm install(-gが付かない)です。

node_modules = vendor/bundle

Web上でbundlerについての文献を見ていると、以下のような表記を見かけます。

bundle install --path vendor/bundle

これは、インストールしたパッケージの実体はvendor/bundleに入れてねということです。
そう、Node.jsで言うところのnode_modulesです。

Gemfile

パッケージの依存関係が書いてあるやつです。(これは環境構築とは関係ないけど)
Node.jsで言うところのpackage.jsondependenciesとかdevDependenciesに当たります。

まとめ

Ruby / gem Node.js / npm
rbenv nodebrew
rbenv install (with ruby-build) nodebrew install
gem npm
gem install npm install -g
bundle install npm install
bundle exec npm run
Gemfile package.json
Gemfile.lock npm-shrinkwrap.json

あとがき

こうして見てみると、大したことないですね。
ややこしいのは、「gemコマンドでインストールするとグローバルに入っちゃうから、bundlerを使おうね」というところだと思います。
偏差値が低いので、道具が増えると頭が追いつかないです。つらい。

Ruby周辺の知識に関してはまだまだ理解が浅いです。
何か間違い等ありましたら、編集リクエストかコメントを頂けますとありがたいです。

0x50
コーダーです。インターフェイス周りのデザインや実装をやります。フロントエンドからサーバーサイドまで、色んな領域に足を突っ込んでは引き抜いてを繰り返しています。
http://p1ch.jp
dena_coltd
    Delight and Impact the World
https://dena.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away