# LINUX: Introduction à Ruby {{INLINETOC}} Ruby est un langage de programmation libre. Il est interprété, orienté objet. # Construction de Ruby dans l'espace utilisateur Cette section présente une façon d’installer Ruby dans le espace utilisateur. Ils sont particulièrement utiles lorsque il faut gérer plusieurs versions. ## Informations sur le paquet ### Métriques * Taille du téléchargement: 11 Mo * Estimation de l'espace disque requis: 414 Mo (ajoutez 277 Mo pour la documentation de l'API C) * Estimation du temps de construction: 1,2 SBU (en utilisant le parallélisme = 4; ajouter 3,6 SBU pour les tests; ajouter 0,6 SBU pour les documents API C) ### Dépendances Ruby Berkeley DB-5.3.28, Doxygen-1.8.15, Graphviz-2.40.1, libyaml-0.2.2, Tk-8.6.9 et Valgrind-3.15.0 ### Contenu * **Programmes installés**: erb, gem, irb, rake, rdoc, ri et ruby * **Bibliothèques installées**: libruby.so et libruby-static.a * **Répertoires installés**: /usr/include/ruby-2.6.0/usr/lib/ruby, /usr/share/doc/ruby-2.6.3 et/usr/share/ri ^ Programme ^ Description ^ | erb | est un minuscule eRuby. Il interprète un fichier texte incorporé au code Ruby. | | gem | commande pour RubyGems - un gestionnaire de paquets sophistiqué pour Ruby. | | irb | est l'interface interactive pour Ruby. | | rake | un utilitaire de construction à la manière de Ruby. | | rdoc | génère la documentation Ruby. | | ri | affiche la documentation d'une base de données sur les classes, les modules et les méthodes Ruby. | | ruby | est un langage de script interprété pour une programmation orientée objet simple et rapide. | | libruby.so | contient les fonctions de l'API requises par Ruby. ## Installation des dépendances Il est recommandé d'installer ces dépendances (si vous utiliser un système de type debian): ``` build-essential patch bzip2 gawk libc6-dev libreadline-dev libreadline6-dev zlib1g-dev libssl-dev libyaml-dev autoconf libgmp-dev libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev ``` Certains autres packages peuvent être utiles: * **pour utiliser sqlite3**: libsqlite3-debuild-essential (également recommandé: sqlite); * **pour accéder à MySQL**: libmysqlclient-dev (également recommandé: mysql-client); * **pour accéder à PostgreSQL**: libpq-dev (également recommandé: postgresql-client); * **pour télécharger des fichiers du terminal**: wget. Installer tous les paquets: ``` apt-get install --yes build-essential patch bzip2 gawk libc6-dev libreadline-dev \ libreadline6-dev zlib1g-dev libssl-dev libyaml-dev autoconf libgmp-dev libgdbm-dev \ libncurses5-dev automake libtool bison pkg-config libffi-dev libsqlite3-dev sqlite3 \ libmysqlclient-dev mysql-client libpq-dev postgresql-client wget ``` ## Téléchargement et installation de Ruby Télécharger la dernière version de Ruby, elle est aujourd’hui 2.3.1: ``` wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz ``` Configurer et compiler le paquet dans l'espace utilisateur: ``` tar xfz ruby-2.3.1.tar.gz cd ruby-2.3.1 ./configure --prefix=${HOME}/local/ruby-2.3.1 \ --disable-install-doc \ --disable-install-rdoc && make ``` Explications de commande * **--enable-shared**: Ce paramètre active la construction de la bibliothèque partagée libruby. * **--disable-install-doc**: Ce commutateur désactive la construction et l'installation d'index rdoc et de documents API C. * **--disable-install-rdoc**: Ce commutateur désactive la construction et l'installation d'index rdoc. * **--disable-install-capi**: Ce commutateur désactive la construction et l'installation de documents API C. On peut éventuellement créer les documents CAPI en exécutant les commandes suivantes: ``` make capi ``` Pour tester les résultats, taper: `make check`. Il y a plus de 20 000 tests. Certains tests (jusqu'à 0,5%) peuvent échouer. Si les tests sont exécutés dans un répertoire contenant un composant accessible en écriture (par exemple,/tmp), plusieurs tests supplémentaires peuvent échouer. Plusieurs tests jit (juste à temps) sont voués à l'échec. Maintenant, en tant qu'utilisateur root: ``` make install ``` ## Configuration de Ruby Mettre `~/local/ruby-2.3.1/bin` dans PATH: ``` export PATH=${PATH}:${HOME}/local/ruby-2.3.1/bin ``` Définir **GEM\_HOME** (lieu de stockage des nouveaux GEMS) sur `~/.gem/ruby / 2.3.1`: ``` export GEM_HOME=${HOME}/.gem/ruby/2.3.1 ``` Définir **GEM\_PATH** (endroit où ruby va chercher des gems) sur `~/local/ruby-2.3.1/lib/ruby/gems/2.3.1`: ``` export GEM_PATH=${GEM_HOME}:${HOME}/local/ruby-2.3.1/lib/ruby/gems/2.3.1 ``` On peut maintenant installer des **gems** avec `bundle` ou `rails`: ``` gem install bundler rails ``` Ajouter ces commandes d’exportation aux fichiers .bashrc ou .zshrc.