갈루아의 반서재


How To Install Ruby on Rails with rbenv on Ubuntu 14.04


Install rbenv


루비 설치와 관리를 도와줄 rbenv 를 설치한다. 먼저 apt-get 을 업데이트한다.

1
root@localhost:~# sudo apt-get update
cs


apt-get 을 이용하여 rbenv 와 Ruby dependencies 를 설치한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
root@localhost:~# sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev
libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev
libcurl4-openssl-dev python-software-properties libffi-dev
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
build-essential 패키지는 이미 최신 버전입니다.
build-essential 패키지 수동설치로 지정합니다.
zlib1g-dev 패키지는 이미 최신 버전입니다.
curl 패키지는 이미 최신 버전입니다.
libffi-dev 패키지는 이미 최신 버전입니다.
libffi-dev 패키지 수동설치로 지정합니다.
libsqlite3-dev 패키지는 이미 최신 버전입니다.
libssl-dev 패키지는 이미 최신 버전입니다.
libssl-dev 패키지 수동설치로 지정합니다.
sqlite3 패키지는 이미 최신 버전입니다.
다음 패키지를 더 설치할 것입니다:
  libgcrypt11 libgcrypt11-dev libgnutls-dev libgnutls-openssl27 libgnutls26
  libgnutlsxx27 libgpg-error-dev libidn11-dev libkrb5-dev libldap-2.4-2
  libldap2-dev libp11-kit-dev libreadline6-dev librtmp-dev librtmp0 libtasn1-6
  libtasn1-6-dev libtinfo-dev
제안하는 패키지:
  libcurl4-doc libcurl3-dbg rng-tools libgcrypt11-doc gnutls26-doc gnutls-bin
  krb5-doc
다음 새 패키지를 설치할 것입니다:
  git-core libcurl4-openssl-dev libgcrypt11-dev libgnutls-dev libgnutlsxx27
  libgpg-error-dev libidn11-dev libkrb5-dev libldap2-dev libp11-kit-dev
  libreadline-dev libreadline6-dev librtmp-dev libtasn1-6-dev libtinfo-dev
  libxml2-dev libxslt1-dev libyaml-dev python-software-properties
다음 패키지를 업그레이드할 것입니다:
  libgcrypt11 libgnutls-openssl27 libgnutls26 libldap-2.4-2 librtmp0
  libtasn1-6
6개 업그레이드, 19개 새로 설치, 0개 제거 및 104개 업그레이드 안 함.
4,519 k바이트 아카이브를 받아야 합니다.
이 작업 후 16.4 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
cs

이제 rbenv 를 설치할 준비가 되었다. 다음과 같이 설치해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@localhost:~# cd
root@localhost:~# git clone git://github.com/sstephenson/rbenv.git .rbenv
'.rbenv'에 복제합니다...
remote: Counting objects: 2620, done.
remote: Total 2620 (delta 0), reused 0 (delta 0), pack-reused 2620
오브젝트를 받는 중: 100% (2620/2620), 483.39 KiB | 543.00 KiB/s, done.
델타를 알아내는 중: 100% (1641/1641), done.
연결을 확인하는 중입니다... 완료.
root@localhost:~# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
root@localhost:~# echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
root@localhost:~# git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
'/root/.rbenv/plugins/ruby-build'에 복제합니다...
remote: Counting objects: 7851, done.
remote: Total 7851 (delta 0), reused 0 (delta 0), pack-reused 7850
오브젝트를 받는 중: 100% (7851/7851), 1.62 MiB | 395.00 KiB/s, done.
델타를 알아내는 중: 100% (4830/4830), done.
연결을 확인하는 중입니다... 완료.
root@localhost:~# echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile
root@localhost:~# source ~/.bash_profile
cs


Install Ruby


rbenv 를 사용하기 전에 어떤 버전의 Ruby 를 사용할지 정해야 한다. Ruby Downloads 페이지에서 최신 버전을 확인할 수 있다. 작성일 기준으로는 2.4.1 버전이 최신이다. 다음 명령어들을 통해 루비를 설치한다.

1
2
root@localhost:~# rbenv install -v 2.4.1
root@localhost:~# rbenv global 2.4.1
cs

※ 만약 이 단계에서 curl: (77) error setting certificate verify locations: 발생하는 경우에는 http://www.antilibrary.org/1358 을 참고하여 해결한다.

global 명령을 통해 사용할 Ruby 버전을 설정한다. 제대로 설정되었는지 다음의 명령을 통해 확인해보자.

1
2
root@localhost:~# ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
cs

각각의 gem 별로 도큐먼트가 생성되지 않기를 바란다면 다음과 같이 해당 기능을 비활성화시킨다.

1
root@localhost:~# echo "gem: --no-document" > ~/.gemrc
cs

어플리케이션 의존성  관리를 위해 bundler gem 을 설치하고자 하면 다음과 같이 한다.

1
2
3
4
root@localhost:~# gem install bundler
Fetching: bundler-1.15.1.gem (100%)
Successfully installed bundler-1.15.1
1 gem installed
cs


Ruby 설치가 완료되었다. 이제 Rails 를 설치해보자.


Install Rails


