Build Instructions/fr

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Compiler en ligne de commande)
(Compiler avec msbuild)
 
(44 intermediate revisions by one user not shown)
Line 1: Line 1:
{{Quicklinks}}
+
 
 +
{{Languages|Build_Instructions}}
  
 
__TOC__
 
__TOC__
Line 8: Line 9:
 
= Compiler =
 
= Compiler =
 
Autant cette page est longue, autant la compilation d'OpenSimulator est rapide. Reportez-vous au fichier BUILDING.txt inclus dans la distribution elle-même pour trouver des instructions simplifiées.
 
Autant cette page est longue, autant la compilation d'OpenSimulator est rapide. Reportez-vous au fichier BUILDING.txt inclus dans la distribution elle-même pour trouver des instructions simplifiées.
 +
 +
== Conditions ==
 +
OpenSimulator 0.9.0.x nécessite soit
 +
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.0] sur Windows
 +
* [https://www.mono-project.com/download/stable/ Mono] sur Linux ou Mac.  Mono 2.10.8 est la version minimale.
 +
Vous pouvez également avoir besoin de l'outil nant.
 +
 +
OpenSimulator >= 0.9.1 (y compris le master actuel) nécessite
 +
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.6] sur Windows
 +
* [https://www.mono-project.com/download/stable/ Mono] sur Linux ou Mac. Mono 5.12 est la version minimum recommandée. <br>
 +
'''Note:''' plutôt que d'utiliser les paquets Mono de votre distribution Linux, qui peuvent manquer de composants requis, veuillez installer à partir du  [https://www.mono-project.com/download/stable/ dépôt officiel de Mono pour votre distribution]. Il est recommandé de compiler avec msbuild.
 +
 +
D'autres plateformes peuvent avoir leurs propres distributions mono, ou peuvent avoir besoin de compiler mono.
 +
 +
D'autres bibliothèques utilisées par OpenSimulator peuvent être trouvées dans notre dépôt git opensim-libs :
 +
 +
git clone git://opensimulator.org/git/opensim-libs
 +
 +
La bibliothèque libOpenMetaVerse utilisée peut être trouvé sur https://bitbucket.org/opensimulator/
 +
 +
Vous devrez peut-être les compiler pour votre plate-forme, en particulier les bibliothèques non gérées comme les bibliothèques de code natif Bullet ou ODE.
 +
 
== Microsoft Windows ==
 
== Microsoft Windows ==
Les versions OpenSimulator 0,8 et postérieure nécessitent soit :
 
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.0] pour Windows ou
 
