<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
		"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="nano-installation">
	<title>Installing @nano.product.name@</title>
	<section id="nano-installation-prereqs">
		<title>Prerequisites</title>
		<para>
			The @nano.product.name@, or @nano.product.name.short@ for short, requires Java SE 6 or later to be installed. Java is available from
			<ulink url="http://www.java.com/">http://www.java.com/</ulink> and elsewhere.
		</para>
	</section>

	<section id="nano-installation-zip">
		<title>Installing from the ZIP Download</title>
		<section>
			<title>Downloading the ZIP file</title>
			<para>
				@nano.product.name@ is distributed as a ZIP file. This can be downloaded from
				<ulink url="http://www.eclipse.org/virgo/download/">here</ulink>.
			</para>
		</section>
		<section id="nano-installation-zip-installing">
			<title>Installing</title>
			<section  id="nano-installation-zip-installing-linux">
				<title>Linux</title>
				<para>
					To install the @nano.product.name@ on Linux, unzip the distribution package to the desired installation directory.
					For example, to install into <literal>/opt</literal>:
				</para>
				<screen>prompt$ unzip virgo-nano-@bundle.version@.zip -d /opt</screen>
				<para>
					This creates a directory called <literal>virgo-nano-@bundle.version@</literal> under <literal>/opt</literal>.
				</para>
				<para>
					@nano.product.name@ requires write access to the installation directory, in this case <literal>/opt/virgo-nano-@bundle.version@</literal>.
					Typically this means it must be run as the user that installed it, or the installation directory&rsquo;s ownership must be changed.
				</para>
			</section>
			<section  id="nano-installation-zip-installing-win">
				<title>Microsoft Windows</title>
				<para>
					To install the @nano.product.name@ on Windows, unzip the distribution package to the desired installation directory.
					You should use a zip application such as 7zip, not the built-in folder decompression.  Note that both Windows and
					Java have some issues with long file names and file paths, so we recommend installing to the root directory of
					your chosen drive.
				</para>
			</section>
		</section>
	</section>

	<section id="nano-installation-updatesite">
		<title>Installing from an update site</title>
		<section>
			<title>The repository location</title>
			<para>
				Virgo has a single p2 repository that contains all Virgo distributions. The repository for version @bundle.version@ can be found <ulink url="@p2repo@">here</ulink>.
				There is a repository for each released version.
			</para>
		</section>
		<section>
			<title>Using the p2 director</title>
			<para>
				As shown in <xref linkend="using-director"/> you can easily install @nano.product.name.short@ in a desired destination.
				The only director argument that needs to be adjusted is <emphasis>-installIU</emphasis>.
			</para>
			<para>
				For @nano.product.name.short@ the right value is <emphasis>nano.product</emphasis>.
			</para>
		</section>
	</section>

	<section id="nano-installation-post">
		<title>Post-installation steps</title>
	    Follow the same <link linkend="installation-post">Post-installation steps</link> as for @tomcat.product.name@.
	</section>

</chapter>