Degenen die niet bekend zijn met de ontwikkeling van software kunnen verbaasd zijn over het aantal zogenaamde grijze gebieden dat er zijn. Zelfs als je weet dat je bijvoorbeeld een Rails-app wilt schrijven, moet je een aantal meer specifieke beslissingen nemen. Welke database moet je gebruiken? Welke versie van Ruby? Welke edelstenen moeten worden geïnstalleerd? Zal het conflicteren met andere Ruby-versies of gem-sets? RVM, de Ruby Version Manager, kan daar voor zorgen. Met RVM kunt u on-the-fly tussen Ruby-versies installeren, beheren en schakelen, zodat u zonder problemen software in meerdere Ruby-versies kunt ontwikkelen en testen. Deze gids zal je laten zien hoe je RVM op Ubuntu installeert en het gebruikt om je Ruby-omgeving te beheren.

Opmerking : dit is geen "How To Code Ruby" -artikel, het behandelt alleen het gebruik van RVM om uw Ruby-installaties te beheren.

Hoe het werkt

De meest voorkomende RVM-configuratie gaat ongeveer als volgt: een gebruiker installeert RVM als een toepassing, zowel voor het hele systeem als thuis. Via RVM worden de door de gebruiker gekozen Ruby-versies automatisch in het huis van de gebruiker geïnstalleerd. Met behulp van RVM-commando's geeft de gebruiker op welke versie ze op een bepaald moment actief willen hebben. Alle oproepen die in die tijd naar Ruby worden gedaan, worden naar het juiste Ruby-uitvoerbare bestand gerouteerd en worden normaal uitgevoerd. Er is geen virtualisatie of complexe wrappers of chroots om je zorgen over te maken, het werkt min of meer als een slimme reeks symlinks en omgevingsvariabelen die alle Ruby-oproepen naar de gekozen versie leiden.

Installatie

Eerst hebben we een paar vereisten nodig. Uw standaard Ubuntu-installatie moet veel bevatten van wat nodig is, maar sommige benodigde pakketten ontbreken mogelijk. Om RVM correct te bouwen, installeert u de volgende pakketten vanuit Ubuntu Software Center of vanaf de opdrachtregel met:

 sudo apt-get install git build-essentiële 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 libc6-dev 

Dit maakt ons systeem gereed voor het correct bouwen en installeren van RVM en Ruby. We hoeven hier niet de gebruikelijke configure / make-routine uit te voeren omdat RVM eigenlijk een eenvoudig build-script bevat dat het werk voor je zou moeten doen. Nadat alle bovenstaande afhankelijkheden zijn geïnstalleerd, voert u het volgende uit vanaf de opdrachtregel:

 bash <<(krul http://rvm.beginrescueend.com/releases/rvm-install-head) 

Hiermee wordt de bron opgehaald en wordt een leuk bericht van de ontwikkelaar van RVM afgeleverd.

Een Ruby-versie toevoegen

Op dit punt heb je RVM maar geen bruikbare Ruby-installatie om ermee te werken. Het verkrijgen van RVM om er een te installeren is zo simpel als een enkele shell-opdracht. Voor het eerste voorbeeld installeren we de 1.8.7 stabiele versie van de bron met één RVM-opdracht:

 rvm installeren 1.8.7 

RVM verzorgt het hele proces inclusief configuratie, compilatie en de installatie van RubyGems.

Post-Install

Eenmaal voltooid, is er een beetje omgevingsset-up die we moeten doen. Voor RVM om Ruby-oproepen correct te kunnen onderscheppen, moeten we de volgende regel toevoegen aan .bashrc of .bash_profile :

 [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm" 

Start je shell opnieuw op en deze zou in werking moeten treden. Om te testen, voert u gewoon in

 type rvm | hoofd -1 

Welke moet reageren met "rvm is een functie" . Zo niet, dan is er iets langs de lijn.

Ruby-versies beheren

Nu alles is opgezet, kunnen we RVM daadwerkelijk gebruiken! Ervan uitgaande dat je versie 1.8.7 hebt geïnstalleerd zoals in het bovenstaande voorbeeld, kan het worden geselecteerd met

 rvm gebruik 1.8.7 

RVM zou u een antwoord moeten geven dat uw keuze bevestigt en u de locatie van het uitvoerbare Ruby-bestand laat zien. Dit kan later worden geverifieerd met behulp van het standaard systeem welk commando.

Aanvullende versies kunnen op dezelfde manier worden geïnstalleerd en edelstenen kunnen worden toegevoegd en verwijderd uit RVM-versies, precies zoals ze zouden doen bij een normaal systeem van Ruby. U kunt uw versie meteen uitkiezen om er zeker van te zijn dat uw app werkt zoals bedoeld zonder dat u zich ooit zorgen hoeft te maken over conflicten en verschillen in de omgeving. Genieten!