le 23/11/2017, j'ai installé la chaîne iota2 sur mon pc. J'ai rencontré quelques difficultés pour connaître l'enchaînement des commandes à éxécuter, et pour compiler la chaîne. Voici les différentes étapes que j'ai suivi pour arriver à mes fins.
Le code est disponible sur gitlab : https://framagit.org/inglada/iota2
# se déplacer dans le dossier où on veut mettre la chaîne iota2, puis
# clone (télécharge) le code dans le dossier "./iota2"
git clone https://framagit.org/inglada/iota2.git ./iota2
# si git n'est pas installé, il faut l'installer :
sudo apt-get install git
# si on veut avoir la version en cours de développement (peut être instable)
cd iota2
git checkout develop
cd ..
Un script pour installer les dépendances est disponible dans le dossier iota2 :
cd iota2/scripts/install
sudo ./init_Ubuntu.sh # également disponible : ./init_CentOS.sh
Ce script va installer tout les paquets systèmes nécessaires (cmake
, g++
, ...) ainsi que tout les paquets python nécessaire (pip install config
, ...).
Note : un readme pour cette étape est disponible sur gitlab.
Toujours dans le dossier iota2/scripts/install
, le script generation.sh
permet de lancer toutes les commandes nécessaires.
./generation.sh --all
Cette étape prend du temps (plusieurs heures), il y a plein de téléchargements, décompressions, compilations, ...
Note: j'ai eu un problème lors de la compilation de l'OTB, voilà l'erreur console :
[ 34%] Performing build step for 'GEOS'
CMake Error at /home/eswak/git/iota2/scripts/install/OTB/build/GEOS/src/GEOS-stamp/GEOS-build-Release.cmake:16 (message):
Command failed: 2
'make'
See also
/home/eswak/git/iota2/scripts/install/OTB/build/GEOS/src/GEOS-stamp/GEOS-build-*.log
en regardant le fichier de log, voilà l'erreur :
/home/eswak/git/iota2/scripts/install/OTB/build/GEOS/src/GEOS/include/geos/platform.h:142:27: error: ‘isnan’ was not declared in this scope
# define ISNAN(x) isnan(x)
en éditant le fichier suivant, le problème n'apparait plus :
nano /home/eswak/git/iota2/scripts/install/OTB/build/GEOS/src/GEOS/include/geos/platform.h
rechercher les lignes avec ça (en haut de fichier) :
/* Set to 1 if C++/C99 std::isnan is defined */
/* #undef HAVE_STD_ISNAN */
et rajouter cette ligne en dessous :
#define HAVE_STD_ISNAN 1
Puis il faut relancer la compilation avec ./generation.sh --all
et attendre plusieurs heures.
Une fois que tout est terminé, une archive iota2_OTB-*.tar.gz
devrait être créée dans le dossier iota2/scripts/install
(qui devrait être le dossier courant si vous suivez le tutorial depuis le début).
Une fois l'archive générée, on la décompresse pour avoir toute l'abrorescence :
tar –xzvf iota2_OTB-*.tar.gz
Voilà, tout les fichiers sont en place !
Pour éviter de lancer des commandes à chaque fois qu'on ouvre le terminal, mettre ceci dans ~/.bashrc
:
# iota2
export iota2_PATH=/home/eswak/git/iota2/scripts/install # mettre le bon chemin (où vous avez décompressé l'archive)
source $iota2_PATH/prepare_env.sh
alias iota2='$iota2_PATH/../../common/launchChain.sh'
Une fois que c'est fait, fermer et réouvrir la fenêtre de la console, ou faire source ~/.bashrc
.
La chaîne est installée ! Pour la lancer il faut faire la commande :
iota2 ./configIOTA2.cfg
Pour construire un fichier de configuration correct, se référer à la documentation.
Bonjour,
J'ai rencontré exactement le même problème que vous décrivez à l'étape 3
Cependant après avoir rajouté la ligne de code "#define HAVE_STD_ISNAN 1" dans platform.h, je relance la compilation avec "./generation.sh --all" et là j'ai aussitôt un message d’erreur me disant qu'il ne peut pas créer le dossier OTB car il existe déjà. Normal!
La solution serait de supprimer le dossier OTB, mais celle-ci entraînerait la suppression des fichiers et la modification faite sur la ligne de code (ce qui reproduira l'erreur initiale) , il m'est donc impossible de relancer l'installation sans avoir une erreur par la suite.
Quelle manipulation avez-vous fait pour relancer l'installation?
Merci pour vos éléments de réponses
Matthias,