Le Coin Wiki
d'Olivier Dalle
$WikiTagline
 

Programmation Web avec Ruby on Rails — TP2

On recommence avec une vm!
Comme l’installation globale faite lors du premier TP ne fonctionne pas bien, les etapes suivantes ont ete corrige afin de vous permettre de faire une installation individuelle de la machine virtuelle vmware bitnami sur votre machine. Refaites les premieres etapes en suivant les indications annotes nouveau!

Etape 1 : installation ruby

Nous allons utiliser la ‘’pile Ruby” (ruby stack) version 2.2-X, disponible sur cette page:

Vous avez 3 faons d’utiliser cette pile, vous choisirez l’une des deux premires:

  • sous forme de machine virtuelle, executer dans vmware/fusion ou virtualbox
  • sous forme de packetage a installer directement son ordinateur
  • sous forme d’image pour cloud (mais c’est rserv aux pros car il faut s’abonner a un service)

nouveau! Sur vos machine de la fac, vous allez installer la machine virtuelle bitnami dans le repertoire /home/M1Systeme/TP_ROR

Creez-vous un sous-repertoire dans ce repertoire, place-vous dedans avec la commande cd et telechargez l’image, comme suit:

$ cd /home/M1Systeme/TP_ROR
$ mkdir $USER
$ cd $USER
$ wget http://bitnami.org/files/stacks/rubystack/2.2-2/bitnami-rubystack-2.2-2-ubuntu-10.10.zip

Lorsque l’installation est terminee, decomprimez l’archive et lancez la vm avec la commande vmplayer:

$ unzip *.zip
$ vmplayer bitnami*

Une fois que la vm est demarree, vous pouvez vous connecter avec le login ‘bitnami’ et le mot de passe ‘bitnami’. (Vous devrez les changer au demarrage).

Une fois que vous etes connecte, lancez un shell root avec la commande sudo, demarrez le serveur ssh et installez le plugin hobo:

$ sudo bash
$ /etc/init.d/ssh start
$ gem install hobo

Etape 2 : utiliser le bon ruby (a chaque fois que vous ouvrez un terminal)

nouveau! Bonne nouvelle: avec la vm bitnami, plus besoin d’executer la commande setenv.sh!!

Si vous avez installe le paquetage sur votre ordi (solution2) il faut faire attention a ne pa se tromper de version de Ruby. A chaque fois que vous commencez a travailler, il faut a configurer l’environnement. Supposons que votre rubystack est installee en /usr/local/rubystack-2.2–2/ (c’est le cas des machines de la fac), alors il faut executer la commande suivante dans la fentre shell que vous allez utiliser:

Etape 3 : installer un IDE ruby

nouveau! Pour installer netbeans dans la machine virtuelle:

  • retrouvez l’adresse ip de la machine virtuelle avec la commande
  • connectez-vous par ssh depuis une nouvelle fenetre terminal, avec l’option -X
  • utilisez la commande wget pour telecharger netbeans

$ bitnami@linux:~$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0c:29:dc:78:f9
inet addr:192.168.0.70 Bcast:192.168.0.255 Mask:255.255.255.0

$ ssh -X bitnami@192.168.0.70
The authenticity of host ‘192.168.0.70 (192.168.0.70)’ can’t be established.
RSA key fingerprint is a9:6d:1d:c3:e7:21:05:22:2c:2e:2a:a1:c2:b3:ac:f2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.0.70′ (RSA) to the list of known hosts.
bitnami@192.168.0.70′s password:
Linux linux 2.6.35–28-virtual #50-Ubuntu SMP Fri Mar 18 22:28:02 UTC 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
Last login: Sun Dec 11 17:20:35 2011 from typote.olivier.net
bitnami@linux:~$ wget http://download.netbeans.org/netbeans/7.0.1/final/bundles/netbeans-7.0.1-ml-linux.sh

Etape 4 (la toute premiere fois)

Il faut installer la bonne version de hobo a l’aide de la commande gem:

$ gem install -v 1.0 hobo —no-ri —no-rdoc
WARNING: You don’t have /u/profs/dalle/.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
Fetching: hobosupport-1.0.0.gem (100%)
Fetching: hobofields-1.0.0.gem (100%)
Fetching: hobo-1.0.0.gem (100%)
Fetching: multi_json-1.0.4.gem (100%)
Fetching: activesupport-3.1.3.gem (100%)
Fetching: i18n-0.6.0.gem (100%)

Fetching: rdoc-3.11.gem (100%)
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data —install
= 1.9.1 : gem install rdoc-data; rdoc-data —install
>= 1.9.2 : nothing to do! Yay!
Fetching: railties-3.1.3.gem (100%)
Fetching: bundler-1.0.21.gem (100%)
Successfully installed will_paginate-3.0.2
Successfully installed hobosupport-1.0.0

Etape 5 : Ma premiere appli RoR

Ouvrez un nouveau terminal et connectez-vous avec le login bitnami par ssh. Pour pouvoir visualiser les pages web du serveur web lance dans la vm depuis la machine hote, vous devez mettre en place un tunnel ssh avec l’option -L, et utiliser l’option -X pour pouvoir utiliser X11:

$ ssh -X -L 7788:localhost:3000 bitnami@192.168.0.70

