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.shCe 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 --allCette é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,
Effectivement ce n'est pas une solution en soit, c'était juste pour débloquer la situation.
J'utilise "ubuntu for windows" qui permet d'avoir un sous-système linux complet & un shell bash. C'est intégré sur tout les windows 10 maintenant.
Voici ma configuration :
GCC:
gcc -v->gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)Cmake:
cmake -v->cmake version 3.5.1Libstd:
locate libstd->/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21Kernel:
uname -r->4.4.0-43Par ailleurs j'ai l'impression qu'il y a un conflit entre les librairies compilées lors de l'installation de iota2 et celles que j'ai dans mon système.
Par exemple lorsque je fais
LD_LIBRARY_PATH=$install_dir/lib:$install_dir/lib/otb/python:$LD_LIBRARY_PATHpour ajouter les libs du dossier iota2 à mon path, après il me devient impossible d'exécuter certaines commandes.Par exemple :
Un contournement que j'ai trouvé est de set
LD_LIBRARY_PATHdirectement dansscripts/common/launchChain.sh(au lancement de la chaîne donc) et pas dansscripts/install/prepare_env.shcomme ça ma variable d'environnement n'est modifiée lorsque je lance la chaîne.@BravoMike974 j'ai dû faire quelques modifications sur le script d'installation pour qu'il puisse être lancé plusieurs fois et reprendre où il s'était arrêté. La pull-request est disponible ici, et c'est ce commit en particulier qui va vous intéresser je pense.
ps: désolé pour le temps de réponse je n'ai pas reçu de notification non plus !