<!--
     The FreeBSD Italian Documentation Project

     $FreeBSD$
     Original revision: 1.227
-->

<chapter id="ports">
  <title>Installazione delle Applicazioni: Port e Package</title>

  <sect1 id="ports-synopsis">
    <title>Sinossi</title>

    <indexterm><primary>port</primary></indexterm>
    <indexterm><primary>package</primary></indexterm>

    <para>FreeBSD &egrave; distribuito con una ricca collezione di strumenti di
      sistema come parte base del sistema.  Comunque, c'&egrave; molto che si
      pu&ograve; fare prima che sia necessario installare un'applicazione
      aggiuntiva di terze parti.  FreeBSD fornisce due tecnologie complementari
      per installare software di terze parti sul tuo sistema: la FreeBSD Port
      Collection, ed i packages contenenti i binari del software.  Puoi usare
      entrambi questi sistemi per installare l'ultima versione della tua
      applicazione preferita dai dispositivi locali o direttamente dalla
      rete.</para>

    <para>Dopo aver letto questo capitolo, saprai:</para>

    <itemizedlist>
      <listitem>
        <para>Come installare i package contenenti i binari delle applicazioni
          di terze parti.</para>
      </listitem>

      <listitem>
        <para>Come compilare le applicazioni di terze parti dalla collezione dei
          port.</para>
      </listitem>

      <listitem>
        <para>Come rimuovere i package o i port installati in precedenza.</para>
      </listitem>

      <listitem>
        <para>Come modificare i valori di default utilizzati dalla collezione
          dei port.</para>
      </listitem>

      <listitem>
        <para>Come trovare un package specifico.</para>
      </listitem>

      <listitem>
        <para>Come aggiornare i tuoi port.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="ports-overview">
    <title>Uno Sguardo all'Installazione del Software</title>

    <para>Se hai gi&agrave; usato un sistema &unix; prima d'ora saprai che la
      procedura tipica per installare software di terze parti &egrave; simile a
      questa:</para>

    <procedure>
      <step>
        <para>Scaricare il software, che potrebbe essere distribuito sotto forma
          di codice sorgente, o come binario.</para>
      </step>

      <step>
        <para>Scompattare il software dal suo formato di distribuzione
          (tipicamente un tarball compresso con &man.compress.1;, &man.gzip.1;,
          o con &man.bzip2.1;).</para>
      </step>

      <step>
        <para>Individuare la documentazione (probabilmente un file
          <filename>INSTALL</filename> o un file <filename>README</filename>,
          o qualche file nella sottodirectory <filename>doc/</filename>) e
          leggere come installare il software.</para>
      </step>

      <step>
        <para>Se il software &egrave; stato distribuito sotto forma di sorgente,
          compilarlo.  Questa fase pu&ograve; coinvolgere la modifica di un
          <filename>Makefile</filename>, oppure l'esecuzione di uno script
          <command>configure</command>, e qualche altro lavoro.</para>
      </step>

      <step>
        <para>Installare e testare il software.</para>
      </step>
    </procedure>

    <para>E questo se tutto va bene.  Se stai installando del software di cui
      non &egrave; stato deliberatamente effettuato il porting in FreeBSD
      potresti perfino dover modificare il codice per farlo funzionare
      correttamente.</para>

    <para>Se vuoi, puoi continuare ad installare il software su FreeBSD nel modo
      <quote>tradizionale</quote>.  Comunque, FreeBSD fornisce due tecnologie
      che possono farti risparmiare molti sforzi: i package e i port.  Nel
      momento in cui scrivo, sono disponibili pi&ugrave; di &os.numports;
      applicazioni di terze parti tramite questi due metodi.</para>

    <para>Per ogni applicazione, il package di FreeBSD per quella applicazione
      consiste in un singolo file che devi scaricare.  Il package contiene una
      copia pre-compilata di tutti i comandi dell'applicazione, cos&igrave;
      come i file di configurazione e di documentazione.  Una volta scaricato il
      package, questo pu&ograve; essere manipolato con i comandi di gestione
      dei package di FreeBSD, come &man.pkg.add.1;, &man.pkg.delete.1;,
      &man.pkg.info.1;, e cos&igrave; via.  L'installazione di una nuova
      applicazione pu&ograve; essere fatta con un singolo comando.</para>

    <para>In FreeBSD un port di un'applicazione &egrave; un insieme di file
      predisposti per automatizzare il processo di compilazione
      dell'applicazione partendo dal codice sorgente.</para>

    <para>Ricorda che ci sono molte fasi che normalmente devi eseguire se vuoi
      compilare un programma autonomamente (scaricare, scompattare, correggere,
      compilare, installare).  I file che costituiscono un port contengono tutte
      le informazioni necessarie per permettere al sistema di fare questo lavoro
      al posto tuo.  Tu esegui una manciata di semplici comandi e il codice
      sorgente dell'applicazione viene automaticamente scaricato, estratto,
      corretto, compilato, ed installato.</para>

    <para>Di fatto, il sistema dei port pu&ograve; anche essere usato per
      generare package che possono essere successivamente manipolati
      con <command>pkg_add</command> ed altri comandi di gestione dei package
      che saranno presentati tra poco.</para>

    <para>Sia i package che i port comprendono il meccanismo delle
      <emphasis>dipendenze</emphasis>.  Supponiamo che tu voglia installare
      un'applicazione che dipende da un specifica libreria.  Sia l'applicazione
      che la libreria sono disponibili in FreeBSD come port o come package.  Se
      usi il comando <command>pkg_add</command> o il sistema dei port per
      installare l'applicazione, entrambi noteranno che la libreria non &egrave;
      installata, e automaticamente la installeranno per prima.</para>

    <para>Dato che le due tecnologie sono abbastanza simili, probabilmente
      vorrai sapere perch&eacute; FreeBSD le usa entrambe.  I package e i port
      hanno i loro punti forte, e l'utilizzo dell'uno o dell'altro dipende dalle
      proprie preferenze personali.</para>

    <itemizedlist>
      <title>Benefici dei Package</title>

      <listitem>
        <para>Il tarball compresso di un package &egrave; tipicamente pi&ugrave;
          piccolo del tarball compresso contenente il codice sorgente
          della stessa applicazione.</para>
      </listitem>

      <listitem>
        <para>I package non richiedono alcuna compilazione aggiuntiva.  Per
          grandi applicazioni, come <application>Mozilla</application>,
          <application>KDE</application>, oppure
          <application>GNOME</application> questo pu&ograve; essere importante,
          sopra tutto se usi un sistema lento.</para>
      </listitem>

      <listitem>
        <para>I package non richiedono la conoscenza del processo di
          compilazione del software su FreeBSD.</para>
      </listitem>
    </itemizedlist>

    <itemizedlist>
      <title>Benefici dei Port</title>

      <listitem>
        <para>I package sono normalmente compilati con opzioni conservative,
          poich&eacute; devono poter funzionare su un parco macchine il
          pi&ugrave; ampio possibile.  Con l'installazione dai port, puoi
          aggiustare le opzioni di compilazione per produrre (per esempio) del
          codice che sia specifico per un Pentium IV o un processore
          Athlon.</para>
      </listitem>

      <listitem>
        <para>Alcune applicazioni hanno delle opzioni attivabili al tempo di
          compilazione che permettono di modificare il comportamento delle
          applicazioni stesse.  Per esempio, <application>Apache</application>
          pu&ograve; essere configurato con un'ampia variet&agrave; di
          differenti opzioni built-in.  Effettuando la compilazione dal port non
          sei costretto ad accettare le opzioni di default, e puoi settarle tu
          stesso.</para>

        <para>In alcuni casi, ci possono essere pi&ugrave; package per la stessa
          applicazione a seconda dei settaggi ivi contenuti.  Per esempio,
          <application>Ghostscript</application> &egrave; disponibile come
          package <filename>ghostscript</filename> e come package
          <filename>ghostscript-nox11</filename>, a seconda che tu abbia o meno
          installato un server X11.  Questa sorta di adattamento &egrave;
          possibile con i package, ma diviene impossibile nel caso in cui
          un'applicazione ha pi&ugrave; di una o due diverse opzioni che si
          possono dare al tempo di compilazione.</para>
      </listitem>

      <listitem>
        <para>Le condizioni di licenza di alcune distribuzioni di software
          proibiscono la distribuzione dei binari.  Tali software devono essere
          distribuiti come codice sorgente.</para>
      </listitem>

      <listitem>
        <para>Alcune persone non si fidano della distribuzione dei binari.
          Con il codice sorgente, puoi (in teoria) controllare il codice e
          cercare i suoi potenziali problemi.</para>
      </listitem>

      <listitem>
        <para>Se hai delle patch, hai bisogno del sorgente per
          applicarle.</para>
      </listitem>

      <listitem>
        <para>Ad alcune persone piace avere il codice sorgente, in modo tale da
          poterlo leggerlo se sono annoiati, hackerarlo, prenderne in prestito
          delle parti (licenza permettendo, naturalmente), e cos&igrave;
          via.</para>
      </listitem>
    </itemizedlist>

    <para>Per tenersi al corrente sugli aggiornamenti dei port, iscriviti alla
      &a.ports; e alla &a.ports-bugs;.</para>

    <warning>
      <para>Prima di installare qualche applicazione, dovresti verificare <ulink
          url="http://vuxml.freebsd.org/"></ulink> per eventuali problemi di
        sicurezza relativi alla tua applicazione.</para>

      <para>Inoltre puoi installare il port <filename
          role="package">security/portaudit</filename> che verificher&agrave;
        in modo automatico tutte le applicazioni installate a caccia di
        vulnerabilit&agrave; note, e verr&agrave; fatta una verifica anche
        prima della compilazione dei port.  Puoi usare il comando
        <command>portaudit -F -a</command> dopo che hai installato qualche
        package.</para>
    </warning>

    <para>Il resto del capitolo spiegher&agrave; come usare i package ed i
      port per installare e gestire il software di terze parti su
      FreeBSD.</para>
  </sect1>

  <sect1 id="ports-finding-applications">
    <title>Ricerca della Propria Applicazione</title>

    <para>Prima di poter installare delle applicazioni devi sapere
      quale applicazione ti serve, e come viene chiamata.</para>

    <para>La lista delle applicazioni disponibili su FreeBSD cresce
      continuamente.  Fortunatamente, ci sono diversi sistemi per trovare
      quello che ti serve:</para>

    <itemizedlist>
      <listitem>
        <para>Il sito web di FreeBSD mantiene all'indirizzo <ulink
            url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>
          una lista aggiornata in cui puoi cercare tutte le applicazioni
          correntemente disponibili.  I port sono divisi in categorie, e puoi
          sia cercare un'applicazione in base al nome (se lo conosci), sia
          visionare tutte le applicazioni disponibili in una data
          categoria.</para>
      </listitem>

      <indexterm><primary>FreshPort</primary></indexterm>

      <listitem>
        <para>Dan Langille mantiene FreshPort, all'indirizzo <ulink
            url="http://www.FreshPorts.org/"></ulink>.
          FreshPort segue in tempo reale i cambiamenti delle applicazioni
          nell'albero dei port, permettendoti di <quote>controllare</quote>
          uno o pi&ugrave; port, e dandoti la possibilit&agrave; di essere
          avvisato tramite email quando questi vengono aggiornati.</para>
      </listitem>

      <indexterm><primary>FreshMeat</primary></indexterm>

      <listitem>
        <para>Se non conosci il nome dell'applicazione che desideri, prova ad
          usare un sito come FreshMeat (<ulink
            url="http://www.freshmeat.net/"></ulink>)
          per trovare l'applicazione, quindi controlla sul sito di FreeBSD
          per vedere se &egrave; gi&agrave; stato effettuato il porting.</para>
      </listitem>

      <listitem>
        <para>Se sei a conoscenza del nome esatto del port, ma non sai in
          quale categoria esso sia, puoi usare il comando &man.whereis.1;
          Semplicemente digita <command>whereis
            <replaceable>file</replaceable></command>, dove
          <replaceable>file</replaceable> &egrave; il programma che vuoi
          installare.  Se viene trovato sul tuo sistema, ti verr&agrave;
          indicato dove si trova, in modo simile a quanto segue:</para>

        <screen>&prompt.root; <userinput>whereis lsof</userinput>
