Hi fellow wiki editors!

To help newly registered users get more familiar with the wiki (and maybe older users too) there is now a {{Welcome to the wiki}} template. Have a look at it and feel free to add it to new users discussion pages (and perhaps your own).

I have tried to keep the template short, but meaningful. /Johan G

Difference between revisions of "De/FlightGear bauen - Debian"

From FlightGear wiki
Jump to: navigation, search
(Page completely reworked. Translation based on Building_FlightGear_-_Debian, not finished yet.)
(continued translation, mostly finished.)
Line 25: Line 25:
  
 
== Bauen und Installieren ==
 
== Bauen und Installieren ==
Da die zu installierende Software versionsmässig nicht denen des Systems entsprechen, ist es ratsam FlightGear mit dem ganzen Zubehör in einem seperaten Verzeichins zu installieren. Anbieten würden sich hier /usr/local/FG-2.2.0, /opt/FG-2.2.0 oder ein Unterverzeichnis in $HOME. Für dieses Verzeichnis sollte der Benutzer schreibrechte besitzen, damit muss man für die <code>make install</code>s nicht root werden. Als Platzhalter für dieses Verzeichnis wird hier <code>$prefix</code> verwendet.<BR>
+
Da die zu installierende Software versionsmäßig nicht denen des Systems entsprechen, ist es ratsam FlightGear mit dem ganzen Zubehör in einem separaten Verzeichins zu installieren. Anbieten würden sich hier /usr/local/FG-2.2.0, /opt/FG-2.2.0 oder ein Unterverzeichnis in $HOME. Für dieses Verzeichnis sollte der Benutzer Schreibrechte besitzen, damit muss man für die <code>make install</code>s nicht root werden. Als Platzhalter für dieses Verzeichnis wird hier <code>$prefix</code> verwendet.<BR>
 
Ein weiterer Platzhalter ist <code>$srcdir</code>, dieser Bezeichnet das Verzeichnis in welches die Quellkodes gespeichert werden sollen. Am Einfachsten <code>export</code>iert man diese Pfade, dann muss man sie in den folgenden Befehlen nicht händisch gegen die Platzhalter tauschen.
 
Ein weiterer Platzhalter ist <code>$srcdir</code>, dieser Bezeichnet das Verzeichnis in welches die Quellkodes gespeichert werden sollen. Am Einfachsten <code>export</code>iert man diese Pfade, dann muss man sie in den folgenden Befehlen nicht händisch gegen die Platzhalter tauschen.
  
 
Nachfolgend aufgelistet sind die Befehle zum Herunterladen der Quellen und zum Kompilieren und Installieren von FlightGear 2.2.0/GIT und den Abhängigkeiten, die nicht über das Paketmanagement gelöst werden können.
 
Nachfolgend aufgelistet sind die Befehle zum Herunterladen der Quellen und zum Kompilieren und Installieren von FlightGear 2.2.0/GIT und den Abhängigkeiten, die nicht über das Paketmanagement gelöst werden können.
  
