Thursday, February 22, 2018

Ruby



https://sourabhbajaj.com/mac-setup/Ruby/
macOS comes with Ruby installed, but as we don't want to be messing with operating system core files we're going to use the tools rbenv and ruby-build to manage and install our Ruby versions for our development environment.
$ brew install rbenv ruby-build rbenv-default-gems rbenv-gemset
$ echo 'eval "$(rbenv init -)"' >> ~/Projects/config/env.sh
$ source ~/.zshrc # Apply changes
rbenv install 2.6.3

https://rvm.io/rubies/default
rvm --default use 2.6.3

$ ruby -v

https://makandracards.com/makandra/21545-rbenv-how-to-switch-to-another-ruby-version-temporarily-per-project-or-globally
If you need to change manually, you have several options:
  1. rbenv shell
  2. rbenv local
  3. rbenv global
You probably want rbenv shell.

Temporarily: rbenv shell

Changes your Ruby version on your current shell:
COPY
$ ruby -v ruby 1.9.3p484 (...) $ rbenv shell 2.0.0-p353 $ ruby -v ruby 2.0.0p353 (...)

Per project: rbenv local

Looks like rbenv shell
COPY
$ ruby -v ruby 1.9.3p484 (...) $ rbenv local 2.0.0-p353 $ ruby -v ruby 2.0.0p353 (...)
…but actually writes that version to a .ruby-version in your current directory. Use this only when you want to change the Ruby version on a project, not to change it temporarily (as you'd change your project's file or clutter whatever directory you are currently in with that file).

Globally: rbenv global

This will also change your Ruby version, but only the one you are using whenever no other version is specified, e.g. via a .ruby-version file or RBENV_VERSION variable.
COPY
$ ruby -v ruby 1.9.3p484 (...) $ rbenv global 2.0.0-p353 $ ruby -v ruby 2.0.0p353 (...) $ echo "1.9.3p484" > .ruby-version $ rbenv global 2.0.0-p353 $ ruby -v ruby 1.9.3p484 (...)
https://stackoverflow.com/questions/24736204/rbenv-cant-change-global-ruby-version/24736330

Did you add the following lines to your ~/.bash_profile?
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

http://bundler.io/man/bundle-install.1.html
https://en.wikipedia.org/wiki/RubyGems
https://help.dreamhost.com/hc/en-us/articles/115001070131-Using-Bundler-to-install-Ruby-gems


https://stackoverflow.com/questions/2619695/gem-install-permission-problem
qichunren@zhaobak:~> gem install hpricot
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 directory.
Do not use sudo because you will install them as root and not have access to them when you're using your normal user. Use RVM and gemsets.

For a systemwide Ruby install, become root. For example:
$ sudo gem install hpricot
However, the modern approach in many circumstances, including in development, is to use a tool that lets you easily install and use Ruby as a normal user. This lets you avoid having to become root. There are a few such tools, and the one I use is RVM.
# install rvm into your ~
$ \curl -sSL https://get.rvm.io | bash -s stable

# install latest version of ruby into your ~
$ rvm install ruby

# installs a gem into your ~
$ gem install $SOME_GEM_NAME




Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts