Installer Ekylibre v2 sous Ubuntu 16.04 LTS et Debian 8.5

L'installation d'Ekylibre en local est à destination des développeurs et non à une mise en production.

1. Configuration des dépendances

Sous Ubuntu 16.04 x64

sudo apt-get install imagemagick graphicsmagick tesseract-ocr tesseract-ocr-ara tesseract-ocr-jpn tesseract-ocr-fra tesseract-ocr-eng tesseract-ocr-spa pdftk libreoffice poppler-utils poppler-data ghostscript openjdk-8-jdk libicu55 redis-server postgresql-9.5-postgis-2.2 postgresql-contrib libcurl4-openssl-dev libgeos-dev libgeos++-dev libproj-dev libpq-dev libxml2-dev libxslt1-dev zlib1g-dev libicu-dev libqtwebkit-dev ruby-foreman

Sous Debian 8.5 x64

La version de Postgres sous Debian 8.5 est la 9.4. Ekylibre a besoin de la 9.5 pour fonctionner, il faut donc rajouter le dépôt suivant pour l'installer.

echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main 9.5" > /etc/apt/sources.list.d/posgresql.list

On récupère la clé :

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

Et on l'installe

apt-get update
apt install postgresql

Après on peut passer à l'installation des dépendances :

sudo apt-get install imagemagick graphicsmagick tesseract-ocr tesseract-ocr-ara tesseract-ocr-jpn tesseract-ocr-fra tesseract-ocr-eng tesseract-ocr-spa pdftk libreoffice poppler-utils poppler-data ghostscript openjdk-7-jdk libicu52 redis-server postgresql-9.5-postgis-2.2 postgresql-contrib libcurl4-openssl-dev openjdk-7-jdk libgeos-dev libgeos++-dev libproj-dev libpq-dev libxml2-dev libxslt1-dev zlib1g-dev libicu-dev libqtwebkit-dev

Sous Debian 9 x64

On installe les dépendances :

sudo apt-get update
sudo apt-get install imagemagick graphicsmagick tesseract-ocr tesseract-ocr-ara tesseract-ocr-jpn tesseract-ocr-fra tesseract-ocr-eng tesseract-ocr-spa pdftk libreoffice poppler-utils poppler-data ghostscript openjdk-8-jdk libicu57 redis-server postgresql-9.6-postgis-2.3 postgresql-contrib-9.6 libcurl4-openssl-dev libgeos-dev libgeos++-dev libproj-dev libpq-dev libxml2-dev libxslt1-dev zlib1g-dev libicu-dev libqtwebkit-dev build-essential

2. Installation de Ruby

Nous vous conseillons fortement d'installer ruby par l'intermédiaire de RBENV (chapitre suivant) afin d'avoir un contrôle plus fin sur votre environnement de travail et des futures migrations.

Il s'agit d'installer l'interpréteur du langage de développement Ruby (nous vous conseillons d'installer Ruby via RBENV)

Plus d'informations sur le langage de développement Ruby : Ruby sur Wikipedia

Avant de commencer, veuillez vérifier que les paquets suivants sont bien installés :

sudo apt-get install git build-essential libreadline-dev

2.1 Installation de Ruby via RBENV

Si vous passez par un proxi il faut indiquer avant votre commande par quel proxi vous voulez passer. Par exemple un rbenv install 2.2.3 devient https_proxy=http://ip_ou_nom_hote_proxy:port_proxy http_proxy=ip_ou_nom_hote_proxy:port_proxy rbenv install

* Nous allons installer Ruby via RBENV, ce qui permettra d'évoluer vers les futures versions de Ruby

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

* Puis nous installons le plugin permettant d'installer les versions de Ruby

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

* Installons maintenant Ruby 2.2.3:

Une erreur peut survenir lors de l'installation de Ruby du fait de dépendances qui peuvent manquer. Dans ce cas utiliser la commande suivante :

sudo apt install -y libreadline-dev

rbenv install 2.2.3

* Paramétrons cette version pour tous nos projets

rbenv global 2.2.3
rbenv rehash

* Vérifions enfin que Ruby est bien installé

ruby -v

# Vous devriez avoir un message

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

3. Récupération du code

Idem que pour le chapitre 3 concernant le proxi

Il faut à cette étape, récupérer les sources depuis Github en clonant le dépôt ekylibre/ekylibre dans le dossier de votre choix <dossier>

cd /home/<dossier>
git clone https://github.com/ekylibre/ekylibre.git

Vous devriez avoir un répertoire ekylibre dans <dossier>

4. Configuration de la base de données

4.1 Création de l'utilisateur PostgreSQL

sudo -s -u postgres
createuser -d -P -s ekylibre

Attention de bien retenir le mot de passe vous avez renseigné lors de la création de l'utilisateur, car il vous sera demandé par la suite pour la configuration de la base de données.

# puis changement de role pour que votre utilisateur puisse créer des schémas psql

psql
 
psql (9.4.5)
Type "help" for help.
 
postgres=# ALTER USER ekylibre SUPERUSER;

Sortie de la console Postgresql

postgres-# \q
exit

4.2 Configuration de l'accès à la base de données

Renseigner votre configuration de base de données dans le fichier config/database.yml au sein du répertoire du projet ekylibre Pour créer ce fichier par copie, vous pouvez copier le fichier modèle nommé “config/database.yml.sample” qui est dans le répertoire du projet Ekylibre (récupéré via git) vers un nouveau fichier nommé config/database.yml dans ce même répertoire nommé “config”.

Ainsi le fichier modèle d'origine nommé “config/database.yml.sample” est conservé et un nouveau fichier nommé config/database.yml est créé avec une configuration de base et servira à la production/developpement/test après adaptation à l'environnement de votre serveur (identifiant, mot de passe, port et IP du serveur, etc …)

cd /home/projects/ekylibre
cp config/database.yml.sample config/database.yml

Remplacer xxxxxxxx par votre utilisateur et yyyyyyyy par son mot de passe

Bien penser à décommenter la ligne du host: 127.0.0.1

config/database.yml
default: &default
  adapter: postgis
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5
  postgis_extension: []
 
  # Schema search path. The server defaults to $user,public
  schema_search_path: public, postgis
 
  # The specified database role being used to connect to postgres.
  # To create additional roles in postgres see `$ createuser --help`.
  # When left blank, postgres will use the default role. This is
  # the same name as the operating system user that initialized the database.
  username: xxxxxxxx
 
  # The password associated with the postgres role (username).
  password: yyyyyyyy
 
  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  host: 127.0.0.1
 
development:
  <<: *default
  database: ekylibre_development_master
 
production:
  <<: *default
  database: ekylibre_production_master
  username: xxxxxxxx
  password: <%= ENV['EKYLIBRE_DATABASE_PASSWORD'] %>
 
test:
  <<: *default
  database: ekylibre_test_master
  username: xxxxxxxx
  password: yyyyyyyy

5. Installer les paquets gems

Attention, selon votre système JAVA n'est pas forcément installer dans /usr/lib/jvm/java-8-openjdk.

Informations sur le gestionnaire de paquets RubyGems sur Wikipedia.

Se placer dans le répertoire Ekylibre et installer bundler et les gems.

Vérifier que le fichier/lien symbolique /usr/lib/jvm/java-1.8.0-openjdk-amd64 existe via la commande ls.

Pour Debian 8.5 du fait que la version de java par default est la 7 la commande est la suivante : /usr/lib/jvm/java-1.7.0-openjdk-amd64

Pour Ubuntu 16.04 :

cd /path/to/ekylibre
gem install bundler
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install

Pour Debian 8.5 :

cd /path/to/ekylibre
gem install bundler
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install

Pour Debian 9 :

cd /path/to/ekylibre
gem install bundler
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 bundle install

Note : Si vous avez une erreur du genre 'Gem::Ext::BuildError: ERROR: Failed to build gem native extension.' pendant l'exécution de la commande … bundle install, alors relancer cette commande et si cela ne marche pas tentez de retirer le paramètre https_proxy=http://ip_ou_nom_hote_proxy:port_proxy de votre ligne de commande si vous l'avez utilisé.

6. Données et instances

6.1 Créer la base de données et le schéma par default

Pour Ubuntu 16.04 :

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 rake db:create db:migrate

Pour Debian 8.5

JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 rake db:create db:migrate

6.2 Créer l'instance de démonstration (développement et recettes)

Récupérer les données de démonstration :

cd home/.../ekylibre/db
mkdir first_runs
cd first_runs
git clone https://github.com/ekylibre/first_run-demo.git demo

Remettez vous à la racine de votre dossier Ekylibre et lancer la création de l'instance de démonstration et le chargement des données liées en précisant une limite.

cd home/.../ekylibre
rake first_run name=demo folder=demo max=80

7. Mise en place de l'url de connexion

Modifier votre fichier hosts pour ajouter l'url de l'instance (demo.ekylibre.lan par exemple)

sudo pluma /etc/hosts
/etc/hosts
127.0.0.1	localhost demo.ekylibre.lan
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

8. Lancer le serveur rails

Concernant le first run de démo les identifiants sont les suivants :

identifiant : admin@ekylibre.org

mot de passe : 12345678

Lancer votre serveur (en étant dans le répertoire du projet ekylibre)

cd home/.../ekylibre
foreman s
# ou pour permettre de rediriger votre ip vers une instance locale
TENANT='nom instance' rails s -b 'adresse ip de la machine'

Lancer votre navigateur (pas internet explorer bien sur qui, comme chacun sait, ne fait pas partie des navigateurs :-D ) et essayer d'accéder à l'URL http://demo.ekylibre.lan:8080.

Vous devriez voir l'écran de connexion d'Ekylibre. Si c'est le cas, c'est gagné !