Installation de Ruby On Rails sous Ubuntu

Ruby On Rails est un framework MVC basé sur Ruby afin de réaliser des sites web. Si l’installation n’est pas très complexe, il faut bien comprendre comment cela fonctionne.

Dans un premier temps, il faut installer les packages ruby et ruby-dev qui permettent de réaliser du développement Ruby. Vous pouvez sélectionner la version de Ruby que vous désirez installer. Sachez que le package ruby-dev est dépendant du package ruby, ils doivent donc être de la même version. Sachez également que si vous ne précisez pas la version, la version qui sera installer par défaut à l’heure où j’écris ses lignes sera la 1.8.7. Et enfin, vous pourrez trouver jusqu’à la 1.9.1 dans les dépôts par défaut de Ubuntu. Pour installer ces deux packages, rien de plus simple:

sudo apt-get install ruby ruby-dev

Pour permettre d’utiliser des protocoles sécurisés avec ruby, nous allons installer le package pour openssl. Il faut taper cette commande:

sudo apt-get install libopenssl-ruby

Après cette installation, vous devez installer un nouveau package un peu particulier: rubygems.
Rubygems est un programme qui permet d’installer des packages écris en Ruby appelés des gems. C’est aussi grâce à ce programme que l’on a la possibilité d’installer le framework rails. Pour installer Rubygems, il suffit simplement d’exécuter cette commande:

sudo apt-get install rubygems

Afin de pouvoir utiliser rubygems proprement et sans se compliquer la vie, il va falloir faire quelques modifications dans le fichier ~/.gemrc. Il est possible que ce fichier caché n’existe pas à votre dossier personnel. ça n’est pas grave, nous allons le créer et nous allons y ajouter une ligne pour préciser où doivent être installer les gems et aussi préciser à gems qu’il ne doit pas installer les docs (qui sont très longue à installer en plus d’être lourdes). Pour cela, ajouter simplement la ligne:

gem: ––bindir /usr/local/bin ––no-ri ––no-rdoc

En précisant que l’on doit installer les gems dans un dossier bin, cela vous permet d’utiliser les gems après installation sans modifier le $PATH. Vous pouvez installer les gems dans un dossier à part si vous le désirez mais sachez que vous devrez dans ce cas soit indiquer le chemin complet de l’application soit ajouter le dossier où se trouve les gems dans votre $PATH.

Enfin, nous arrivons à l’installation de rails. Rails est un package gem, d’où l’utilité de rubygems. Pour l’installer, rien de bien compliqué:

sudo gem install rails

A partir de là, vous avez installé Rails, mais cela ne signifie pas qu’il est encore utilisable: Il manque une base de données.

Pour réaliser une application en Rails, on peut utiliser différents types de bases de données sans que cela n’influence le code. La seule chose qui changera sera un fichier de configuration du nom de database.yml Il vous faudra par contre installer le gem de liaison entre la base de données et rails.

Pour cette exemple, nous allons utiliser une base de données MySQL. Pour cela, nous allons l’installer:

sudo apt-get install mysql-server

Au cours de l’installation, renseignez un mot de passe administrateur de votre choix. Lorsque l’installation est fini, il va falloir faire quelques configurations. Ces configurations ne sont pas pour Rails et sont à faire pour n’importe quel projet. En effet, actuellement, vous ne pouvez créer et utiliser les bases de données qu’avec l’utilisateur ‘root’. Cette utilisateur sert à la gestion de votre système MySQL, pas pour l’utilisation d’une base de données via un projet (en plus, vous donneriez le mot de passe root à tous vos développeurs ainsi, ça n’aurait plus rien de sécurisé). Afin d’utiliser la base de données de façon propre, nous allons donc créer un utilisateur et une base de données pour notre projet Rails.

Dans un premier temps, il faut se connecter à Mysql:

mysql -u root -p

Donnez votre mot de passe lorsqu’il vous le demande. L’option -u permet d’indiquer l’utilisateur avec lequel on désire se connecter au système. L’option -p indique que l’on va fournir un mot de passe. Cette option est inutile si l’utilisateur n’a pas de mot de passe. Ne l’oubliez pas dans le cas contraire ou votre connexion échouera.

