:
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.
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 :
/etc/yum.repos.d/CentOS-Base.repo
en passant la directive enabled à 1,yum install centos-release-scl-rh
yum install ruby200 ruby200-devel
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
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.
eval "$ (chef shell-init bash)"
eval "$ (chef shell-init zsh)"
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
echo 'eval "$ (chef shell-init bash)"' >> ~/.bash_profile
echo 'eval "$ (chef shell-init zsh)"' >> ~/.zshrc
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.
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
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
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.
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
Diverses méthodes permettent d'héberger et partager des gems RUBY.
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é.
Pour un serveur avec plus de fonctionnalités, y compris la possibilité de pousser des gems.
gem install geminabox
mkdir -p /usr/share/nginx/html/repo/pub/rubygems/gems
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
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