Afficher/cacher Sommaire
Installer Ruby sur Debian en utilisant RVM
How To Install Ruby on Ubuntu, Debian and LinuxMint using RVM
Ruby est un langage de programmation populaire parmi un grand nombre de développeurs. Les rails sont le cadre pour exécuter le langage ruby. Ruby language a été créé par Yukihiro “Matz” Matsumoto et publié pour la première fois en 1995. Cet article vous aidera à installer ruby on rails sur les systèmes d’exploitation Ubuntu, Debian et Linuxmint en utilisant RVM. RVM est le gestionnaire de version Ruby pour l’installation et la gestion du langage Ruby sur les systèmes.
Step 1 – Installer RVM
Tout d’abord, installez la dernière version stable de RVM sur votre système en utilisant la commande suivante. Cette commande télécharge automatiquement tous les fichiers requis et s’installe sur votre système. Installer CURL
apt-get install curl
Install RVM
Avant d’installer RVM, nous devons d’abord importer la clé publique dans notre système puis utiliser curl pour installer rvm.
curl -sSL https://rvm.io/mpapis.asc | sudo gpg2 --import -
curl -sSL https://get.rvm.io | sudo bash -s stable
Après l’installation de RVM, nous devons d’abord configurer l’environnement rvm en utilisant la commande ci-dessous. pour que le shell courant prenne de nouveaux paramètres d’environnement.
source /etc/profile.d/rvm.sh
Ajout utilisateur au groupe rvm
sudo usermod -a -G rvm $USER
Installez toutes les dépendances pour installer Ruby automatiquement sur le système. Exécuter la commande ci-dessous sur le terminal.
rvm requirements
Step 2 – Liste des versions Ruby disponibles
Obtenir une liste des versions disponibles du langage Ruby. Vous pouvez installer n’importe quelle version de votre choix ou des exigences apparaissant dans la liste.
rvm list known | grep "\[ruby-"
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
Step 3 – Installer une version Ruby
RVM est utile pour l’installation de plusieurs versions Ruby sur le même système. Utilisez la commande suivante pour installer Ruby sur votre système. Comme illustré ci-dessous, l’exemple ci-dessous installera Ruby 2.4.1 sur votre système.
rvm install 2.4.1
Searching for binary rubies, this might take some time.
No binary rubies available for: debian/8/x86_64/ruby-2.4.1.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for debian.
Requirements installation successful.
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.4.1, this may take a while depending on your cpu(s)...
ruby-2.4.1 - #downloading ruby-2.4.1, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11.9M 100 11.9M 0 0 11.4M 0 0:00:01 0:00:01 --:--:-- 11.4M
ruby-2.4.1 - #extracting ruby-2.4.1 to /usr/local/rvm/src/ruby-2.4.1....
ruby-2.4.1 - #applying patch /usr/local/rvm/patches/ruby/2.4.1/random_c_using_NR_prefix.patch.
ruby-2.4.1 - #configuring..................................................................
ruby-2.4.1 - #post-configuration..
ruby-2.4.1 - #compiling................................................................................
ruby-2.4.1 - #installing...........
ruby-2.4.1 - #making binaries executable..
ruby-2.4.1 - #downloading rubygems-2.6.14
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 751k 100 751k 0 0 5683k 0 --:--:-- --:--:-- --:--:-- 5692k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.4.1 - #extracting rubygems-2.6.14....
ruby-2.4.1 - #removing old rubygems.........
ruby-2.4.1 - #installing rubygems-2.6.14...........................
ruby-2.4.1 - #gemset created /usr/local/rvm/gems/ruby-2.4.1@global
ruby-2.4.1 - #importing gemset /usr/local/rvm/gemsets/global.gems...............................................
ruby-2.4.1 - #generating global wrappers........
ruby-2.4.1 - #gemset created /usr/local/rvm/gems/ruby-2.4.1
ruby-2.4.1 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.4.1 - #generating default wrappers........
ruby-2.4.1 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.4.1 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
Step 4 – Configuration par défaut la version Ruby
Utilisez la commande rvm pour configurer la version par défaut de ruby à utiliser par les applications. Vous pouvez installer plusieurs versions comme défini dans l’étape ci-dessus. Sélectionnez maintenant la version que vous voulez utiliser.
rvm use 2.4.1 --default
Using /usr/local/rvm/gems/ruby-2.4.1
Step 5 – Vérifier la version Ruby
A l’aide de la commande suivante, vous pouvez vérifier que la version actuelle de Ruby est utilisée.
ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
rvmsudo
Sudo est un programme pour les systèmes d’exploitation de type Unix qui permet aux utilisateurs d’exécuter des programmes avec les privilèges de sécurité d’un autre utilisateur (normalement le super-utilisateur, ou root). Son nom est une concaténation de la commande su (qui accorde à l’utilisateur un shell d’un autre utilisateur, normalement le super-utilisateur) et “do” faire ou agir.
Par défaut, lorsque vous utilisez sudo, votre environnement shell actuel n’est pas transmis à la session créée par celui-ci, mais RVM permet déjà un accès plus facile aux appels sudo avec rvmsudo. Cependant, les valeurs par défaut de sudo sont très strictes et vous risquez d’obtenir des messages d’invite de mot de passe sur les commandes définies pour utiliser la directive sudo NOPASSWD.
Modifier les valeurs par défaut strictes de sudo.Il y a 3 choses nécessaires pour atténuer cette situation si vous la rencontrez:
- L’utilisateur qui invoque sudo doit avoir exporter
export rvmsudo_secure_path=0
sur son environnement shell (pensez. bashrc,. bash_profile ou. zshrc) - Commenter
Defaults secure_path=...
sur /etc/sudoers - Ajouter
Defaults env_keep +="rvm_bin_path GEM_HOME IRBRC MY_RUBY_HOME rvm_path rvm_prefix rvm_version GEM_PATH rvmsudo_secure_path RUBY_VERSION rvm_ruby_string rvm_delete_flag"
à /etc/sudoers
dans les rares cas où il est nécessaire d’ajouter plus de variables - elles doivent être rapportées par la première exécution de rvmsudo.
Après ces changements, vous devriez pouvoir utiliser rvmsudo en conservant les mêmes directives que les appels sudo “normaux”.
Jekyll - wikistatic
Installation jekyll
en mode commande NON ROOT
gem install jekyll
...
Done installing documentation for public_suffix, addressable, colorator, http_parser.rb, eventmachine, em-websocket, concurrent-ruby, i18n, rb-fsevent, ffi, rb-inotify, sass-listen, sass, jekyll-sass-converter, ruby_dep, listen, jekyll-watch, kramdown, liquid, mercenary, forwardable-extended, pathutil, rouge, safe_yaml, jekyll after 57 seconds
25 gems installed
Version installée
jekyll -v
jekyll 3.7.2
Installation wikistatic
Ce wikistatic basé sur Jekyll utilise le thème libre dbyll
Création dossier
sudo mkdir -p /srv # création dossier
Les droits sur le dossier
sudo chown $USER. -R /srv/
Clonage wikistatic par git
sudo apt install git
cd /srv
git clone https://gitlab.cinay.pw/spm/wikistatic.git
cd wikistatic
Test wikistatic
On lance manuellement le serveur pour un test,choisir l’une des 2 méthodes
méthode A
Exécution , lancement serveur pour test
bundle exec jekyll serve
[...]
Auto-regeneration: enabled for '/srv/wikistatic'
Configuration file: /srv/wikistatic/_config.yml
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
méthode B
Construction
jekyll build
WARN: Unresolved specs during Gem::Specification.reset:
rouge (~> 1.7)
jekyll-watch (~> 1.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Configuration file: /srv/jekyll/dbyll/_config.yml
Source: /srv/jekyll/dbyll
Destination: /srv/jekyll/dbyll/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 2.428 seconds.
Auto-regeneration: disabled. Use --watch to enable.
Auto génération activée (–watch) + serveur
jekyll serve --watch
Configuration file: /srv/wikistatic/_config.yml
Source: /srv/wikistatic
Destination: /srv/wikistatic/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 39.011 seconds.
Auto-regeneration: enabled for '/srv/wikistatic'
Le serveur est en local sur le port 4000 (http://localhost:4000) , on l’arrête par Ctrl c
Auto génération activée (–watch) SANS serveur
jekyll build --watch
Configuration file: /srv/wikistatic/_config.yml
Source: /srv/wikistatic
Destination: /srv/wikistatic/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 18.916 seconds.
Auto-regeneration: enabled for '/srv/wikistatic'
Serveur de production wikistatic
Jekyll/Nginx Proxy
Sur un serveur debian jessie avec nginx installé, accès par proxy au serveur jekyll
On utilise un service systemd pour lancer automatiquement le serveur jekyll
Exemple avec un site http://site.statique.tld
Utilisation proxy sur nginx pour accèder au serveur local Jekyll
Créer une configuration nginx sous /etc/nginx/conf.d
server {
listen 80;
server_name site.statique.tld;
location / {
proxy_pass http://127.0.0.1:4000;
}
access_log /var/log/nginx/static-access.log;
error_log /var/log/nginx/static-error.log;
}
Relancer le service nginx
sudo systemctl restart nginx
Jekyll/Nginx Sans Proxy
Exemple sur un serveur web yunohost fonctionnel, installer une application personnalisée Multi custom webapp https://github.com/YunoHost-Apps/multi_webapp_ynh domaine static.cinay.pw
Redéfinir le “root” sur /srv/wikistatic/_site/
sudo rm -r /var/www/webapp_cinay/static.cinay.pw
sudo ln -s /srv/wikistatic/_site /var/www/webapp_cinay/static.cinay.pw
Le fichier de configuration nginx sous /etc/nginx/conf.d/static.cinay.pw.d/webapp_static.cinay.pw.conf
location / {
alias /var/www/webapp_cinay/static.cinay.pw/ ;
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
}
index index.html index.php ;
try_files $uri $uri/ index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm-webapp_static.cinay.pw.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
# Include SSOWAT user panel.
include conf.d/yunohost_panel.conf.inc;
}
Relancer le service nginx
sudo systemctl restart nginx
Jekyll/Systemd
On localise la version jekyll
which jekyll
/usr/local/rvm/gems/ruby-2.4.1/bin/jekyll
Pour lancer le serveur Jekyll au démarrage , créer un bash sous /srv
nano /srv/wikistatic/start_jekyll.sh
#!/bin/sh
export PATH=$PATH:/usr/local/rvm/gems/ruby-2.4.1/bin
#lancement jekyll
/usr/local/rvm/gems/ruby-2.4.1/bin/jekyll build --watch --source "/srv/wikistatic" # sans proxy nginx
Droits sur le bash
sudo chown $USER. /srv/wikistatic/start_jekyll.sh
chmod +x /srv/wikistatic/start_jekyll.sh
Pour lancer le serveur Jekyll au démarrage, utilisation d’un service systemd
ATTENTION! , remplacer utilisateur par votre nom d’utilisateur (echo $USER)
sudo nano /etc/systemd/system/jekyll.service
Contenu du fichier
[Unit]
Description=jekyll Service
After=network.target
[Service]
Type=simple
User=utilisateur
ExecStart=/bin/sh /srv/wikistatic/start_jekyll.sh
Restart=on-abort
[Install]
WantedBy=multi-user.target
Lancer le service jekyll :
sudo systemctl daemon-reload
sudo systemctl start jekyll
#Vérifier:
sudo systemctl status jekyll
● jekyll.service - jekyll Service
Loaded: loaded (/etc/systemd/system/jekyll.service; disabled)
Active: active (running) since dim. 2017-01-08 21:02:34 CET; 13s ago
[...]
janv. 08 21:02:35 jessie sh[30873]: Auto-regeneration: enabled for '/srv/wikistatic'
janv. 08 21:02:35 jessie sh[30873]: Configuration file: /srv/wikistatic/_config.yml
janv. 08 21:02:35 jessie sh[30873]: Server address: http://127.0.0.1:4000/
janv. 08 21:02:35 jessie sh[30873]: Server running... press ctrl-c to stop.
Vérifier l’accès au site static http://site.statique.tld
Valider le lancement du service jekyll au démarrage
sudo systemctl enable jekyll