Dans la vm, utilisez la commande rails pour crer une application RoR appele UneTable. Avec Rails 2.3.X la syntaxe est la suivante:

$ rails UneTable

Vous pouvez ensuite lancer le serveur avec la commande suivante :

$ ./script/server

Et vous pouvez tudier le rsultat sur la machine hote, visible sur la page http://localhost:7788/, qui doit ressembler ce qui suit:

Etape 6 : intialiser la base de donnees

Vous n’avaez pas vous soucier de l’installation d’un base. Par defaut RoR utilise uen version legere de BD SQL nomme SQLite. Elle est directement prte l’emploi.

Pour manipuler la base de donnes, il faut utiliser la commande rake.

Dans votre fentre shell, essayez d’abord la commande

$ rake -T

Que fait-elle? Utilisez son rsultat afin de trouver comment crer, dtruire et recrer la base. Allez-y sans crainte, ce stade vous prenez peu de risque de faire une fausse manip fatale!

Etape 7 : lancer l’environnement Netbeans

Au dmarrage, NetBeans peut vous proposer de faire des mises jour automatique (petite fenetre en bas a droite). Acceptez et choisissez l’option qui permet de laisser les MJ se drouler en arrire plan.

Ensuite, la premire chose que vous devrez faire, c’est installer le plugin “Ruby and Rails”. Pour cela il suffit de cliquer sur le bouton “Installer des plug-ins” dans l’ong;et “Mon Netbeans” de la premire fentre qui s’affiche. Vous obtiendrez la (longue) liste suivante ou vous pourrez choisir le plugin, comme montr ci-aprs:

Etape 8 : Creer un nouveau projet dans netbeans

Ouvrez le menu fichiers, et choisissez “Nouveau…”, puis selectionnez le dernioer choix dans la catgorie “Ruby”, comme suit:

Attention, vous devrez changer deux choses partir du menu de configuration qui s’affiche ensuite:

  • Le chemin vers le projet RoR que nous avons cr l’tape 5
  • la configuration Ruby afin d’utiliser la bonne version du stack bitnami qui est en /usr/local. Pour cela vous devez cliquer sur le bouton “Manage…” qui ouvre la fenetre suivante:

Comme illustr ci-dessus, choisissez la version la plus recente dont le chemin correspond au stack bitnami (ici 1.8.7-p334).

De retour dans la menu de configuration du projet, changez la plate-forme ruby pour celle qui est dans le stack bitnami:

Voila, il ne reste plus qu’ valider pour crer le projet, et c’est parti!

Etape 9 : Etudier le code gnr

Etudiez le code initial gnr par la commande rails dans les sous-rpertoires app/, config/

Etape 10 : Initialiser Git

Git est un gestionnaire de version trs populaire et surtout trs efficace. Nous allons l’utiliser afin de pouvoir revenir en arrire en cas de fausse manip, ce qui vitera de tout recommencer depuis le dbut.

A chaque fois que vous crerez un nouveau projet RoR, pensez y initialiser git de la faon suivante:

$ cd UneTable
$ git init
Initialized empty Git repository in /u/profs/dalle/TP_ROR/UneTable/.git/
$ git add .
$ git commit -m “Initial import”

La premire commande initilise un dpt local de gestion de version et la seconde indique quels fichiers il faut suivre (tous). LA troisime demande a git d’enregistrer ce qui a chang depuis la dernire fois.

Ensuite chaque fois que vous faites des modifications, il faut demander git d’enregistrer les modifications en rappelant successivement les commandes add et commit:

$ git add .
$ git commit -m “Initial import”

Pensez la faire au minimum chaque fois que vous finissez une question.

Dans ce cas, vous pourrez ajouter une etiquette qui permet de retrouver la version associe une question:

$ git tag question10

A partir de maintenant, vous pourrez tout moment revenir cette version avec la commande

$ git checkout question10

Faisons par exemple l’experience suivante:

  • crez un fichier vide de nom toto avec la commande touch
  • demandez a git de prendre en compte ce fichier
  • demandez a git d’enregistrer le nouvel tat
  • ajoutez un nouveau tag avec_toto
  • demandez a git de revenir a la version prcdente (question10)
  • vrifiez que le fichier toto a bien disparu
  • demandez a git de revenir a la version avec toto
  • vrifiez que le fichier toto est bien revenu

Voil, c’est tout bte et treees utile!

Etape 11 Generateur et console

Commenons explorer un peu les gnrateurs. Essayez la commande suivante et tudiez son effet sur les sources de l’application.

$ ./script/generate model animal name:string
$ rake db:migrate

Comparez maintenant avec le resultat produit par cette autre commande:

$ ./script/generate scaffold personne name:string
$ rake db:migrate

Essayez maintenant de lancer l’application:

$ ./script/server

Et chargez la page suivante avec votre navigateur: http://localhost:3000/personnes/

Crez quelques enregistrements…

Ouvrez maintenant un second terminal, et lancez la commande suivante:

$ ./script/console

Vous voyez un prompt de l’interpreteur ruby s’afficher. Essayez les commandes ruby suivantes:

>> Personne.all
>> Personne.find(‘2′)

Etape 12 : Tutorial hobo

Ouvrez le document Tutorial et commencez le tutorial page 34 (les pages precedentes expliquent comment installer hobo et rails, etc.).