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 |
루비 온 레일즈가 정상적으로 설치되었다.