<?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="introduction">
  <title>Introduction</title>

  <para>MacPorts is a system for compiling, installing, and managing free and
  open source software. MacPorts may be thought of as divided into two main
  parts: the infrastructure, known as MacPorts base, and the set of available
  ports. A MacPorts "port" is a set of specifications contained in a
  <filename>Portfile</filename> that defines an application, its
  characteristics, and any files or special instructions required to install
  it, so MacPorts may automatically fetch, patch, compile, and install ported
  software.</para>

  <para>MacPorts may also be used to pre-compile ported software into binaries
  that may be installed on remote computers. Binaries of ported software may
  be installed very quickly since the steps required to install ports from
  source code have all been performed in advance.</para>

  <para>MacPorts provides several major advantages over installing free and
  open source software manually.</para>

  <itemizedlist>
    <listitem>
      <para>MacPorts automatically installs any required support software,
      known as "dependencies", for a given port.</para>
    </listitem>

    <listitem>
      <para>MacPorts confines ported software to a private "sandbox" that
      keeps it from intermingling with your operating system and its
      vendor-supplied software and prevents them from becoming
      corrupted.</para>
    </listitem>

    <listitem>
      <para>MacPorts provides automatic uninstalls and upgrades of ported
      software.</para>
    </listitem>
  </itemizedlist>

  <para>MacPorts is developed on Mac OS X, though it is designed to be
  portable so it can work on other Unix-like systems, especially those
  descended from the Berkeley Software Distribution (BSD).</para>

  <section>
    <title>Document Conventions</title>

    <para>The MacPorts Guide uses some notational conventions to distinguish
    between terminal input/output, file text, and other special text
    types.</para>

    <itemizedlist>
      <listitem>
        <para>Terminal I/O and file text.</para>

        <programlisting><prompt>%% </prompt><userinput>Commands to be typed into a terminal window.</userinput></programlisting>

        <screen>Command output to a terminal window.</screen>

        <programlisting>File text.</programlisting>
      </listitem>

      <listitem>
        <para>Other special text types.</para>

        <para>A hyperlink: <ulink
        url="http://en.wikipedia.org/wiki/Spontaneous_combustion">spontaneous
        combustion</ulink>.</para>

        <para>A file: <filename>/var/log/system.log</filename>.</para>

        <para>A command: <command>ifconfig</command>.</para>
      </listitem>
    </itemizedlist>
  </section>
</chapter>