* [http://www.go-mono.com/mono-downloads/download.html Mono] pour Linux ou Mac.  Mono 2.10.8 est la version minimum.
 
  
 
===Compilateurs supportés===
 
===Compilateurs supportés===
* Visual Studio 2010
+
* [https://visualstudio.microsoft.com/downloads/ Visual Studio Community 2017]
* Visual Studio 2008 peut être utilisé jusqu'à OpenSimulator 0.7.6 - le code développé actuellement requiert Visual Studio 2010 ou un compilateur qui peut compiler le code .NET 4.0.
+
* Ou toute autre version qui supporte la version .Net. Au moins VS2010 pour les versions antérieures à 0.91, VS2015 pour les versions 0.91 et ultérieures.
Toutes les éditions de Visual Studio devraient fonctionner parfaitement, y compris l'édition libre [http://www.microsoft.com/express/downloads/ Microsoft Visual C# Express].
+
* OpenSimulator >=0.9.2.0 peut compiler pour .Net Framework 4.8 en utilisant runprebuild48.bat au lieu de runprebuild.bat ci-dessous et avec VS2017/19/22
 
+
Notez que les versions Visual Studio 2005 et antérieures ne sont plus supportées ([http://www.mail-archive.com/opensim-dev@lists.berlios.de/msg02674.html opensim-dev proposal], [http://www.mail-archive.com/opensim-dev@lists.berlios.de/msg02673.html opensim-dev approved]).
+
  
 
===Compiler dans un IDE===
 
===Compiler dans un IDE===
# Lancez "runprebuild.bat" ou "runprebuild2010.bat" (si vous utilisez Visual Studio 2010 avec le code source de OpenSimulator 0.7.6 ou de versions antérieures).
+
# Lancez "runprebuild.bat".
# Ouvrez le fichier "OpenSim.sln" résultant dans un IDE Visual Studio.
+
# Ouvrez le fichier "OpenSim.sln" résultant dans L'IDE Visual Studio.
# Compilez (ou déboguez) -> Build Solution.
+
# Sélectionnez la configuration Debug ou Release
 
+
# Menu Build -> Build Solution.                                    
 +
 
 
===Compiler en ligne de commande===
 
===Compiler en ligne de commande===
 
# Lancez "runprebuild.bat".
 
# Lancez "runprebuild.bat".
# Lancez me fichier "compile.bat" résultant ou lancez "nant". L'exécutable OpenSim.exe va être construit avec MSBuild (l'ancien) ou nant (le dernier).
+
# Lancez le fichier "compile.bat" résultant.
  
===Notes complémentaires===
+
== Linux et autres plates-formes mono ==
  
== Mac OS X ==
+
=== Préparer la compilation ===
== Linux ==
+
 
 +
Pour créer les différents fichiers du projet, exécuter dans le dossier opensim :
 +
 
 +
  ./runprebuild.sh
 +
 
 +
==== Compiler avec Nant ====
 +
 
 +
Sur certaines versions de mono, en particulier les anciennes versions peuvent nécessiter d'utiliser l'utilisation de nant pour compiler correctement OpenSimulator, dans ce cas il suffit d'exécuter :
 +
 +
nant
 +
 
 +
==== Compiler avec xbuild ====
 +
 
 +
Sur les versions mono, vous pouvez simplement utiliser xbuild. (msbuild est recommandé pour la version 0.9.1.0.0+)
 +
 
 +
  xbuild
 +
 
 +
xbuild n'est plus recommandé sur mono 5.x, mais fonctionne toujours actuellement (5.12)
 +
 
 +
>>>> L'outil xbuild est obsolète et sera supprimé dans les prochaines mises à jour, utilisez plutôt msbuild <<<<
 +
 
 +
Sur les versions mono plus récentes, la configuration de la version peut donner un certain gain de performance, mais vous perdez certaines capacités de débogage.
 +
<br>Compiler avec la configuration Release :
 +
 
 +
    xbuild /p:Configuration=Release
 +
 
 +
==== Compiler avec msbuild ====
 +
 
 +
Pour Opensim 0.9.1 vous pouver encore utiliser xbuild mais Mono recommande l'utilisation de msbuild. Pour cela, vous devrez peut-être installer le paquet msbuild en plus de mono-complete. (Actuellement, msbuild est inclus si vous installez mono-complete, sur Ubuntu, à partir des dépôts mono officiels. https://www.mono-project.com/download/stable/#download-lin ).
 +
 
 +
Utilisez xbuild sur les autres cas en dernier recours.
 +
 
 +
Des améliorations récentes, en particulier sur le runtime JIT, justifient la compilation en configuration Release, mais vous perdez certaines capacités de débogage.
 +
 
 +
Compiler avec la configuration de débogage :
 +
 
 +
  msbuild
 +
 
 +
Compiler avec la configuration Release :
 +
 
 +
  msbuild /p:Configuration=Release
 +
 
 +
Compiler avec la configuration debug et afin que le fichier détaillé OpenSim.log puisse être lu avec un éditeur de texte :
 +
 
 +
  msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d
 +
 
 +
Vous pouvez spécifier les valeurs suivantes pour définir le niveau de détail du fichier OpenSim.log :
 +
   
 +
  q [quiet], m [minimal], n [normal], d [detailed] and diag [diagnostic].
 +
 
 +
Pour compiler pour .Net Framework 4.8 avec mono >=6.12. vous pouvez exécuter runprebuild48.sh au lieu de runprebuild.sh ci-dessus. Toutefois, il n'y a pas beaucoup d'intérêt à faire cela, si ce n'est aucun.
 +
 
 +
== Compilation anticipée (Ahead of Time compilation) (AOT) ==
 +
 
 +
Comme vous le savez tous, les fichiers *.exe et .dll créés par le processus de compilation ci-dessus ne contiennent pas de code natif pour la machine.<br>
 +
Avec ces fichiers, le code natif requis par l'ordinateur est créé au moment de l'exécution, selon les besoins, dans un processus appelé Just in Time (JIT)(compilation à la volée). <br>
 +
Il est possible de faire une autre niveau de compilation sur ces fichiers pour créer un code natif, qui sera prêt au démarrage du programme. C'est le processus AOT (Ahead of time process).<br>
 +
Comme le JIT se fait à l'exécution, il dispose d'un temps limité pour effectuer des optimisations de code étendues, AOT, en revanche, peut tout faire.<br>
 +
AOT devrait ainsi être plus rapide à charger, économiser la mémoire nécessaire au travail du JIT et réduire la latence due à la génération de code lorsqu'une nouvelle section de code est nécessaire.<br>
 +
De cette façon, AOT contribue à réduire l'énorme écart de performance entre le C# et un langage plus approprié comme le C++, même si le JIT peut effectuer une certaine optimisation en fonction de l'état d'exécution du code, ce que AOT ne peut pas faire. (si vous pensez que c# est aussi rapide qu'un code C++ efficace, mieux vaut fumez autre chose...)<br>
 +
En fait, aussi bien .net que mono utilisent AOT sur leurs composants lors de l'installation<br>
 +
Le JIT sera toujours actif et compilera un autre code au moment de l'exécution. OpenSim et les parties utilisées du framework .net/mono en dépendent.
 +
 
 +
Pour Linux, la version 0.9.2.0 inclut désormais les scripts makeaot.sh et cleanaot.sh pour aider à tester AOT.<br>
 +
Lancez makeaot.sh après l'étape de compilation ci-dessus, pour générer les fichiers de code natif. L'option -O=all doit être ajoutée à mono lors de l'exécution de opensim.exe, ex:<br>
 +
 
 +
  mono --desktop -O=all OpenSim.exe
 +
 
 +
Le script cleanaot.sh supprime les fichiers binaires utilisés par AOT. Vous devez l'exécuter si vous recompilez le code (pour être protégé même si vous exécutez makeaot).<br>
 +
<b>N'OUBLIEZ PAS de lancer makeaot.sh ou cleanaot.sh après la recompilation!</b><br>
 +
Les fichiers générés sont spécifiques à cette machine. <b>Ne pas copier les fichiers de code natif sur une autre machine, sauf si elle est absolument identique</b><br>
 +
Les .exe et .dll originaux sont toujours nécessaires<br>
 +
 
 +
AOT est également possible dans Windows, mais en utilisant différents outils, et ceux-ci ajoutent des choses au dépôt central sur la machine, plus difficile à isoler et à maintenir. voir [https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator ngen]<br>
 +
 
 +
Les Macs sont.. Les Macs.. Les futurs modèles pourraient totalement interdire le JIT, comme le font les produits mobiles d'Apple. Le Mono AOT sur les Macs actuels pourrait fonctionner comme sur Linux<br>
 +
 
 +
En pratique, ne vous attendez pas à un chargement plus rapide.
 +
De plus, comme la compilation est différente, elle peut ajouter de nouveaux problèmes. Donc, testez avec soin.<br>
 +
Les problèmes de performance d'Opensim concernent principalement son propre code, les terribles mauvais protocoles de communication, l'utilisation d'un mauvais code .net/mono framework (qualité de la démo dans les mêmes cas), etc.<br>
 +
Et bien sûr, GC éternellement cassé. <br>
 +
''But... well every ns counts..''<br>
  
 
= Configuration =
 
= Configuration =
 +
 +
Voir [[Configuration/fr|Configuration]].
 +
 +
[[Category:French Translations]]

Latest revision as of 02:13, 5 March 2022


Contents


Cette page couvre la compilation d'OpenSimulator à partir du code source pour plusieurs plateformes. S'il vous plaît, aidez-nous à garder cette page à jour pour au fur et à mesure que le projet progresse. Si vous voulez simplement lancer une instance d'OpenSimulator, téléchargez et lancez la version binaire à la place. Dans la plupart des cas, cette version fonctionne très bien.

[edit] Obtenir le code source

Allez à la page de téléchargement pour trouver des instructions et la dernière version du code source. Si vous voulez le code de développement courant,( comme par exemple la branche maître Git) allez à la page Developer_Documentation#Source_Code_Repository_Access.

[edit] Compiler

Autant cette page est longue, autant la compilation d'OpenSimulator est rapide. Reportez-vous au fichier BUILDING.txt inclus dans la distribution elle-même pour trouver des instructions simplifiées.

[edit] Conditions

OpenSimulator 0.9.0.x nécessite soit

Vous pouvez également avoir besoin de l'outil nant.

OpenSimulator >= 0.9.1 (y compris le master actuel) nécessite

Note: plutôt que d'utiliser les paquets Mono de votre distribution Linux, qui peuvent manquer de composants requis, veuillez installer à partir du dépôt officiel de Mono pour votre distribution. Il est recommandé de compiler avec msbuild.

D'autres plateformes peuvent avoir leurs propres distributions mono, ou peuvent avoir besoin de compiler mono.

D'autres bibliothèques utilisées par OpenSimulator peuvent être trouvées dans notre dépôt git opensim-libs :

git clone git://opensimulator.org/git/opensim-libs

La bibliothèque libOpenMetaVerse utilisée peut être trouvé sur https://bitbucket.org/opensimulator/

Vous devrez peut-être les compiler pour votre plate-forme, en particulier les bibliothèques non gérées comme les bibliothèques de code natif Bullet ou ODE.

[edit] Microsoft Windows

[edit] Compilateurs supportés

  • Visual Studio Community 2017
  • Ou toute autre version qui supporte la version .Net. Au moins VS2010 pour les versions antérieures à 0.91, VS2015 pour les versions 0.91 et ultérieures.
  • OpenSimulator >=0.9.2.0 peut compiler pour .Net Framework 4.8 en utilisant runprebuild48.bat au lieu de runprebuild.bat ci-dessous et avec VS2017/19/22

[edit] Compiler dans un IDE

  1. Lancez "runprebuild.bat".
  2. Ouvrez le fichier "OpenSim.sln" résultant dans L'IDE Visual Studio.
  3. Sélectionnez la configuration Debug ou Release
  4. Menu Build -> Build Solution.

[edit] Compiler en ligne de commande

  1. Lancez "runprebuild.bat".
  2. Lancez le fichier "compile.bat" résultant.

[edit] Linux et autres plates-formes mono

[edit] Préparer la compilation

Pour créer les différents fichiers du projet, exécuter dans le dossier opensim :

 ./runprebuild.sh

[edit] Compiler avec Nant

Sur certaines versions de mono, en particulier les anciennes versions peuvent nécessiter d'utiliser l'utilisation de nant pour compiler correctement OpenSimulator, dans ce cas il suffit d'exécuter :

nant

[edit] Compiler avec xbuild

Sur les versions mono, vous pouvez simplement utiliser xbuild. (msbuild est recommandé pour la version 0.9.1.0.0+)

 xbuild

xbuild n'est plus recommandé sur mono 5.x, mais fonctionne toujours actuellement (5.12)

>>>> L'outil xbuild est obsolète et sera supprimé dans les prochaines mises à jour, utilisez plutôt msbuild <<<<

Sur les versions mono plus récentes, la configuration de la version peut donner un certain gain de performance, mais vous perdez certaines capacités de débogage.
Compiler avec la configuration Release :

   xbuild /p:Configuration=Release

[edit] Compiler avec msbuild

Pour Opensim 0.9.1 vous pouver encore utiliser xbuild mais Mono recommande l'utilisation de msbuild. Pour cela, vous devrez peut-être installer le paquet msbuild en plus de mono-complete. (Actuellement, msbuild est inclus si vous installez mono-complete, sur Ubuntu, à partir des dépôts mono officiels. https://www.mono-project.com/download/stable/#download-lin ).

Utilisez xbuild sur les autres cas en dernier recours.

Des améliorations récentes, en particulier sur le runtime JIT, justifient la compilation en configuration Release, mais vous perdez certaines capacités de débogage.

Compiler avec la configuration de débogage :

  msbuild

Compiler avec la configuration Release :

  msbuild /p:Configuration=Release

Compiler avec la configuration debug et afin que le fichier détaillé OpenSim.log puisse être lu avec un éditeur de texte :

  msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d

Vous pouvez spécifier les valeurs suivantes pour définir le niveau de détail du fichier OpenSim.log :

  q [quiet], m [minimal], n [normal], d [detailed] and diag [diagnostic].

Pour compiler pour .Net Framework 4.8 avec mono >=6.12. vous pouvez exécuter runprebuild48.sh au lieu de runprebuild.sh ci-dessus. Toutefois, il n'y a pas beaucoup d'intérêt à faire cela, si ce n'est aucun.

[edit] Compilation anticipée (Ahead of Time compilation) (AOT)

Comme vous le savez tous, les fichiers *.exe et .dll créés par le processus de compilation ci-dessus ne contiennent pas de code natif pour la machine.
Avec ces fichiers, le code natif requis par l'ordinateur est créé au moment de l'exécution, selon les besoins, dans un processus appelé Just in Time (JIT)(compilation à la volée).
Il est possible de faire une autre niveau de compilation sur ces fichiers pour créer un code natif, qui sera prêt au démarrage du programme. C'est le processus AOT (Ahead of time process).
Comme le JIT se fait à l'exécution, il dispose d'un temps limité pour effectuer des optimisations de code étendues, AOT, en revanche, peut tout faire.
AOT devrait ainsi être plus rapide à charger, économiser la mémoire nécessaire au travail du JIT et réduire la latence due à la génération de code lorsqu'une nouvelle section de code est nécessaire.
De cette façon, AOT contribue à réduire l'énorme écart de performance entre le C# et un langage plus approprié comme le C++, même si le JIT peut effectuer une certaine optimisation en fonction de l'état d'exécution du code, ce que AOT ne peut pas faire. (si vous pensez que c# est aussi rapide qu'un code C++ efficace, mieux vaut fumez autre chose...)
En fait, aussi bien .net que mono utilisent AOT sur leurs composants lors de l'installation
Le JIT sera toujours actif et compilera un autre code au moment de l'exécution. OpenSim et les parties utilisées du framework .net/mono en dépendent.

Pour Linux, la version 0.9.2.0 inclut désormais les scripts makeaot.sh et cleanaot.sh pour aider à tester AOT.
Lancez makeaot.sh après l'étape de compilation ci-dessus, pour générer les fichiers de code natif. L'option -O=all doit être ajoutée à mono lors de l'exécution de opensim.exe, ex:

 mono --desktop -O=all OpenSim.exe

Le script cleanaot.sh supprime les fichiers binaires utilisés par AOT. Vous devez l'exécuter si vous recompilez le code (pour être protégé même si vous exécutez makeaot).
N'OUBLIEZ PAS de lancer makeaot.sh ou cleanaot.sh après la recompilation!
Les fichiers générés sont spécifiques à cette machine. Ne pas copier les fichiers de code natif sur une autre machine, sauf si elle est absolument identique
Les .exe et .dll originaux sont toujours nécessaires

AOT est également possible dans Windows, mais en utilisant différents outils, et ceux-ci ajoutent des choses au dépôt central sur la machine, plus difficile à isoler et à maintenir. voir ngen

Les Macs sont.. Les Macs.. Les futurs modèles pourraient totalement interdire le JIT, comme le font les produits mobiles d'Apple. Le Mono AOT sur les Macs actuels pourrait fonctionner comme sur Linux

En pratique, ne vous attendez pas à un chargement plus rapide. De plus, comme la compilation est différente, elle peut ajouter de nouveaux problèmes. Donc, testez avec soin.
Les problèmes de performance d'Opensim concernent principalement son propre code, les terribles mauvais protocoles de communication, l'utilisation d'un mauvais code .net/mono framework (qualité de la démo dans les mêmes cas), etc.
Et bien sûr, GC éternellement cassé.
But... well every ns counts..

[edit] Configuration

Voir Configuration.

Personal tools
General
About This Wiki