lsof: /usr/ports/sysutils/lsof</screen>

        <para>Questo ci dice che <command>lsof</command> (un'utility di
          sistema) si trova nella directory
          <filename>/usr/ports/sysutils/lsof</filename>.</para>
      </listitem>

      <listitem>
        <para>Un altro modo per trovare un determinato port &egrave; quello
          di usare il meccanismo di ricerca contenuto nella collezione dei port.
          Per usare questo servizio di ricerca, devi posizionarti nella
          directory <filename>/usr/ports</filename>.  Una volta in quella
          directory, lancia <command>make search
            name=<replaceable>nome-programma</replaceable></command> dove
          <replaceable>nome-programma</replaceable> &egrave; il nome del
          programma che vuoi cercare.  Per esempio, se vuoi cercare
          <command>lsof</command>:</para>

        <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
&prompt.root; <userinput>make search name=lsof</userinput>
Port:   lsof-4.56.4
Path:   /usr/ports/sysutils/lsof
Info:   Elenca informazioni sui file aperti (simile a fstat(1))
Maint:  obrien@FreeBSD.org
Index:  sysutils
B-deps:
R-deps:</screen>

        <para>La parte di output sulla quale devi porre particolare attenzione
          &egrave; la riga <quote>Path:</quote>, che ti dice dove puoi trovare
          il port.  Le altre informazioni riportate non sono necessarie per
          installare il port, e quindi non saranno trattate in questa
          sede.</para>

        <para>Inoltre per una ricerca pi&ugrave; complessa puoi usare
          <command>make search key=<replaceable>stringa</replaceable></command>
          dove <replaceable>stringa</replaceable> fa parte del testo da cercare.
          Questo ricerca nei nomi dei port, nei commenti, nelle descrizioni e
          nelle dipendenze e pu&ograve; essere usato per cercare port che si
          riferiscono ad un argomento particolare anche se non conosci il nome
          del programma che stai cercando.</para>

        <para>In entrambi i casi, la stringa di ricerca &egrave;
          case-insensitive.  La ricerca per <quote>LSOF</quote> produrr&agrave;
          gli stessi risultati della ricerca per <quote>lsof</quote>.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="packages-using">
    <sect1info>
      <authorgroup>
        <author>
          <firstname>Chern</firstname>

          <surname>Lee</surname>

          <contrib>Contributo di</contrib>
        </author>
      </authorgroup>
    </sect1info>

    <title>Utilizzo del Sistema dei Package</title>

    <sect2>
      <title>Installazione di un Package</title>

      <indexterm>
        <primary>package</primary>
        <secondary>installazione</secondary>
      </indexterm>

      <indexterm><primary><command>pkg_add</command></primary></indexterm>

      <para>Puoi usare l'utility &man.pkg.add.1; per installare un package di
        FreeBSD da un file locale o da un server sulla rete.</para>

      <example>
        <title>Scaricare un Package Manualmente e Installarlo da Locale</title>

        <screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230-     This machine is in Vienna, VA, USA, hosted by Verio.
