<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" CONTENT="text/html; charset=utf-8">
  <title>OpenOffice.org - Linux Setup</title>
</head>

<body>

<h2>Linux Setup</h2>

<p><a href="mailto:mdekkers@openoffice.org">Martijn Dekkers</a></p>

<p><i>Last updated: 2002-04-30</i></p>

<p> Installing OpenOffice.org on Linux is very easy! To make sure you get the best possible setup, simply follow these steps.</p>

<h3>Prerequisites</h3>

<p> You want to make sure you have the latest JRE installed. It must be at least JRE 1.3. You can find the JRE for Linux at
<a href="http://www.blackdown.org/java-linux/mirrors.html">Blackdown.org</a> - or might be included on the installation media of your distribution.</p>

<ol>
  <li> Download the tarball from OpenOffice.org, and extract the tarball (.tar.gz file) to a temporary directory. "<code>/tmp</code>" is a good place for
  example. For the purpose of this example, I will assume you have downloaded the tarball to your <code>/tmp</code> directory. Open a terminal, such as
  "<code>xterm</code>" or "<code>konsole</code>". To extract the tarball, change to the /tmp directory: <code>cd /tmp</code> and extract the tarball:
  "<code>tar -zxvf [tarball name]</code>".</li>

  <li> This will create a directory "<code>install</code>". Change into this directory: "<code>cd install</code>."</li>

  <li> Execute setup. This is done with the following command: "<code>./setup /net</code>" This command will start the first step of the Linux setup
  process.</li>

  <li> Follow the instructions of the installation application. When asked where to place your OpenOffice.org program files, you can choose
  "<code>/opt/OpenOffice.org[version number]</code>" as a good place for your new home of OpenOffice.org. For example, if your version is 1.0,
  "<code>/opt/OpenOffice.org1.0</code>" would be a good place.</li>

  <li> When the installer is finished, you should execute the user-setup for OpenOffice.org. To do so, first change into the program directory where you
  installed OpenOffice.org: <code>cd /opt/OpenOffice.org1.0</code>.</li>

  <li> From this directory, execute the following command: "<code>./setup </code>[without the <code>/net</code>, this time]".</li>

  <li> The user portion of setup will now execute. Tell setup to perform a normal installation (should copy about 1.4 MB of files to your home directory)
  and tell it to store the files in your user directory under ooo641d (for example: "<code>/home/billg/OpenOffice.org1.0</code>"). Follow the instructions
  and fill in your contact details, and tell OpenOffice.org where your Java installation lives. When setup asks where to install the files for
  OpenOffice.org, usually OpenOffice.org will find Java on its own, but sometimes it need you to give the path to Java. (Hint: if you don't know the path
  to your Java setup, you can type in the command line: <code>whereis java</code> - this will give the path to your Java installation)</li>

  <li>That's it! If you use GNOME or KDE, you will find that OpenOffice.org 1.0 is fully integrated in your environment. If you use a different
  Windowmanager, you can start OpenOffice.org 1.0 by typing "<code>~/OpenOffice.org1.0/soffice</code>"</li>
</ol>

<p>Have Fun!</p>

<p>Martijn Dekkers,<br />
Founder, OOoDocs</p>

</body>
</html>
