Tag: ruby version manager

RVM w skryptach powłoki Bash (jak używać)

Załóżmy, że potrzebujemy napisać skrypt który odpala nam kod w Rubym. Kod ten działa jednak tylko pod specyficzną wersją Rubiego (lub nie działa pod 1.9.2, itd). Jeśli chcielibyśmy zrobić to tak:

rvm system
ruby /~/nasz_program.rb

okaże się, że skrypt się nie odpali (tzn odpali ale pod niepoprawną wersją Rubinka).
Spróbujmy zatem tak:

rvm system
ruby -v

U mnie - domyślną wersją jest wersja 1.9.2-p0, zaś systemowa to 1.8.7. Wywołanie takiego skryptu nie zmieni nam jednak wersji Rubiego na wersję systemową. Aby móc zmieniać dynamicznie wersje Rubiego serwowaną przez RVM musimy dodać do naszego skryptu taki oto kod:

if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
  source "/usr/local/rvm/scripts/rvm"
else
  printf "ERROR: An RVM installation was not found.\n"
fi

dzięki temu, będziemy mogli sobie dynamicznie zmieniać Rubiego z jakiego korzystamy wewnątrz skryptu.

Ubuntu 10.10 Ruby, RVM i Rails – instalacja Ruby version managera

W związku ze zmianą twardziela w laptopie, postanowiłem dokonać świeżej instalacji Ubuntu 10.10.

Problemem było to, że mój własny tutorial dot. instalacji Rubiego, przestał działać. Tzn. sam tutorial działa, niestety nie działa już metoda. Odpalając aplikacje pojawiał mi się dość dziwny segmentation fault. Na moje szczęście, instalacja Rubiego w opisany poniżej sposób, działa bezbłędnie.

    sudo apt-get install ruby-full
    wget production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
    tar -xvf rubygems-1.3.7.tgz
    cd rubygems-1.3.7/
    sudo ruby setup.rb
    sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Mamy już Rubiego w wersji 1.8.7 (patchvelev 299), przydałby się jeszcze RVM i Railsy.

Z tym też nie jest (aż tak) trudno. Najpierw musimy zainstalować sobie curl'a oraz gita:

sudo apt-get install curl git-core
# Parę bibliotek
sudo apt-get install libmysqlclient-dev libmysql-ruby
sudo apt-get install libsqlite3-dev build-essential

A następnie uruchamiamy poniższy kod, instalując tym sposobem RVMa:

# Nie jestem pewien czy ta linijka jest konieczna, ale dla pewności daję ;)
sudo gem install rvm
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

Mając zainstalowanego RVMa musimy jescze wydedytować plik .bashrc. Odnajdujemy taką linijkę (będzie gdzieś w pierwszych 20-30 linijkach):

[ -z "$PS1" ] && return

i zamieniamy na:

if [[ -n "$PS1" ]]; then

Na końcu pliku .bashrc dołączamy jeszcze to:

if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi

fi

Tyle. Zamykamy sesję konsoli i otwieramy nową (żeby wczytało na nowo .bashrc). Wpisując komendę:

rvm notes

Dostaniemy info dot. tego jakie biblioteki powinniśmy zainstalować, zależnie od tego jakiej wersji Rubiego będziemy używać:

# For RVM
  rvm: bash curl git

# For JRuby (if you wish to use it) you will need:
  jruby: aptitude install curl sun-java6-bin sun-java6-jre sun-java6-jdk

# For Ruby (MRI & ree)  you should install the following OS dependencies:
  ruby: aptitude install build-essential bison openssl libreadline6 
  libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev 
  libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev 
  libxslt-dev autoconf

# In addition to ruby: dependencies,
  ruby-head: subversion

# For IronRuby (if you wish to use it) you will need:
  ironruby: aptitude install curl mono-2.0-devel

My chcemy Rubiego 1.9.2-p0, więc robimy co tam trzeba :) a następnie:

rvm install 1.9.2-p0
# Tutaj chwilę poczekamy...
rvm use 1.9.2-p0 --default

I już mamy ustawionego Rubiego 1.9.2-p0 jako domyślną wersję w systemie.

Uwaga - niektórzy mają problem z uprawnieniami!
Dla pewności (zapobiegawczo) radzimy odpalić przed instalacją raisów w RVM taką komendę:

sudo mkdir ~/.gem/specs sudo chmod 777 ~/.gem/specs

Instalujemy sobie Railsy:

gem install rails

i cieszymy się sprawnie działającym środowiskiem

Copyright © 2024 Closer to Code

Theme by Anders NorenUp ↑