230-         Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
<prompt>ftp></prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
250 CWD command successful.
<prompt>ftp></prompt> <userinput>get lsof-4.56.4.tgz</userinput>
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375       00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
<prompt>ftp></prompt> <userinput>exit</userinput>
&prompt.root; <userinput>pkg_add <replaceable>lsof-4.56.4.tgz</replaceable></userinput></screen>
      </example>

      <para>Se non hai una raccolta di package locale (per esempio il
        set dei CDROM di FreeBSD) allora probabilmente ti risulter&agrave;
        pi&ugrave; facile usare &man.pkg.add.1; con l'opzione
        <option>-r</option>.  In questo modo &man.pkg.add.1; determina
        automaticamente la corretta release e il giusto formato dell'oggetto,
        quindi scarica il package da un sito FTP e lo installa.</para>

      <indexterm><primary><command>pkg_add</command></primary></indexterm>

      <screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>

      <para>L'esempio qui sopra scarica il giusto package e lo installa senza
        nessun ulteriore intervento.  Se vuoi specificare un sito mirror dei
        package di &os; alternativo, invece del sito di distibuzione principale,
        devi settare la variabile <envar>PACKAGESITE</envar> come desiderato,
        in modo tale da sovrascrivere i settaggi di default.  &man.pkg.add.1;
        usa &man.fetch.3; per scaricare i file, il quale rispetta varie
        variabili d'ambiente, incluse <envar>FTP_PASSIVE_MODE</envar>,
        <envar>FTP_PROXY</envar>, e <envar>FTP_PASSWORD</envar>.  Puoi aver
        bisogno di settarne qualcuna se la tua macchina &egrave; dietro un
        firewall, o se utilizzi un proxy FTP/HTTP.  Leggi &man.fetch.3; per la
        lista completa.  Nell'esempio precedente si pu&ograve; anche notare che
        viene usato <literal>lsof</literal> al posto di
        <literal>lsof-4.56.4</literal>.  Quando viene usata la modalit&agrave;
        di prelevamento da remoto, il numero di versione del package non deve
        essere specificato.  &man.pkg.add.1; prender&agrave; automaticamente
        l'ultima versione dell'applicazione.</para>

      <note>
        <para>&man.pkg.add.1; scaricher&agrave; la versione pi&ugrave; recente
          della tua applicazione solo se stai usando &os.current; o &os.stable;.
          Se stai utilizzando una versione -RELEASE, allora verr&agrave;
          scaricata la versione del package che &egrave; stato costruito per
          la tua release.  Tuttavia &egrave; possibile cambiare questo
          comportamento modificando la variabile di ambiente
          <envar>PACKAGESITE</envar> in modo opportuno.</para>
      </note>

      <para>I file dei package sono distribuiti nel formato
        <filename>.tgz</filename>.  Puoi trovarli in <ulink
          url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>,
        oppure sui CDROM della distribuzione di FreeBSD.  Ogni CD contenuto
        nel set dei quattro CD (e nel PowerPak, ecc.) contiene i package nella
        directory <filename>/packages</filename>.  La disposizione dei package
        &egrave; simile a quella dell'albero <filename>/usr/ports</filename>.
        Ogni categoria ha la propria directory, ed ogni package pu&ograve;
        essere trovato dentro la directory <filename>All</filename>.</para>

      <para>La struttura delle directory del sistema dei package eguaglia
        quella dei port; questi due sistemi lavorano l'uno con l'altro per
        formare l'intero sistema dei package/port.</para>
    </sect2>

    <sect2>
      <title>Gestione dei Package</title>

      <indexterm>
        <primary>package</primary>
        <secondary>gestione</secondary>
      </indexterm>

      <para>L'utility &man.pkg.info.1; elenca e descrive i vari package
        installati.</para>

      <indexterm><primary><command>pkg_info</command></primary></indexterm>

      <screen>&prompt.root; <userinput>pkg_info</userinput>
cvsup-16.1          Un comune sistema di distribuzione dei file in rete ottimizzato per CVS
docbook-1.2         Meta-port delle varie versioni del DTD DocBook
...</screen>

      <para>L'utility &man.pkg.version.1; riassume le versioni di tutti i
        package installati.  Paragona le versioni dei package con le versioni
        correnti trovate nell'albero dei port.</para>

      <indexterm><primary><command>pkg_version</command></primary></indexterm>

      <screen>&prompt.root; <userinput>pkg_version</userinput>