Die Daten zu FlightGear sind ein recht grosser Download (GIT etwa 3.5 GB und 2.2.0 300 MB). Um Zeit zu sparen sollte man den starten, bevor man mit dem Kompilieren beginnt.
+
Die Daten zu FlightGear sind ein recht großer Download (GIT etwa 3.5 GB und 2.2.0 300 MB). Um Zeit zu sparen sollte man den starten, bevor man mit dem Kompilieren beginnt.
  
 
Für git-Anfänger lohnt sich ein Blick auf [[Git#For_dummies|git for dummies]]. Dort gibt es Infos und weitere Befehle zum Umgang mit FlightGears git-Ressourcen.
 
Für git-Anfänger lohnt sich ein Blick auf [[Git#For_dummies|git for dummies]]. Dort gibt es Infos und weitere Befehle zum Umgang mit FlightGears git-Ressourcen.
Line 36: Line 36:
  
 
=== Abhängigkeiten ===
 
=== Abhängigkeiten ===
Bei einigen Programmteilen ist FlightGear eng mit OpenSceneGraph und plib verbandelt. Deshalb ist es ratsam diese regelmässig auf den aktuellen Stand zu bringen. Nicht bei jedem Update von flightGear aber immer wieder mal.
+
Bei einigen Programmteilen ist FlightGear eng mit OpenSceneGraph und plib verbandelt. Deshalb ist es ratsam diese regelmäßig auf den aktuellen Stand zu bringen. Nicht bei jedem Update von FlightGear aber immer wieder mal.
  
 
==== libopenal ====
 
==== libopenal ====
'''Nur Lenny!''' Das Paket im Repo ist zu alt für [[fgcom]]. FlightGear kann man damit bauen aber es fehlen Features, wie z.B. der Dopplereffekt.
+
<u>Nur Lenny!</u> Das Paket im Repo ist zu alt für [[fgcom]]. FlightGear kann man damit bauen aber es fehlen Features, wie z.B. der Dopplereffekt.
 
  cd $srcdir
 
  cd $srcdir
 
  wget http://kcat.strangesoft.net/openal-releases/openal-soft-1.11.753.tar.bz2
 
  wget http://kcat.strangesoft.net/openal-releases/openal-soft-1.11.753.tar.bz2
Line 65: Line 65:
  
 
<u>nur GIT:</u>
 
<u>nur GIT:</u>
Meistens fährt man der aktuellesten Version aus dem SVN-Repo gut. Manchmal ist OpenSceneGraph allerdings FlightGear etwas voraus, do daß das Bauen nicht möglich ist. In so einem Falle geht man in der Revision zurück bis man eine passende Kombination hat. <BR>
+
Meistens fährt man der aktuellsten Version aus dem SVN-Repo gut. Manchmal ist OpenSceneGraph allerdings FlightGear etwas voraus, so daß das Bauen nicht möglich ist. In so einem Falle geht man in der Revision zurück bis man eine passende Kombination hat. <BR>
 
Momentan, Februar 2011, haben wir diese Situation. Die höchste, als funktionierend bekannte, Revision ist '''12072'''. Deshalb die Quellen wie im obigen Fall für 2.2.0 beschrieben herunterladen.
 
Momentan, Februar 2011, haben wir diese Situation. Die höchste, als funktionierend bekannte, Revision ist '''12072'''. Deshalb die Quellen wie im obigen Fall für 2.2.0 beschrieben herunterladen.
 
  cd $srcdir
 
  cd $srcdir
Line 82: Line 82:
  
 
From this point forward when providing the <code>LDFLAGS</code> string, you should use the path specific to your installation. For 32-bit installations this will probably be the path ending in /lib. In a 64-bit installation, this '''may''' be the path ending in /lib64, but doesn't have to be. You must verify this for your build, because you do not have to include both paths in the following compilations.
 
From this point forward when providing the <code>LDFLAGS</code> string, you should use the path specific to your installation. For 32-bit installations this will probably be the path ending in /lib. In a 64-bit installation, this '''may''' be the path ending in /lib64, but doesn't have to be. You must verify this for your build, because you do not have to include both paths in the following compilations.
 
  
 
==== SimGear ====
 
==== SimGear ====
Line 116: Line 115:
 
==== FlightGear Daten ====
 
==== FlightGear Daten ====
 
<u>nur 2.2.0:</u>
 
<u>nur 2.2.0:</u>
At the time of writing, 2.2.0 is not yet released, there is no tar archive for the data available. Test pilots for this release are advised to use the ''release/2.2.0'' branch from git. The following URL for wget will be updated, if it is not working, as soon as 2.2.0 is released.
+
Zum Zeitpunkt des Schreibens ist 2.2.0 noch nicht vom Stapel gelassen und es gibt noch kein tar-Archiv für die Daten. Testpiloten für dieses Release sind auf die entsprechende Branch, ''release/2.2.0'', im fgdata-Repo angewiesen.
 
  cd $prefix
 
  cd $prefix
 
  wget http://mirrors.ibiblio.org/pub/mirrors/flightgear/ftp/Shared/FlightGear-data-2.2.0.tar.bz2
 
  wget http://mirrors.ibiblio.org/pub/mirrors/flightgear/ftp/Shared/FlightGear-data-2.2.0.tar.bz2
Line 122: Line 121:
  
 
<u>nur GIT:</u>
 
<u>nur GIT:</u>
For slow/unstable internet connections it is recommended to download the [[Git#fgdata.bundle|fgdata.bundle]] instead of cloning the data.<BR>
+
Bei langsamen/instabilen Internetanbidungen sollte anstelle des Clonens der FlightGear-Daten das [[Git#fgdata.bundle|fgdata.bundle]] heruntergeladen werden.<BR>
FlightGear's primary git server on gitorious is known to have trouble cloning the data, the mapserver's mirror usually has no problems:
+
Der Server für FlightGears primäres git-Repo ist bekannt für Probleme beim Clonen der Daten. Der mirror auf dem mapserver ist zuverlässiger:
 
  cd $prefix
 
  cd $prefix
 
  git clone git://mapserver.flightgear.org/fgdata
 
  git clone git://mapserver.flightgear.org/fgdata
  
  
== Testlauf ==
+
== Probelauf ==
When all the builds are done and the data download has finished it is time for a test run:
+
Nachdem Alles erfolgreich installiert ist wird es Zeit für einen Test:
 
  export LD_LIBRARY_PATH=$prefix/lib/:$LD_LIBRARY_PATH
 
  export LD_LIBRARY_PATH=$prefix/lib/:$LD_LIBRARY_PATH
 
  $prefix/bin/fgfs --fg-root=$prefix/fgdata
 
  $prefix/bin/fgfs --fg-root=$prefix/fgdata
  
For the future, if you want to start FlightGear from command line have a look at [[fgfsrc]], if you prefer a graphical user interface continue with [[#fgrun|compiling fgrun]] or check [[FGo!]]. Have in mind that <code>fgfs</code> need to find our self compiled libraries and therefore we have to tell the linker (ld) where to find them. That is what the first line here does.
+
Für zukünftige Starts aus der Konsole lohnt sich ein Blick auf [[fgfsrc]]. Wer eine grafische Oberfläche zum Starten bevorzugt, sollte einen Blick auf [[FGo!]] oder [[#fgrun|fgrun]] werfen. Damit <code>fgfs</code> die benötigten Bibliotheken findet, muß man Debian sagen wo die sind. In obigem Beispiel wird das durch setzen von <code>$LD_LIBRARY_PATH</code> erreicht.
  
  
 
== Zubehör ==
 
== Zubehör ==
Feel free to add the commands to install other FlightGear related projects.
+
Optionale Programme für FlightGear. Jeder ist eingeladen, hier die Schritte zum Installieren Weiterer aufzuführen.
  
 
=== fgrun ===
 
=== fgrun ===
To build [[fgrun]] one more package is required:
+
Ein weiteres Paket wird zum Bauen von [[fgrun]] benötigt:
 
*libfltk1.1-dev
 
*libfltk1.1-dev
 
 
  cd $srcdir
 
  cd $srcdir
 
  svn co http://fgrun.svn.sourceforge.net/svnroot/fgrun/trunk fgrun
 
  svn co http://fgrun.svn.sourceforge.net/svnroot/fgrun/trunk fgrun
Line 152: Line 150:
  
 
=== fgcom ===
 
=== fgcom ===
For [[fgcom]] unfortunately there is one more dependency which cannot be solved with packages on '''Lenny''', see [[#libopenal|libopenal]].
+
Unter <u>Lenny</u> ist es zwingend erforderlich eine neuere Version von [[#libopenal|OpenAL]] als in den Repos zu verwenden.
 
+
 
  cd $srcdir
 
  cd $srcdir
 
  svn co https://appfgcom.svn.sourceforge.net/svnroot/fgcom/trunk fgcom
 
  svn co https://appfgcom.svn.sourceforge.net/svnroot/fgcom/trunk fgcom

Revision as of 16:44, 5 February 2011

FlightGear auf Debian einrichten

Anleitung zum einrichten von FlightGear 2.2.0 und/oder der Entwicklerversion, hier GIT genannt, auf Debian GNU/Linux Stable 6.x (Squeeze) und Testing/Unstable (Wheezy).

Auch für Oldstable 5.x (Lenny) gilt die Anleitung für Version 2.2.0. Für GIT gilt sie zumindest solange, bis sich an den Abhängigkeiten etwas entscheidendes ändert.

Leute, die sich die Hände nicht schmutzig machen wollen, können es mit Scripted_Compilation_on_Linux_Debian/Ubuntu versuchen.


Bedingungen und Vorbereitung

Grundvoraussetzung hardwareseits ist ein Grafikchip mit OpenGL-Unterstützung, für vollen Funktionsumfang mindestens OpenGL 2.0, inklusive einem zugehörigen, funktionierenden Treiber.

Pakete die benötigt werden:

  • gcc, g++, make, automake1.9, pkg-config
  • mawk (oder gawk)
  • cmake (min. Version 2.6.0-5)
  • git, subversion, wget
  • freeglut3-dev, libgl1-mesa-dev, libxrandr-dev
  • libxi-dev, libxmu-dev, libxext-dev
  • libopenal-dev (unter Lenny libopenal beachten), libalut-dev
  • libjpeg62-dev, libtiff4-dev, libpng12-dev
  • libboost1.37-dev (min 1.37, 1.40 für Lenny auf backports.debian.org erhältlich)

Während des Bauens dürfen die Pakete simgear-dev und openscenegraph-dev nicht installiert sein!


Bauen und Installieren

Da die zu installierende Software versionsmäßig nicht denen des Systems entsprechen, ist es ratsam FlightGear mit dem ganzen Zubehör in einem separaten Verzeichins zu installieren. Anbieten würden sich hier /usr/local/FG-2.2.0, /opt/FG-2.2.0 oder ein Unterverzeichnis in $HOME. Für dieses Verzeichnis sollte der Benutzer Schreibrechte besitzen, damit muss man für die make installs nicht root werden. Als Platzhalter für dieses Verzeichnis wird hier $prefix verwendet.
Ein weiterer Platzhalter ist $srcdir, dieser Bezeichnet das Verzeichnis in welches die Quellkodes gespeichert werden sollen. Am Einfachsten exportiert man diese Pfade, dann muss man sie in den folgenden Befehlen nicht händisch gegen die Platzhalter tauschen.

Nachfolgend aufgelistet sind die Befehle zum Herunterladen der Quellen und zum Kompilieren und Installieren von FlightGear 2.2.0/GIT und den Abhängigkeiten, die nicht über das Paketmanagement gelöst werden können.

Die Daten zu FlightGear sind ein recht großer Download (GIT etwa 3.5 GB und 2.2.0 300 MB). Um Zeit zu sparen sollte man den starten, bevor man mit dem Kompilieren beginnt.

Für git-Anfänger lohnt sich ein Blick auf git for dummies. Dort gibt es Infos und weitere Befehle zum Umgang mit FlightGears git-Ressourcen.


Abhängigkeiten

Bei einigen Programmteilen ist FlightGear eng mit OpenSceneGraph und plib verbandelt. Deshalb ist es ratsam diese regelmäßig auf den aktuellen Stand zu bringen. Nicht bei jedem Update von FlightGear aber immer wieder mal.

libopenal

Nur Lenny! Das Paket im Repo ist zu alt für fgcom. FlightGear kann man damit bauen aber es fehlen Features, wie z.B. der Dopplereffekt.

cd $srcdir
wget http://kcat.strangesoft.net/openal-releases/openal-soft-1.11.753.tar.bz2
tar xjf openal-soft-1.11.753.tar.bz2
cd openal-soft-1.11.753/build
cmake  -D CMAKE_INSTALL_PREFIX:PATH="$prefix" ..
make install


plib

Mit dem Paket plib1.8.5-dev lässt sich FlightGear zwar bauen aber es fehlen Features. Die neueste Version, erhältlich per SVN, wird empfohlen.

cd $srcdir
svn co https://plib.svn.sourceforge.net/svnroot/plib/trunk plib
cd plib
sed s/PLIB_TINY_VERSION\ \ 5/PLIB_TINY_VERSION\ \ 6/ -i src/util/ul.h
./autogen.sh
./configure --prefix=$prefix
make install


OpenSceneGraph

nur 2.2.0:

cd $srcdir
svn co -r 12072 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk OpenSceneGraph

nur GIT: Meistens fährt man der aktuellsten Version aus dem SVN-Repo gut. Manchmal ist OpenSceneGraph allerdings FlightGear etwas voraus, so daß das Bauen nicht möglich ist. In so einem Falle geht man in der Revision zurück bis man eine passende Kombination hat.
Momentan, Februar 2011, haben wir diese Situation. Die höchste, als funktionierend bekannte, Revision ist 12072. Deshalb die Quellen wie im obigen Fall für 2.2.0 beschrieben herunterladen.

cd $srcdir
svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk OpenSceneGraph

2.2.0 und GIT:

mkdir osg-build && cd osg-build
cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_INSTALL_PREFIX:PATH="$prefix" $srcdir/OpenSceneGraph
make install


FlightGear und seine Komponenten

FlightGear hängt direkt mit der Entwicklung in seinen Daten und in SimGear zusammen. Deshalb sollten die drei immer zusammen aktualisiert werden.

Die LDFLAGS in den folgenden Befehlen dienen zum Auffinden der OpenSceneGraph- und plib-Installation. Je nach System verwendet man ....

From this point forward when providing the LDFLAGS string, you should use the path specific to your installation. For 32-bit installations this will probably be the path ending in /lib. In a 64-bit installation, this may be the path ending in /lib64, but doesn't have to be. You must verify this for your build, because you do not have to include both paths in the following compilations.

SimGear

2.2.0 und GIT:

cd $srcdir
git clone git://gitorious.org/fg/simgear.git simgear
cd simgear

nur 2.2.0:

git checkout -b releases/2.2.0 origin/releases/2.2.0

2.2.0 und GIT:

.autogen.sh
./configure --prefix=$prefix CPPFLAGS=-I$prefix/include LDFLAGS="-L$prefix/lib -L$prefix/lib64"
make install


FlightGear Quellkode

2.2.0 und GIT:

cd $srcdir
git clone git://gitorious.org/fg/flightgear.git flightgear
cd flightgear

nur 2.2.0:

git checkout -b releases/2.2.0 origin/releases/2.2.0

2.2.0 und GIT:

./autogen.sh
./configure --prefix=$prefix CPPFLAGS=-I$prefix/include/ LDFLAGS="-L$prefix/lib -L$prefix/lib64"
make install


FlightGear Daten

nur 2.2.0: Zum Zeitpunkt des Schreibens ist 2.2.0 noch nicht vom Stapel gelassen und es gibt noch kein tar-Archiv für die Daten. Testpiloten für dieses Release sind auf die entsprechende Branch, release/2.2.0, im fgdata-Repo angewiesen.

cd $prefix
wget http://mirrors.ibiblio.org/pub/mirrors/flightgear/ftp/Shared/FlightGear-data-2.2.0.tar.bz2
tar xjf FlightGear-data-2.2.0.tar.bz2

nur GIT: Bei langsamen/instabilen Internetanbidungen sollte anstelle des Clonens der FlightGear-Daten das fgdata.bundle heruntergeladen werden.
Der Server für FlightGears primäres git-Repo ist bekannt für Probleme beim Clonen der Daten. Der mirror auf dem mapserver ist zuverlässiger:

cd $prefix
git clone git://mapserver.flightgear.org/fgdata


Probelauf

Nachdem Alles erfolgreich installiert ist wird es Zeit für einen Test:

export LD_LIBRARY_PATH=$prefix/lib/:$LD_LIBRARY_PATH
$prefix/bin/fgfs --fg-root=$prefix/fgdata

Für zukünftige Starts aus der Konsole lohnt sich ein Blick auf fgfsrc. Wer eine grafische Oberfläche zum Starten bevorzugt, sollte einen Blick auf FGo! oder fgrun werfen. Damit fgfs die benötigten Bibliotheken findet, muß man Debian sagen wo die sind. In obigem Beispiel wird das durch setzen von $LD_LIBRARY_PATH erreicht.


Zubehör

Optionale Programme für FlightGear. Jeder ist eingeladen, hier die Schritte zum Installieren Weiterer aufzuführen.

fgrun

Ein weiteres Paket wird zum Bauen von fgrun benötigt:

  • libfltk1.1-dev
cd $srcdir
svn co http://fgrun.svn.sourceforge.net/svnroot/fgrun/trunk fgrun
cd fgrun/fgrun/
./autogen.sh
./configure --prefix=$prefix  [CPPFLAGS=-I$prefix/include/ LDFLAGS="-L$prefix/lib -L$prefix/lib64"]
make install


fgcom

Unter Lenny ist es zwingend erforderlich eine neuere Version von OpenAL als in den Repos zu verwenden.

cd $srcdir
svn co https://appfgcom.svn.sourceforge.net/svnroot/fgcom/trunk fgcom
cd fgcom/src
make INSTALL_BIN=$prefix/bin INSTALL_DIR=$prefix/fgcom \
   PLIB_PREFIX=$prefix OPENAL_PREFIX=$prefix install