다음과 같이 Rails 를 설치한다 (-v 옵션을 통해 버전을 지정할 수도 있다)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
root@localhost:~# gem install rails
Fetching: i18n-0.8.6.gem (100%)
Successfully installed i18n-0.8.6
Fetching: thread_safe-0.3.6.gem (100%)
Successfully installed thread_safe-0.3.6
Fetching: tzinfo-1.2.3.gem (100%)
Successfully installed tzinfo-1.2.3
Fetching: concurrent-ruby-1.0.5.gem (100%)
Successfully installed concurrent-ruby-1.0.5
Fetching: activesupport-5.1.2.gem (100%)
Successfully installed activesupport-5.1.2
Fetching: rack-2.0.3.gem (100%)
Successfully installed rack-2.0.3
Fetching: rack-test-0.6.3.gem (100%)
Successfully installed rack-test-0.6.3
Fetching: mini_portile2-2.2.0.gem (100%)
Successfully installed mini_portile2-2.2.0
Fetching: nokogiri-1.8.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.8.0
Fetching: loofah-2.0.3.gem (100%)
Successfully installed loofah-2.0.3
Fetching: rails-html-sanitizer-1.0.3.gem (100%)
Successfully installed rails-html-sanitizer-1.0.3
Fetching: rails-dom-testing-2.0.3.gem (100%)
Successfully installed rails-dom-testing-2.0.3
Fetching: builder-3.2.3.gem (100%)
Successfully installed builder-3.2.3
Fetching: erubi-1.6.1.gem (100%)
Successfully installed erubi-1.6.1
Fetching: actionview-5.1.2.gem (100%)
Successfully installed actionview-5.1.2
Fetching: actionpack-5.1.2.gem (100%)
Successfully installed actionpack-5.1.2
Fetching: activemodel-5.1.2.gem (100%)
Successfully installed activemodel-5.1.2
Fetching: arel-8.0.0.gem (100%)
Successfully installed arel-8.0.0
Fetching: activerecord-5.1.2.gem (100%)
Successfully installed activerecord-5.1.2
Fetching: globalid-0.4.0.gem (100%)
Successfully installed globalid-0.4.0
Fetching: activejob-5.1.2.gem (100%)
Successfully installed activejob-5.1.2
Fetching: mime-types-data-3.2016.0521.gem (100%)
Successfully installed mime-types-data-3.2016.0521
Fetching: mime-types-3.1.gem (100%)
Successfully installed mime-types-3.1
Fetching: mail-2.6.6.gem (100%)
Successfully installed mail-2.6.6
Fetching: actionmailer-5.1.2.gem (100%)
Successfully installed actionmailer-5.1.2
Fetching: nio4r-2.1.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed nio4r-2.1.0
Fetching: websocket-extensions-0.1.2.gem (100%)
Successfully installed websocket-extensions-0.1.2
Fetching: websocket-driver-0.6.5.gem (100%)
Building native extensions.  This could take a while...
Successfully installed websocket-driver-0.6.5
Fetching: actioncable-5.1.2.gem (100%)
Successfully installed actioncable-5.1.2
Fetching: thor-0.19.4.gem (100%)
Successfully installed thor-0.19.4
Fetching: method_source-0.8.2.gem (100%)
Successfully installed method_source-0.8.2
Fetching: railties-5.1.2.gem (100%)
Successfully installed railties-5.1.2
Fetching: sprockets-3.7.1.gem (100%)
Successfully installed sprockets-3.7.1
Fetching: sprockets-rails-3.2.0.gem (100%)
Successfully installed sprockets-rails-3.2.0
Fetching: rails-5.1.2.gem (100%)
Successfully installed rails-5.1.2
35 gems installed
cs


새로운 버전의 Ruby 나 gem 을 설치할 때마다, rehash 서브명령어를 실행해야 한다.

1
root@localhost:~# rbenv rehash
cs



설치된 Rails 버전을 확인해보자.

1
2
root@localhost:~# rails -v
Rails 5.1.2
cs


Install Javascript Runtime


Asset Pipeline 등 일부 Rails 기능은 자바스크립트 런타임에 의존하다. 이를 위해 Node.js to 를 설치해보자.

Node.js PPA 를 apt-get 에 추가한다.   

1
2
3
4
5
6
7
8
9
10
11
12
13
root@localhost:~# sudo add-apt-repository ppa:chris-lea/node.js
 Evented I/O for V8 javascript. Node's goal is to provide an easy way to build scalable network programs
 더 많은 정보: https://launchpad.net/~chris-lea/+archive/ubuntu/node.js
계속하려면 [엔터] 키를 누르시고 추가를 취소하려면 컨트롤+C 키를 눌러주십시오
gpg: keyring `/tmp/tmpcc1pauvc/secring.gpg' created
gpg: keyring `/tmp/tmpcc1pauvc/pubring.gpg' created
gpg: requesting key C7917B12 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpcc1pauvc/trustdb.gpg: trustdb created
gpg: key C7917B12: public key "Launchpad chrislea" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK
cs


apt-get 를 업데이트하고 Node.js 패키지를 설치한다.

1
2
root@localhost:~# sudo apt-get update
root@localhost:~# sudo apt-get install nodejs
cs


루비 온 레일즈가 정상적으로 설치되었다.