cvsup                       =
docbook                     =
...</screen>

      <para>I simboli nella seconda colonna indicano il risultato del confronto
        tra la versione installata e quella disponibile in locale nell'albero
        dei port.</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <thead>
            <row>
              <entry>Simbolo</entry>

              <entry>Significato</entry>
            </row>
          </thead>

          <tbody>
            <row>
              <entry>=</entry>

              <entry>Le versioni del package installato e di quello disponibile
                in locale nell'albero dei port sono uguali.</entry>
            </row>

            <row>
              <entry>&lt;</entry>

              <entry>La versione installata &egrave; precedente a quella
                disponibile nell'albero dei port.</entry>
            </row>

            <row>
              <entry>&gt;</entry>

              <entry>La versione installata &egrave; pi&ugrave; aggiornata di
                quella trovata in locale nell'albero dei port. (L'albero
                dei port locale &egrave; probabilmente da aggiornare)</entry>
            </row>

            <row>
              <entry>?</entry>

              <entry>Il package installato non pu&ograve; essere trovato
                nell'indice dei port. (Questo pu&ograve; succedere, per esempio,
                se un port installato viene rimosso dalla collezione dei port
                oppure viene rinominato.)</entry>
            </row>

            <row>
              <entry>*</entry>

              <entry>Ci sono pi&ugrave; versioni del package.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </sect2>

    <sect2>
      <title>Cancellazione di un Package</title>

      <indexterm><primary><command>pkg_delete</command></primary></indexterm>
      <indexterm>
        <primary>package</primary>
        <secondary>cancellare</secondary>
      </indexterm>

      <para>Per rimuovere un package installato in precedenza, usa l'utility
        &man.pkg.delete.1;.</para>

      <screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
    </sect2>

    <sect2>
      <title>Miscellanea</title>

      <para>Tutte le informazioni sui package sono memorizzate nella
        directory <filename>/var/db/pkg</filename>.  La lista dei file
        installati e le descrizioni di ogni package possono essere trovate
        all'interno dei file di questa directory.</para>
    </sect2>
  </sect1>

  <sect1 id="ports-using">
    <title>Utilizzo della Collezione dei Port</title>

    <para>Le sezioni seguenti forniscono le istruzioni basilari sull'uso della
      collezione dei port per installare e rimuovere programmi dal tuo
      sistema.</para>

    <sect2 id="ports-tree">
      <title>Ottenimento della Collezione dei Port</title>

      <para>Prima che tu possa installare i port, devi procurarti la collezione
        dei port&mdash;che essenzialmente &egrave; un set di
        <filename>Makefiles</filename>, patch, e file di descrizione collocati
        in <filename>/usr/ports</filename>.</para>

      <para>Durante l'installazione del tuo sistema FreeBSD,
        <application>sysinstall</application> ti ha chiesto se volevi installare
        la collezione dei port.  Se hai rifiutato, puoi seguire queste
        istruzioni per ottenerla:</para>

      <procedure>
        <title>Il Metodo Sysinstall</title>

        <para>Questo metodo richiede ancora l'uso di
          <application>sysinstall</application> per installare
          manualmente la collezione dei port.</para>

        <step>
          <para>Esegui da <username>root</username>
            <command>/stand/sysinstall</command> come mostrato qui sotto:</para>

            <screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen>
        </step>

        <step>
          <para>Scorri verso il basso e seleziona
            <guimenuitem>Configure</guimenuitem>, premi
            <keycap>Invio</keycap>.</para>
        </step>

        <step>
          <para>Scorri verso il basso e seleziona
            <guimenuitem>Distributions</guimenuitem>, premi
            <keycap>Invio</keycap>.</para>
        </step>

        <step>
          <para>Scorri verso il basso fino a <guimenuitem>ports</guimenuitem>,
            premi <keycap>Spazio</keycap>.</para>
        </step>

        <step>
          <para>Scorri verso l'alto fino a <guimenuitem>Exit</guimenuitem>,
            premi <keycap>Invio</keycap>.</para>
        </step>

        <step>
          <para>Seleziona il modo di installazione desiderato, come CDROM,
            FTP, e cos&igrave; via.</para>
        </step>

        <step>
         <para>Scorri verso l'alto fino a <guimenuitem>Exit</guimenuitem> e
            premi <keycap>Invio</keycap>.</para>
       </step>

        <step>
         <para>Premi <keycap>X</keycap> per uscire da
            <application>sysinstall</application>.</para>
        </step>
      </procedure>

      <para>Un altro metodo per ottenere la tua collezione dei port e per
        mantenerla aggiornata consiste nell'utilizzo di
        <application>CVSup</application>.  Dai un'occhiata al file di
        <application>CVSup</application> riguardante i port,
        <filename>/usr/share/examples/cvsup/ports-supfile</filename>.
        Guarda <link linkend="cvsup">Usare CVSup</link> (<xref
          linkend="cvsup">) per maggiori informazioni sull'uso di
        <application>CVSup</application> e del file menzionato.</para>

      <procedure>
        <title>Il Metodo CVSup</title>

        <para>Questo &egrave; un rapido metodo che utilizza
          <application>CVSup</application> per ottenere la collezione dei
          port.  Se vuoi mantenere il tuo albero dei port aggiornato, o imparare
          di pi&ugrave; su <application>CVSup</application>, leggi la sezione
          menzionata in precedenza.</para>

        <step>
          <para>Installa il port <filename role="package">net/cvsup</filename>.
            Guarda <link linkend="cvsup-install">Installazione di CVSup</link>
            (<xref linkend="cvsup-install">) per maggiori dettagli.</para>
        </step>

        <step>
          <para>Da <username>root</username>, copia il file
            <filename>/usr/share/examples/cvsup/ports-supfile</filename>
            in un nuovo posto, come in <filename>/root</filename> o nella tua
            directory home.</para>
        </step>

        <step>
          <para>Edita <filename>ports-supfile</filename>.</para>
        </step>

        <step>
          <para>Cambia <replaceable>CHANGE_THIS.FreeBSD.org</replaceable> in un
            server <application>CVSup</application> vicino a te.  Guarda <link
              linkend="cvsup-mirrors">Mirror CVSup</link> (<xref
              linkend="cvsup-mirrors">) per una lista completa dei siti
            mirror.</para>
        </step>

        <step>
          <para>Esegui <command>cvsup</command>:</para>

          <screen>&prompt.root; <userinput>cvsup -g -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
        </step>

        <step>
          <para>Poco dopo aver eseguito questo comando verranno scaricate
            e applicate alla tua collezione dei port tutte le modifiche
            recenti, anche se di fatto i port gi&agrave; compilati sul tuo
            sistema non verranno aggiornati.</para>
        </step>
      </procedure>
    </sect2>

    <sect2 id="ports-skeleton">
      <title>Installazione dei Port</title>

      <indexterm>
        <primary>port</primary>
        <secondary>installazione</secondary>
      </indexterm>

      <para>La prima cosa che dovrebbe essere chiara quando si ha a che fare con
        la collezione dei port &egrave; l'effettivo significato di
        <quote>scheletro</quote> di un port.  Brevemente, lo scheletro di un
        port &egrave; un insieme minimo di file che dice al tuo sistema FreeBSD
        come compilare ed installare un programma in modo pulito.  Ogni
        scheletro di un port include:</para>

      <itemizedlist>
        <listitem>
          <para>Un <filename>Makefile</filename>.  Il
            <filename>Makefile</filename> contiene varie espressioni che
            specificano come l'applicazione deve essere compilata e dove
            deve essere installata sul tuo sistema.</para>
        </listitem>

        <listitem>
          <para>Un file <filename>distinfo</filename>.  Questo file contiene
            informazioni sui file che devono essere scaricati per la
            compilazione del port e sui loro checksum (somme di controllo),
            utilizzati per verificare che quei file non siano stati corrotti
            durante il download.</para>
        </listitem>

        <listitem>
          <para>Una directory <filename>files</filename>.  Questa directory
            contiene le patch utilizzate per la compilazione e per
            l'installazione del programma sul tuo sistema FreeBSD.  Le patch
            sono sostanzialmente piccoli file che specificano come modificare
            alcuni file.  Sono in puro formato di testo, e in modo grossolano
            dicono <quote>Rimuovi la riga 10</quote> o
            <quote>Cambia la riga 26 in ...</quote>.  Le patch sono anche
            conosciute con il termine <quote>diff</quote> poich&egrave; sono
            generate dal programma &man.diff.1;.</para>

          <para>Questa directory pu&ograve; anche contenere altri file
            utilizzati per la costruzione del port.</para>
        </listitem>

        <listitem>
          <para>Un file <filename>pkg-descr</filename>.  Questo file contiene
            una descrizione del programma pi&ugrave; dettagliata, spesso su
            pi&ugrave; righe di testo.</para>
        </listitem>

        <listitem>
          <para>Un file <filename>pkg-plist</filename>.  Questo file contiene
            l'elenco di tutti i file che saranno installati dal port.
            Dice anche al sistema dei port quale file rimuovere durante la
            disinstallazione.</para>
        </listitem>
      </itemizedlist>

      <para>Alcuni port hanno altri file, come
        <filename>pkg-message</filename>.  Il sistema dei port li usa
        per affrontare speciali situazioni.  Se vuoi maggiori dettagli
        su questi file, e sui port in generale, leggi attentamente il
        <ulink url="&url.books.porters-handbook;/index.html">Manuale del Porter
          di FreeBSD</ulink>.</para>

      <para>Il port include istruzioni su come compilare il codice sorgente,
        ma non include il codice sorgente stesso.  Devi prendere il codice
        sorgente da un CDROM o da Internet.  L'autore del codice sorgente
        pu&ograve; distribuirlo come desidera.  Quasi sempre &egrave; un file
        di archivio tar compresso con gzip, ma potrebbe essere stato compresso
        con un altro tool o perfino potrebbe essere non compresso.  Il codice
        sorgente del programma, in qualsiasi forma sia, &egrave; chiamato con
        il termine <quote>distfile</quote>.  I due metodi per installare un
        port di &os; sono descritti qui sotto.</para>

      <note>
        <para>Devi essere <username>root</username> per installare i
          port.</para>
      </note>

      <warning>
        <para>Prima di installare qualche port, dovresti assicurarti di avere
          l'albero della collezione dei port aggiornato e dovresti verificare
          <ulink
            url="http://vuxml.freebsd.org/"></ulink> per eventuali problemi di
          sicurezza relativi alla tua applicazione.</para>

        <para>Una verifica delle vulnerabilit&agrave; di sicurezza pu&ograve;
          essere fatta in modo automatico con
          <application>portaudit</application> prima dell'installazione di nuove
          aplicazioni.  Questo strumento pu&ograve; essere trovato nella
          collezione dei port (<filename
            role="package">security/portaudit</filename>).  Esegui
          <command>portaudit -F</command> prima di installare un nuovo port,
          per aggiornare la base di dati delle vulnerabilit&agrave;.  Durante
          la verifica giornaliera del sistema verr&agrave; fatto un controllo
          di integrit&agrave; e un aggiornamento della base di dati delle
          vulnerabilit&agrave;.  Per maggiori informazioni leggi le pagine man
          &man.portaudit.1; e &man.periodic.8;.</para>
      </warning>

      <sect3 id="ports-cd">
        <title>Installazione dei Port dal CDROM</title>

        <indexterm>
          <primary>port</primary>
          <secondary>installazione da CDROM</secondary>
        </indexterm>

        <para>Le immagini ufficiali su CDROM del progetto FreeBSD non
          includono pi&ugrave; i distfile.  Occupano molto spazio che &egrave;
          meglio utilizzato per i package precompilati.  I prodotti su CDROM
          come il FreeBSD PowerPak includono i distfile, e puoi ordinare questi
          set da un venditore come <ulink
            url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>.
          Questa sezione presuppone che tu abbia un simile set di CDROM di
          FreeBSD.</para>

        <para>Metti il tuo CDROM di FreeBSD nell'apposito lettore.  Montalo
          su <filename>/cdrom</filename>.  (Se usi un punto di mount differente,
          l'installazione non funzioner&agrave;.)  Per prima cosa, vai nella
          directory del port che vuoi installare:</para>

        <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>

        <para>Una volta dentro la directory <filename>lsof</filename>,
          vedrai lo scheletro del port.  Il prossimo passo riguarda la
          compilazione, o <quote>costruzione</quote>, del port.  Questo viene
          fatto semplicemente digitando <command>make</command> al prompt.  Una
          volta che hai fatto questo, dovresti vedere qualcosa simile a quanto
          segue:</para>

        <screen>&prompt.root; <userinput>make</userinput>
&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
&gt;&gt; Attempting to fetch from file:/cdrom/ports/distfiles/.
===&gt;  Extracting for lsof-4.57
...
[l'output dell'estrazione &egrave; stato tagliato]
...
&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
===&gt;  Patching for lsof-4.57
===&gt;  Applying FreeBSD patches for lsof-4.57
===&gt;  Configuring for lsof-4.57
...
[l'output della configurazione &egrave; stato tagliato]
...
===&gt;  Building for lsof-4.57
...
[l'output della compilazione &egrave; stato tagliato]
...
&prompt.root;</screen>

        <para>Nota che una volta terminata la compilazione ritornerai al tuo
          prompt.  Il prossimo passo riguarda l'installazione del
          port.  Per installarlo, devi semplicemente affiancare una parola al
          comando <command>make</command>, e questa parola &egrave;
          <command>install</command>:</para>

        <screen>&prompt.root; <userinput>make install</userinput>
===&gt;  Installing for lsof-4.57
...
[l'output dell'installazione &egrave; stato tagliato]
...
===&gt;   Generating temporary packing list
===&gt;   Compressing manual pages for lsof-4.57
===&gt;   Registering installation for lsof-4.57
===&gt;  SECURITY NOTE:
      I binari di questo port richiedono l'esecuzione con alti privilegi.
&prompt.root;</screen>

        <para>Quando ritornerai al tuo prompt, dovresti essere in grado di
          eseguire l'applicazione che hai appena installato.  Siccome
          <command>lsof</command> &egrave; un programma che lavora con alti
          privilegi, viene mostrato un avvertimento di sicurezza.  Durante la
          compilazione e l'installazione dei port, dovresti fare attenzione ad
          ogni avvertimento che appare.</para>

        <note>
          <para>Potresti anche evitare un passaggio lanciando solamente
            <command>make install</command> invece dei due passi separati
            <command>make</command> e <command>make install</command>.</para>
        </note>

        <note>
          <para>Alcune shell mantengono una cache dei comandi che sono
            disponibili nelle directory elencate nella variabile d'ambiente
            <envar>PATH</envar>, per velocizzare le operazioni di ricerca dei
            file eseguibili di questi comandi.  Se stai usando una di queste
            shell, potresti dover usare il comando <command>rehash</command>
            dopo l'installazione di un port, prima di poter usare il nuovo
            comando.  Questo succede sia per le shell che fanno parte del
            sistema base (come <command>tcsh</command>) sia per le shell
            che sono disponibili dai port (per esempio,
            <filename role="package">shells/zsh</filename>).</para>
        </note>

        <note>
          <para>Per cortesia sii consapevole che le licenze di alcuni port non
            permettono l'inclusione degli stessi sul CDROM.  Questa limitazione
            potrebbe essere dovuta dalla necessit&agrave; di compilare un form
            di registrazione prima di scaricare il software, o perch&eacute; la
            ridistribuzione non &egrave; permessa, o per altre ragioni.  Se
            desideri installare un port non incluso nel CDROM, dovrai essere
            collegato ad Internet per farlo (vedi la <link
              linkend="ports-inet">prossima sezione</link>).</para>
        </note>
      </sect3>

      <sect3 id="ports-inet">
        <title>Installazione dei Port da Internet</title>

        <para>Questa sezione presuppone che tu abbia una connessione ad Internet
          funzionante.  Se non ce l'hai, dovrai utilizzare <link
            linkend="ports-cd">l'installazione da CDROM</link>, oppure dovrai
          copiare manualmente il distfile in
          <filename>/usr/ports/distfiles</filename>.</para>

        <para>L'installazione di un port da Internet viene fatta nello stesso
          modo con cui viene fatta l'installazione da CDROM.  L'unica differenza
          tra i due modi &egrave; che il distfile del port viene preso da
          Internet invece che dal CDROM.</para>

        <para>I passi richiesti sono gli stessi:</para>

        <screen>&prompt.root; <userinput>make install</userinput>
&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
&gt;&gt; Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===&gt;  Extracting for lsof-4.57
...
[l'output dell'estrazione &egrave; stato tagliato]
...
&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
===&gt;  Patching for lsof-4.57
===&gt;  Applying FreeBSD patches for lsof-4.57
===&gt;  Configuring for lsof-4.57
...
[l'output della configurazione &egrave; stato tagliato]
...
===&gt;  Building for lsof-4.57
...
[l'output della compilazione &egrave; stato tagliato]
...
===&gt;  Installing for lsof-4.57
...
[l'output dell'installazione &egrave; stato tagliato]
...
===&gt;   Generating temporary packing list
===&gt;   Compressing manual pages for lsof-4.57
===&gt;   Registering installation for lsof-4.57
===&gt;  SECURITY NOTE:
      I binari di questo port richiedono l'esecuzione con alti privilegi.
&prompt.root;</screen>

        <para>Come puoi vedere, la sola differenza sta nella riga che dice
          da dove il sistema sta ottenendo il distfile del port.</para>

        <para>Il sistema dei port usa &man.fetch.1; per scaricare i file,
          il quale rispetta varie variabili d'ambiente, incluse
          <envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>,
          e <envar>FTP_PASSWORD</envar>.  Puoi aver bisogno di settarne
          qualcuna se sei dietro a un firewall, o se usi un proxy FTP/HTTP.
          Guarda &man.fetch.3; per la lista completa.</para>

        <para>Gli utenti che non possono essere sempre connessi ad Internet
          possono usare l'opzione <command>make
            <maketarget>fetch</maketarget></command>.  Esegui tale comando in
          cima alla directory (<filename>/usr/ports</filename>) e i file
          richiesti saranno scaricati.  Questo comando funziona anche nelle
          categorie di livello inferiore, per esempio:
          <filename>/usr/ports/net</filename>.  Nota che se un port dipende
          da una libreria o da altri port, quel comando <emphasis>non</emphasis>
          prelever&agrave; anche i distfile di questi port.  Sostituisci
          <maketarget>fetch</maketarget> con
          <maketarget>fetch-recursive</maketarget> se vuoi prelevare anche
          tutte le dipendenze di un port.</para>

        <note>
          <para>Puoi compilare tutti i port di una categoria o perfino tutti
            i port eseguendo <command>make</command> in cima alla directory,
            in modo simile a quanto fatto per il suddetto metodo <command>make
              <makevar>fetch</makevar></command>.  Comunque, questo &egrave;
            rischioso poich&egrave; alcuni port non possono coesistere.  Inoltre,
            alcuni port potrebbero richiedere di installare due diversi file con
            lo stesso nome.</para>
        </note>

        <para>In alcuni casi rari, gli utenti potrebbero voler acquisire i
          tarball da un sito diverso dal <makevar>MASTER_SITES</makevar>
          (la locazione di default dove i file sono scaricati).  Puoi
          sovrascrivere l'opzione <makevar>MASTER_SITES</makevar> con il comando
          seguente:</para>

        <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>

        <para>In questo esempio abbiamo settato <makevar>MASTER_SITES</makevar>
          a <hostid
            role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>.</para>

        <note>
          <para>Alcuni port permettono (o perfino richiedono) l'impostazione
            di alcune opzioni di compilazione che abilitano/disabilitano parti
            dell'applicazione opzionali, settaggi di sicurezza, e altre
            personalizzazioni.  Alcune applicazioni che mi vengono in mente sono
            <filename role="package">www/mozilla</filename>, <filename
              role="package">security/gpgme</filename>, e <filename
              role="package">mail/sylpheed-claws</filename>.  Quando sono
            disponibili simili opzioni viene visualizzato un
            messaggio.</para>
        </note>
      </sect3>

      <sect3>
        <title>Cambiare le Directory dei Port di Default</title>

        <para>Qualche volta &egrave; utile (o necessario) utilizzare
          directory per i distfile e i port diverse da quelle di default.  Le
          variabili <makevar>PORTSDIR</makevar> e <makevar>PREFIX</makevar>
          possono sovrascrivere le directory di default.  Per esempio:</para>

        <screen>&prompt.root; <userinput>make PORTSDIR=/usr/home/example/ports install</userinput></screen>

        <para>compiler&agrave; il port in
          <filename>/usr/home/example/ports</filename> e installer&agrave; ogni
          cosa sotto <filename>/usr/local</filename>.</para>

        <screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>

        <para>compiler&agrave; in <filename>/usr/ports</filename> ed
          installer&agrave; in
          <filename>/usr/home/example/local</filename>.</para>

        <para>E naturalmente,</para>

        <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>

        <para>&egrave; una combinazione dei due (&egrave; troppo lungo da
          scrivere per intero su questa pagina, ma dovrebbe darti lo stesso
          un'idea generale).</para>

        <para>Alternativamente, queste variabili potrebbero essere settate nel
          tuo ambiente.  Leggi la pagina man della tua shell per sapere come
          fare.</para>
      </sect3>

      <sect3>
        <title>Avere a che Fare con <command>imake</command></title>

        <para>Alcuni port che usano <command>imake</command> (una parte dell'X
          Window System) non funzionano bene con
          <makevar>PREFIX</makevar>, e si ostinano ad installarsi sotto
          <filename>/usr/X11R6</filename>.  In modo analogo, alcuni port di Perl
          ignorano <makevar>PREFIX</makevar> e si installano nell'albero del
          Perl.  Far rispettare a questi port <makevar>PREFIX</makevar> &egrave;
          spesso un lavoro difficile o persino impossibile.</para>
      </sect3>
    </sect2>

    <sect2 id="ports-removing">
      <title>Rimozione dei Port Installati</title>

      <indexterm>
        <primary>port</primary>
        <secondary>rimozione</secondary>
      </indexterm>

      <para>Ora che sai come installare i port, probabilmente ti chiederai come
        rimuoverli, caso mai ne installassi uno e successivamente ti accorgessi
        che hai installato il port sbagliato.  Rimuoveremo il port utilizzato
        nel nostro esempio precedente (che era <command>lsof</command> se non
        sei stato attento).  Come con l'installazione dei port, la prima cosa
        che devi fare &egrave; andare nella directory del port,
        <filename>/usr/ports/sysutils/lsof</filename>.  Dopo aver cambiato
        directory, sei pronto per disinstallare <command>lsof</command>.
        Questo viene fatto con il comando
        <command>make deinstall</command>:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput>
&prompt.root; <userinput>make deinstall</userinput>
===&gt;  Deinstalling for lsof-4.57</screen>

      <para>&Egrave; stato abbastanza facile.  In questo modo hai rimosso
        <command>lsof</command> dal tuo sistema.  Se volessi reinstallarlo, puoi
        farlo lanciando <command>make reinstall</command> dalla directory
        <filename>/usr/ports/sysutils/lsof</filename>.</para>

      <para>Le sequenze <command>make deinstall</command> e <command>make
          reinstall</command> non funzionano pi&ugrave; una volta che hai dato
        un <command>make clean</command>.  Se vuoi disinstallare un port dopo un
        <command>make clean</command>, usa &man.pkg.delete.1; come
        discusso nella <link linkend="packages-using">sezione del Manuale
          riguardante i Package</link>.</para>
    </sect2>

    <sect2 id="ports-disk-space">
      <title>Port e Spazio su Disco</title>

      <indexterm>
        <primary>port</primary>
        <secondary>spazio su disco</secondary>
      </indexterm>

      <para>Usando la collezione dei port puoi facilmente esaurire lo spazio del
        tuo disco.  Per questa ragione dovresti sempre ricordarti di ripulire
        le directory di lavoro dei port usando l'opzione <command>make
          <makevar>clean</makevar></command>.  Questo rimuover&agrave; la
        directory <filename>work</filename> usata per la compilazione ed
        l'installazione del port.  Inoltre puoi rimuovere i file tar dalla
        directory <filename>distfiles</filename>, e rimuovere i port installati
        che non sono pi&ugrave; utilizzati.</para>

      <para>Alcuni utenti limitano le categorie dei port mettendo un elemento
        nel file <filename>refuse</filename>.  In questo modo, quando viene
        eseguita l'applicazione <application>CVSup</application>, questa non
        scaricher&agrave; i file delle categorie specificate nel file
        <filename>refuse</filename>.  Maggiori informazioni riguardo il file
        <filename>refuse</filename> possono essere trovate nella <xref
          linkend="cvsup-refuse-file">.</para>
    </sect2>

    <sect2 id="ports-upgrading">
      <title>Aggiornamento dei Port</title>

      <indexterm>
        <primary>portupgrade</primary>
      </indexterm>

      <indexterm>
        <primary>port</primary>
        <secondary>aggiornamento</secondary>
      </indexterm>

      <note>
        <para>Dopo che hai aggiornato la tua collezione dei port, prima di
          tentare di aggiornare un port, dovresti verificare il file
          <filename>/usr/ports/UPDATING</filename>.  Questo file riporta alcuni
          problemi che gli utenti potrebbero incontrare durante l'aggiornamento
          di un port con le relative soluzioni.</para>
      </note>

      <para>Mantenere i tuoi port aggiornati pu&ograve; essere un lavoro noioso.
        Per esempio, per aggiornare dovresti andare nella directory del port,
        compilare il port, disinstallare il vecchio port, installare quello
        nuovo, e quindi ripulire la directory di lavoro.  Immagina di fare
        tutto ci&ograve; per cinque port, noioso vero?  Questo era uno dei
        maggiori problemi per gli amministratori di sistema, e ora abbiamo
        strumenti che fanno questo lavoro per noi.  Per esempio l'utility
        <filename role="package">sysutils/portupgrade</filename> fa tutto
        questo!  Installalo come qualsiasi altro port, usando il comando
        <command>make <makevar>install clean</makevar></command>.</para>

      <para>Ora crea un database con il comando <command>pkgdb -F</command>.
        Verr&agrave; letta la lista dei port installati e verr&agrave; creato
        un file database nella directory <filename>/var/db/pkg</filename>.
        D'ora in avanti, quando esegui <command>portupgrade -a</command>, questo
        legger&agrave; il database e il file dei port
        <filename>INDEX</filename>.  Infine,
        <application>portupgrade</application> incomincer&agrave; a scaricare,
        compilare, effettuare backup, installare, e ripulire i port che devono
        essere aggiornati.  <application>portupgrade</application> &egrave;
        fornito di molte opzioni a seconda dei casi di utilizzo, tra i quali
        uno &egrave; particolarmente importante.</para>

      <para>Se vuoi aggiornare solo una determinata applicazione, e non il
        database completo, usa <command>portupgrade
          <replaceable>pkgname</replaceable></command>, con l'opzione
        <option>-r</option> se <application>portupgrade</application> dovrebbe
        agire anche su tutti i package che dipendono dal dato package, o con
        l'opzione <option>-R</option> per agire su tutti i package richiesti
        dal dato package.  Se vuoi usare i package invece dei port per
        l'installazione, usa l'opzione <option>-P</option> e se vuoi scaricare
        solo i distfile senza compilare o installare nulla, allora usa l'opzione
        <option>-F</option>.  Per maggiori informazioni guarda la pagina man di
        &man.portupgrade.1;.</para>

      <note>
        <para>&Egrave; importante aggiornare in modo regolare il database dei
          package usando il comando <command>pkgdb -F</command> per rattoppare
          eventuali incoerenze, specialmente quando
          <application>portupgrade</application> te lo chiede.  Non interrompere
          <application>portupgrade</application> mentre sta aggiornando il
          database dei package, poich&egrave; ci&ograve; comporter&agrave;
          un database inconsistente.</para>
      </note>

      <para>Esistono altre utility che fanno simili lavori, controlla la
        directory <filename>ports/sysutils</filename> e guarda se ti viene
        qualche idea.</para>
    </sect2>
  </sect1>

  <sect1 id="ports-nextsteps">
    <title>Attivit&agrave; del Dopo Installazione</title>

    <para>Di solito dopo aver installato una nuova applicazione dovresti
      leggere la documentazione che potrebbe essere stata inclusa, modificare
      qualche file di configurazione, assicurarti che l'applicazione parta nella
      fase di avvio (se &egrave; un demone), e cos&igrave via;.</para>

    <para>I passi precisi che devi seguire per configurare un'applicazione
      sono ovviamente diversi da applicazione a applicazione.  Comunque, se hai
      appena installato una nuova applicazione e ti stai chiedendo
      <quote>Cosa faccio ora?</quote> questi consigli potrebbero
      aiutarti:</para>

    <itemizedlist>
      <listitem>
        <para>Usa &man.pkg.info.1; per scoprire quali file sono stati
          installati, e dove sono stati installati.  Per esempio, se hai appena
          installato la versione 1.0.0 di FooPackage, allora questo
          comando</para>

        <screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>

        <para>mostrer&agrave; tutti i file installati dal package.  Fai molta
          attenzione ai file nelle directory <filename>man/</filename>, che
          sono le pagine man, a quelli nella directory
          <filename>etc/</filename>, che sono i file di configurazione, e a
          quelli in <filename>doc/</filename>, che forniscono una documentazione
          pi&ugrave; esauriente.</para>

        <para>Se non sei sicuro della versione dell'applicazione che hai appena
          installato, questo comando</para>

        <screen>&prompt.root; <userinput>pkg_info | grep <replaceable>foopackage</replaceable></userinput></screen>

        <para>trover&agrave; tutti i package installati che contengono nel nome
          <replaceable>foopackage</replaceable>.  Rimpiazza
          <replaceable>foopackage</replaceable> nella tua riga di comando a
          seconda delle tue necessit&agrave;.</para>
      </listitem>

      <listitem>
        <para>Una volta che hai scoperto dove sono state posizionate le pagine
          man dell'applicazione, esaminale usando &man.man.1;.  Analogamente,
          esamina i file di configurazione d'esempio, ed ogni ulteriore
          documentazione che pu&ograve; essere stata fornita.</para>
      </listitem>

      <listitem>
        <para>Se l'applicazione ha un sito web, cerca della documentazione
          aggiuntiva, le domande pi&ugrave; frequenti (FAQ), ed altro ancora.
          Se non sei sicuro dell'indirizzo del sito web questo potrebbe essere
          presente nell'output di</para>

        <screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>

        <para>Una riga contenete <literal>WWW:</literal>, se presente, dovrebbe
          fornire l'URL del sito dell'applicazione.</para>
      </listitem>

      <listitem>
        <para>I port che dovrebbero avviarsi in fase di avvio (come i server
          Internet) di solito installano uno script di esempio in
          <filename>/usr/local/etc/rc.d</filename>.  Dovresti verificare questo
          script ed eventualmente modificarlo o rinominarlo.  Vedi la sezione
          <link linkend="configtuning-starting-services">Avvio dei
            Servizi</link> per maggiori informazioni.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="ports-broken">
    <title>Avere a che Fare con Port non Funzionanti</title>

    <para>Se ti dovessi imbattere in un port che per te non funziona, ci
      sono alcune cose che puoi fare, tra le quali:</para>

    <orderedlist>
      <listitem>
        <para>Aggiustarlo!  Il <ulink
          url="&url.books.porters-handbook;/index.html">Manuale del
            Porter</ulink> contiene informazioni dettagliate
          sull'infrastruttura dei <quote>Ports</quote> affinch&egrave;
          tu possa aggiustare quel port che occasionalmente non funziona o
          perfino proporne uno tutto tuo!</para>
      </listitem>

      <listitem>
        <para>Brontolare&mdash;<emphasis>solo attraverso email</emphasis>!
          Prima manda una email a colui che mantiene il port.
          Digita <command>make maintainer</command> o leggi il
          <filename>Makefile</filename> per trovare il suo indirizzo email.
          Ricorda di includere nel messaggio il nome e la versione del port
          (manda la riga <literal>&dollar;FreeBSD:</literal> del
          <filename>Makefile</filename>) e l'output che descrive
          l'errore.  Se non ottieni risposta dal maintainer, puoi usare
          &man.send-pr.1; per inoltrare il report del bug.</para>
      </listitem>

      <listitem>
        <para>Prendi il package da un sito FTP vicino a te.  La
          <quote>principale</quote> collezione dei package &egrave; su <hostid
            role="fqdn">ftp.FreeBSD.org</hostid> nella <ulink
            url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">directory
            dei package</ulink>, ma <emphasis>prima</emphasis> assicurati di
          controllare il tuo mirror locale!  &Egrave; pi&ugrave; probabile
          che funzionino i package rispetto alla compilazione dal sorgente e
          sono anche molto pi&ugrave; sbrigativi.  Usa il programma
          &man.pkg.add.1; per installare i package sul tuo sistema.</para>
      </listitem>
    </orderedlist>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
