Build Instructions/de

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Erhalten des Quellcodes)
Line 1: Line 1:
 
{{Quicklinks|Build_Instructions}}
 
{{Quicklinks|Build_Instructions}}
  
Diese Seite behandelt das Erstellen von OpenSimulator aus dem Quellcode auf mehreren Plattformen.  
+
Diese Seite behandelt den Bau von OpenSimulator aus dem Quellcode auf verschiedenen Plattformen. Bitte helfen Sie uns dabei, diese Seite auf dem neuesten Stand zu halten, während das Projekt fortschreitet. Wenn Sie nur OpenSimulator ausführen möchten, laden Sie stattdessen die binäre Version herunter und führen Sie sie aus. In den meisten Fällen sollten Sie mit den Binärdateien in Ordnung sein.
  
Bitte helfen Sie uns, diese Seite während des Projektfortschritts auf dem neuesten Stand zu halten.
+
= Bezug des Quellcodes =
  
Wenn Sie OpenSimulator nur ausführen möchten, [[Download]] und [[Configuration|run]] stattdessen den Binär-Build.  
+
Schauen Sie auf der [[Download]]-Seite nach Anweisungen zum Bezug einer OpenSimulator-Quellcodeversion. Wenn Sie den aktuellen Entwicklungscode möchten (d.h. den Git-Master-Branch), siehe [[Developer_Documentation#Source_Code_Repository_Access]].
  
In den meisten Fällen sollten Sie mit Binärdateien zurechtkommen.
+
= Erstellung =
  
= Erhalten des Quellcodes =
+
Obwohl diese Seite lang ist, ist das Erstellen im Allgemeinen recht einfach. Sehen Sie die BUILDING.txt-Datei in der Distribution selbst für vereinfachte Anweisungen.
 
+
Auf der [[Download]] Seite finden Sie Anweisungen zum Erhalt einer OpenSimulator-Quellversion.
+
 
+
Wenn Sie den aktuellen Entwicklungscode (d. h. den Git-Master-Branch) wollen, siehe [[Developer_Documentation#Source_Code_Repository_Access]].
+
 
+
= Building =
+
 
+
Obwohl diese Seite lang ist, ist das Bauen im Allgemeinen recht einfach. Eine vereinfachte Anleitung finden Sie in der Datei BUILDING.txt in der Distribution selbst.
+
  
 
== Version 0.9.3.0 und höher ==
 
== Version 0.9.3.0 und höher ==
Microsoft stoppte die Entwicklung von .Net Framework und Mono und ersetzte sie durch das neue dotnet.
+
Microsoft hat die Entwicklung von .Net Framework und Mono eingestellt und durch das neue dotnet ersetzt. Dies ist eine bedeutende Änderung, der wir ab Version 0.9.3.0 folgen.
  
Dies ist eine bedeutende bahnbrechende Änderung, der wir versuchen, auf 0.9.3.0 zu folgen.
 
  
Eine Besonderheit ist, der Startvorgang hat sich geändert, es wird nicht mehr mit ''' mono OpenSim.exe ''' gestartet, sondern mit ''' dotnet OpenSim.dll '''.
+
=== Bezug des Quellcodes ===
  
 +
Holen oder aktualisieren Sie den Quellcode von Git.
  
=== Quellcode abrufen ===
+
git clone git://opensimulator.org/git/opensim
  
Holen oder aktualisieren Sie die Quelle von Git
+
=== Erstellung unter Windows ===
 +
Um unter Windows zu erstellen, sind folgende Schritte erforderlich:
  
git clone git://opensimulator.org/git/opensim
+
    [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 dotnet 8.0 SDK]
  
Wechseln Sie in den dotnet6 Zweig
+
optional auch
  
cd opensim
+
    Visual Studio .NET, Version 2022 oder höher
git checkout dotnet6
+
  
=== Erstellen auf Windows ===
+
Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:
Um unter Windows zu bauen, ist Folgendes erforderlich:
+
  
* Visual Studio .NET, version 2022 oder später
+
  runprebuild.bat
  
oder  
+
Laden Sie die generierte OpenSim.sln in Visual Studio und erstellen Sie die Lösung, oder führen Sie einfach aus:
 +
compile.bat
  
* [https://dotnet.microsoft.com/en-us/download/dotnet/6.0 dotnet 6.0 SDK and Desktop Runtime]
+
Für die Ausführung benötigen Sie möglicherweise auch:
  
 +
    die [https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Laufzeitdateien für vc++] installieren
 +
    die Installation eines älteren .NetFramework 3.5 autorisieren
  
Erstellen Sie die Projektdateien, die ausgeführt werden:
+
Konfigurieren Sie diesbezüglich. Siehe [[Configuration]].
  
runprebuild.bat
+
Führen Sie nun einfach OpenSim.exe aus dem bin-Ordner aus und richten Sie die Region ein.
  
Laden Sie die generierte OpenSim.sln in Visual Studio und erstellen Sie die Lösung oder führen Sie sie einfach aus:
+
=== Erstellung unter Linux / Mac ===
compile.bat
+
  
zum laufen braucht man evtl
+
Sie benötigen:
* um die [https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 run time files for vc++] zu installieren
+
* um die Installation von älterem .NetFramework 3.5 zu autorisieren
+
  
 +
    [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 dotnet 8.0 SDK]
 +
    libgdiplus
 +
    ** Wenn Sie bereits Mono 6.x komplett installiert haben, haben Sie bereits libgdiplus, andernfalls müssen Sie es mit einem Paketmanager für Ihr Betriebssystem installieren, z. B. apt, brew, macports usw. Zum Beispiel unter Debian:
 +
    *** apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
  
Konfigurieren, siehe [[Configuration]].
+
Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:
  
 +
./runprebuild.sh
  
Führen Sie jetzt einfach OpenSim.exe aus dem bin-Ordner aus und richten Sie die Region ein.
+
führen Sie dann aus:
  
=== Erstellen auf Linux / Mac ===
+
dotnet build --configuration Release OpenSim.sln
  
Was sie brauchen:
+
oder einfach:
* [https://dotnet.microsoft.com/en-us/download/dotnet/6.0 dotnet 6.0 SDK and Runtime]
+
* libgdiplus
+
**Wenn Sie mono 6.x complete haben, haben Sie bereits libgdiplus, ansonsten müssen Sie es zum Beispiel auf Debian installieren:
+
**apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
+
  
 +
./compile.sh
  
Erstellen Sie die Projektdateien, führen Sie Folgendes aus:
+
Konfigurieren Sie diesbezüglich. Siehe [[Configuration]].
  
./runprebuild.sh
+
Führen Sie ./opensim.sh aus dem bin-Ordner aus und richten Sie die Region ein
 
+
dann starten sie:
+
dotnet build --configuration Release OpenSim.sln
+
 
+
oder nur:
+
./compile.sh
+
 
+
 
+
Konfigurieren. Siehe [[Configuration]].
+
 
+
 
+
Führen Sie ./opensim.sh aus dem bin Ordner aus und richten Sie die Region ein.
+
  
 
== Ältere Versionen ==
 
== Ältere Versionen ==
 +
Der Quellcode für alte .Net Framework 4.x und Mono befindet sich im Branch Mono-Net4X. Dies ist größtenteils derselbe Code wie bei der Veröffentlichung von 0.9.2.2.
  
== Bedarf ==
+
== Anforderungen ==
  
 
OpenSimulator 0.9.0.x erfordert entweder
 
OpenSimulator 0.9.0.x erfordert entweder
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.0] für Windows
 
* [https://www.mono-project.com/download/stable/ Mono]    unter Linux oder Mac. Mono 2.10.8 ist die Mindestversion.
 
  
Möglicherweise benötigen Sie auch ein Tool.  
+
    [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.0] unter Windows
 +
    [https://www.mono-project.com/download/stable/ Mono] unter Linux oder Mac. Mono 2.10.8 ist die Mindestversion.
 +
    Sie benötigen möglicherweise auch das nant-Tool.
  
 +
OpenSimulator >= 0.9.1 (einschließlich des aktuellen Master) erfordert
  
OpenSimulator 0.9.1 erfordert entweder
+
    [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.6] unter Windows
* [http://msdn.microsoft.com/en-us/netframework/cc378097 .NET Framework 4.6] unter Windows
+
    [https://www.mono-project.com/download/stable/ Mono] unter Linux oder Mac. Mono 5.12 ist die empfohlene Mindestversion.<br>'''Hinweis:''' Verwenden Sie nicht die Mono-Pakete Ihrer Linux-Distribution, da möglicherweise erforderliche Komponenten fehlen. Bitte [https://www.mono-project.com/download/stable/ installieren Sie sie aus dem offiziellen Mono-Repo Ihrer Distribution].
* [https://www.mono-project.com/download/stable/ Mono] unter Linux oder Mac. Mono 5.12 ist die empfohlene Mindestversion.
+
    Es wird empfohlen, mit msbuild zu kompilieren.
  
 +
Andere Plattformen haben möglicherweise eigene Mono-Distributionen, oder Sie müssen Mono darauf kompilieren.
  
Andere Plattformen können eigene Mono-Distributionen haben oder müssen Mono-Kompilate auf ihnen erstellen.
+
Andere von OpenSimulator verwendete Bibliotheken finden Sie in unserem opensim-libs-Git-Repository:
  
 +
git clone git://opensimulator.org/git/opensim-libs
  
Andere von OpenSimulator verwendete Bibliotheken finden Sie in unserem opensim-libs git repo.
+
Verwendetes libOpenMetaVerse finden Sie unter https://bitbucket.org/opensimulator/
 
+
git clone git://opensimulator.org/git/opensim-libs
+
  
Möglicherweise müssen Sie sie für Ihre Plattform kompilieren, insbesondere die nicht verwalteten Bibliotheken wie Bullet oder ODE native Code-Bibliotheken
+
Möglicherweise müssen Sie sie für Ihre Plattform kompilieren, insbesondere die nicht verwalteten wie Bullet oder ODE-Native-Code-Bibliotheken
  
 
== MS Windows ==
 
== MS Windows ==
  
 
=== Unterstützte Compiler ===
 
=== Unterstützte Compiler ===
* [https://visualstudio.microsoft.com/downloads/ Visual Studio Community 2017]
 
* Oder jede Version, die die .Net-Version unterstützt. VS2010 kann beispielsweise für OpenSimulator-Versionen vor 0.9.1 verwendet werden.
 
  
=== Kompilieren in einer IDE ===
+
    [https://visualstudio.microsoft.com/downloads/ Visual Studio Community 2017]
# Führen Sie "runprebuild.bat" aus
+
    Oder jede Version, die die entsprechende .Net-Version unterstützt. Mindestens VS2010 für Versionen vor 0.91, VS2015 für 0.91 und später.
# Öffnen Sie das resultierende "OpenSim.sln" in Visual Studio IDE.
+
    OpenSimulator >=0.9.2.0 kann für .Net Framework 4.8 kompilieren, indem runprebuild48.bat anstelle von runprebuild.bat unten verwendet wird und mit VS2017/19/22
# Wählen Sie die Debug- oder Release-Konfiguration
+
# Menu Build -> Build Solution.
+
  
=== Kompilieren mit der Eingabeaufforderung ===
+
=== Kompilierung in einer IDE ===
# Führen Sie "runprebuild.bat" aus
+
Führen Sie "runprebuild.bat" aus.
# Führen Sie die resultierende Datei "compile.bat" aus.
+
Öffnen Sie die resultierende "OpenSim.sln" in der Visual Studio IDE.
 +
Wählen Sie Debug- oder Release-Konfiguration
 +
Menü Build -> Build Solution.
 +
 
 +
=== Kompilierung an der Eingabeaufforderung ===
 +
Führen Sie "runprebuild.bat" aus.
 +
Führen Sie die resultierende Datei "compile.bat" aus.
  
 
== Linux und andere Mono-Plattformen ==
 
== Linux und andere Mono-Plattformen ==
  
=== Bereiten Sie die Kompilierung vor ===
+
=== Vorbereitung für die Kompilierung ===
Um mehrere Projektdateien zu erstellen, führen Sie sie im Ordner opensim aus:
+
Um die verschiedenen Projektdateien zu erstellen, führen Sie im Ordner opensim aus:
  
  ./runprebuild.sh
+
./runprebuild.sh
  
==== Kompilieren mit NAnt ====
+
==== Kompilieren mit Nant ====
Bei einigen Mono-Versionen, insbesondere bei alten Versionen, ist möglicherweise die Verwendung von nant erforderlich, um den OpenSimulator korrekt zu kompilieren. In diesem Fall führen Sie einfach Folgendes aus:
+
Auf einigen Mono-Versionen, insbesondere auf alten, kann es erforderlich sein, nant zum ordnungsgemäßen Kompilieren von OpenSimulator zu verwenden. Führen Sie in diesem Fall einfach aus:
  
  nant
+
nant
  
NAnt tool macht bei neuen OpenSim Versionen Probleme, verwenden Sie stattdessen msbuild.
+
==== Kompilieren mit xbuild ====
  
==== Kompiliere mit xbuild ====
+
Auf Mono-Versionen können Sie einfach xbuild verwenden. ''(msbuild wird ab 0.9.1.0.0 empfohlen)''
  
On mono versions you can just use xbuild.
+
xbuild
  
  xbuild
+
xbuild wird auf Mono 5.x nicht mehr empfohlen, funktioniert jedoch derzeit noch (5.12)
  
xbuild tool ist veraltet und wird in zukünftigen Updates entfernt, verwenden Sie stattdessen msbuild
+
''>>>> xbuild-Tool ist veraltet und wird in zukünftigen Updates entfernt, verwenden Sie stattdessen msbuild <<<<''
  
==== Kompilieren mit Msbuild ====
+
Auf neueren Mono-Versionen kann die Release-Konfiguration einige Leistungsvorteile bringen, aber Sie verlieren einige Debug-Fähigkeiten.
Für Opensim 0.9.1 können Sie weiterhin xbuild verwenden, Mono empfiehlt jedoch die Verwendung von msbuild. Möglicherweise müssen Sie das Paket msbuild zusätzlich zu mono-complete installieren. (Derzeit ist msbuild enthalten, wenn Sie Mono-Complete unter Ubuntu aus den offiziellen Mono-Repositorys installieren.
+
zum Kompilieren der Release-Konfiguration:
 +
xbuild /p:Configuration=Release
  
Verwenden Sie xbuild in den anderen Fällen als letzten Ausweg.
+
==== Kompilieren mit msbuild ====
 +
Für Opensim 0.9.1 können Sie immer noch xbuild verwenden, aber Mono empfiehlt die Verwendung von msbuild. Sie müssen möglicherweise das Paket msbuild zusätzlich zu mono-complete installieren. (Aktuell ist msbuild in mono-complete enthalten, auf Ubuntu, aus den offiziellen Mono-Repositories. https://www.mono-project.com/download/stable/#download-lin )
  
Jüngste Verbesserungen, insbesondere an der JIT-Laufzeit, rechtfertigen das Kompilieren in der Release-Konfiguration, aber Sie verlieren einige Debug-Funktionen.
+
Verwenden Sie xbuild in den anderen Fällen als letztes Mittel.
  
um mit der Debug-Konfiguration zu kompilieren:
+
Neuere Verbesserungen, insbesondere am JIT-Laufzeitmodus, rechtfertigen das Kompilieren in der Release-Konfiguration, aber Sie verlieren einige Debug-Fähigkeiten.
  msbuild
+
  
mit Release Konfiguration kompilieren:
+
für die Kompilierung mit Debug-Konfiguration:
  msbuild /p:Configuration=Release
+
msbuild
  
Zum Kompilieren mit der Debug Konfiguration und der detaillierten Datei opensim.log, diese kann dann mit einem Texteditor diese kann zur Diagnose der Fehler gelesen werden:
+
für die Kompilierung mit Release-Konfiguration:
  msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d
+
msbuild /p:Configuration=Release
  
Sie können die folgenden Werte für den Detaillierungsgrad der Datei opensim.log angeben:
+
für die Kompilierung mit der Debug-Konfiguration und der detaillierten opensim.log-Datei, die dann mit einem Texteditor gelesen werden kann:
  q [still], m [minimal], n [normal], d [detailliert] und diag [diagnostisch].
+
msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d
  
msbuild Übersicht: [https://docs.microsoft.com/de-de/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2017  msbuild command line reference]
+
Sie können die folgenden Werte für die Detailstufe der opensim.log-Datei angeben:
 +
q [leise], m [minimal], n [normal], d [detailliert] und diag [diagnostisch].
  
== Ahead of Time Zusammenstellung (AOT) ==
+
Um für .Net Framework 4.8 mit Mono >=6.12 zu kompilieren, können Sie runprebuild48.sh anstelle von runprebuild.sh oben ausführen. Dabei wird nicht viel gewonnen.
Wie Sie alle wissen, enthalten die durch den obigen Kompilierungsprozess erstellten Dateien * .exe und .dll keinen nativen Code für den Computer.<br>
+
Mit diesen Dateien wird der von der CPU benötigte native Code zur Laufzeit nach Bedarf in einem als Just in Time (JIT) bezeichneten Prozess erstellt.<br>
+
Es ist möglich, eine weitere Kompilierungsphase für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn Das Programm startet. Dies ist der Ahead of Time-Prozess (AOT).<br>
+
Da JIT zur Laufzeit ausgeführt wird, ist die Zeit für umfangreiche Codeoptimierungen begrenzt. AOT kann dagegen alles tun.<br>
+
AOT sollte auf diese Weise schneller zu laden sein, den für die JIT-Arbeit benötigten Speicher einsparen und die Latenz aufgrund der Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.<br>
+
Auf diese Weise hilft AOT dabei, die große Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, selbst wenn man bedenkt, dass JIT abhängig vom aktuellen Code-Ausführungsstatus eine Optimierung durchführen kann, die AOT nicht kann. (Wenn Sie der Meinung sind, dass c# so schnell ist wie kompetenter C++ Code, ändern Sie besser, was Sie rauchen ...)<br>
+
Tatsächlich sind sowohl .net als auch mono do AOT auf ihren Komponenten während der Installation von<br>
+
JIT weiterhin aktiv und kompilieren zur Laufzeit einen anderen Code . OpenSim und verwendete .net / Mono-Framework-Teile hängen davon ab.<br>
+
  
Für Linux enthält 0.9.2.0 jetzt die Skripte makeaot.sh und cleanaot.sh, um das Testen von AOT zu erleichtern.<br>
+
== Ahead-of-Time-Kompilierung (AOT)==
Führen Sie makeaot.sh nach der obigen Kompilierungsphase aus, um die nativen Codedateien zu generieren. Die Option -O = all muss bei der Ausführung von opensim.exe zu mono hinzugefügt werden, z.<br>
+
Wie Sie alle wissen, enthalten die durch den Kompilierungsprozess oben erstellten Dateien *.exe und .dll keinen nativen Code für die Maschine.<br>
 
+
Mit diesen Dateien wird der native Code, den die CPU benötigt, bei Bedarf zur Laufzeit erstellt, in einem Prozess, der als Just-in-Time (JIT) bekannt ist.<br>
    mono --desktop -O=all OpenSim.exe
+
Es ist möglich, einen weiteren Kompilierungsschritt für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn das Programm startet. Dies ist der AOT-Prozess (Ahead of time).<br>
 
+
Da JIT zur Laufzeit durchgeführt wird, hat es nur begrenzte Zeit für umfangreiche Codeoptimierungen. AOT kann andererseits alles tun.<br>
Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn makeaot ausgeführt wird).<br>
+
AOT sollte auf diese Weise schneller geladen werden, etwas den Speicherbedarf der JIT-Arbeit sparen und die Latenz durch Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.<br>
 +
Auf diese Weise hilft AOT, die enorme Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, auch wenn JIT einige Optimierungen abhängig vom aktuellen Codeausführungszustand durchführen kann, die AOT nicht kann. (Wenn Sie denken, dass C# genauso schnell ist wie kompetenter C++-Code, sollten Sie besser ändern, was Sie rauchen...)<br>
 +
Tatsächlich führen sowohl .NET als auch Mono AOT bei ihren Komponenten während der Installation durch.<br>
 +
JIT wird weiterhin aktiv sein und einige andere Codes zur Laufzeit kompilieren. OpenSim und verwendete .NET/Mono-Frameworkteile sind darauf angewiesen.<br>
  
 +
Für Linux enthält 0.9.2.0 jetzt Skripte makeaot.sh und cleanaot.sh, um AOT-Tests zu erleichtern.<br>
 +
Führen Sie makeaot.sh nach dem oben genannten Kompilierungsschritt aus, um die nativen Code-Dateien zu generieren. Die Option -O=all muss zu mono hinzugefügt werden, wenn opensim.exe ausgeführt wird, z.B.:<br>
 +
mono --desktop -O=all OpenSim.exe
 +
Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn Sie makeaot ausführen).<br>
 
<b>VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!</b><br>
 
<b>VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!</b><br>
 +
Die generierten Dateien sind spezifisch für diese Maschine. <b>Kopieren Sie die nativen Code-Dateien nicht auf andere Maschinen, es sei denn, sie sind absolut identisch</b><br>
 +
Die Original-.exe- und .dll-Dateien sind weiterhin erforderlich.<br>
  
Die generierten Dateien sind spezifisch für diesen Computer. Kopieren Sie die nativen Codedateien nicht auf einen anderen Computer, es sei denn, sie sind absolut identisch.<br>
+
AOT ist auch unter Windows möglich, jedoch mit anderen Tools, die Dinge zum zentralen Repository auf der Maschine hinzufügen, schwerer zu isolieren und zu pflegen. siehe [https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator ngen]<br>
Die ursprüngliche EXE- und DLL-Datei wird weiterhin benötigt
+
 
+
AOT ist auch in Windows möglich, verwendet jedoch verschiedene Tools, die das zentrale Repository auf dem Computer erweitern und schwieriger zu isolieren und zu warten sind. siehe ngen<br>
+
  
Macs sind .. Macs .. Zukünftige Modelle können JIT völlig verbieten, so wie es Apple Mobile-Produkte tun. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie unter Linux<br>
+
Macs sind.. Macs.. Zukünftige Modelle können JIT vollständig verbieten, wie es bei Apple-Mobilprodukten der Fall ist. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie auf Linux<br>
  
Erwarten Sie im praktischen Gebrauch nicht viel mehr als ein bisschen schnelleres Laden.<br>
+
In der praktischen Anwendung erwarten Sie nicht viel mehr als etwas schnellere Ladezeiten.<br>
Da die Kompilierung unterschiedlich ist, können außerdem neue Probleme hinzugefügt werden. Testen Sie also sorgfältig<br>
+
Da die Kompilierung jedoch unterschiedlich ist, können neue Probleme auftreten. Testen Sie also sorgfältig.<br>
Opensim-Leistungsprobleme betreffen hauptsächlich den eigenen Code, schrecklich schlechte Kommunikationsprotokolle, die Verwendung von schlechtem .net / mono-Framework-Code (Demoqualität in denselben Fällen) usw.<br>
+
OpenSim-Leistungsprobleme sind größtenteils auf den eigenen Code zurückzuführen, schrecklich schlechte Kommunikationsprotokolle, Verwendung von schlechtem .NET/Mono-Framework-Code (in einigen Fällen Demo-Qualität), usw.<br>
Und natürlich dumme und ewig kaputte GC.<br>
+
Und natürlich immer kaputte GC<br>
Aber ... gut jeder ns zählt ..<br>
+
Aber... nun ja, jede ns zählt..<br>
  
 
= Konfiguration =
 
= Konfiguration =

Revision as of 00:33, 23 April 2024

Diese Seite behandelt den Bau von OpenSimulator aus dem Quellcode auf verschiedenen Plattformen. Bitte helfen Sie uns dabei, diese Seite auf dem neuesten Stand zu halten, während das Projekt fortschreitet. Wenn Sie nur OpenSimulator ausführen möchten, laden Sie stattdessen die binäre Version herunter und führen Sie sie aus. In den meisten Fällen sollten Sie mit den Binärdateien in Ordnung sein.

Contents

Bezug des Quellcodes

Schauen Sie auf der Download-Seite nach Anweisungen zum Bezug einer OpenSimulator-Quellcodeversion. Wenn Sie den aktuellen Entwicklungscode möchten (d.h. den Git-Master-Branch), siehe Developer_Documentation#Source_Code_Repository_Access.

Erstellung

Obwohl diese Seite lang ist, ist das Erstellen im Allgemeinen recht einfach. Sehen Sie die BUILDING.txt-Datei in der Distribution selbst für vereinfachte Anweisungen.

Version 0.9.3.0 und höher

Microsoft hat die Entwicklung von .Net Framework und Mono eingestellt und durch das neue dotnet ersetzt. Dies ist eine bedeutende Änderung, der wir ab Version 0.9.3.0 folgen.


Bezug des Quellcodes

Holen oder aktualisieren Sie den Quellcode von Git.

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

Erstellung unter Windows

Um unter Windows zu erstellen, sind folgende Schritte erforderlich:

   dotnet 8.0 SDK

optional auch

   Visual Studio .NET, Version 2022 oder höher

Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:

  runprebuild.bat

Laden Sie die generierte OpenSim.sln in Visual Studio und erstellen Sie die Lösung, oder führen Sie einfach aus: compile.bat

Für die Ausführung benötigen Sie möglicherweise auch:

   die Laufzeitdateien für vc++ installieren
   die Installation eines älteren .NetFramework 3.5 autorisieren

Konfigurieren Sie diesbezüglich. Siehe Configuration.

Führen Sie nun einfach OpenSim.exe aus dem bin-Ordner aus und richten Sie die Region ein.

Erstellung unter Linux / Mac

Sie benötigen:

   dotnet 8.0 SDK
   libgdiplus
   ** Wenn Sie bereits Mono 6.x komplett installiert haben, haben Sie bereits libgdiplus, andernfalls müssen Sie es mit einem Paketmanager für Ihr Betriebssystem installieren, z. B. apt, brew, macports usw. Zum Beispiel unter Debian:
   *** apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

Erstellen Sie die Projektdateien, indem Sie Folgendes ausführen:

./runprebuild.sh

führen Sie dann aus:

dotnet build --configuration Release OpenSim.sln

oder einfach:

./compile.sh

Konfigurieren Sie diesbezüglich. Siehe Configuration.

Führen Sie ./opensim.sh aus dem bin-Ordner aus und richten Sie die Region ein

Ältere Versionen

Der Quellcode für alte .Net Framework 4.x und Mono befindet sich im Branch Mono-Net4X. Dies ist größtenteils derselbe Code wie bei der Veröffentlichung von 0.9.2.2.

Anforderungen

OpenSimulator 0.9.0.x erfordert entweder

   .NET Framework 4.0 unter Windows
   Mono unter Linux oder Mac. Mono 2.10.8 ist die Mindestversion.
   Sie benötigen möglicherweise auch das nant-Tool.

OpenSimulator >= 0.9.1 (einschließlich des aktuellen Master) erfordert

   .NET Framework 4.6 unter Windows
   Mono unter Linux oder Mac. Mono 5.12 ist die empfohlene Mindestversion.
Hinweis: Verwenden Sie nicht die Mono-Pakete Ihrer Linux-Distribution, da möglicherweise erforderliche Komponenten fehlen. Bitte installieren Sie sie aus dem offiziellen Mono-Repo Ihrer Distribution. Es wird empfohlen, mit msbuild zu kompilieren.

Andere Plattformen haben möglicherweise eigene Mono-Distributionen, oder Sie müssen Mono darauf kompilieren.

Andere von OpenSimulator verwendete Bibliotheken finden Sie in unserem opensim-libs-Git-Repository:

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

Verwendetes libOpenMetaVerse finden Sie unter https://bitbucket.org/opensimulator/

Möglicherweise müssen Sie sie für Ihre Plattform kompilieren, insbesondere die nicht verwalteten wie Bullet oder ODE-Native-Code-Bibliotheken

MS Windows

Unterstützte Compiler

   Visual Studio Community 2017
   Oder jede Version, die die entsprechende .Net-Version unterstützt. Mindestens VS2010 für Versionen vor 0.91, VS2015 für 0.91 und später.
   OpenSimulator >=0.9.2.0 kann für .Net Framework 4.8 kompilieren, indem runprebuild48.bat anstelle von runprebuild.bat unten verwendet wird und mit VS2017/19/22

Kompilierung in einer IDE

Führen Sie "runprebuild.bat" aus. Öffnen Sie die resultierende "OpenSim.sln" in der Visual Studio IDE. Wählen Sie Debug- oder Release-Konfiguration Menü Build -> Build Solution.

Kompilierung an der Eingabeaufforderung

Führen Sie "runprebuild.bat" aus. Führen Sie die resultierende Datei "compile.bat" aus.

Linux und andere Mono-Plattformen

Vorbereitung für die Kompilierung

Um die verschiedenen Projektdateien zu erstellen, führen Sie im Ordner opensim aus:

./runprebuild.sh

Kompilieren mit Nant

Auf einigen Mono-Versionen, insbesondere auf alten, kann es erforderlich sein, nant zum ordnungsgemäßen Kompilieren von OpenSimulator zu verwenden. Führen Sie in diesem Fall einfach aus:

nant

Kompilieren mit xbuild

Auf Mono-Versionen können Sie einfach xbuild verwenden. (msbuild wird ab 0.9.1.0.0 empfohlen)

xbuild

xbuild wird auf Mono 5.x nicht mehr empfohlen, funktioniert jedoch derzeit noch (5.12)

>>>> xbuild-Tool ist veraltet und wird in zukünftigen Updates entfernt, verwenden Sie stattdessen msbuild <<<<

Auf neueren Mono-Versionen kann die Release-Konfiguration einige Leistungsvorteile bringen, aber Sie verlieren einige Debug-Fähigkeiten. zum Kompilieren der Release-Konfiguration: xbuild /p:Configuration=Release

Kompilieren mit msbuild

Für Opensim 0.9.1 können Sie immer noch xbuild verwenden, aber Mono empfiehlt die Verwendung von msbuild. Sie müssen möglicherweise das Paket msbuild zusätzlich zu mono-complete installieren. (Aktuell ist msbuild in mono-complete enthalten, auf Ubuntu, aus den offiziellen Mono-Repositories. https://www.mono-project.com/download/stable/#download-lin )

Verwenden Sie xbuild in den anderen Fällen als letztes Mittel.

Neuere Verbesserungen, insbesondere am JIT-Laufzeitmodus, rechtfertigen das Kompilieren in der Release-Konfiguration, aber Sie verlieren einige Debug-Fähigkeiten.

für die Kompilierung mit Debug-Konfiguration: msbuild

für die Kompilierung mit Release-Konfiguration: msbuild /p:Configuration=Release

für die Kompilierung mit der Debug-Konfiguration und der detaillierten opensim.log-Datei, die dann mit einem Texteditor gelesen werden kann: msbuild /p:Configuration=Debug /fileLogger /flp:logfile=opensim.log /v:d

Sie können die folgenden Werte für die Detailstufe der opensim.log-Datei angeben: q [leise], m [minimal], n [normal], d [detailliert] und diag [diagnostisch].

Um für .Net Framework 4.8 mit Mono >=6.12 zu kompilieren, können Sie runprebuild48.sh anstelle von runprebuild.sh oben ausführen. Dabei wird nicht viel gewonnen.

Ahead-of-Time-Kompilierung (AOT)

Wie Sie alle wissen, enthalten die durch den Kompilierungsprozess oben erstellten Dateien *.exe und .dll keinen nativen Code für die Maschine.
Mit diesen Dateien wird der native Code, den die CPU benötigt, bei Bedarf zur Laufzeit erstellt, in einem Prozess, der als Just-in-Time (JIT) bekannt ist.
Es ist möglich, einen weiteren Kompilierungsschritt für diese Dateien durchzuführen, um nativen Code zu erstellen, der bereit ist, wenn das Programm startet. Dies ist der AOT-Prozess (Ahead of time).
Da JIT zur Laufzeit durchgeführt wird, hat es nur begrenzte Zeit für umfangreiche Codeoptimierungen. AOT kann andererseits alles tun.
AOT sollte auf diese Weise schneller geladen werden, etwas den Speicherbedarf der JIT-Arbeit sparen und die Latenz durch Codegenerierung verringern, wenn ein neuer Codeabschnitt benötigt wird.
Auf diese Weise hilft AOT, die enorme Leistungslücke zwischen C# und einer geeigneteren Sprache wie C++ zu verringern, auch wenn JIT einige Optimierungen abhängig vom aktuellen Codeausführungszustand durchführen kann, die AOT nicht kann. (Wenn Sie denken, dass C# genauso schnell ist wie kompetenter C++-Code, sollten Sie besser ändern, was Sie rauchen...)
Tatsächlich führen sowohl .NET als auch Mono AOT bei ihren Komponenten während der Installation durch.
JIT wird weiterhin aktiv sein und einige andere Codes zur Laufzeit kompilieren. OpenSim und verwendete .NET/Mono-Frameworkteile sind darauf angewiesen.

Für Linux enthält 0.9.2.0 jetzt Skripte makeaot.sh und cleanaot.sh, um AOT-Tests zu erleichtern.
Führen Sie makeaot.sh nach dem oben genannten Kompilierungsschritt aus, um die nativen Code-Dateien zu generieren. Die Option -O=all muss zu mono hinzugefügt werden, wenn opensim.exe ausgeführt wird, z.B.:
mono --desktop -O=all OpenSim.exe Das Skript cleanaot.sh entfernt die von AOT verwendeten Binärdateien. Sie müssen es ausführen, wenn Sie den Code neu kompilieren (um sicher zu sein, auch wenn Sie makeaot ausführen).
VERGESSEN SIE NICHT, makeaot.sh oder cleanaot.sh nach dem Neukompilieren auszuführen!
Die generierten Dateien sind spezifisch für diese Maschine. Kopieren Sie die nativen Code-Dateien nicht auf andere Maschinen, es sei denn, sie sind absolut identisch
Die Original-.exe- und .dll-Dateien sind weiterhin erforderlich.

AOT ist auch unter Windows möglich, jedoch mit anderen Tools, die Dinge zum zentralen Repository auf der Maschine hinzufügen, schwerer zu isolieren und zu pflegen. siehe ngen

Macs sind.. Macs.. Zukünftige Modelle können JIT vollständig verbieten, wie es bei Apple-Mobilprodukten der Fall ist. Mono AOT auf aktuellen Macs funktioniert möglicherweise wie auf Linux

In der praktischen Anwendung erwarten Sie nicht viel mehr als etwas schnellere Ladezeiten.
Da die Kompilierung jedoch unterschiedlich ist, können neue Probleme auftreten. Testen Sie also sorgfältig.
OpenSim-Leistungsprobleme sind größtenteils auf den eigenen Code zurückzuführen, schrecklich schlechte Kommunikationsprotokolle, Verwendung von schlechtem .NET/Mono-Framework-Code (in einigen Fällen Demo-Qualität), usw.
Und natürlich immer kaputte GC
Aber... nun ja, jede ns zählt..

Konfiguration

Siehe Configuration.

Personal tools
General
About This Wiki