Vagrant : Le développement sur VM

Nous nous sommes tous heurter à la difficulté de mettre en place son environnement de développement, surtout dans le cadre de la mise en place d’une plateforme homogène entre plusieurs postes sans ajout de logiciels tiers et le plus proche possible de l’environnement de production.

– Exemple : une plateforme PHP, MySQL, Postgres dans le cadre de la migration d’un application PHP de MySQL vers Postgres.

Au fil de mes recherches sur le net et surement avec beaucoup de retard je suis tombé sur Vagrant. (http://vagrantup.com)

Vagrant a pour but de rendre plus simple l’utilisation de machine virtuelle dans le cadre de l’environnement de développement. On peut le dire le but est atteint pour la facilité de développement entre la machine hôte et la VM.

Le plus compliqué avec Vagrant va être de créer sa propre machine proche des habitudes de développement de l’équipe. Car Vagrant n’est pas là pour cela, il est juste là pour le montage de la machine et son utilisation au quotidien.

Heureusement, la communauté est très active sur le sujet et des outils sont là pour simplifier la création de sa propre Box avec quelques connaissances. Je pense notamment à Veewee (https://github.com/jedi4ever/veewee) qui est vraiment un outil à s’accaparer pour la création de sa propre Box, n’hésitez pas à dupliquer le projet et pusher vos modifications pour mettre à disposition vos Box, c’est d’ailleurs ce que je vais faire.

Mais, ne vous inquiétez pas, je vous prépare un petit tutoriel pour l’utilisation de Veewee avec une Box en français.

Et, important à savoir tout cela, c’est en Ruby.

RVM : Ruby Version Manager

Quand on essaye de développer sur Ruby, on se tourne tout de suite vers une machine virtuel sous Linux, non pas que Ruby pourrissent le système mais plutôt parce que sous windows il est beaucoup moins performant (c’est mon point de vue).
Quand on essaye de développer sur Ruby sous Linux, on entend rapidement parler de RVM (Ruby Version Manager).
RVM, c’est vraiment le paradis pour le développeur Ruby qui veut tester sur plusieurs types d’environnement (Ruby 1.8.7, 1.9.2, JRuby….), cet outil permet de switcher d’un environnement à un autre sans trop d’effort.
Il est hors de question de vous faire une fiche sur comment installer RVM, il y en a des très bonnes sur le net en Anglais certes et particulièrement http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac qui marche exactement pareil sur ubuntu.
Je ne conseille pas l’installation en sudo qui n’est à mon avis pas utile.
Vous l’avez compris RVM est un outil indispensable pour les développeurs Ruby & Ruby on Rails, cependant, voici une liste de petits tips & tricks intéressant :
– Si lors de l’utilisation de « rake » vous rencontrez l’erreur « RakeFileUtils rake aborted », n’hésitez à utiliser le lien suivant : http://joneslee85.wordpress.com/2011/07/29/howto-fix-rake-0-9-2-to-work-with-ruby-1-9-2-under-rvm/
– uninitialized constant Rake::DSL in Ruby Gem, l’ajout de :
require 'rake/dsl_definition'
Dans le Rakefile
– vous rencontrez une erreur sur openssl avec Ruby on Rails, les commandes suivantes :
rvm pkg install openssl
rvm remove 1.9.2 --with-openssl-dir=$HOME/.rvm/usr
rvm install 1.9.2
A priori, vous avez là les principaux problèmes que l’on peut résoudre rapidement.

Où se trouve le binaire des librairies MySQL pour Snow Leopard ?

Depuis plusieurs semaines, je cherchais le moyen de compiler proprement la librairie MySQL pour RoR.
Cet article m’a permis de découvrir qu’Apple met à disposition les sources librairies des outils intégrés dans Snow Leopard et même certains binaires comme c’est de le cas pour MySQL.