Faire le Projet GL sur une machine personnelle : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Installation de l'arborescence globale du projet)
(Installation de l'arborescence globale du projet (ima))
 
(21 révisions intermédiaires par 8 utilisateurs non affichées)
Ligne 11 : Ligne 11 :
  
 
Il faut notamment modifier le fichier pom.xml comme indiqué sur cette page [[Questions fréquentes avec Maven pour le projet GL#tools-jar]], afin de faire pointer correctement maven vers le fichier tools.jar.
 
Il faut notamment modifier le fichier pom.xml comme indiqué sur cette page [[Questions fréquentes avec Maven pour le projet GL#tools-jar]], afin de faire pointer correctement maven vers le fichier tools.jar.
 +
 +
Quelques conseils spécifiques pour OS X sont disponibles sur la page [[Projet GL sous Mac OS X]] .
  
 
== Installation de Java ==
 
== Installation de Java ==
  
Une installation de Java quelconque fera l'affaire. Il vous faudra au minimum Java 1.6, et il est fortement recommandé d'utiliser Java 1.7. Selon la distribution, un <code>apt-get install openjdk-7-jdk</code> ou un <code>yum install java-1.7.0-openjdk</code> devrait installer tout cela. Sinon, on peut télécharger Java sur [http://www.oracle.com/technetwork/java/javase/downloads/index.html le site d'Oracle] ou bien sur celui [http://openjdk.java.net/install/ d'OpenJDK].
+
Une installation de Java quelconque fera l'affaire. Il vous faudra actuellement Java 1.8.
 +
Attention, les versions plus récentes de Java ne marchent pas forcément avec la configuration maven fournie.
  
== Installation de Netbeans ==
+
1. Vérifiez la version java utilisée actuellement sur votre machine avec: <code>javac -version</code>
  
Les versions packagées pour Ubuntu et Debian sont en général cassées (le gestionnaire de plugins ne marche pas). Il est fortement recommandé de faire une installation manuelle. Pour pouvoir utiliser le plugin ANTLRWorks, il faut une version 8.0. Suivre les instructions depuis cette page : https://netbeans.org/downloads/8.0/index.html
+
2. Si java 1.8 n'est pas installé sur votre machine: selon la distribution, un <code>apt-get install openjdk-8-jdk</code> ou un <code>yum install java-1.8.0-openjdk</code> devrait installer tout cela. Sinon, on peut télécharger Java sur [http://openjdk.java.net/install/ le site d'OpenJDK] ou bien sur [http://www.oracle.com/technetwork/java/javase/downloads/index.html le site d'Oracle].
  
== Installation du plugin ANTLRWorks pour Netbeans ==
+
3. Si plusieurs versions de Java sont installées sur votre machine, positionnez la variable d'environnement <code>JAVA_HOME</code> sur le JDK 1.8 dans votre <code>.bash_rc</code> avec une ligne comme: <code>export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64</code>
 +
(en adaptant avec le nom du répertoire d'installation de JDK 1.8 sur votre machine, que vous pouvez trouver par exemple à l'aide de <code>dpkg-query -L openjdk-8-jdk</code> sous debian/ubuntu).
 +
<br>
 +
Positionner <code>JAVA_HOME</code> ne change pas la version de Java sur votre machine (<code>java -version</code> reste inchangé), ça change juste la version de Java utilisée dans maven (et netbeans).
  
Pour avoir la coloration syntaxique dans les fichiers .g4 (grammaires ANTLRv4), installez le plugin ANTLRWorks disponible dans les plugins officiels de Netbeans :
+
4. Si la méthode du point 3 ne permet pas de faire fonctionner maven correctement, vous pouvez essayer <code>sudo update-alternatives --config javac</code> pour imposer le choix de java 1.8 à votre système (mais ça ne devrait pas être nécessaire).
 
+
* Lancer netbeans
+
 
+
* Dans le « Tools », choisir « Plugins »
+
 
+
* Onglet « available plugins », choisir « ANTLRWorks editor », puis bouton « install » et se laisser guider.
+
  
 
== Installation de Maven ==
 
== Installation de Maven ==
Ligne 34 : Ligne 34 :
 
Maven est disponible dans Debian et Ubuntu : <code>apt-get install maven</code>
 
Maven est disponible dans Debian et Ubuntu : <code>apt-get install maven</code>
  
Installer Maven manuellement est très facile : il suffit de télécharger une archive « Binary » depuis cette page http://maven.apache.org/download.cgi, d'extraire l'archive et de placer le répertoire <code>bin/</code> au début de votre $PATH. Pour plus de détails, voir par exemple [http://johnathanmarksmith.com/linux/java/maven/programming/project%20management/2013/04/18/how-to-install-maven-on-fedora-centos-red-hat-and-scientific-linux/ cette page] si nécessaire.
+
Installer Maven manuellement est très facile : il suffit de télécharger une archive « Binary » depuis cette page http://maven.apache.org/download.cgi, d'extraire l'archive et de placer le répertoire <code>bin/</code> au début de votre $PATH. Pour plus de détails, voir par exemple [http://johnathanmarksmith.com/linux/java/maven/programming/project%20management/2013/04/18/how-to-install-maven-on-fedora-centos-red-hat-and-scientific-linux/ cette page] si nécessaire.
 +
 
 +
Une autre option est d'utiliser le Maven distribué avec Netbeans (netbeans/java/maven/bin/mvn): dans ce cas, voir l'installation de netbeans ci-dessous.
  
Une autre option est d'utiliser le Maven distribué avec Netbeans (netbeans/java/maven/bin/mvn).
+
Vérifiez que maven fonctionne avec Java version 1.8 en lançant <code>mvn -version</code>. Si ce n'est pas le cas, consultez le paragraphe [[Faire_le_Projet_GL_sur_une_machine_personnelle#Installation_de_Java]] ci-dessus.
  
 
== Installation de Git ==
 
== Installation de Git ==
Ligne 42 : Ligne 44 :
 
Votre distribution contient probablement [[Git]], et il suffira probablement d'un <code>apt-get install git-core gitk</code>, <code>yum install git</code>, ...
 
Votre distribution contient probablement [[Git]], et il suffira probablement d'un <code>apt-get install git-core gitk</code>, <code>yum install git</code>, ...
  
Sous Mac téléchargez la dernière version de Git depuis http://code.google.com/p/git-osx-installer/ puis ouvrez <code>git-*-intel-leopard.dmg</code> et suivez les indications de l'utilitaire.
+
Sous Mac téléchargez la dernière version de Git depuis https://git-scm.com/download/mac puis suivez les indications de l'utilitaire.
  
= Installation de l'environnement du projet =
+
== Installation de Netbeans (optionnelle) ==
  
<div id="clessh">
+
Les versions packagées pour Ubuntu et Debian sont en général cassées (le gestionnaire de plugins ne marche pas). Il est fortement recommandé de faire une installation manuelle. Pour pouvoir utiliser le plugin ANTLRWorks, il faut la version '''8.0.1''', ni au-dessus, ni en-dessous.
== Clés SSH ==
+
En effet, une version 8.0.2 (la plus récente à ce jour) vous donnera une erreur à l'installation du plugin ANTLRWorks (http://plugins.netbeans.org/plugin/53652/antlrworks-2).
  
Vous devez dans un premier temps récupérer la clé privée qui vous permettra d'accéder au dépôt :
+
Suivre les instructions de téléchargement et d'installation depuis cette page : https://netbeans.org/downloads/8.0.1/
  
rsync --chmod=go-rwx monlogin@pcserveur.ensimag.fr:/matieres/4MMPGL/GL/keys/'$LOGNAME' ~/.ssh/id_projet_gl
+
Pour plus de confort, sous Linux, n'hésitez pas à ajouter le chemin vers les binaires netbeans à votre PATH. Il suffit d'ajouter <code> export export PATH="/chemin/vers/dossier/netbeans-8.0.1/bin:$PATH"</code>
  
(en remplaçant bien entendu <code>monlogin</code> par votre login Ensimag)
+
== Installation du plugin ANTLRWorks pour Netbeans (optionnelle, mais conseillée si votre IDE est netbeans) ==
  
Il faut ensuite dire à SSH d'utiliser cette clé. Cela peut se faire en créant un fichier <code>~/.ssh/config</code> sur la machine depuis laquelle vous vous connectez, avec le contenu suivant :
+
Pour avoir la coloration syntaxique dans les fichiers .g4 (grammaires ANTLRv4), installez le plugin ANTLRWorks disponible dans les plugins officiels de Netbeans :
  
Host depots.ensimag.fr
+
* Lancer netbeans
IdentityFile ~/.ssh/id_projet_gl
+
  
Si vous utilisiez déjà une clé pour vous connecter à votre propre compte Ensimag, vous pouvez au choix :
+
* Dans le « Tools », choisir « Plugins »
* utiliser <code>ssh-agent</code> et <code>ssh-add</code> sur cette clé. SSH va essayer toutes les clés actives dans l'agent avant d'essayer id_projet_gl.
+
* Ajouter plusieurs lignes <code>IdentityFile</code> derrière <code>Host depots.ensimag.fr</code>, ssh va les essayer en séquence. Par exemple, si votre clé habituelle est <code>id_rsa</code> :
+
  
Host depots.ensimag.fr
+
* Onglet « available plugins », choisir « ANTLRWorks editor », puis bouton « install » et se laisser guider.
IdentityFile ~/.ssh/id_projet_gl
+
IdentityFile ~/.ssh/id_rsa
+
  
En dernier recours, demander de l'aide à votre enseignant ou à Matthieu.Moy@imag.fr.
 
  
Pour plus d'information, lire l'article du wiki sur les [[Clés SSH]].
+
= Installation de l'environnement du projet =
  
== Installation de l'arborescence globale du projet ==
+
== Installation de l'arborescence globale du projet (ima) ==
  
 
Récupérez l'arborescence GL/global/ de l'Ensimag sur votre machine. Dans l'exemple, on installe l'arborescence dans ~/ensimag, mais vous pouvez bien sûr adapter :
 
Récupérez l'arborescence GL/global/ de l'Ensimag sur votre machine. Dans l'exemple, on installe l'arborescence dans ~/ensimag, mais vous pouvez bien sûr adapter :
  
 
  laptop:~$ mkdir -p ensimag/GL; cd ensimag/GL
 
  laptop:~$ mkdir -p ensimag/GL; cd ensimag/GL
 +
 +
Puis, pour les 2A:
 +
 
  laptop:~/ensimag/GL$ git clone ssh://votrelogin@pcserveur.ensimag.fr/matieres/4MMPGL/GL/global/ global
 
  laptop:~/ensimag/GL$ git clone ssh://votrelogin@pcserveur.ensimag.fr/matieres/4MMPGL/GL/global/ global
 +
 +
Ou, pour les apprentis 1A:
 +
 +
laptop:~/ensimag/GL$ git clone ssh://votrelogin@pcserveur.ensimag.fr/matieres/3MM1PGL/global/ global
 +
 
Vérifiez que la commande <code>ima</code> fonctionne :
 
Vérifiez que la commande <code>ima</code> fonctionne :
  
 
  laptop:~/ensimag/GL$ ./global/bin/ima -v
 
  laptop:~/ensimag/GL$ ./global/bin/ima -v
  
Si ce n'est pas le cas, vous pouvez recompiler ima sur votre machine comme ceci (la version fournie devrait fonctionner sur architecture Intel 32 ou 64 bits, sous Linux ou Mac OS X) :
+
Si ce n'est pas le cas, vous pouvez recompiler ima sur votre machine comme ceci (la version fournie devrait fonctionner sur architecture 64 bits sous Linux) :
  
 
  laptop:~/ensimag/GL$ cd global/sources
 
  laptop:~/ensimag/GL$ cd global/sources
 
  laptop:~/ensimag/GL/global/sources$ make
 
  laptop:~/ensimag/GL/global/sources$ make
 +
 +
Si après avoir exéctuer make, la commande "gnatmake" n'est pas reconnue, c'est que vous devez récupérer la package ADA pour GCC (gcc-ada).
 +
'''ATTENTION (mai 2020): il semble que les Makefiles d'ima ne sont pas robustes aux caractères spéciaux (espaces, apostrophes, accents, etc) dans les noms de répertoire.'''
 +
En attendant, un patch des enseignants, il vaut mieux éviter ce type de caractères dans les noms de répertoire (utiliser juste un mélange de lettres, chiffres, points, soulignés). 
  
 
La dernière commande devrait compiler aflex, ayacc (qui sont nécessaires pour compiler ima), et ima sur votre machine.
 
La dernière commande devrait compiler aflex, ayacc (qui sont nécessaires pour compiler ima), et ima sur votre machine.
Ligne 123 : Ligne 131 :
 
  $ which mvn  
 
  $ which mvn  
 
  /usr/bin/mvn
 
  /usr/bin/mvn
$ which java
+
 
/usr/bin/java
+
Vérifiez aussi que <code>mvn -version</code> utilise bien la version Java 1.8.
  
 
La commande <code>which ima</code> doit renvoyer quelque chose comme <code>$HOME/ensimag/GL/global/bin/ima</code> selon l'endroit où vous avez installé <code>ima</code>.
 
La commande <code>which ima</code> doit renvoyer quelque chose comme <code>$HOME/ensimag/GL/global/bin/ima</code> selon l'endroit où vous avez installé <code>ima</code>.
Ligne 130 : Ligne 138 :
 
== Création du répertoire Projet_GL par rapatriement depuis l'archive ==
 
== Création du répertoire Projet_GL par rapatriement depuis l'archive ==
  
Il faut évidemment que la clé de connexion SSH soit admise sur le compte glxx de l'équipe (cf. section [[#clessh]]). On fait (comme dans <code>[SeanceMachine]</code>) :
+
Pour les 2A: commande git clone (remplacer NN par le numéro d'équipe et GG par votre numéro de groupe) :
 +
 
 +
  $ git clone git@gitlab.ensimag.fr:gl2020/gGG/glNN Projet_GL
  
  $ cd
+
Pour les apprentis: (remplacer N par le numéro d'équipe entre 1 et 6)
   $ git clone ssh://glXX@depots.ensimag.fr/~/git/ Projet_GL
+
   $ git clone git@gitlab.ensimag.fr:glapp2020/glN Projet_GL
  
 
<div id="debug">
 
<div id="debug">

Version actuelle en date du 7 mai 2020 à 10:27

Cette page a pour but de vous aider à installer un environnement de développement, sous Linux, pour le Projet GL de l'Ensimag, 2ème année. Le projet devrait marcher sans trop d'effort sous Mac OS X (n'hésitez pas à remonter les problèmes que vous rencontrez à vos enseignants et/ou à mettre à jour cette page). Faire marcher le projet sous Windows serait bien plus compliqué en revanche (le projet utilise des scripts shell en plus de Java, ils marcheraient peut-être avec Mingw), il est sans doute plus simple d'installer Linux que de faire le portage.

Pour le projet « Projet GL Apprentissage », les instructions s'appliquent en adaptant l'arborescence globale : /matieres/4MMPGL/GL/global en 2A étudiant, /matieres/3MM1PGL/global en 1A apprentissage.

Installation des outils (Java, Git, ...)

Nous allons tout d'abord installer les outils nécessaires au projet. Si ces outils sont déjà installés sur votre machine, vous n'avez rien à faire.

Sous Mac OS X : Outils pour développeurs Apple

Si vous travaillez sous Mac pensez à installer les outils pour développeur Apple, soit en les téléchargeant soit à partir du DVD d'installation de Mac OS X.

Il faut notamment modifier le fichier pom.xml comme indiqué sur cette page Questions fréquentes avec Maven pour le projet GL#tools-jar, afin de faire pointer correctement maven vers le fichier tools.jar.

Quelques conseils spécifiques pour OS X sont disponibles sur la page Projet GL sous Mac OS X .

Installation de Java

Une installation de Java quelconque fera l'affaire. Il vous faudra actuellement Java 1.8. Attention, les versions plus récentes de Java ne marchent pas forcément avec la configuration maven fournie.

1. Vérifiez la version java utilisée actuellement sur votre machine avec: javac -version

2. Si java 1.8 n'est pas installé sur votre machine: selon la distribution, un apt-get install openjdk-8-jdk ou un yum install java-1.8.0-openjdk devrait installer tout cela. Sinon, on peut télécharger Java sur le site d'OpenJDK ou bien sur le site d'Oracle.

3. Si plusieurs versions de Java sont installées sur votre machine, positionnez la variable d'environnement JAVA_HOME sur le JDK 1.8 dans votre .bash_rc avec une ligne comme: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 (en adaptant avec le nom du répertoire d'installation de JDK 1.8 sur votre machine, que vous pouvez trouver par exemple à l'aide de dpkg-query -L openjdk-8-jdk sous debian/ubuntu).
Positionner JAVA_HOME ne change pas la version de Java sur votre machine (java -version reste inchangé), ça change juste la version de Java utilisée dans maven (et netbeans).

4. Si la méthode du point 3 ne permet pas de faire fonctionner maven correctement, vous pouvez essayer sudo update-alternatives --config javac pour imposer le choix de java 1.8 à votre système (mais ça ne devrait pas être nécessaire).

Installation de Maven

Maven est disponible dans Debian et Ubuntu : apt-get install maven

Installer Maven manuellement est très facile : il suffit de télécharger une archive « Binary » depuis cette page http://maven.apache.org/download.cgi, d'extraire l'archive et de placer le répertoire bin/ au début de votre $PATH. Pour plus de détails, voir par exemple cette page si nécessaire.

Une autre option est d'utiliser le Maven distribué avec Netbeans (netbeans/java/maven/bin/mvn): dans ce cas, voir l'installation de netbeans ci-dessous.

Vérifiez que maven fonctionne avec Java version 1.8 en lançant mvn -version. Si ce n'est pas le cas, consultez le paragraphe Faire_le_Projet_GL_sur_une_machine_personnelle#Installation_de_Java ci-dessus.

Installation de Git

Votre distribution contient probablement Git, et il suffira probablement d'un apt-get install git-core gitk, yum install git, ...

Sous Mac téléchargez la dernière version de Git depuis https://git-scm.com/download/mac puis suivez les indications de l'utilitaire.

Installation de Netbeans (optionnelle)

Les versions packagées pour Ubuntu et Debian sont en général cassées (le gestionnaire de plugins ne marche pas). Il est fortement recommandé de faire une installation manuelle. Pour pouvoir utiliser le plugin ANTLRWorks, il faut la version 8.0.1, ni au-dessus, ni en-dessous. En effet, une version 8.0.2 (la plus récente à ce jour) vous donnera une erreur à l'installation du plugin ANTLRWorks (http://plugins.netbeans.org/plugin/53652/antlrworks-2).

Suivre les instructions de téléchargement et d'installation depuis cette page : https://netbeans.org/downloads/8.0.1/

Pour plus de confort, sous Linux, n'hésitez pas à ajouter le chemin vers les binaires netbeans à votre PATH. Il suffit d'ajouter export export PATH="/chemin/vers/dossier/netbeans-8.0.1/bin:$PATH"

Installation du plugin ANTLRWorks pour Netbeans (optionnelle, mais conseillée si votre IDE est netbeans)

Pour avoir la coloration syntaxique dans les fichiers .g4 (grammaires ANTLRv4), installez le plugin ANTLRWorks disponible dans les plugins officiels de Netbeans :

  • Lancer netbeans
  • Dans le « Tools », choisir « Plugins »
  • Onglet « available plugins », choisir « ANTLRWorks editor », puis bouton « install » et se laisser guider.


Installation de l'environnement du projet

Installation de l'arborescence globale du projet (ima)

Récupérez l'arborescence GL/global/ de l'Ensimag sur votre machine. Dans l'exemple, on installe l'arborescence dans ~/ensimag, mais vous pouvez bien sûr adapter :

laptop:~$ mkdir -p ensimag/GL; cd ensimag/GL

Puis, pour les 2A:

laptop:~/ensimag/GL$ git clone ssh://votrelogin@pcserveur.ensimag.fr/matieres/4MMPGL/GL/global/ global

Ou, pour les apprentis 1A:

laptop:~/ensimag/GL$ git clone ssh://votrelogin@pcserveur.ensimag.fr/matieres/3MM1PGL/global/ global

Vérifiez que la commande ima fonctionne :

laptop:~/ensimag/GL$ ./global/bin/ima -v

Si ce n'est pas le cas, vous pouvez recompiler ima sur votre machine comme ceci (la version fournie devrait fonctionner sur architecture 64 bits sous Linux) :

laptop:~/ensimag/GL$ cd global/sources
laptop:~/ensimag/GL/global/sources$ make

Si après avoir exéctuer make, la commande "gnatmake" n'est pas reconnue, c'est que vous devez récupérer la package ADA pour GCC (gcc-ada). ATTENTION (mai 2020): il semble que les Makefiles d'ima ne sont pas robustes aux caractères spéciaux (espaces, apostrophes, accents, etc) dans les noms de répertoire. En attendant, un patch des enseignants, il vaut mieux éviter ce type de caractères dans les noms de répertoire (utiliser juste un mélange de lettres, chiffres, points, soulignés).

La dernière commande devrait compiler aflex, ayacc (qui sont nécessaires pour compiler ima), et ima sur votre machine.

Si des bugs sont trouvés et corrigés dans l'arborescence globale en cours de projet, il faudra simplement faire :

laptop:~$ cd ~/ensimag/GL/global
laptop:~/ensimag/GL/global$ git pull

pour récupérer ces corrections (et si vous aviez eu besoin de recompiler ima, vous devrez recompiler à nouveau)

Configuration de votre compte

Dans le fichier d'initialisation de votre shell :

  • si vous ne savez pas comment il s'appelle ou ce qu'il est, il s'agit sans doute de ~/.bashrc
  • sous Mac il s'agit de ~/.bash_profile


  • Modifier la variable PATH (à la FIN du fichier .bashrc) :
export PATH=$HOME/ensimag/GL/global/bin:$PATH

Vous aurez bien sûr besoin d'appliquer les autre consignes données dans [SeanceMachine] pour avoir les répertoires de votre projet dans le $PATH. $HOME/ensimag/GL/global/bin remplace simplement ~moy/GL/global/bin/.

Une fois ces opérations effectuées, il faut demander à votre shell de relire le fichier .bashrc (sinon, les modifications ne seront effectives qu'au prochain démarrage du shell) :

 $ . ~/.bashrc
  • Récupérer le ~/.gitconfig créé pendant la séance machine si vous n'en avez pas déjà un sur votre machine. Par exemple :
 rsync -v pcserveur.ensimag.fr:.gitconfig ~/.gitconfig

Il est recommandé de refaire les vérifications indiquées dans [SeanceMachine]

Les résultats peuvent être légèrement différents : sur Debian, on obtient, par exemple :

$ which mvn 
/usr/bin/mvn

Vérifiez aussi que mvn -version utilise bien la version Java 1.8.

La commande which ima doit renvoyer quelque chose comme $HOME/ensimag/GL/global/bin/ima selon l'endroit où vous avez installé ima.

Création du répertoire Projet_GL par rapatriement depuis l'archive

Pour les 2A: commande git clone (remplacer NN par le numéro d'équipe et GG par votre numéro de groupe) :

 $ git clone git@gitlab.ensimag.fr:gl2020/gGG/glNN Projet_GL

Pour les apprentis: (remplacer N par le numéro d'équipe entre 1 et 6)

 $ git clone git@gitlab.ensimag.fr:glapp2020/glN Projet_GL

Problèmes et solutions

« S'il n'y a pas de solution, c'est qu'il n'y a pas de problème »

Historique

Fichier initial écrit par Matthieu MOY en janvier 2001 (ouch, ça fait un coup de vieux de relire ça maintenant ;-) ), puis amende par Xavier NICOLLIN, destiné à aider les étudiants à installer un environnement de développement chez eux sous Linux pour le projet GL.

Nous (les enseignants) ne pouvons pas tester toutes les distributions et configurations, mais les corrections pour votre distribution préférée sont les bienvenues !

Modification pour CygWin par Laurent Belcour (2008)

Modification pour Mac OS X par Amaury Balliet (2010)

La suite dans l'historique du Wiki...