Installazione delle Applicazioni: Port e PackageSinossiportpackageFreeBSD è distribuito con una ricca collezione di strumenti di
sistema come parte base del sistema. Comunque, c'è molto che si
può 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 Ports
Collection (per installare dai sorgenti), ed i package (per installare
da binari pre-compilati). Puoi usare entrambi questi sistemi per
installare l'ultima versione della tua applicazione preferita dai
dispositivi locali o direttamente dalla rete.Dopo aver letto questo capitolo, saprai:Come installare i package contenenti i binari delle applicazioni
di terze parti.Come compilare le applicazioni di terze parti dai sorgenti usando
la collezione dei port.Come rimuovere i package o i port installati in precedenza.Come modificare i valori di default utilizzati dalla collezione
dei port.Come trovare un package specifico.Come aggiornare le tue applicazioni.Uno Sguardo all'Installazione del SoftwareSe hai già usato un sistema &unix; prima d'ora saprai che la
procedura tipica per installare software di terze parti è simile a
questa:Scaricare il software, che potrebbe essere distribuito sotto forma
di codice sorgente, o come binario.Scompattare il software dal suo formato di distribuzione
(tipicamente un tarball compresso con &man.compress.1;, &man.gzip.1;,
o con &man.bzip2.1;).Individuare la documentazione (probabilmente un file
INSTALL o un file README,
o qualche file nella sottodirectory doc/) e
leggere come installare il software.Se il software è stato distribuito sotto forma di sorgente,
compilarlo. Questa fase può coinvolgere la modifica di un
Makefile, oppure l'esecuzione di uno script
configure, e qualche altro lavoro.Installare e testare il software.E questo se tutto va bene. Se stai installando del software di cui
non è stato deliberatamente effettuato il porting in FreeBSD
potresti perfino dover modificare il codice per farlo funzionare
correttamente.Se vuoi, puoi continuare ad installare il software su FreeBSD nel modo
tradizionale. Comunque, FreeBSD fornisce due tecnologie
che possono farti risparmiare molti sforzi: i package e i port. Nel
momento in cui scrivo, sono disponibili più di &os.numports;
applicazioni di terze parti tramite questi due metodi.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ì
come i file di configurazione e di documentazione. Una volta scaricato il
package, questo può 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ì via. L'installazione di una nuova
applicazione può essere fatta con un singolo comando.In FreeBSD un port di un'applicazione è un insieme di file
predisposti per automatizzare il processo di compilazione
dell'applicazione partendo dal codice sorgente.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.Di fatto, il sistema dei port può anche essere usato per
generare package che possono essere successivamente manipolati
con pkg_add ed altri comandi di gestione dei package
che saranno presentati tra poco.Sia i package che i port comprendono il meccanismo delle
dipendenze. 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 pkg_add o il sistema dei port per
installare l'applicazione, entrambi noteranno che la libreria non è
installata, e automaticamente la installeranno per prima.Dato che le due tecnologie sono abbastanza simili, probabilmente
vorrai sapere perché 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.Benefici dei PackageIl tarball compresso di un package è tipicamente più
piccolo del tarball compresso contenente il codice sorgente
della stessa applicazione.I package non richiedono alcuna compilazione aggiuntiva. Per
grandi applicazioni, come Mozilla,
KDE, oppure
GNOME questo può essere importante,
sopra tutto se usi un sistema lento.I package non richiedono la conoscenza del processo di
compilazione del software su FreeBSD.Benefici dei PortI package sono normalmente compilati con opzioni conservative,
poiché devono poter funzionare su un parco macchine il
più 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.Alcune applicazioni hanno delle opzioni attivabili al tempo di
compilazione che permettono di modificare il comportamento delle
applicazioni stesse. Per esempio, Apache
può essere configurato con un'ampia varietà di
differenti opzioni built-in. Effettuando la compilazione dal port non
sei costretto ad accettare le opzioni di default, e puoi settarle tu
stesso.In alcuni casi, ci possono essere più package per la stessa
applicazione a seconda dei settaggi ivi contenuti. Per esempio,
Ghostscript è disponibile come
package ghostscript e come package
ghostscript-nox11, a seconda che tu abbia o meno
installato un server X11. Questa sorta di adattamento è
possibile con i package, ma diviene impossibile nel caso in cui
un'applicazione ha più di una o due diverse opzioni che si
possono dare al tempo di compilazione.Le condizioni di licenza di alcune distribuzioni di software
proibiscono la distribuzione dei binari. Tali software devono essere
distribuiti come codice sorgente.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.Se hai delle patch, hai bisogno del sorgente per
applicarle.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ì
via.Per tenersi al corrente sugli aggiornamenti dei port, iscriviti alla
&a.ports; e alla &a.ports-bugs;.Prima di installare qualche applicazione, dovresti verificare http://vuxml.freebsd.org/ per eventuali problemi di
sicurezza relativi alla tua applicazione.Inoltre puoi installare il port security/portaudit che verificherà
in modo automatico tutte le applicazioni installate a caccia di
vulnerabilità note; una verifica verrà fatta anche
prima della compilazione dei port. Puoi usare il comando
portaudit -F -a dopo che hai installato qualche
package.Il resto del capitolo spiegherà come usare i package ed i
port per installare e gestire il software di terze parti su
FreeBSD.Ricerca della Propria ApplicazionePrima di poter installare delle applicazioni devi sapere
quale applicazione ti serve, e come viene chiamata.La lista delle applicazioni disponibili su FreeBSD cresce
continuamente. Fortunatamente, ci sono diversi sistemi per trovare
quello che ti serve:Il sito web di FreeBSD mantiene all'indirizzo http://www.FreeBSD.org/ports/
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.FreshPortDan Langille mantiene FreshPort, all'indirizzo http://www.FreshPorts.org/.
FreshPort segue in tempo reale i cambiamenti delle applicazioni
nell'albero dei port, permettendoti di controllare
uno o più port, e dandoti la possibilità di essere
avvisato tramite email quando questi vengono aggiornati.FreshMeatSe non conosci il nome dell'applicazione che desideri, prova ad
usare un sito come FreshMeat (http://www.freshmeat.net/)
per trovare l'applicazione, quindi controlla sul sito di FreeBSD
per vedere se è già stato effettuato il porting.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 whereis
file, dove
file è il programma che vuoi
installare. Se viene trovato sul tuo sistema, ti verrà
indicato dove si trova, in modo simile a quanto segue:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofQuesto ci dice che lsof (un'utility di
sistema) si trova nella directory
/usr/ports/sysutils/lsof.Un altro modo per trovare un determinato port è quello
di usare il meccanismo di ricerca contenuto nella collezione dei port.
Per usare questo servizio di ricerca, devi posizionarti nella
directory /usr/ports. Una volta in quella
directory, lancia make search
name=nome-programma dove
nome-programma è il nome del
programma che vuoi cercare. Per esempio, se vuoi cercare
lsof:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
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:La parte di output sulla quale devi porre particolare attenzione
è la riga Path:, 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.Inoltre per una ricerca più complessa puoi usare
make search key=stringa
dove stringa fa parte del testo da cercare.
Questo ricerca nei nomi dei port, nei commenti, nelle descrizioni e
nelle dipendenze e può essere usato per cercare port che si
riferiscono ad un argomento particolare anche se non conosci il nome
del programma che stai cercando.In entrambi i casi, la stringa di ricerca è
case-insensitive. La ricerca per LSOF produrrà
gli stessi risultati della ricerca per lsof.Utilizzo del Sistema dei PackageChernLeeContributo diInstallazione di un Packagepackageinstallazionepkg_addPuoi usare l'utility &man.pkg.add.1; per installare un package di
FreeBSD da un file locale o da un server sulla rete.Scaricare un Package Manualmente e Installarlo da Locale&prompt.root; ftp -a ftp2.FreeBSD.org
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.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
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)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzSe non hai una raccolta di package locale (per esempio il
set dei CDROM di FreeBSD) allora probabilmente ti risulterà
più facile usare &man.pkg.add.1; con l'opzione
. 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.pkg_add&prompt.root; pkg_add -r lsofL'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 PACKAGESITE 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 FTP_PASSIVE_MODE,
FTP_PROXY, e FTP_PASSWORD. Puoi aver
bisogno di settarne qualcuna se la tua macchina è dietro un
firewall, o se utilizzi un proxy FTP/HTTP. Leggi &man.fetch.3; per la
lista completa. Nell'esempio precedente si può anche notare che
viene usato lsof al posto di
lsof-4.56.4. Quando viene usata la modalità
di prelevamento da remoto, il numero di versione del package non deve
essere specificato. &man.pkg.add.1; prenderà automaticamente
l'ultima versione dell'applicazione.&man.pkg.add.1; scaricherà la versione più recente
della tua applicazione solo se stai usando &os.current; o &os.stable;.
Se stai utilizzando una versione -RELEASE, allora verrà
scaricata la versione del package che è stato costruito per
la tua release. Tuttavia è possibile cambiare questo
comportamento modificando la variabile di ambiente
PACKAGESITE in modo opportuno. Per esempio, se hai un
un sistema &os; 5.4-RELEASE, di default &man.pkg.add.1; tenterà
di scaricare i package da
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/.
Se vuoi forzare &man.pkg.add.1; a scaricare i package di
&os; 5-STABLE, setta PACKAGESITE a
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/.
I file dei package sono distribuiti nel formato
.tgz. Puoi trovarli in ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/,
oppure sui CDROM della distribuzione di FreeBSD. Ogni CD contenuto
nel set dei quattro CD (e nel PowerPak, ecc.) contiene i package nella
directory /packages. La disposizione dei package
è simile a quella dell'albero /usr/ports.
Ogni categoria ha la propria directory, ed ogni package può
essere trovato dentro la directory All.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.Gestione dei PackagepackagegestioneL'utility &man.pkg.info.1; elenca e descrive i vari package
installati.pkg_info&prompt.root; pkg_info
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
...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.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...I simboli nella seconda colonna indicano il risultato del confronto
tra la versione installata e quella disponibile in locale nell'albero
dei port.SimboloSignificato=Le versioni del package installato e di quello disponibile
in locale nell'albero dei port sono uguali.<La versione installata è precedente a quella
disponibile nell'albero dei port.>La versione installata è più aggiornata di
quella trovata in locale nell'albero dei port. (L'albero
dei port locale è probabilmente da aggiornare)?Il package installato non può essere trovato
nell'indice dei port. (Questo può succedere, per esempio,
se un port installato viene rimosso dalla collezione dei port
oppure viene rinominato.)*Ci sono più versioni del package.Cancellazione di un Packagepkg_deletepackagecancellarePer rimuovere un package installato in precedenza, usa l'utility
&man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1MiscellaneaTutte le informazioni sui package sono memorizzate nella
directory /var/db/pkg. La lista dei file
installati e le descrizioni di ogni package possono essere trovate
all'interno dei file di questa directory.Utilizzo della Collezione dei PortLe sezioni seguenti forniscono le istruzioni basilari sull'uso della
collezione dei port per installare e rimuovere programmi dal tuo
sistema.Ottenimento della Collezione dei PortPrima che tu possa installare i port, devi procurarti la collezione
dei port—che essenzialmente è un set di
Makefiles, patch, e file di descrizione collocati
in /usr/ports.Durante l'installazione del tuo sistema FreeBSD,
sysinstall ti ha chiesto se volevi installare
la collezione dei port. Se hai rifiutato, puoi seguire queste
istruzioni per ottenerla:Il Metodo SysinstallQuesto metodo richiede ancora l'uso di
sysinstall per installare
manualmente la collezione dei port.Esegui da rootsysinstall
(/stand/sysinstall nelle versioni di &os;
precedenti alla 5.2) come mostrato qui sotto:&prompt.root; sysinstallScorri verso il basso e seleziona
Configure, premi
Invio.Scorri verso il basso e seleziona
Distributions, premi
Invio.Scorri verso il basso fino a ports,
premi Spazio.Scorri verso l'alto fino a Exit,
premi Invio.Seleziona il modo di installazione desiderato, come CDROM,
FTP, e così via.Scorri verso l'alto fino a Exit e
premi Invio.Premi X per uscire da
sysinstall.Un altro metodo per ottenere la tua collezione dei port e per
mantenerla aggiornata consiste nell'utilizzo di
CVSup. Dai un'occhiata al file di
CVSup riguardante i port,
/usr/share/examples/cvsup/ports-supfile.
Guarda Usare CVSup () per maggiori informazioni sull'uso di
CVSup e del file menzionato.Il Metodo CVSupQuesto è un rapido metodo che utilizza
CVSup per ottenere la collezione dei
port. Se vuoi mantenere il tuo albero dei port aggiornato, o imparare
di più su CVSup, leggi la sezione
menzionata in precedenza.Installa il package net/cvsup-without-gui:&prompt.root; pkg_add -r cvsup-without-guiGuarda Installazione di CVSup
() per maggiori dettagli.Esegui cvsup:&prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfileCambia cvsup.FreeBSD.org in un
server CVSup vicino a te. Guarda Mirror CVSup () per una lista completa dei siti
mirror.Qualcuno potrebbe voler usare il suo
ports-supfile, per esempio per evitare di
passare il server CVSup su linea di
comando.In questo caso, da root, copia
/usr/share/examples/cvsup/ports-supfile
in una nuova locazione, come
/root o la tua directory home.Modifica ports-supfile.Cambia
CHANGE_THIS.FreeBSD.org
in un server CVSup vicino a
te. Guarda Mirror
CVSup () per una
lista completa di siti mirror.E ora esegui cvsup, in questo
modo:&prompt.root; cvsup -L 2 /root/ports-supfilePoco dopo aver eseguito il comando &man.cvsup.1; verranno
scaricate e applicate alla tua collezione dei port tutte le
modifiche recenti, anche se di fatto i port già compilati
sul tuo sistema non verranno aggiornati.Installazione dei PortportinstallazioneLa prima cosa che dovrebbe essere chiara quando si ha a che fare con
la collezione dei port è l'effettivo significato di
scheletro di un port. Brevemente, lo scheletro di un
port è 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:Un Makefile. Il
Makefile contiene varie espressioni che
specificano come l'applicazione deve essere compilata e dove
deve essere installata sul tuo sistema.Un file distinfo. 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.Una directory files. 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 Rimuovi la riga 10 o
Cambia la riga 26 in .... Le patch sono anche
conosciute con il termine diff poichè sono
generate dal programma &man.diff.1;.Questa directory può anche contenere altri file
utilizzati per la costruzione del port.Un file pkg-descr. Questo file contiene
una descrizione del programma più dettagliata, spesso su
più righe di testo.Un file pkg-plist. 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.Alcuni port hanno altri file, come
pkg-message. 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
Manuale del Porter
di FreeBSD.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ò distribuirlo come desidera. Quasi sempre è 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, è chiamato con
il termine distfile. I due metodi per installare un
port di &os; sono descritti qui sotto.Devi essere root per installare i
port.Prima di installare qualche port, dovresti assicurarti di avere
l'albero della collezione dei port aggiornato e dovresti verificare
http://vuxml.freebsd.org/ per eventuali problemi di
sicurezza relativi alla tua applicazione.Una verifica delle vulnerabilità di sicurezza può
essere fatta in modo automatico con
portaudit prima dell'installazione di nuove
applicazioni. Questo strumento può essere trovato nella
collezione dei port (security/portaudit). Esegui
portaudit -F prima di installare un nuovo port,
per aggiornare la base di dati delle vulnerabilità. Durante
la verifica giornaliera del sistema verrà fatto un controllo
di integrità e un aggiornamento della base di dati delle
vulnerabilità. Per maggiori informazioni leggi le pagine man
&man.portaudit.1; e &man.periodic.8;.Installazione dei Port dal CDROMportinstallazione da CDROMLe immagini ufficiali su CDROM del progetto FreeBSD non
includono più i distfile. Occupano molto spazio che è
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 FreeBSD Mall.
Questa sezione presuppone che tu abbia un simile set di CDROM di
FreeBSD.Metti il tuo CDROM di FreeBSD nell'apposito lettore. Montalo
su /cdrom. (Se usi un punto di mount differente,
setta la variabile make CD_MOUNTPTS.) Per prima cosa,
vai nella directory del port che vuoi installare:&prompt.root; cd /usr/ports/sysutils/lsofUna volta dentro la directory lsof,
vedrai lo scheletro del port. Il prossimo passo riguarda la
compilazione, o costruzione, del port. Questo viene
fatto semplicemente digitando make al prompt. Una
volta che hai fatto questo, dovresti vedere qualcosa simile a quanto
segue:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[l'output dell'estrazione è stato tagliato]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[l'output della configurazione è stato tagliato]
...
===> Building for lsof-4.57
...
[l'output della compilazione è stato tagliato]
...
&prompt.root;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 make, e questa parola è
install:&prompt.root; make install
===> Installing for lsof-4.57
...
[l'output dell'installazione è stato tagliato]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
I binari di questo port richiedono l'esecuzione con alti privilegi.
&prompt.root;Quando ritornerai al tuo prompt, dovresti essere in grado di
eseguire l'applicazione che hai appena installato. Siccome
lsof è 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.Potresti anche evitare un passaggio lanciando solamente
make install invece dei due passi separati
make e make install.Alcune shell mantengono una cache dei comandi che sono
disponibili nelle directory elencate nella variabile d'ambiente
PATH, per velocizzare le operazioni di ricerca dei
file eseguibili di questi comandi. Se stai usando una di queste
shell, potresti dover usare il comando rehash
dopo l'installazione di un port, prima di poter usare il nuovo
comando. Questo comando funzionerà per le shell come
tcsh. Usa il comando
hash -r per le shell come
sh o shells/bash. Per maggiori
informazioni guarda la documentazione della tua shell.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à di compilare un form
di registrazione prima di scaricare il software, o perché la
ridistribuzione non è permessa, o per altre ragioni. Se
desideri installare un port non incluso nel CDROM, dovrai essere
collegato ad Internet per farlo (vedi la prossima sezione).Installazione dei Port da InternetQuesta sezione presuppone che tu abbia una connessione ad Internet
funzionante. Se non ce l'hai, dovrai utilizzare l'installazione da CDROM, oppure dovrai
copiare manualmente il distfile in
/usr/ports/distfiles.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 è che il distfile del port viene preso da
Internet invece che dal CDROM.I passi richiesti sono gli stessi:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> 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)
===> Extracting for lsof-4.57
...
[l'output dell'estrazione è stato tagliato]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[l'output della configurazione è stato tagliato]
...
===> Building for lsof-4.57
...
[l'output della compilazione è stato tagliato]
...
===> Installing for lsof-4.57
...
[l'output dell'installazione è stato tagliato]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
I binari di questo port richiedono l'esecuzione con alti privilegi.
&prompt.root;Come puoi vedere, la sola differenza sta nella riga che dice
da dove il sistema sta ottenendo il distfile del port.Il sistema dei port usa &man.fetch.1; per scaricare i file,
il quale rispetta varie variabili d'ambiente, incluse
FTP_PASSIVE_MODE, FTP_PROXY,
e FTP_PASSWORD. 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.Gli utenti che non possono essere sempre connessi ad Internet
possono usare l'opzione make
fetch. Esegui tale comando in
cima alla directory (/usr/ports) e i file
richiesti saranno scaricati. Questo comando funziona anche nelle
categorie di livello inferiore, per esempio:
/usr/ports/net. Nota che se un port dipende
da una libreria o da altri port, quel comando non
preleverà anche i distfile di questi port. Sostituisci
fetch con
fetch-recursive se vuoi prelevare anche
tutte le dipendenze di un port.Puoi compilare tutti i port di una categoria o perfino tutti
i port eseguendo make in cima alla directory,
in modo simile a quanto fatto per il suddetto metodo make
fetch. Comunque, questo è
rischioso poichè alcuni port non possono coesistere. Inoltre,
alcuni port potrebbero richiedere di installare due diversi file con
lo stesso nome.In alcuni casi rari, gli utenti potrebbero voler acquisire i
tarball da un sito diverso dal MASTER_SITES
(la locazione di default dove i file sono scaricati). Puoi
sovrascrivere l'opzione MASTER_SITES con il comando
seguente:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIn questo esempio abbiamo settato MASTER_SITES
a ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.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
www/mozilla, security/gpgme, e mail/sylpheed-claws. Quando sono
disponibili simili opzioni viene visualizzato un
messaggio.Cambiare le Directory dei Port di DefaultQualche volta è utile (o necessario) utilizzare
directory per i distfile e i port diverse da quelle di default. Le
variabili PORTSDIR e PREFIX
possono sovrascrivere le directory di default. Per esempio:&prompt.root; make PORTSDIR=/usr/home/example/ports installcompilerà il port in
/usr/home/example/ports e installerà ogni
cosa sotto /usr/local.&prompt.root; make PREFIX=/usr/home/example/local installcompilerà in /usr/ports ed
installerà in
/usr/home/example/local.E naturalmente,&prompt.root; make PORTSDIR=../ports PREFIX=../local installè una combinazione dei due (è troppo lungo da
scrivere per intero su questa pagina, ma dovrebbe darti lo stesso
un'idea generale).Alternativamente, queste variabili potrebbero essere settate nel
tuo ambiente. Leggi la pagina man della tua shell per sapere come
fare.Avere a che Fare con imakeAlcuni port che usano imake (una parte dell'X
Window System) non funzionano bene con
PREFIX, e si ostinano ad installarsi sotto
/usr/X11R6. In modo analogo, alcuni port di Perl
ignorano PREFIX e si installano nell'albero del
Perl. Far rispettare a questi port PREFIX è
spesso un lavoro difficile o persino impossibile.Rimozione dei Port InstallatiportrimozioneOra 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 lsof se non
sei stato attento). Come con l'installazione dei port, la prima cosa
che devi fare è andare nella directory del port,
/usr/ports/sysutils/lsof. Dopo aver cambiato
directory, sei pronto per disinstallare lsof.
Questo viene fatto con il comando
make deinstall:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57È stato abbastanza facile. In questo modo hai rimosso
lsof dal tuo sistema. Se volessi reinstallarlo, puoi
farlo lanciando make reinstall dalla directory
/usr/ports/sysutils/lsof.Le sequenze make deinstall e make
reinstall non funzionano più una volta che hai dato
un make clean. Se vuoi disinstallare un port dopo un
make clean, usa &man.pkg.delete.1; come
discusso nella sezione del Manuale
riguardante i Package.Port e Spazio su Discoportspazio su discoUsando la collezione dei port con il passare del tempo puoi
facilmente esaurire lo spazio del tuo disco. Infatti compilando ed
installando software con i port, l'albero dei port tende ad aumentare in
dimensioni, quindi dovresti sempre ricordarti di ripulire le
directory temporanee work usando
il comando make clean. Questo
rimuoverà la directory work
dopo che un port è stato compilato ed installato. Inoltre puoi
rimuovere i file sorgenti della distribuzione dalla
directory distfiles, e rimuovere
i port installati che non sono più utilizzati.Alcuni utenti limitano le categorie dei port disponibili mettendo un
elemento nel file refuse. In questo modo, quando
viene eseguita l'applicazione CVSup, questa non
scaricherà i file delle categorie specificate nel file
refuse. Maggiori informazioni riguardo il file
refuse possono essere trovate nella .Aggiornamento dei PortportupgradeportaggiornamentoDopo che hai aggiornato la tua collezione dei port, prima di
tentare di aggiornare un port, dovresti verificare il file
/usr/ports/UPDATING. Questo file riporta alcuni
problemi che gli utenti potrebbero incontrare durante l'aggiornamento
di un port con le relative soluzioni.Mantenere i tuoi port aggiornati può 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ò 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
sysutils/portupgrade fa tutto
questo! Installalo come qualsiasi altro port, usando il comando
make install clean.Ora crea un database con il comando pkgdb -F.
Verrà letta la lista dei port installati e verrà creato
un file database nella directory /var/db/pkg.
D'ora in avanti, quando esegui portupgrade -a, questo
leggerà il database e il file dei port
INDEX. Infine,
portupgrade incomincerà a scaricare,
compilare, effettuare backup, installare, e ripulire i port che devono
essere aggiornati. portupgrade è
fornito di molte opzioni a seconda dei casi di utilizzo, tra i quali
uno è particolarmente importante.Se vuoi aggiornare solo una determinata applicazione, e non il
database completo, usa portupgrade
pkgname, con l'opzione
se portupgrade dovrebbe
agire anche su tutti i package che dipendono dal dato package, o con
l'opzione per agire su tutti i package richiesti
dal dato package.Per usare i package invece dei port nell'installazione, usa l'opzione
. Con questa opzione
portupgrade cerca nelle directory locali
elencate in PKG_PATH, o, se non sono stati trovati
localmente, scarica i package da un sito. Se i package non sono stati
trovati localmente ne è stato possibile scaricarli in remoto,
portupgrade userà i port.
Per impedire l'uso dei port, usa l'opzione .Per scaricare solo i distfile (o i package, se è stata specificata
l'opzione ) senza compilare o installare nulla, usa l'opzione
. Per maggiori informazioni guarda la pagina man di
&man.portupgrade.1;.È importante aggiornare in modo regolare il database dei
package usando il comando pkgdb -F per rattoppare
eventuali incoerenze, specialmente quando
portupgrade te lo chiede. Non interrompere
portupgrade mentre sta aggiornando il
database dei package, poichè ciò comporterà
un database inconsistente.Esistono altre utility che fanno simili lavori, controlla la
directory ports/sysutils e guarda se ti viene
qualche idea.Attività del Dopo InstallazioneDi 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 è un demone), e così via;.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
Cosa faccio ora? questi consigli potrebbero
aiutarti: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&prompt.root; pkg_info -L foopackage-1.0.0 | lessmostrerà tutti i file installati dal package. Fai molta
attenzione ai file nelle directory man/, che
sono le pagine man, a quelli nella directory
etc/, che sono i file di configurazione, e a
quelli in doc/, che forniscono una documentazione
più esauriente.Se non sei sicuro della versione dell'applicazione che hai appena
installato, questo comando&prompt.root; pkg_info | grep foopackagetroverà tutti i package installati che contengono nel nome
foopackage. Rimpiazza
foopackage nella tua riga di comando a
seconda delle tue necessità.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ò essere stata fornita.Se l'applicazione ha un sito web, cerca della documentazione
aggiuntiva, le domande più frequenti (FAQ), ed altro ancora.
Se non sei sicuro dell'indirizzo del sito web questo potrebbe essere
presente nell'output di&prompt.root; pkg_info foopackage-1.0.0Una riga contenete WWW:, se presente, dovrebbe
fornire l'URL del sito dell'applicazione.I port che dovrebbero avviarsi in fase di avvio (come i server
Internet) di solito installano uno script di esempio in
/usr/local/etc/rc.d. Dovresti verificare questo
script ed eventualmente modificarlo o rinominarlo. Vedi la sezione
Avvio dei
Servizi per maggiori informazioni.Avere a che Fare con Port non FunzionantiSe ti dovessi imbattere in un port che per te non funziona, ci
sono alcune cose che puoi fare, tra le quali:Scopri se c'è una soluzione pendente per il port nel
database dei Report dei
Problemi. Se c'è, potresti usare la soluzione
proposta.Chiedi aiuto a colui che mantiene il port.
Digita make maintainer o leggi il
Makefile per trovare il suo indirizzo email.
Ricorda di includere nel messaggio il nome e la versione del port
(manda la riga $FreeBSD: del
Makefile) e l'output che descrive
l'errore.Alcuni port non sono mantenuti da singole persone ma invece
da una mailing
list. La maggior parte di questi indirizzi sono
simili a
freebsd-listname@FreeBSD.org.
Tieni conto di questo quando mandi le tue questioni.In particolare, i port mantenuti da
freebsd-ports@FreeBSD.org in
realtà non sono mantenuti da nessuno. Il supporto e
i fix, se ce ne sono, arrivano dalla comunità facente
parte di quella mailing list.
Sono necessari altri volontari!Se non ottieni una risposta, puoi usare &man.send-pr.1;
per segnalare un bug report (guarda l'articolo Come
Scrivere i Report dei Problemi per FreeBSD).Aggiustarlo! Il Manuale del
Porter contiene informazioni dettagliate
sull'infrastruttura dei Port affinchè
tu possa aggiustare quel port che occasionalmente non funziona o
perfino proporne uno tutto tuo!Prendi il package da un sito FTP vicino a te. La
principale collezione dei package è su ftp.FreeBSD.org nella directory
dei package, ma prima assicurati di
controllare il tuo mirror locale!
È più probabile
che funzionino i package rispetto alla compilazione dal sorgente e
sono anche molto più sbrigativi. Usa il programma
&man.pkg.add.1; per installare i package sul tuo sistema.