.. index:: pair: offline installation; OpenMDAO

Installing OpenMDAO Offline
---------------------------

This document provides instructions for installing OpenMDAO on a non-networked computer.


Generating Offline Install Scripts
=====================================

First, you must generate two installer scripts using ``mkinstaller.py`` (located in
``openmdao.devtools)``. The first script gathers all necessary packages that are required for an
OpenMDAO installation and places them (as ``.egg`` files) within a single directory named ``pkg``. This
script is generated by passing the command line argument ``--offline gather`` to ``mkinstaller.py``, as
shown:

::

  python openmdao.devtools\src\openmdao\devtools\mkinstaller.py --offline gather
  
The second script actually installs OpenMDAO using these gathered files located within the
``pkg`` directory.  You generate this script by passing the command line argument ``--offline installer``
to ``mkinstaller.py``, as shown:

::

  python openmdao.devtools\src\openmdao\devtools\mkinstaller.py --offline installer

  
Gathering Needed Files
=======================

Next, move the ``gather-go-openmdao`` script to a temporary directory on a networked machine with the
same  Python version, OS, and architecture as the machine where the offline installation will be made.
When you run the Python script, an installation of OpenMDAO will be created along with a directory named
``pkg``.  Once the script has finished, you may discard this installation of OpenMDAO. Only the ``pkg``
directory will be needed.

Next, you must download a Python setuptools egg and a pip source tar and manually place them within the ``pkg``
directory. 

  
Performing the Installation
====================================

Now, move the ``pkg`` directory and the generated ``offline-go-openmdao`` script to the non-networked
machine  to perform the offline installation. Run the script with the command-line arguments
``--extra-search-dir=[pkg location]`` to force virtualenv to look in the specified ``pkg`` directory for
the setuptools and pip source. Use ``-f [pkg location]`` to force  setuptools to search the ``pkg``
directory for needed source. Use ``--never-download`` to ensure all necessary package installations
occur from local sources. The following example shows the command to use when the
``offline-go-openmdao`` script and ``pkg`` directory are in the same location::

  python offline-go-openmdao-0.4.0.py --extra-search-dir=pkg -f pkg --never-download
  
In this case OpenMDAO will be built from local sources only. 
