Nl/Compileren met een Script op Linux Debian/Ubuntu
Omschrijving
Het script (zie downloadlink verderop) haalt broncode op uit de GIT/CVS repositories en vertaalt die op zowel 32-bit als op 64-bit op Debian Linux gebaseerde systemen, waaronder Ubuntu. Een andere al op het systeem geïnstalleerde versie van Flightgear wordt niet gewijzigd, omdat het script alles installeert onder de directory waarin het wordt opgestart.
De benodigde pakketten voor het compileren worden geïnstalleerd met apt-get. Van benodigde bibliotheken, die niet in de standaard Linux installatie voorkomen, wordt de broncode gedownload en gecompileerd (Plib, Simgear en OSG).
Lijst van gecompileerde programma's
Het script kan de broncode ophalen en compileren van:
Download
Je kunt het script hier downloaden: download_and_compile.sh
Het script wordt onderhouden in de FlightGear repository. Denk er aan dit script te updaten als een nieuwe versie van FlightGear wordt gereleased, zodat je de laatste stabiele versie kunt downloaden.
Er is nog een andere manier op Flightgear en al haar afhankelijkheden op een geautomatiseerde manier te bouwen. Zie daarvoor http://geoffmclane.com/fg/fgfs-052.htm
Instructies
Om download_and_compile.sh te draaien hoef je het alleen op te slaan in een directory, zoals bijvoorbeeld ~/fg_tools, en het dan uit te voeren (hoeft niet met root rechten).
Hier is een voorbeeld van commando's om het script op te halen en op te starten in een nieuwe directory:
mkdir ~/fgfs cd ~/fgfs wget http://www.gitorious.org/fg/fgmeta/blobs/raw/master/download_and_compile.sh chmod 755 download_and_compile.sh sh download_and_compile.sh
Als het script klaar is, zijn alle programma's geïnstalleerd onder de ~/fgfs directory.
Opstarten FlightGear
Om je nieuwe git installatie van Flightgear te draaien, moet je het run_fgfs.sh script in dezelfde directory starten. Voorbeeld:
cd ~/fgfs sh run_fgfs.sh
Opstarten Fgrun
Voor veel gebruikers is het prettiger om Flightgear te starten via een het grafische interface fgrun. Dit doe je via een script dat ook in dezelfde directory staat (run_fgrun.sh). Voorbeeld:
cd ~/fgfs sh run_fgrun.sh
Opstarten Fgcom
FGCOM is het systeem dat door Flightgear wordt gebruikt om radio communicatie tussen gebruikers te simuleren. Start het door het run_fgcom.sh uit te voeren. Voorbeeld:
cd ~/fgfs sh run_fgcom.sh -cs
Opstarten FGComGui
FgComGui is een grafische interface voor FGCOM.
cd ~/fgfs sh run_fgcomgui.sh
Opstarten Atlas
Atlas zorgt voor een kaart voor Flightgear. Start het op met run_atlas.sh:
cd ~/fgfs sh run_fgatlas.sh
Opstarten Terrasync (als je fgrun niet gebruikt)
Je Flightgear installatie bevat ook het Terrasync programma. Als je het wilt gebruiken:
cd ~/fgfs sh run_terrasync.sh -S -p 5500 -d /folder/with/sceneries
waarin: /folder/with/sceneries de directory met de Scenery data is.
Start daarna fgfs op met de --fg-scenery=/folder/with/sceneries --atlas=socket,out,5,localhost,5500,udp opties
Het oplossen van problemen
Compilatiefouten
Daar gaan we, wees niet bang. Als je programma's compileert uit de CVS/GIT/SVN repositories, kan je compilatiefouten tegenkomen die verhinderen dat de programma's geïnstalleerd worden. Wat kunnen daarvan de oorzaken zijn? Voorzover ik weet, deze:
- Software ontwikkelaars introduceren nieuwe functionaliteit met nieuwe stukken code die op jouw architectuur niet gecompileerd kunnen worden.
- Het programma kan niet worden gecompileerd door een afwijking in de bibliotheken waarvan het afhankelijk is. Het kan bijvoorbeeld zijn dat Flightgear niet meer kan worden gecompileerd omdat OSG veranderd is, terwijl OSG zelf wel correct wordt gecompileerd.
- Eén of meer repositories zijn onbereikbaar en je kunt daardoor de benodigde bibliotheek niet downloaden.
Er is een eenvoudige oplossing voor bovenstaande fouten: wacht even en start het script een paar uur of een paar dagen later nog eens op als de ontwikkelaars hun code hebben gerepareerd of hebben gesynchronissred met de bibliotheken. Flightgear zal daarna gecompileerd kunnen worden alsof er nooit iets aan de hand was.
Soms komt het voor dat het script alleen fgrun, fgcom of atlas niet kan compileren. Als je, in zo'n geval, het run_fgfs.sh script ziet staan, betekent dat dat de Flightgear installatie succesvol was en dat je Flightgear veilig kunt draaien.
Opties
Het script zal standaard (zonder opties) alleen Flightgear en fgrun compileren. Om alles te laten compileren, moet je het script opstarten met de ALL parameter, als volgt:
./download_and_compile.sh ALL
Eén programma compileren
Als je slechts één programma wilt compileren, dan kan je het script opstarten met één van de volgende parameters:
- PLIB (voor het vertalen en installeren van alleen plib)
- OSG (voor het vertalen en installeren van alleen OpenSceneGraph)
- SIMGEAR (voor het vertalen en installeren van alleen Simgear)
- FGFS (voor het vertalen en installeren van alleen FlightGear)
- DATA (voor het alleen downloaden of updaten van de data files voor FlightGear)
- FGRUN (voor het vertalen en installeren van alleen Fgrun)
- FGCOM (voor het vertalen en installeren van alleen Fgcom)
- FGCOMGUI (voor het vertalen en installeren van alleen FgComGui)
- ATLAS (voor het vertalen en installeren van alleen Atlas)
Snel updaten
Er is nog een tweede parameter UPDATE die je in staat stelt je installatie alleen te updaten. Het volgende zal alleen een update voor Flightgear doen:
./download_and_compile.sh FGFS UPDATE
Compileren van de laatste stabiele versie (Experimenteel)
Het script haalt standaard broncode en data op uit de bleeding edge ontwikkelaars repositories (die daardoor soms niet gecompileerd kunnen worden), maar je kunt het ook vragen de laatste versie die correct gecompileerd kon worden op te halen door de -s optie te gebruiken:
./download_and_compile.sh -s
Hoe dat werkt? In het script staat een kleine lijst met de laatst bekende versies van compileerbare revisies. Het zal die versies downloaden uit SVN/GIT.
Geavanceerde opties
- Sla het downloaden van pakketten over met de -p n optie
- Sla het compileren van programma's over met de -c n optie
- Sla het ophalen van software updates over met de -d n optie
- Sla het herconfigureren (make clean) over met de -r n optie
Voorbeeld: als je een ontwikkelaar bent en je wilt snel hercompileren en alleen wijzigingen voor Flightgear installeren, doe dan:
./download_and_compile.sh -p n -d n -r n FGFS
Dit hercompileert alleen modificaties en herinstalleert ze.
Multicore Versnelling
Met de -j x optie (waarin x het aantal CPU cores is dat je wilt gebruiken) versnelt het hele compilatieproces aanzienlijk.
Schijfgebruik
Als je de gecompileerde programma's, de broncode en data uit de GIT repositories hebt, kost dat schijfruimte. In totaal ongeveer 7GB. Als je geen snelle machine hebt, kost het compilatieproces een aantal uren.