Catégories
TIC

Installer Rails 6

Note: ce post a été écrit à l’origine en avril 2020, les versions de Ruby, Rail, Ubuntu ne sont plus au goût du jour, ce post décrit l’installation de Ruby on Rails version 6 sur Ubuntu 19

J’apprécie Ruby on Rails depuis longtemps en tant que hobby pour des besoins personnels et j’avais besoin d’installer un nouvel environnement de développement.

Pour être exact, je n’ai pas utilisé Ubuntu mais plutôt Lubuntu. En effet, mon PC perso emploie actuellement Windows 10, VirtualBox 6.1 et je trouve que Lubuntu tourne de façon beaucoup plus fluide que le bureau Ubuntu. Pourtant, j’alloue 2 gigas de RAM et 2 vCPU à ma VM Linux. En outre, j’apprécie la simplicité de l’interface de bureau LXQt.

En pré-requis, il est toujours recommandé de mettre à jour votre système d’exploitation Linux:

$ sudo apt update

L’installation nécessitera 7 étapes:

  1. Installer rbenv
  2. Installer ruby-build en tant que plugin de rbenv
  3. Construire ruby
  4. Ajouter la gemme bundler
  5. Installer rails
  6. Ajouter une base de données
  7. Ajouter Nodejs et yarn

1. Installer rbenv

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL

Note
Comme j’ai installé manuellement rbenv à partir du dépôt github, il faudra le mettre à jour ainsi:

$ cd ~/.rbenv; git pull; cd -

2. Installer ruby-build en tant que plugin de rbenv

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Vous pouvez vérifier la bonne installation de rbenv et ruby-build en employant le script rbenv-doctor:

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

3. Construire ruby

Il faut au préalable ajouter des packages à mon système Ubuntu:

$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev

Ensuite, nous sommes en mesure de construire une version de ruby, je décide de retenir la toute dernière 2.7.0 qui est sortie en décembre 2019:

$ rbenv install 2.7.0

L’interpréteur ruby s’installe dans un sous-répertoire de ~/.rbenv:

Downloading ruby-2.7.0.tar.bz2…
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.bz2
Installing ruby-2.7.0…
Installed ruby-2.7.0 to /home/jeff/.rbenv/versions/2.7.0

Je définis cette installation comme étant la version par défaut:

$ rbenv global 2.7.0

Maintenant, je peux vérifier mon déploiement de ruby et sa version à l’aide de ‘ruby -v’:

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux] 

4. Ajouter la gemme bundler

Le langage ruby est enrichi de modules nommés « gems » en anglais ou « gemmes » en français. gem est aussi le nom de l’exécutable qui s’installe en même temps que ruby et qui permet simplement d’ajouter/lister/supprimer/mettre à jour les gemmes. gem est donc un gestionnaire de paquets, au même titre que apt pour les distributions Linux Debian et Ubuntu.

Par ailleurs, gérer les gemmes pré-requis d’une application rails peut être une tâche fastidieuse. Bundler est une gemme qui installe automatiquement les gemmes nécessaires dans une version attendue par l’application, bundler applique les dépendances de gemmes de l’application. Rails est une collection de gemmes, Rails s’installe grâce à bundler.

L’installation de bundler n’est pas plus compliquée que çà:

$ gem install bundler

5. Installer rails

L’option -v permet de spécifier votre version cible de rails. Je décide d’installer la version 6.0.2.2 qui est sortie en mars 2020:

$ gem install rails -v 6.0.2.2

Ceci ajoute 40 nouvelles gemmes, rails étant la dernière d’entre elles. En outre, la documentation de ces gemmes est générée et indexée. A l’issue, vérifiez votre installation de rails en affichant son numéro de version:

$ rails -v
Rails 6.0.2.2

6. Ajouter une base de données

Toute application rails s’appuie sur une base de données. A des fins de développement, sqlite est l’option la plus simple et la plus légère. Les environnements de production demanderont un gestionnaire de base de données plus puissant comme postgresql par exemple. Ajoutons le package sqlite à notre environnement Ubuntu:

$ sudo apt install sqlite3 libsqlite3-dev

Le SQLite Browser ( navigateur ) est un complément appréciable dans mon environnement de développement, l’installation est des plus simples:

$ sudo apt install sqlitebrowser

Le support de mysql et de postgresql peut être ajouté afin d’avoir le choix entre trois types de bases de données pour la couche d’abstraction Active Record:

sudo apt-get install mysql-server libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev

Redis est requis pour Action Cable et Active Support
Memcached est requis par Active Support
Imagemagick, ffmpeg et mupdf sont nécessaires pour Active Storage
Installons ces paquets de l’O.S.:

sudo apt-get install redis-server memcached imagemagick ffmpeg mupdf mupdf-tools

7. Ajouter Nodejs et yarn

$ curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ sudo apt-get update && sudo apt-get install yarn

Maintenant, j’ai tout ce qu’il faut pour créer une application web rails.


Useful references: