$FG HOME: Difference between revisions

Jump to navigation Jump to search
1,361 bytes added ,  27 April 2019
Fix case of fgfsrc, otherwise it won't work on case-sensitive filesystems (which is the case of most filesystems on Linux and traditional Unices)
No edit summary
(Fix case of fgfsrc, otherwise it won't work on case-sensitive filesystems (which is the case of most filesystems on Linux and traditional Unices))
(6 intermediate revisions by 3 users not shown)
Line 2: Line 2:
[[File:Fghome-3.7.png|400px|right|Screen shot showing typical structure [[$FG_HOME]]]]
[[File:Fghome-3.7.png|400px|right|Screen shot showing typical structure [[$FG_HOME]]]]


<code>'''$FG_HOME'''</code> is a placeholder variable representing the path to where user-specific FlightGear data is stored (not application data). Unlike <code>[[$FG_ROOT]]</code>, <code>$FG_HOME</code> is '''not''' an environment variable that needs to be configured for FlightGear to work. <code>$FG_HOME</code> is the only place were FlightGear data is written to as <code>$FG_ROOT</code> is generally read-only.
<code>'''$FG_HOME'''</code> is an environment variable indicating the main location where user-specific FlightGear data is stored (not application data). <code>$FG_HOME</code> is a notable place were FlightGear data is written to, contrary to <code>$FG_ROOT</code>, which is generally read-only.


<code>$FG_HOME</code> is only used to refer to the operating system specific location for some settings/folders. The actual location of <code>$FG_HOME</code> is determined by the <code>fgfs</code> binary during startup and is a directory that varies with the operating system supported by FG (Windows, OS X and Linux).
<code>$FG_HOME</code> is normally used to refer to the operating system specific location for some settings/folders. Its default value is determined by the <code>fgfs</code> binary during startup and is a directory that varies with the operating system supported by FG (Windows, OS X and Linux). ''It is [https://sourceforge.net/p/flightgear/mailman/message/34995089/ highly recommended] to rely on the default value (i.e., not setting <code>$FG_HOME</code> yourself in any way), unless you Really Know What You Are Doing™.''


The location of <code>$FG_HOME</code> cannot be affected during installation of FlightGear, it depends solely on the operating system in use.
{{note|The <code>/sim/fg-home</code> property should be considered read-only, for similar reasons why <code>$FG_HOME</code> shouldn't be explicitly set by users.}}
 
{{note|FlightGear reads the <code>[[Fgfsrc|fgfsrc]]</code> config file from <code>$FG_HOME</code> if it exists (<tt>fgfsrc</tt> without any leading dot), in addition to <tt>.fgfsrc</tt> from <code>$HOME</code> (with a leading dot in this case).}}
{{note|<code>$FG_HOME</code> and the <code>/sim/fg-home</code> property should be considered read-only, because they cannot be affected during startup or at runtime.}}
{{note|The <code>[[Fgfsrc]]</code> config file will not actually be saved in <code>$FG_HOME</code>, but just in <code>$HOME</code>}}


== Content ==
== Content ==
In <code>$FG_HOME</code> is information stored between sessions.  That information is foe example configuration/preferences, properties marked with the <code>user-archive</code> attribute and aircraft-specific settings (using the data helper class in <code>aircraft.nas</code>).  <code>$FG_HOME</code> is also the location for the SQLite-based [[Navdb|NavDB cache]].
In <code>$FG_HOME</code> is information stored between sessions.  That information is for example configuration/preferences, properties marked with the <code>user-archive</code> attribute and aircraft-specific settings (using the data helper class in <code>aircraft.nas</code>).  <code>$FG_HOME</code> is also the location for the SQLite-based [[Navdata cache|navdata cache]].


== Common paths ==
== Common paths ==
You can determine the location of your <code>$FG_HOME</code> by using the [[property browser]] and checking the value of <code>/sim/fg-home</code>, but the usual paths are shown below.
You can determine the location of your <code>$FG_HOME</code> by using the [[property browser]] and checking the value of <code>/sim/fg-home</code>, but the usual paths are shown below.
You can also use the [[Nasal Console]] to print out <code>$FG_HOME</code>:
<syntaxhighlight lang="nasal">
var path = getprop("/sim/fg-home");
print("Your $FG_HOME is at: ", path);
</syntaxhighlight>


The <code>/sim/</code> property subtree is also the place where you can find other folders, such as <code>fg-root</code>, <code>fg-scenery</code> and the current working directory (<code>fg-current</code>).
The <code>/sim/</code> property subtree is also the place where you can find other folders, such as <code>fg-root</code>, <code>fg-scenery</code> and the current working directory (<code>fg-current</code>).
Line 33: Line 37:
It is probably a good idea to have <code>~/Library/Application Support/FlightGear</code> saved on a Stickies note just in case you forget it.
It is probably a good idea to have <code>~/Library/Application Support/FlightGear</code> saved on a Stickies note just in case you forget it.


If you want/need to refer to any of these files frequently, you could make an alias of a file, or the whole folder, and place it somewhere easier to access. TerraSync data is also stored inside the user's home folder, as it is the '''only''' location we are permitted to write too, <code>$HOME/Library/Application Support/FlightGear</code>, which technically is the value of <code>$FG_HOME</code>.
If you want/need to refer to any of these files frequently, you could make an alias of a file, or the whole folder, and place it somewhere easier to access. TerraSync data is stored in <code>$FG_HOME/TerraSync</code> in the default configuration, see [[TerraSync]] for details.
 
The OS X launcher doesn't actually set this path (any more), this location is the default used by FlightGear itself. You can of course override these paths and set <code>$FG_HOME</code> or the TerraSync path manually, from the command line or a configuration file, but the default paths should do what you need.


=== Windows ===
=== Windows ===
==== FlightGear 3.0 and later ====
==== FlightGear 3.0 and later ====
<code>%HOME%/Documents/FlightGear</code>
<code>%userprofile%\Documents\FlightGear</code>


<code>%HOME%</code> is usually <code>C:/Users/''User name''</code>
<code>%userprofile%</code> is <code>%homedrive%\Users\''User name''</code> by default, and <Code>%homedrive%</code> is usually C:\.


==== Before FlightGear 3.0 ====
==== Before FlightGear 3.0 ====
Line 49: Line 51:


== Use in troubleshooting ==
== Use in troubleshooting ==
As one user once said, "When in doubt delete <code>$FG_HOME</code>". Many problems, including corrupted databases, broken TerraSync and many others can be fixed by deleting <code>fgfs_0.txt</code>, <code>fgfs.txt</code>, <code>terrasync_cache</code>, and the Navaids database.
As one user once said, "When in doubt delete <code>$FG_HOME</code>". Many problems, including corrupted databases, broken [[TerraSync]] and many others can be fixed by deleting <code>fgfs_0.txt</code>, <code>fgfs.txt</code>, <code>terrasync_cache</code>, and the [[Navdata cache|navdata cache]].


When you encounter problems, try deleting the files, but '''always''' keep the <code>fgfs.log</code> and <code>fgfs_0.log</code> log files to help in troubleshooting.
When you encounter problems, try deleting the files, but '''always''' keep the <code>fgfs.log</code> and <code>fgfs_0.log</code> log files to help in troubleshooting.
== Power Users ==
Note you can also override FG_HOME in the environment, to have totally distinct installs - this would be my recommend approach to running multiple versions in parallel.
(The installers will always replace the stable / dev version as other commenters pointed out, so you can't use those so easily, you need to copy files around - I'm nota Windows expert so I don't know if there something that could be changed or improved here)
If you start multiple instances (the same version or different) of FGFS using the same value of FG_HOME (whether that be the default or a custom one), we use a lock file to ensure only one (the first) has write access. The rest will go into read-only mode, and as you can maybe guess, treat FG_HOME as read-only.
Sharing of aircraft / scenery is entirely about which paths are configured, BTW. However, one final caveat is that having multiple instances both running TerraSync, using the same terrasync dir, would likely act a bit funny. It ought to actually work, but it might download some things twice, and it's not a tested or supported configuration for the moment.<ref>{{cite web
  |url    =  https://forum.flightgear.org/viewtopic.php?p=304170#p304170
  |title  =  <nowiki> Re: Is it possible to install multiple instanes of FG in Win </nowiki>
  |author =  <nowiki> zakalawe </nowiki>
  |date  =  Jan 25th, 2017
  |added  =  Jan 25th, 2017
  |script_version = 0.40
  }}</ref>


== Related content ==
== Related content ==
377

edits

Navigation menu