Table of Contents

Centos: Mise en oeuvre de RUBY

:

Ruby est un langage de programmation interprété, orienté objet. Il existe de nombreuses bibliothèques de fonctionnalités adjoignables au langage qui contiennent de nombreuses fonctionnalités supplémentaires, mais aussi des extensions.

Ruby on Rails, également appelé RoR ou Rails, est un framework web libre écrit en Ruby. Il suit le motif de conception modèle-vue-contrôleur (MVC). Il propose une structure qui permet de développer rapidement et intuitivement. Cependant, il impose un grand niveau d'abstraction dans la programmation qui apporte en contre-partie l'économie d'écrire soi-même la plupart des routines obligatoires d'une application web.

Installation de ruby2

Activer le depôt Software Collections (SCol),

Red Hat a mis à disposition pour CentOS une sélection de paquets du projet COPR initié par Fedora au travers du nouveau dépôt Software Collections, pour activer ces dépôt :

yum install centos-release-scl-rh

Installer ruby2

yum install ruby200 ruby200-devel

Gestion des versions

Une installation de Ruby correspond à un ensemble de programmes (gems et utilitaires liés à Ruby) associés à une version spécifique de Ruby.

Il est donc possible pour les applications d'utiliser une version embarquée de Ruby indépendante de celle du système, deux « installations » totalement indépendantes de Ruby seront ainsi présentes sur le même système.

Plusieurs outils/ astuces permettent de gérer ces multiples versions

Configuration de la version par défaut de ruby.

Il est possible de configurer une vesrion spécifique de Ruby en tant que version par défaut.

Par défaut la version de ruby est celle installée sur la station:

which ruby

/usr/bin/ruby.

Pour utiliser la version Ruby du kit de développement Chef par défaut, modifier les variables d'environnement $PATH et GEM pour inclure les chemins d'accès au kit de développement Chef.

La commande which doit retourner la version de de ruby embarquée avec chef

which ruby

    /opt/chefdk/embedded/bin/ruby

Pour rendre ces modifications permanentes

Utiliser scl

L'utilitaire scl permet d'exécuter une application qui ne se trouve pas dans la hiérarchie racine du système de fichiers mais qui est présente dans un autre emplacement. Cette application peut toujours utiliser et bénéficier de logiciels installés dans le système de fichiers racine. Afin de laisser une application visible au système, il faut utiliser l'utilitaire scl comme interface.

Exécution d'une commande dans un contexte

scl enable example 'less --version'

exécute la commande less –version dans l'environnement avec la collection 'example' activée

par exemple

scl enable ruby200 ' gem install  geminabox-1.1.0.gem'

exécute gem install dans l'environnement ruby2.0.0

Exécution du shell bash dans un contexte

scl enable à foo bar bash

exécute l'instance bash avec les collections de logiciels foo et bar activées

par exemple pour exécuter l'instance bash dans l'environnement ruby2.0.0

scl enable ruby200 bash

la commande ruby -v doit retourner la version de ruby2

ruby 2.0.0p645 (2015-04-13) [x86_64-linux]

la commande which ruby doit retourner le path de la library ruby200

/opt/rh/ruby200/root/usr/bin/ruby

Utiliser un manager

L'utilisation d'un manager pour alterner entre les versions de Ruby, permet d’installer des gems différents pour ces versions de Ruby. Des «installations» totalement indépendantes de Ruby seront ainsi présentes sur le système.

Présentation des Manager

Intégration de RVM

Télécharger l'archive tar de rvm sur https://github.com/rvm/rvm/tarball/stable

Transférer l'archive sur le serveur

scp rvm-rvm-1.29.3-0-gad6e58e.tar.gz root@xx.xx.xxx.xx:/usr/local/

Créer le répertoire rvm:

mkdir rvm

Déballer le fichier tar

tar -xzf ../rvm-stable.tar.gz

Installer rvm:

cd ../rvm-rvm-ad6e58e/
./install --auto-dotfiles

Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete:
    
* First you need to add all users that will be using rvm to 'rvm' group,
  and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`.
    
* To start using RVM you need to run `source /etc/profile.d/rvm.sh`
  in all your open shell windows, in rare cases you need to reopen all shell windows.

Charger rvm

source /usr/local/rvm//scripts/rvm

Mise en oeuvre d'un entrepôt local de gems

Diverses méthodes permettent d'héberger et partager des gems RUBY.

Utilisation du serveur gem intégré

L'installation de RubyGems, intègre un serveur gem. C'est le moyen le plus rapide pour héberger des gemmes. Il suffit de lancer la commande:

gem server

Cela servira toutes les gems installés dans la machine locale dans. L'URL http://localhost:8808 affiche un index de documentation HTML fournit par la commande gem server.

Lorsqu'on installe de nouvelles gemmes, elles sont automatiquement disponibles via le serveur gem intégré.

Le projet Gem in a Box

Pour un serveur avec plus de fonctionnalités, y compris la possibilité de pousser des gems.

installer geminabox:

gem install geminabox

Créer un répertoire de données pour stocker les gems

mkdir -p /usr/share/nginx/html/repo/pub/rubygems/gems

Créer un fichier config.ru à la racine du dépot (rubygems)

vi /usr/share/nginx/html/repo/pub/rubygems/config.ru

require "rubygems"
require "geminabox"
    
Geminabox.data = "/usr/share/nginx/html/repo/pub/rubygems"
run Geminabox::Server

Lancer le serveur

rackup -d /usr/share/nginx/html/repo/pub/rubygems

[2018-05-28 16:21:22] INFO  WEBrick 1.3.1
[2018-05-28 16:21:22] INFO  ruby 1.8.7 (2013-06-27) [x86_64-linux]
[2018-05-28 16:21:27] INFO  WEBrick::HTTPServer#start: pid=18565 port=9292