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,
Désolé de la réponse tardive. Les notifications par e-mail de mon compte étaient désactivées.
Modifier le code pour faire passer la compilation, n'est pas une bonne idée, car, comme vous le voyez vous-mêmes, dans le cas d'une mise à jour ou une re-compilation, les changements peuvent être perdus.
Il me semble que les problèmes rencontrés viennent de la version du compilateur utilisée.
OTB et ses dépendances compilent sans problèmes dans la plupart de plate-formes récentes.
Pouvez-vous donner des détails sur votre compilateur (version, etc.)?
Merci
Jordi