  <chapter id="installing">
    <title>Installing or uninstalling Wine</title>

    <para>
      A standard Wine distribution form (which you probably downloaded
      according to chapter <link linkend="getting-wine">Getting Wine</link>)
      includes quite a few different programs, libraries
      and configuration files.  All of these
      must be set up properly for Wine to work well.  In order to
      achieve this, this chapter will guide you through the necessary steps
      to get the Wine files
      installed on your system. It will <emphasis>not</emphasis>
      deal with how to get Wine's Windows environment
      <emphasis>configured</emphasis>; that's what the next chapter
      will talk about.
    </para>

    <para>
      When installing Wine, you should make sure that it doesn't happen
      to overwrite a previous Wine installation (as this would cause
      an overwhelming amount of annoying and fatal conflicts);
      uninstalling any previous Wine version (as explained in this chapter)
      to avoid this problem is recommended.
    </para>

    <sect1>
      <title>Installing or uninstalling Wine packages</title>

      <para>
	Now that you have downloaded the Debian or RPM or whatever Wine
	package file, probably via the instructions given in the
	previous chapter, you may be wondering "What in the world do I
	do with this thing?".
	This section will hopefully be able to put an end to your
	bewildered questioning, by giving detailed install instructions
	for all sorts of well-known package types.
      </para>

      <sect2>
        <title>Debian Linux</title>

	<para>
	  In case you haven't downloaded and automatically installed the
	  Wine package file via <command>apt-get</command> as described
	  in the <link linkend="getting-wine">Getting Wine</link>
	  section, you now need to use <command>dpkg</command> to
	  install it.  Switch to the directory you downloaded the Debian
	  .deb package file to.  Once there, type these commands,
	  adapting the package file name as required:
        </para>
<screen>
<prompt>$ </><userinput>su -</>
Password:
<prompt># </><userinput>cd /home/user</>
<prompt># </><userinput>dpkg -i wine_<replaceable>0.0.20030115-1</>.deb</>
</screen>
        <para>
	  (Type the root password at the "Password:" prompt)
	</para>

        <para>
          You may also want to install the
          <systemitem>wine-doc</systemitem> package, and if you are
          using Wine from the 2.3 distribution (Woody), the
          <systemitem>wine-utils</systemitem> package as well.
        </para>

	<para>
	  Uninstalling an installed Wine Debian package can be done by
	  running:
	</para>
<screen>
<prompt># </><userinput>dpkg -l|grep wine</>
</screen>
        <para>
	  The second column of the output (if any) of this command will
	  indicate the installed packages dealing with "wine".
	  The corresponding packages can be uninstalled by running:
	</para>
<screen>
<prompt># </><userinput>dpkg -r <replaceable>&lt;package_name&gt;</></>
</screen>
        <para>
	  where &lt;package_name&gt; is the name of the Wine-related package
	  which you want to uninstall.
        </para>
      </sect2>
      <sect2>
        <title>Red Hat (RPM) Linux</title>

        <para>
	  Switch to the directory you downloaded the RPM package file to.
	  Once there, type this one command as root, adapting the
	  package file name as required:
        </para>
<screen>
<prompt># </><userinput>rpm -ivh wine-<replaceable>20020605-2.i386</>.rpm</>
</screen>
        <para>
          You may also want to install the
          <systemitem>wine-devel</systemitem> package.
        </para>
	<para>
	  Uninstalling an installed Wine RPM package can be done by
	  running:
	</para>
<screen>
<prompt># </><userinput>rpm -qa|grep -i wine</>
</screen>
        <para>
	  This command will indicate the installed packages dealing with "wine".
	  The corresponding packages can be uninstalled by running:
	</para>
<screen>
<prompt># </><userinput>rpm -e <replaceable>&lt;package_name&gt;</></>
</screen>
        <para>
	  where &lt;package_name&gt; is the name of the Wine-related package
	  which you want to uninstall.
        </para>
      </sect2>
    </sect1>

    <sect1>
      <title>Installing or uninstalling a Wine source code tree</title>

      <para>
        If you are in the directory of the Wine version that you just
	compiled (e.g. by having run <command>make depend && make</command>), then you may now install this Wine version by running as <glossterm>root</glossterm>:
      </para>
<screen>
<prompt># </><userinput>make install</>
</screen>
      <para>
        This will copy the Wine binary files to their final destination
	in your system. You can then proceed to the <link
	linkend="config-wine-main">Configuration chapter</link> to
	configure the Wine environment.
      </para>

      <para>
        If instead you want to uninstall the currently installed Wine
	source code version, then change to the main directory of this
	version and run as <glossterm>root</glossterm>:
      </para>
<screen>
<prompt># </><userinput>make uninstall</>
</screen>
    </sect1>
  </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-user.sgml" "set" "book" "chapter" "")
End:
-->