Une fois connecté, on désire créer un nouvel utilisateur avec un mot de passe.

CREATE USER « my_user »@ »localhost » IDENTIFIED BY « password »;

Bien entendu, modifiez le nom de votre utilisateur « my_user » et son mot de passe « password » par ce que vous désirez. Pour ce qui est du localhost, tout dépend si vous désirez que la base de données soit accessible avec cette utilisateur via votre serveur directement ou depuis des ordinateurs distants. Vous pouvez indiquer le nom de l’ordinateur du réseau si vous désirez que l’utilisateur ne soit accessible que de ce poste, d’une adresse IP, d’un réseau, d’un domaine ou depuis n’importe quel ordinateur. Bon, cet article n’étant pas là pour décrire la configuration complète de MySQL et qu’il s’adresse aux débutants en Rails, je ne vais pas m’étendre dessus et si vous voulez en savoir plus, vous pouvez vous référer à la documentation de MySQL. Sachez simplement qu’en mettant « localhost », l’utilisateur ne sera accessible que si l’on s’y connecte depuis le serveur.

Ensuite, on désire donner des droits à cet utilisateur et indiquer sur quelle base. Pour cela, créons déjà la base que l’on va utiliser dans le projet Rails:

CREATE DATABASE MyDatabaseRails_Development;

Ici le nom que j’ai donné à la base est à rallonge, vous pouvez bien entendu lui donner le nom de votre choix. Sachez juste que dans un projet Rails, vous pouvez avoir 3 bases de données: Une pour la développement, une pour les tests et une pour la mise en production. Donnez leur un nom en conséquence pour ne pas vous tromper. La longueur importe peu (tant que vous ne dépassé pas la limite de MySQL), il sera nécessaire de ne l’indiquer qu’une seule fois dans le projet.

Une fois la base créée, on donne tous les droits à notre utilisateur sur cette base:

GRANT ALL ON MyDatabaseRails_Development.* TO « my_user »@ »localhost »;

Pour expliquer rapidement, cette ligne donne tous les droits (lecture, création, suppression, modification) à l’utilisateur « my_user » sur toutes les tables de la base « MyDatabaseRails_Development ». Si vous désirez modifier les droits de votre utilisateur de manière précise, je vous invite à vous rendre sur la documentation de MySQL. Une fois toutes ses modifications apportées, il manque encore le gem pour lier MySQL à Rails. On va donc l’installer. On installe d’abord le package qui permet de faire du développement avec MySQL:

sudo aptitude install libmysqlclient-dev

Puis on installe le gem permettant d’utiliser MySQL avec Rails:

sudo gem install mysql

Si vous désirez utiliser une autre base de données, il vous faudra installer le gem correspondant à la base. Référez vous au wiki de Rails pour cela.

Enfin, pour installer des pluggins en .git sur Ubuntu, il faut au préalable installer le package git-core. Git est un logiciel de version, comme cvs ou svn mais décentralisé contrairement à ces derniers. De nombreux plugins pour Ruby On Rails sont installable facilement via Git. Vous pourrez donc les installer simplement en utilisant une ligne de commande. Cela est surtout utile pour les plugins qui ne sont pas dans le dépôt officiel et que vous ne pouvez installer autrement qu’à la main en réalisant un copier-coller.

sudo apt-get install git-core

Enfin, pour une raison que j’ignore, le gem rake ne s’est pas installer lors de mon installation alors que je pensais qu’il l’était par défaut. Ce gem permet de gérer bon nombre d’actions, notamment au niveau de la base de données. Si lors du développement, vous rencontrez le même problème que moi, il vous suffit d’installer le gem rake:

sudo gem install rake

Voilà pour ce premier tutoriel pour l’installation de Ruby On Rails sur Ubuntu. J’espère que celui-ci vous aura aidé. Je ferais peut-être d’autres tutoriels pour la création de projet en Rails.

Post to Twitter Post to Facebook Post to Google Buzz Post to LinkedIn

Un commentaire pour “Installation de Ruby On Rails sous Ubuntu”

  1. chabab dit :

    C »est très instructif pour un débutant.merci bcp

Laissez un commentaire

« »