doc/el_GR.ISO8859-7/books/handbook/ports/chapter.xml
Gabor Kovesdan a6684b4306 - Reduce the misuse of role attribute; role="directory" should actually be
class="directory"
- Add constraint to enforce this
2013-04-04 11:40:58 +00:00

1631 lines
65 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="iso-8859-7"?>
<!--
Το Εγχειρίδιο του FreeBSD: Εγκατάσταση Εφαρμογών: Packages και Ports
The FreeBSD Greek Documentation Project
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/ports/chapter.xml
%SRCID% 39234
-->
<chapter id="ports">
<title>Εγκατάσταση Εφαρμογών: Πακέτα και Ports</title>
<sect1 id="ports-synopsis">
<title>Σύνοψη</title>
<indexterm><primary>ports</primary></indexterm>
<indexterm><primary>Packages</primary></indexterm>
<para>Το &os; συνοδεύεται από μία πλούσια συλλογή από προγράμματα σαν
μέρος του βασικού συστήματος. Όμως, λίγα μπορεί να κάνει κάποιος πριν
βρεθεί στην ανάγκη να εγκαταστήσει μια πρόσθετη εφαρμογή για να
υλοποιήσει μια πραγματική εργασία. Το &os; παρέχει δυο συμπληρωματικές
τεχνολογίες για να εγκαταστήσετε πρόσθετες εφαρμογές στο σύστημα σας:
τη Συλλογή των Ports (Ports Collection, για εγκατάσταση από τον
πηγαίο κώδικα), και τα πακέτα (packages, για εγκατάσταση από
προ-μεταγλωττισμένα εκτελέσιμα πακέτα). Κάθε μία από τις δυο μεθόδους
μπορεί να χρησιμοποιηθεί για να εγκαταστήσετε τις νεότερες εκδόσεις από
τις αγαπημένες σας εφαρμογές, από τοπικά αποθηκευτικά μέσα ή απευθείας
από το δίκτυο.</para>
<para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
<itemizedlist>
<listitem>
<para>Πως να εγκαθιστάτε προ-μεταγλωττισμένα πακέτα λογισμικού.</para>
</listitem>
<listitem>
<para>Πως να μεταγλωττίζετε πρόσθετο λογισμικό από τον πηγαίο κώδικα
χρησιμοποιώντας την Συλλογή των Ports.</para>
</listitem>
<listitem>
<para>Πως να κάνετε απεγκατάσταση εγκαταστημένων πακέτων ή
ports.</para>
</listitem>
<listitem>
<para>Πως να αλλάζετε τις προκαθορισμένες ρυθμίσεις που χρησιμοποιεί
η Συλλογή των Ports.</para>
</listitem>
<listitem>
<para>Πως να βρίσκετε τα κατάλληλα πακέτα λογισμικού.</para>
</listitem>
<listitem>
<para>Πως να αναβαθμίζετε τις εφαρμογές σας.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="ports-overview">
<title>Επισκόπησή της εγκατάστασης λογισμικού</title>
<para>Αν έχετε χρησιμοποιήσει ένα &unix; σύστημα στο παρελθόν, θα
γνωρίζετε ότι η συνηθισμένη διαδικασία για την εγκατάσταση πρόσθετου
λογισμικού είναι περίπου η παρακάτω:</para>
<procedure>
<step>
<para><quote>Κατέβασμα</quote> του λογισμικού, που μπορεί να
διανέμεται σε μορφή πηγαίου κώδικα, ή σαν εκτελέσιμο.</para>
</step>
<step>
<para>Αποσυμπίεση του λογισμικού από την μορφή της διανομής του
(συνήθως ένα tarball συμπιεσμένο με το &man.compress.1;,
&man.gzip.1;, ή &man.bzip2.1;).</para>
</step>
<step>
<para>Εντοπισμός της τεκμηρίωσης (πιθανώς ένα αρχείο
<filename>INSTALL</filename> ή <filename>README</filename>
ή μερικά αρχεία μέσα σε ένα υποκατάλογο <filename>doc/</filename>)
και ανάγνωσή τους για το πως θα εγκατασταθεί το λογισμικό.</para>
</step>
<step>
<para>Αν το λογισμικό διανέμεται με τη μορφή πηγαίου κώδικα,
μεταγλώττιση του. Αυτό μπορεί να περιλαμβάνει την επεξεργασία ενός
<filename>Makefile</filename>, ή την εκτέλεση ενός
<command>configure</command> script, και άλλες εργασίες.</para>
</step>
<step>
<para>Δοκιμή και εγκατάσταση του λογισμικού.</para>
</step>
</procedure>
<para>Και αυτά μόνο αν όλα πάνε καλά. Αν εγκαθιστάτε ένα λογισμικό που
δεν έχει μεταφερθεί στο &os; ίσως να πρέπει να τροποποιήσετε τον πηγαίο
κώδικα για να δουλέψει σωστά.</para>
<para>Αν το θέλετε, μπορείτε να συνεχίσετε να εγκαθιστάτε λογισμικό με
τον <quote>παραδοσιακό</quote> τρόπο στο &os;. Όμως, το &os;
παρέχει δυο τεχνολογίες που μπορούν να σας γλιτώσουν από πολύ κόπο:
τα πακέτα και τα ports. Την στιγμή που γράφτηκε αυτό το κείμενο,
διατίθονταν με αυτόν τον τρόπο πάνω από &os.numports; πρόσθετες
εφαρμογές.</para>
<para>Για οποιαδήποτε εφαρμογή, το αντίστοιχο &os; πακέτο της
είναι ένα μοναδικό αρχείο που πρέπει εσείς να <quote>κατεβάσετε</quote>.
Το πακέτο περιέχει προ-μεταγλωττισμένα αντίγραφα από όλες τις εντολές
της εφαρμογής, όπως επίσης και αρχεία παραμετροποίησης ή τεκμηρίωσης.
Ένα τέτοιο πακέτο σε μορφή αρχείου, μπορείτε να το χειριστείτε με τις
εντολές διαχείρισής πακέτων του &os;, όπως οι &man.pkg.add.1;,
&man.pkg.delete.1;, &man.pkg.info.1;, και πάει λέγοντας.
Η εγκατάσταση μιας νέας εφαρμογής μπορεί να γίνει με μία μόνο
εντολή.</para>
<para>Ένα &os; port για μία εφαρμογή είναι μια συλλογή από αρχεία
σχεδιασμένα για να αυτοματοποιήσουν την διαδικασία μεταγλώττισης της
εφαρμογής από τον πηγαίο κώδικα.</para>
<para>Θυμηθείτε ότι υπάρχουν μερικά βήματα που θα πρέπει λογικά να κάνετε
αν μεταγλωττίσετε ένα πρόγραμμα μόνος σας (<quote>κατέβασμα</quote>,
αποσυμπίεση, προσαρμογή (patching), μεταγλώττιση, εγκατάσταση).
Τα αρχεία που αποτελούν ένα port περιέχουν όλες τις απαραίτητες
πληροφορίες για να επιτρέψουν στο σύστημα να κάνει όλα αυτά για εσάς.
Εσείς εκτελείτε μερικές απλές εντολές, και ο πηγαίος κώδικας για την
εφαρμογή αυτόματα <quote>κατεβαίνει</quote>, αποσυμπιέζεται,
προσαρμόζεται, μεταγλωττίζεται, και εγκαθίσταται για εσάς.</para>
<para>Στην πραγματικότητα, το σύστημα ports μπορεί επίσης να
χρησιμοποιηθεί για να δημιουργηθούν πακέτα που μπορείτε αργότερα να
διαχειριστείτε με την <command>pkg_add</command> και τις άλλες εντολές
διαχείρισής πακέτων που θα αναφερθούν σε λίγο.</para>
<para>Τόσο τα πακέτα, όσο και τα ports κατανοούν τις
<emphasis>εξαρτήσεις (dependencies)</emphasis>. Ας υποθέσουμε ότι
θέλετε να εγκαταστήσετε μία εφαρμογή που εξαρτάται από μία συγκεκριμένη
βιβλιοθήκη για να λειτουργήσει. Τόσο η εφαρμογή, όσο και η βιβλιοθήκη
διατίθενται ως πακέτα και ports του &os;. Αν χρησιμοποιήσετε την εντολή
<command>pkg_add</command> ή το σύστημα των ports για να εγκαταστήσετε
την εφαρμογή, αμφότερα θα παρατηρήσουν ότι η βιβλιοθήκη δεν είναι
εγκατεστημένη, και αυτόματα θα την εγκαταστήσουν πριν από το
πρόγραμμα.</para>
<para>Έχοντας αναφέρει ότι οι δύο τεχνολογίες είναι αρκετά όμοιες, ίσως να
αναρωτιέστε γιατί το &os; προσφέρει και τις δύο. Τα πακέτα και τα
ports αμφότερα έχουν τα δικά τους πλεονεκτήματα, και το τι θα
χρησιμοποιήσετε εξαρτάται από την δική σας προτίμηση.</para>
<itemizedlist>
<title>Πλεονεκτήματα των Πακέτων</title>
<listitem>
<para>Ένα συμπιεσμένο tarball πακέτου είναι συνήθως μικρότερο από
το συμπιεσμένο tarball που περιέχει τον πηγαίο κώδικα για την
εφαρμογή.</para>
</listitem>
<listitem>
<para>Τα πακέτα δεν χρειάζονται μεταγλώττιση. Για
μεγάλες εφαρμογές, όπως είναι ο
<application>Mozilla</application>, το
<application>KDE</application>, ή το
<application>GNOME</application> αυτό μπορεί να είναι σημαντικό,
ιδιαίτερα αν βρίσκεστε σε ένα αργό μηχάνημα.</para>
</listitem>
<listitem>
<para>Τα πακέτα δεν απαιτούν να κατανοήσετε την διαδικασία
που σχετίζεται με την μεταγλώττιση λογισμικού στο &os;.</para>
</listitem>
</itemizedlist>
<itemizedlist>
<title>Πλεονεκτήματα των Ports</title>
<listitem>
<para>Τα πακέτα συνήθως είναι μεταγλωττισμένα με συντηρητικές
επιλογές, επειδή πρέπει να λειτουργούν στον μέγιστο αριθμό
συστημάτων. Με εγκατάσταση από το port, μπορείτε να ρυθμίσετε τις
επιλογές μεταγλώττισης (για παράδειγμα) να δημιουργήσουν εκτελέσιμο
κώδικα που να εκμεταλλεύεται τις ικανότητες ενός Pentium 4 ή Athlon
επεξεργαστή.</para>
</listitem>
<listitem>
<para>Μερικές εφαρμογές έχουν επιλογές μεταγλώττισης που σχετίζονται
με το τι μπορούν να κάνουν και τι όχι. Για παράδειγμα, ο
<application>Apache</application> μπορεί να μεταγλωττιστεί με ένα
ευρύ φάσμα από επιλογές. Μεταγλωττίζοντας τον από το port, δεν
είναι ανάγκη να δεχτείτε τις προεπιλεγμένες επιλογές, μπορείτε να
κάνετε τις δικές σας.</para>
<para>Σε μερικές περιπτώσεις, μπορεί να υπάρχουν πολλαπλά πακέτα
για την ίδια εφαρμογή, με διαφορετικές ρυθμίσεις. Για παράδειγμα,
το <application>Ghostscript</application> διατίθεται ως ένα πακέτο
<filename>ghostscript</filename> και ένα πακέτο
<filename>ghostscript-nox11</filename>, αναλόγως αν
θα εγκαταστήσετε ή όχι έναν X11 server. Αυτού του τύπου
οι ρυθμίσεις είναι δυνατές με τα πακέτα, αλλά γρήγορα
γίνονται αδύνατες αν μία εφαρμογή έχει περισσότερες από μία ή δύο
διαφορετικές ρυθμίσεις μεταγλώττισης.</para>
</listitem>
<listitem>
<para>Οι συνθήκες των αδειών διανομής από μερικές διανομές
λογισμικού, απαγορεύουν την διανομή εκτελέσιμου κώδικα. Πρέπει να
διανεμηθούν με την μορφή πηγαίου κώδικα.</para>
</listitem>
<listitem>
<para>Μερικά άτομα δεν εμπιστεύονται τα έτοιμα εκτελέσιμα.
Τουλάχιστον με τον πηγαίο κώδικα, μπορείτε (θεωρητικά) να τον
διαβάσετε και να ψάξετε για πιθανά προβλήματα μόνος σας.</para>
</listitem>
<listitem>
<para>Αν έχετε τοπικά, δικά σας patches, θα χρειαστείτε τον πηγαίο
κώδικα για να τα εφαρμόσετε.</para>
</listitem>
<listitem>
<para>Μερικά άτομα γουστάρουν να έχουν τον πηγαίο κώδικα, ώστε να τον
διαβάσουν αν βαρεθούνε, να τον αλλάξουν (hack), να δανειστούν από
αυτόν (αν βέβαια το επιτρέπει η άδεια), κ.λ.π.</para>
</listitem>
</itemizedlist>
<para>Για να είστε ενήμερος για τα ανανεωμένα ports, εγγραφείτε στην
&a.ports; και στην &a.ports-bugs;.</para>
<warning>
<para>Πριν εγκαταστήσετε οποιοδήποτε εφαρμογή, πρέπει να ελέγχετε το
<ulink url="http://vuxml.freebsd.org/"></ulink> για θέματα ασφαλείας
που σχετίζονται με την εφαρμογή σας.</para>
<para>Μπορείτε επίσης να εγκαταστήσετε το <filename
role="package">ports-mgmt/portaudit</filename> το οποίο αυτόματα
θα ελέγχει όλες τις εγκαταστημένες εφαρμογές για γνωστά τρωτά
σημεία. Έλεγχος επίσης θα πραγματοποιείται πριν τη μεταγλώττιση
οποιουδήποτε port. Στο ενδιάμεσο, μπορείτε να χρησιμοποιείτε την
εντολή <command>portaudit -F -a</command> αφότου έχετε πρώτα
εγκαταστήσει μερικά πακέτα.</para>
</warning>
<para>Το υπόλοιπο αυτού του κεφαλαίου εξηγεί πως να χρησιμοποιήσετε τα
πακέτα και τα ports για να εγκαταστήσετε και να διαχειριστείτε πρόσθετο
λογισμικό στο &os;.</para>
</sect1>
<sect1 id="ports-finding-applications">
<title>Βρίσκοντας την Εφαρμογή σας</title>
<para>Πριν εγκαταστήσετε οποιαδήποτε εφαρμογή πρέπει να γνωρίζετε τι
θέλετε να κάνει, και πως ονομάζεται η εφαρμογή.</para>
<para>Η λίστα των διαθέσιμων εφαρμογών στο &os; μεγαλώνει συνεχώς.
Ευτυχώς, υπάρχουν πολλοί τρόποι να βρείτε αυτό που θέλετε:</para>
<itemizedlist>
<listitem>
<para>Στη δικτυακή τοποθεσία του &os; θα βρείτε μια
λίστα από όλες τις διαθέσιμες εφαρμογές, στο <ulink
url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>.
Η λίστα αυτή ανανεώνεται συχνά, ενώ υπάρχει και δυνατότητα
αναζήτησης. Τα ports είναι χωρισμένα σε κατηγορίες, και μπορείτε
να αναζητήσετε μία εφαρμογή είτε με το όνομα (αν το ξέρετε), ή να
δείτε όλες τις εφαρμογές που είναι διαθέσιμες σε μια
κατηγορία.</para>
</listitem>
<listitem>
<indexterm><primary>FreshPorts</primary></indexterm>
<para>Ο Dan Langille διατηρεί το FreshPorts, στο <ulink
url="http://www.FreshPorts.org/"></ulink>. Το FreshPorts
καταγράφει τις αλλαγές των εφαρμογών στο δέντρο των ports καθώς
συμβαίνουν, επιτρέποντάς σας να <quote>παρακολουθείτε</quote> ένα
ή περισσότερα ports, και μπορεί να σας στείλει email όταν αυτά
ανανεώνονται.</para>
</listitem>
<listitem>
<indexterm><primary>Freecode</primary></indexterm>
<para>Αν δεν γνωρίζετε το όνομα της εφαρμογής που θέλετε,
δοκιμάστε να χρησιμοποιήσετε ένα site σαν το Freecode(<ulink
url="http://www.freecode.com/"></ulink>) για να βρείτε μία
εφαρμογή, και μετά μπορείτε να ελέγξετε ξανά το site του &os; για
να δείτε αν η εφαρμογή έχει γίνει port.</para>
</listitem>
<listitem>
<para>Αν ξέρετε το ακριβές όνομα του port, και θέλετε μόνο να
βρείτε σε ποια κατηγορία είναι, μπορείτε να χρησιμοποιήσετε την
εντολή &man.whereis.1;. Απλά γράψτε
<command>whereis <replaceable>αρχείο</replaceable></command>, όπου
<replaceable>αρχείο</replaceable> είναι το πρόγραμμα που θέλετε να
εγκαταστήσετε. Αν αυτό βρίσκεται στο σύστημα σας, η εντολή θα σας
πει που είναι, όπως παρακάτω:</para>
<screen>&prompt.root; <userinput>whereis lsof</userinput>
lsof: /usr/ports/sysutils/lsof</screen>
<para>Αυτό μας λέει ότι το <command>lsof</command> (ένα εργαλείο
συστήματος) μπορεί να βρεθεί στον κατάλογο
<filename>/usr/ports/sysutils/lsof</filename>.</para>
</listitem>
<listitem>
<para>Επιπρόσθετα, μπορείτε να χρησιμοποιήσετε μια απλή εντολή
&man.echo.1; για να εντοπίσετε την τοποθεσία κάποιου προγράμματος
μέσα στα ports. Για παράδειγμα:</para>
<screen>&prompt.root; <userinput>echo /usr/ports/*/*lsof*</userinput>
/usr/ports/sysutils/lsof</screen>
<para>Σημειώστε ότι το παραπάνω θα δείξει επίσης και οποιαδήποτε
αρχεία έχουν κατέβει στον κατάλογο
<filename class="directory">/usr/ports/distfiles</filename> εφόσον
ταιριάζουν στην αναζήτηση.</para>
</listitem>
<listitem>
<para>Ακόμη ένας τρόπος να βρείτε ένα συγκεκριμένο port, είναι
χρησιμοποιώντας τον εσωτερικό μηχανισμό αναζήτησης της Συλλογής των
Ports. Γα να χρησιμοποιήσετε αυτό τον τρόπο αναζήτησης, Θα
χρειαστεί να βρίσκεστε στον κατάλογο
<filename>/usr/ports</filename>. Όταν βρεθείτε σε αυτόν τον
κατάλογο, εκτελέστε το <command>make <maketarget>search</maketarget>
name=<replaceable>όνομα--προγράμματος</replaceable></command> όπου
<replaceable>όνομα--προγράμματος</replaceable> είναι το όνομα
του προγράμματος που θέλετε να βρείτε. Για παράδειγμα, αν αναζητάτε
το <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: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: </screen>
<para>Το τμήμα της εξόδου που πρέπει να προσέξετε ιδιαίτερα
είναι η γραμμή <quote>Path:</quote>, αφού αυτή σας
λέει που να βρείτε το port. Οι υπόλοιπες πληροφορίες που
παρέχονται δεν χρειάζονται για να εγκατασταθεί το port, για αυτό
δεν θα αναλυθούν εδώ.</para>
<para>Για πιο λεπτομερή αναζήτηση μπορείτε να χρησιμοποιήσετε επίσης
<command>make <maketarget>search</maketarget> key=<replaceable>φράση</replaceable></command> όπου
<replaceable>φράση</replaceable> είναι κάποιο κείμενο προς
αναζήτηση. Αυτό αναζητά ονόματα port, σχόλια, περιγραφές και
εξαρτήσεις, και μπορεί να χρησιμοποιηθεί για να βρεθούν ports που
σχετίζονται με ένα συγκεκριμένο θέμα, εάν δεν γνωρίζετε το όνομα
του προγράμματος που αναζητάτε.</para>
<para>Σε όλες τις παραπάνω περιπτώσεις, η φράση προς αναζήτηση είναι
case-insensitive (δεν λαμβάνει υπόψη τις διαφορές κεφαλαίων-μικρών).
Η αναζήτηση για το <quote>LSOF</quote>, θα δώσει τα ίδια
αποτελέσματα με την αναζήτηση για το <quote>lsof</quote>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="packages-using">
<sect1info>
<authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Συνεισφορά του </contrib>
</author>
</authorgroup>
<!-- 30 Mar 2001 -->
</sect1info>
<title>Χρησιμοποιώντας το Σύστημα των Πακέτων</title>
<para>Υπάρχουν διάφορα εργαλεία με τα οποία μπορείτε να διαχειριστείτε τα
πακέτα στο &os;:</para>
<itemizedlist>
<listitem>
<para>Σε ένα σύστημα που βρίσκεται ήδη σε λειτουργία, μπορείτε να
εκτελέσετε το <application>sysinstall</application> για να
εγκαταστήσετε, να διαγράψετε, και να δείτε τις εγκατεστημένες και
τις διαθέσιμες εφαρμογές. Για περισσότερες πληροφορίες, δείτε το
<xref linkend="packages"/>.</para>
</listitem>
<listitem>
<para>Τα διάφορα εργαλεία διαχείρισης μέσω της γραμμής εντολών, που
αποτελούν και το αντικείμενο συζήτησης αυτής της ενότητας.</para>
</listitem>
</itemizedlist>
<sect2>
<title>Εγκαθιστώντας ένα Πακέτο</title>
<indexterm>
<primary>packages</primary>
<secondary>installing</secondary>
</indexterm>
<indexterm>
<primary><command>pkg_add</command></primary>
</indexterm>
<para>Μπορείτε να χρησιμοποιήσετε το εργαλείο &man.pkg.add.1; για να
εγκαταστήσετε ένα πακέτο λογισμικού του &os; από ένα τοπικά
αποθηκευμένο αρχείο ή από έναν διακομιστή στο δίκτυο.</para>
<example>
<title><quote>Κατέβασμα</quote> ενός πακέτου χειροκίνητα και
εγκατάσταση του τοπικά</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>Εάν δεν έχετε μία τοπική πηγή πακέτων (όπως είναι ένα
&os; CD-ROM set) τότε ίσως είναι ευκολότερο να χρησιμοποιήσετε
την επιλογή <option>-r</option> για το &man.pkg.add.1;. Αυτή θα
κάνει το εργαλείο να καθορίσει αυτόματα τη σωστή μορφή και έκδοση
και έπειτα να ανακτήσει και να εγκαταστήσει το πακέτο από ένα FTP
site.</para>
<indexterm><primary><command>pkg_add</command></primary></indexterm>
<screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>
<para>Το παραπάνω παράδειγμα θα <quote>κατεβάσει</quote> και θα
εγκαταστήσει το σωστό πακέτο χωρίς περαιτέρω επέμβαση του χρήστη.
Αν δεν θέλετε να χρησιμοποιήσετε το κύριο site διανομής πακέτων,
μπορείτε να χρησιμοποιήσετε κάποιο mirror. Για το σκοπό αυτό, θα
πρέπει να ρυθμίσετε σωστά την τιμή της <envar>PACKAGESITE</envar>,
ώστε να παρακάμψετε τις προεπιλεγμένες ρυθμίσεις. Το &man.pkg.add.1;
χρησιμοποιεί το &man.fetch.3; για να <quote>κατεβάσει</quote> τα
αρχεία, και αυτό με τη σειρά του χρησιμοποιεί διάφορες μεταβλητές
περιβάλλοντος, περιλαμβανομένων των
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, και
<envar>FTP_PASSWORD</envar>. Ίσως χρειαστεί να ρυθμίσετε μία ή
περισσότερες από αυτές αν βρίσκεστε πίσω από ένα firewall, ή ίσως να
χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το
&man.fetch.3; για την πλήρη λίστα των μεταβλητών. Προσέξτε ότι στο
παραπάνω παράδειγμα χρησιμοποιείται το <literal>lsof</literal> αντί
του <literal>lsof-4.56.4</literal>. Όταν γίνεται απομακρυσμένη λήψη,
πρέπει να αφαιρεθεί ο αριθμός έκδοσης του πακέτου.
Το &man.pkg.add.1; θα <quote>κατεβάσει</quote> αυτόματα την τελευταία
έκδοση της εφαρμογής.</para>
<note>
<para>Το &man.pkg.add.1; θα <quote>κατεβάσει</quote> την τελευταία
έκδοση της εφαρμογής αν χρησιμοποιείτε &os.current; ή
&os.stable;. Αν τρέχετε μια -RELEASE έκδοση, θα
<quote>κατεβάσει</quote> την έκδοση του πακέτου που έχει
μεταγλωττιστεί με την έκδοση σας. Είναι δυνατό να το αλλάξετε
αυτό, αλλάζοντας την <envar>PACKAGESITE</envar>.
Για παράδειγμα, αν τρέχετε ένα σύστημα &os;&nbsp;8.1-RELEASE,
το &man.pkg.add.1;, από προεπιλογή, θα προσπαθήσει να
<quote>κατεβάσει</quote> πακέτα από το
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/</literal>.
Αν θέλετε να αναγκάσετε το &man.pkg.add.1;
να <quote>κατεβάσει</quote> πακέτα του &os;&nbsp;8-STABLE, θέστε
την <envar>PACKAGESITE</envar> ως
<literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/</literal>.</para>
</note>
<para>Τα αρχεία των πακέτων διανέμονται σε μορφές
<filename>.tgz</filename> και <filename>.tbz</filename>. Μπορείτε
να τα βρείτε στο <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>,
ή στα CD-ROM της διανομής του &os;. Κάθε CD στο &os; 4-CD set (και
στο PowerPak, κλπ.) περιέχει πακέτα στον κατάλογο
<filename>/packages</filename>. Η κατηγοριοποίηση των πακέτων
ακολουθεί την δομή του δέντρου <filename>/usr/ports</filename>.
Κάθε κατηγορία έχει το δικό της κατάλογο, και κάθε πακέτο μπορεί να
βρεθεί στον κατάλογο <filename>All</filename>.</para>
<para>Η δομή των καταλόγων του συστήματος πακέτων ταιριάζει με την
αντίστοιχη των ports. Τα δύο συστήματα συνεργάζονται μεταξύ τους για
να δημιουργήσουν το συνολικό σύστημα πακέτων/ports.</para>
</sect2>
<sect2>
<title>Διαχείριση των Πακέτων</title>
<indexterm>
<primary>packages</primary>
<secondary>managing</secondary>
</indexterm>
<para>Το &man.pkg.info.1; είναι ένα εργαλείο που παραθέτει και
περιγράφει τα διάφορα πακέτα που είναι εγκαταστημένα.</para>
<indexterm>
<primary><command>pkg_info</command></primary>
</indexterm>
<screen>&prompt.root; <userinput>pkg_info</userinput>
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...</screen>
<para>Το &man.pkg.version.1; είναι ένα εργαλείο που συνοψίζει τις
εκδόσεις όλων των εγκαταστημένων πακέτων. Συγκρίνει την έκδοση κάθε
πακέτου, με την τρέχουσα έκδοση που βρίσκεται στο δέντρο των
ports.</para>
<indexterm>
<primary><command>pkg_version</command></primary>
</indexterm>
<screen>&prompt.root; <userinput>pkg_version</userinput>
cvsup =
docbook =
...</screen>
<para>Τα σύμβολα στην δεύτερη στήλη δηλώνουν την σχετική ηλικία
μεταξύ των εγκατεστημένων εκδόσεων και των εκδόσεων που είναι
διαθέσιμες στο τοπικό δέντρο των ports.</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Σύμβολο</entry>
<entry>Σημασία</entry>
</row>
</thead>
<tbody>
<row>
<entry>=</entry>
<entry>Η έκδοση του εγκατεστημένου πακέτου ταιριάζει με αυτή
που είναι διαθέσιμη στο τοπικό δέντρο των ports.</entry>
</row>
<row>
<entry>&lt;</entry>
<entry>Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που
είναι διαθέσιμη στο δέντρο των ports.</entry>
</row>
<row>
<entry>&gt;</entry>
<entry>Η εγκατεστημένη έκδοση είναι νεότερη από αυτή που είναι
διαθέσιμη στο τοπικό δέντρο των ports. (Το τοπικό δέντρο των
ports είναι πιθανότατα απαρχαιωμένο.)</entry>
</row>
<row>
<entry>?</entry>
<entry>Το εγκατεστημένο πακέτο δεν βρίσκεται στα περιεχόμενα
των ports. (Αυτό μπορεί να συμβεί, για παράδειγμα, αν ένα
εγκατεστημένο port έχει αφαιρεθεί από την Συλλογή των Ports,
ή έχει μετονομαστεί.)</entry>
</row>
<row>
<entry>*</entry>
<entry>Υπάρχουν πολλαπλές εκδόσεις του πακέτου.</entry>
</row>
<row>
<entry>!</entry>
<entry>Το εγκατεστημένο πακέτο υπάρχει στο index, αλλά για
κάποιο λόγο το <command>pkg_version</command> δεν κατάφερε να
συγκρίνει την έκδοση του εγκατεστημένου πακέτου με την
αντίστοιχη καταχώρηση στο index.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
<sect2>
<title>Αφαιρώντας ένα Πακέτο</title>
<indexterm>
<primary><command>pkg_delete</command></primary>
</indexterm>
<indexterm>
<primary>packages</primary>
<secondary>deleting</secondary>
</indexterm>
<para>Για να αφαιρέσετε ένα εγκατεστημένο πακέτο λογισμικού,
χρησιμοποιήστε το εργαλείο &man.pkg.delete.1;.</para>
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
<para>Σημειώστε ότι το &man.pkg.delete.1; απαιτεί το πλήρες όνομα και
αριθμό έκδοσης του πακέτου. Η παραπάνω εντολή δεν θα λειτουργήσει
αν δώσετε απλώς <replaceable>xchat</replaceable> αντί για
<replaceable>xchat-1.7.1</replaceable>. Είναι ωστόσο εύκολο να
χρησιμοποιήσετε την &man.pkg.version.1; για να βρείτε την έκδοση του
εγκατεστημένου πακέτου. Αντί για αυτό, μπορείτε επίσης να
χρησιμοποιήσετε ένα μπαλαντέρ:</para>
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat\*</replaceable></userinput></screen>
<para>Στην περίπτωση αυτή, θα διαγραφούν όλα τα πακέτα που τα ονόματα
τους αρχίζουν με <literal>xchat</literal>.</para>
</sect2>
<sect2>
<title>Διάφορα</title>
<para>Όλες οι πληροφορίες για τα πακέτα είναι αποθηκευμένες στον
κατάλογο <filename>/var/db/pkg</filename>. Στα αρχεία αυτού του
καταλόγου, θα βρείτε τη περιγραφή κάθε πακέτου, καθώς και τη λίστα
των αρχείων που εγκαθιστά.</para>
</sect2>
</sect1>
<sect1 id="ports-using">
<title>Χρησιμοποιώντας την Συλλογή των Ports</title>
<para>Τα παρακάτω τμήματα δίνουν βασικές οδηγίες χρήσης της
Συλλογής των Ports για εγκατάσταση ή διαγραφή προγραμμάτων στο
σύστημα σας. Μπορείτε να βρείτε λεπτομερή περιγραφή των διαθέσιμων
επιλογών του <command>make</command> και των μεταβλητών περιβάλλοντος
στο &man.ports.7;.</para>
<sect2 id="ports-tree">
<title>Ανακτώντας την Συλλογή των Ports</title>
<para>Πριν μπορέσετε να εγκαταστήσετε προγράμματα μέσω των ports,
πρέπει πρώτα να ανακτήσετε την Συλλογή των Ports. Πρόκειται
ουσιαστικά για μια συλλογή από <filename>Makefiles</filename>,
patches, και αρχεία περιγραφής που τοποθετούνται στο
<filename>/usr/ports</filename>.</para>
<para>Όταν εγκαταστήσατε το &os; σύστημα σας,
το <application>sysinstall</application> σας ρώτησε αν θέλατε
να εγκαταστήσετε την Συλλογή των Ports. Αν επιλέξατε όχι, μπορείτε να
ακολουθήσετε αυτές τις οδηγίες για να ανακτήσετε την Συλλογή των
Ports:</para>
<procedure>
<title>Μέθοδος CVSup</title>
<para>Αυτή είναι μια γρήγορη μέθοδος για να ανακτήσετε και να
διατηρήσετε ένα ανανεωμένο αντίγραφο της Συλλογής των Ports,
χρησιμοποιώντας το πρωτόκολλο <application>CVSup</application>.
Αν θέλετε να μάθετε περισσότερα για το
<application>CVSup</application>, δείτε το
<link linkend="cvsup">Χρησιμοποιώντας το CVSup</link>.</para>
<note>
<para>Η υλοποίηση του <application>CVSup</application> που
περιλαμβάνεται σε ένα σύστημα &os;, ονομάζεται
<application>csup</application>.</para>
</note>
<para>Σιγουρευθείτε ότι το
<filename class="directory">/usr/ports</filename>
είναι άδειο πριν εκτελέσετε το <application>csup</application> για
πρώτη φορά! Εάν έχετε ήδη ανακτήσει τη Συλλογή των Ports μέσω
κάποιας άλλης πηγής, το <application>csup</application>
δεν θα διαγράψει patches που έχουν αφαιρεθεί στο μεταξύ.</para>
<step>
<para>Εκτελέστε το <command>csup</command>:</para>
<screen>&prompt.root; <userinput>csup -L 2 -h <replaceable>cvsup.FreeBSD.org</replaceable> /usr/share/examples/cvsup/ports-supfile</userinput></screen>
<para>Αλλάξτε το
<replaceable>cvsup.FreeBSD.org</replaceable> με έναν
κοντινό σας διακομιστή <application>CVSup</application>. Δείτε
το <link linkend="cvsup-mirrors">CVSup Mirrors</link> (<xref
linkend="cvsup-mirrors"/>) για την πλήρη λίστα των mirror
sites.</para>
<note>
<para>Αν θέλετε, μπορείτε να χρησιμοποιήσετε το δικό σας
<filename>ports-supfile</filename>, ώστε να αποφύγετε
(για παράδειγμα) να δηλώσετε τον διακομιστή
<application>CVSup</application> στην γραμμή εντολών.</para>
<procedure>
<step>
<para>Σε αυτή την περίπτωση, ως <username>root</username>,
αντιγράψτε το
<filename>/usr/share/examples/cvsup/ports-supfile</filename>
σε μία νέα τοποθεσία, όπως το <filename>/root</filename> ή
τον δικό σας home κατάλογο.</para>
</step>
<step>
<para>Τροποποιήστε το <filename>ports-supfile</filename>.</para>
</step>
<step>
<para>Αλλάξτε το
<replaceable>CHANGE_THIS.FreeBSD.org</replaceable>
με έναν κοντινό σας διακομιστή
<application>CVSup</application>.Δείτε το <link
linkend="cvsup-mirrors">CVSup Mirrors</link>
(<xref linkend="cvsup-mirrors"/>) για την
πλήρη λίστα των mirror sites.</para>
</step>
<step>
<para>Εκτελέστε τώρα το <command>csup</command>, με τον
ακόλουθο τρόπο:</para>
<screen>&prompt.root; <userinput>csup -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
</step>
</procedure>
</note>
</step>
<step>
<para>Εκτελώντας την εντολή &man.csup.1; αργότερα, θα
<quote>κατεβάσει</quote> και θα εφαρμόσει όλες
τις πρόσφατες αλλαγές στην Συλλογή των Ports, εκτός από το να
επανα-μεταγλωττίσει τα ports για το σύστημα σας.</para>
</step>
</procedure>
<procedure>
<title>Μέθοδος Portsnap</title>
<para>Το <application>Portsnap</application> είναι ένα εναλλακτικό
σύστημα για την διανομή της Συλλογής των Ports. Παρακαλώ ελέγξτε το
<link linkend="updating-upgrading-portsnap">Χρησιμοποιώντας το
Portsnap</link> για μία λεπτομερή περιγραφή όλων των
χαρακτηριστικών της εφαρμογής.</para>
<step>
<para><quote>Κατεβάστε</quote> ένα συμπιεσμένο snapshot της
Συλλογής των Ports
<filename class="directory">/var/db/portsnap</filename>.
Αν θέλετε, μπορείτε να αποσυνδεθείτε από το Διαδίκτυο μετά από
αυτό το βήμα.</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
</step>
<step>
<para>Αν εκτελείτε το <application>Portsnap</application> για
πρώτη φορά, κάντε εξαγωγή του snapshot μέσα στο <filename
class="directory">/usr/ports</filename>:</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
<para>Εάν ήδη έχετε ένα γεμάτο <filename
class="directory">/usr/ports</filename> και απλώς το ανανεώνετε,
εκτελέστε την ακόλουθη εντολή:</para>
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
</step>
</procedure>
<procedure>
<title>Μέθοδος Sysinstall</title>
<para>Αυτή η μέθοδος χρησιμοποιεί το
<application>sysinstall</application> για την εγκατάσταση της
Συλλογής των Ports από το μέσο εγκατάστασης. Σημειώστε ότι με αυτό
τον τρόπο θα εγκαταστήσετε το παλαιό αντίγραφο της
Συλλογής των Ports, που αντιστοιχεί στην ημερομηνία της έκδοσης του
&os; που χρησιμοποιείτε. Εάν έχετε πρόσβαση στο Διαδίκτυο, πρέπει
πάντα να χρησιμοποιείτε μία από τις μεθόδους που αναφέρθηκαν πιο
πάνω.</para>
<step>
<para>Ως <username>root</username>, εκτελέστε το
<command>sysinstall</command> όπως φαίνεται παρακάτω:</para>
<screen>&prompt.root; <userinput>sysinstall</userinput></screen>
</step>
<step>
<para>Επιλέξτε το <guimenuitem>Configure</guimenuitem>,
και πιέστε <keycap>Enter</keycap>.</para>
</step>
<step>
<para>Επιλέξτε το <guimenuitem>Distributions</guimenuitem>, και
πιέστε <keycap>Enter</keycap>.</para>
</step>
<step>
<para>Μετακινηθείτε στο <guimenuitem>ports</guimenuitem>, και πιέστε
<keycap>Space</keycap>.</para>
</step>
<step>
<para>Μετακινηθείτε στο <guimenuitem>Exit</guimenuitem>, και πιέστε
<keycap>Enter</keycap>.</para>
</step>
<step>
<para>Επιλέξτε το μέσο εγκατάστασης της επιθυμίας σας, όπως CDROM,
FTP, και πάει λέγοντας.</para>
</step>
<step>
<para>Μετακινηθείτε στο <guimenuitem>Exit</guimenuitem> και πιέστε
<keycap>Enter</keycap>.</para>
</step>
<step>
<para>Πιέστε <keycap>X</keycap> για να βγείτε από το
<application>sysinstall</application>.</para>
</step>
</procedure>
</sect2>
<sect2 id="ports-skeleton">
<title>Εγκαθιστώντας Ports</title>
<indexterm>
<primary>ports</primary>
<secondary>installing</secondary>
</indexterm>
<para>Το πρώτο πράγμα που πρέπει να διευκρινιστεί σχετικά
με την Συλλογή των Ports είναι η έννοια του όρου
<quote>skeleton (σκελετός)</quote>. Με λίγα λόγια, ένα port skeleton
είναι η ελάχιστη συλλογή αρχείων που καθοδηγούν ένα σύστημα &os; ώστε
να μεταγλωττίσει και να εγκαταστήσει σωστά ένα πρόγραμμα. Κάθε port
skeleton περιέχει:</para>
<itemizedlist>
<listitem>
<para>Ένα <filename>Makefile</filename>. Το
<filename>Makefile</filename> περιέχει διάφορες δηλώσεις
που ορίζουν πως πρέπει να μεταγλωττιστεί η εφαρμογή και που
πρέπει να εγκατασταθεί στο σύστημά σας.</para>
</listitem>
<listitem>
<para>Ένα αρχείο <filename>distinfo</filename>. Αυτό το αρχείο
περιέχει πληροφορίες για τα αρχεία που πρέπει να
<quote>κατέβουν</quote> για την μεταγλώττιση του port, και τα
checksums τους (χρησιμοποιώντας το &man.sha256.1;), για να
επιβεβαιωθεί ότι τα αρχεία δεν έχουν αλλοιωθεί κατά την διάρκεια
της μεταφοράς τους.</para>
</listitem>
<listitem>
<para>Έναν κατάλογο <filename>files</filename>. Αυτός ο
κατάλογος περιέχει τα patches που επιτρέπουν στο πρόγραμμα να
μεταγλωττιστεί και εγκατασταθεί στο &os; σύστημα σας. Τα patches
είναι μικρά αρχεία που ορίζουν αλλαγές σε συγκεκριμένα αρχεία.
Είναι σε μορφή κοινού κειμένου, και βασικά λένε
<quote>Αφαίρεσε την γραμμή 10</quote> ή
<quote>Μετέτρεψε τη γραμμή 26 σε αυτό ...</quote>. Τα patches
είναι επίσης γνωστά ως <quote>diffs</quote> επειδή δημιουργούνται
με το πρόγραμμα &man.diff.1;.</para>
<para>Αυτός ο κατάλογος μπορεί να περιέχει και άλλα αρχεία που
χρησιμοποιούνται για να μεταγλωττιστεί το port.</para>
</listitem>
<listitem>
<para>Ένα αρχείο <filename>pkg-descr</filename>. Αυτό είναι μία πιο
λεπτομερής, συχνά πολλών γραμμών, περιγραφή του
προγράμματος.</para>
</listitem>
<listitem>
<para>Ένα αρχείο <filename>pkg-plist</filename>. Αυτό περιέχει μια
λίστα όλων των αρχείων που θα εγκατασταθούν από το port.
Επίσης καθοδηγεί το σύστημα των ports τι αρχεία να αφαιρέσει
κατά την απεγκατάσταση.</para>
</listitem>
</itemizedlist>
<para>Μερικά ports έχουν και άλλα αρχεία, όπως το
<filename>pkg-message</filename>. Το σύστημα των ports χρησιμοποιεί
αυτά τα αρχεία για να χειριστεί ειδικές περιστάσεις. Αν θέλετε
περισσότερες λεπτομέρειες για αυτά τα αρχεία, και τα ports
γενικότερα, δείτε το <ulink
url="&url.books.porters-handbook;/index.html">&os; Porter's
Handbook</ulink>.</para>
<para>Το port περιέχει οδηγίες για το πως να μεταγλωττιστεί ο πηγαίος
κώδικας, αλλά δεν περιέχει τον πηγαίο κώδικα. Μπορείτε να
προμηθευτείτε τον πηγαίο κώδικα από ένα CD-ROM ή από το Διαδίκτυο.
Ο πηγαίος κώδικας διανέμεται με οποιοδήποτε τρόπο επιθυμεί ο
δημιουργός του. Συχνά είναι ένα tarred και gzipped αρχείο,
αλλά μπορεί να είναι συμπιεσμένος με κάποιο άλλο εργαλείο ή να είναι
ακόμα και ασυμπίεστος. Ο πηγαίος κώδικας του προγράμματος, σε
οποιαδήποτε μορφή κι αν διατίθεται, λέγεται <quote>distfile</quote>.
Οι δύο μέθοδοι για να εγκαταστήσετε ένα &os; port περιγράφονται
παρακάτω.</para>
<note>
<para>Πρέπει να συνδεθείτε ως <username>root</username> για να
εγκαταστήσετε ports.</para>
</note>
<warning>
<para>Πριν εγκαταστήσετε οποιαδήποτε port, πρέπει να σιγουρευτείτε
ότι έχετε μία ανανεωμένη Συλλογή των Ports, και πρέπει να ελέγξετε
το <ulink url="http://vuxml.freebsd.org/"></ulink> για θέματα
ασφαλείας σχετικά με το port που ενδιαφέρεστε.</para>
<para>Αν θέλετε να ελέγχετε αυτόματα για τυχόν προβλήματα ασφαλείας
πριν από κάθε εγκατάσταση νέας εφαρμογής, μπορείτε να
χρησιμοποιήσετε το <application>portaudit</application>.
Θα βρείτε αυτό το εργαλείο στην Συλλογή των Ports
(<filename role="package">ports-mgmt/portaudit</filename>). Είναι
καλή ιδέα να εκτελέσετε το <command>portaudit -F</command> πριν
εγκαταστήσετε ένα νέο port, για να ανακτήσετε την τρέχουσα βάση
δεδομένων προβλημάτων ασφαλείας. Αντίστοιχος έλεγχος και ανανέωση
της βάσης δεδομένων εκτελείται επίσης αυτόματα κατά τον καθημερινό
έλεγχο ασφαλείας του συστήματος. Για περισσότερες
πληροφορίες διαβάστε τις σελίδες manual &man.portaudit.1; και
&man.periodic.8;.</para>
</warning>
<para>Η Συλλογή των Ports προϋποθέτει ότι έχετε λειτουργική σύνδεση με
το Διαδίκτυο. Εάν δεν έχετε, θα χρειαστεί να βάλετε μόνος σας ένα
αντίγραφο του distfile μέσα στο
<filename>/usr/ports/distfiles</filename>.</para>
<para>Αρχικά, μετακινηθείτε στον κατάλογο του port που θέλετε να
εγκαταστήσετε:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
<para>Μόλις βρεθείτε στον κατάλογο <filename>lsof</filename>, θα
δείτε τον port skeleton. Το επόμενο βήμα είναι να μεταγλωττίσετε,
ή να <quote>κτίσετε (build)</quote>, το port. Αυτό γίνεται απλά
πληκτρολογώντας <command>make</command> στην γραμμή εντολών. Όταν το
κάνετε, θα δείτε κάτι όπως αυτό:</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 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===&gt; Extracting for lsof-4.57
...
[extraction output snipped]
...
&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
...
[configure output snipped]
...
===&gt; Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;</screen>
<para>Προσέξτε ότι μόλις η μεταγλώττιση ολοκληρωθεί θα επιστρέψετε
στην γραμμή εντολών. Το επόμενο βήμα είναι να εγκαταστήσετε το
port. Για να το εγκαταστήσετε, χρειάζεται απλώς να προσθέσετε μια
λέξη στην εντολή <command>make</command>, και αυτή η λέξη είναι
<maketarget>install</maketarget>:</para>
<screen>&prompt.root; <userinput>make install</userinput>
===&gt; Installing for lsof-4.57
...
[installation output snipped]
...
===&gt; Generating temporary packing list
===&gt; Compressing manual pages for lsof-4.57
===&gt; Registering installation for lsof-4.57
===&gt; SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;</screen>
<para>Μόλις επιστρέψετε στην γραμμή εντολών, θα πρέπει να μπορείτε
να εκτελέσετε την εφαρμογή που μόλις εγκαταστήσατε. Θα δείτε μια
προειδοποίηση ασφαλείας, επειδή το <command>lsof</command> είναι ένα
πρόγραμμα που τρέχει με αυξημένα προνόμια. Κατά την μεταγλώττιση
και εγκατάσταση των ports, θα πρέπει να προσέχετε οποιαδήποτε
προειδοποίηση εμφανιστεί.</para>
<para>Μια καλή ιδέα, είναι να διαγράψετε τον υποκατάλογο
που περιέχει όλα τα προσωρινά αρχεία που χρησιμοποιήθηκαν κατά την
μεταγλώττιση. Όχι μόνο καταναλώνουν πολύτιμο χώρο, άλλα μπορεί να
προκαλέσουν προβλήματα αργότερα όταν θα θελήσετε να εγκαταστήσετε μια
νεότερη έκδοση του port.</para>
<screen>&prompt.root; <userinput>make clean</userinput>
===&gt; Cleaning for lsof-4.57
&prompt.root;</screen>
<note>
<para>Μπορείτε να γλιτώσετε δύο πρόσθετα βήματα απλώς εκτελώντας
<command>make <maketarget>install clean</maketarget></command> αντί
για <command>make</command>,
<command>make <maketarget>install</maketarget></command> και
<command>make <maketarget>clean</maketarget></command>
ως τρία ξεχωριστά βήματα.</para>
</note>
<note>
<para>Μερικά κελύφη κρατάνε μια λίστα από τις εντολές που βρίσκονται
διαθέσιμες στους καταλόγους που αναφέρονται στην μεταβλητή
περιβάλλοντος <envar>PATH</envar>, για να επιταχύνουν τις
αναζητήσεις για τα εκτελέσιμα αρχεία αυτών των εντολών.
Αν χρησιμοποιείτε ένα από αυτά τα κελύφη, θα πρέπει
να χρησιμοποιήσετε την εντολή <command>rehash</command> μετά
την εγκατάσταση ενός port, πριν μπορέσετε να χρησιμοποιήσετε τις
νέες εντολές. Αυτή η εντολή λειτουργεί σε κελύφη όπως το
<command>tcsh</command>. Χρησιμοποιήστε την εντολή
<command>hash -r</command> για κελύφη όπως το
<command>sh</command>. Δείτε την τεκμηρίωση του κελύφους σας για
περισσότερες πληροφορίες.</para>
</note>
<para>Μερικά προϊόντα τρίτων κατασκευαστών σε DVD-ROM, όπως το &os;
Toolkit από το <ulink
url="http://www.freebsdmall.com/">&os; Mall</ulink>, περιέχουν
distfiles. Αυτά μπορούν να χρησιμοποιηθούν με την Συλλογή των Ports.
Προσαρτήστε το DVD-ROM στο <filename>/cdrom</filename>. Αν
χρησιμοποιείτε κάποιο διαφορετικό σημείο προσάρτησης, ρυθμίστε την
μεταβλητή <makevar>CD_MOUNTPTS</makevar> του make. Τα αναγκαία
distfiles θα χρησιμοποιηθούν αυτόματα αν υπάρχουν στο δισκάκι.</para>
<note>
<para>Πρέπει να γνωρίζετε ότι οι άδειες μερικών ports δεν επιτρέπουν
την διανομή τους σε CD-ROM. Αυτό μπορεί να οφείλεται π.χ. στο ότι
πρέπει να συμπληρώσετε μια φόρμα εγγραφής πριν
<quote>κατεβάσετε</quote> την εφαρμογή, ή στο ότι δεν επιτρέπεται η
επαναδιανομή, ή σε κάποιο άλλο λόγο. Εάν θέλετε να εγκαταστήσετε
ένα port που δεν περιλαμβάνεται στο CD-ROM, θα χρειαστεί να είστε
συνδεδεμένος στο Διαδίκτυο για να το επιτύχετε.</para>
</note>
<para>Το σύστημα των ports χρησιμοποιεί το &man.fetch.3; για να
<quote>κατεβάσει</quote> τα αρχεία. Το &man.fetch.3;
χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των
<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, και
<envar>FTP_PASSWORD</envar>. Ίσως χρειαστεί να ρυθμίσετε μία ή
περισσότερες αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί
να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το &man.fetch.3; για
μια πλήρη λίστα των μεταβλητών αυτών.</para>
<para>Για χρήστες που δεν μπορούν να είναι συνδεδεμένοι όλη την ώρα,
διατίθεται η επιλογή
<command>make <maketarget>fetch</maketarget></command>.
Απλώς εκτελέστε την εντολή στον κατάλογο
(<filename>/usr/ports</filename>) και τα απαραίτητα αρχεία
θα <quote>κατέβουν</quote> για εσάς. Η εντολή αυτή θα λειτουργήσει
και σε υποκαταλόγους, όπως για παράδειγμα:
<filename>/usr/ports/net</filename>. Προσέξτε ότι αν ένα port
εξαρτάται από βιβλιοθήκες ή άλλα ports, η εντολή αυτή
<emphasis>δεν</emphasis> θα ανακτήσει τα distfiles τους.
Αντικαταστήστε το <maketarget>fetch</maketarget> με το
<maketarget>fetch-recursive</maketarget>
αν θέλετε μαζί με το port να ανακτήσετε και όλες τις
εξαρτήσεις του.</para>
<note>
<para>Μπορείτε να μεταγλωττίσετε όλα τα ports σε μία κατηγορία ή
ακόμα και σε όλες, εκτελώντας το <command>make</command> στον αρχικό
κατάλογο, όπως με την προαναφερθείσα
<command>make <maketarget>fetch</maketarget></command> μέθοδο.
Αυτό όμως είναι επικίνδυνο, γιατί μερικά ports δεν μπορούν να
συνυπάρχουν. Σε άλλες περιπτώσεις, μερικά ports μπορεί να
εγκαταστήσουν δυο διαφορετικά αρχεία με το με το ίδιο
όνομα.</para>
</note>
<para>Σε μερικές σπάνιες περιπτώσεις, οι χρήστες μπορεί να χρειάζεται
να ανακτήσουν τα tarballs από ένα site διαφορετικό από τα
<makevar>MASTER_SITES</makevar> (η τοποθεσία από όπου
<quote>κατεβαίνουν</quote> τα αρχεία). Μπορείτε να αλλάξετε την
επιλογή <makevar>MASTER_SITES</makevar> με την ακόλουθη
εντολή:</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>Σε αυτό το παράδειγμα αλλάξαμε την επιλογή
<makevar>MASTER_SITES</makevar> σε <hostid
role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>.</para>
<note>
<para>Μερικά ports επιτρέπουν (ή απαιτούν) να δώσετε επιλογές
μεταγλώττισης που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν
τμήματα της εφαρμογής που είναι αχρείαστα, συγκεκριμένες επιλογές
ασφαλείας, και άλλες τροποποιήσεις. Κοινά παραδείγματα τέτοιων
ports είναι τα <filename role="package">www/firefox</filename>,
<filename role="package">security/gpgme</filename>, και το
<filename role="package">mail/sylpheed-claws</filename>. Όταν
υπάρχουν διαθέσιμες τέτοιες επιλογές, θα εμφανιστεί στην οθόνη
σας σχετικό μήνυμα.</para>
</note>
<sect3>
<title>Παρακάμπτοντας τους Προεπιλεγμένους Καταλόγους των
Ports</title>
<para>Μερικές φορές είναι χρήσιμο (ή επιτακτικό) να χρησιμοποιήσετε
ένα διαφορετικό κατάλογο εργασίας και εγκατάστασης. Οι μεταβλητές
<makevar>WRKDIRPREFIX</makevar> και <makevar>PREFIX</makevar>
μπορούν να παρακάμψουν τους προεπιλεγμένους καταλόγους. Για
παράδειγμα, η εντολή:</para>
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput></screen>
<para>θα μεταγλωττίσει το port στο
<filename>/usr/home/example/ports</filename> και θα εγκαταστήσει
τα πάντα στο <filename>/usr/local</filename>, ενώ η εντολή:</para>
<screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
<para>θα μεταγλωττίσει το port στο <filename>/usr/ports</filename> και
θα το εγκαταστήσει στο
<filename>/usr/home/example/local</filename>.</para>
<para>Και φυσικά η εντολή:</para>
<screen>&prompt.root; <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput></screen>
<para>θα συνδυάσει και τα δυο (είναι πολύ μεγάλη για να την δείξουμε
εδώ, άλλα πρέπει να πήρατε την γενική ιδέα).</para>
<para>Εναλλακτικά, αυτές οι μεταβλητές μπορούν να ρυθμιστούν ως μέρος
του περιβάλλοντος σας. Διαβάστε την σελίδα manual για το κέλυφος
σας, για να βρείτε τις σχετικές οδηγίες.</para>
</sect3>
<sect3>
<title>Αντιμετωπίζοντας το <command>imake</command></title>
<para>Μερικά ports που χρησιμοποιούν το <command>imake</command>
(μέρος του X Window System) δεν συνεργάζονται σωστά με το
<makevar>PREFIX</makevar>, και επιμένουν να εγκατασταθούν
στο <filename>/usr/X11R6</filename>. Όμοια, μερικά Perl
ports αγνοούν το <makevar>PREFIX</makevar> και εγκαθίστανται στο
δέντρο Perl. Το να κάνετε αυτά τα ports να σέβονται το
<makevar>PREFIX</makevar> είναι μία δύσκολη ή αδύνατη
δουλειά.</para>
</sect3>
<sect3>
<title>Επαναρύθμιση Επιλογών Ports</title>
<para>Όταν μεταγλωττίζετε κάποια ports, μπορεί να εμφανιστεί στην
οθόνη σας ένα μενού επιλογών (βασισμένο σε ncurses) το οποίο να σας
επιτρέπει να αλλάξετε διάφορες επιλογές μεταγλώττισης. Δεν είναι
σπάνιο κάποιοι χρήστες να θέλουν να επισκεφτούν ξανά αυτό το μενού,
για να προσθέσουν, να αφαιρέσουν ή να αλλάξουν κάποιες επιλογές,
μετά την μεταγλώττιση του port. Μια επιλογή είναι να μετακινηθείτε
στον κατάλογο του port και να γράψετε
<command>make <maketarget>config</maketarget></command>, με το
οποίο θα εμφανιστεί ξανά το μενού με τις προηγούμενες ρυθμίσεις σας
ήδη επιλεγμένες. Μια άλλη δυνατότητα, είναι να χρησιμοποιήσετε την
εντολή <command>make <maketarget>showconfig</maketarget></command>,
με την οποία θα δείτε όλες τις επιλεγμένες ρυθμίσεις του port.
Τέλος, μια ακόμα επιλογή είναι να εκτελέσετε την εντολή
<command>make <maketarget>rmconfig</maketarget></command> η οποία
θα αφαιρέσει όλες τις αποθηκευμένες επιλογές και θα σας επιτρέψει να
ξεκινήσετε ξανά από την αρχή. Όλες αυτές οι επιλογές, και ακόμα
περισσότερες, εξηγούνται στη σελίδα manual του &man.ports.7;.</para>
</sect3>
</sect2>
<sect2 id="ports-removing">
<title>Αφαιρώντας Εγκατεστημένα Ports</title>
<indexterm>
<primary>ports</primary>
<secondary>removing</secondary>
</indexterm>
<para>Τώρα που γνωρίσατε πως να εγκαθιστάτε ports, πιθανώς θα
αναρωτιέστε πως αφαιρούνται, στην περίπτωση που εγκαταστήσατε ένα
και αργότερα αποφασίσατε ότι εγκαταστήσατε το λάθος port.
Θα αφαιρέσουμε το προηγούμενο παράδειγμα (που ήταν το
<command>lsof</command> για όσους δεν το πρόσεξαν). Τα ports
αφαιρούνται όπως και τα πακέτα (το αναλύσαμε στην ενότητα <link
linkend="packages-using">Χρησιμοποιώντας το Σύστημα των
Πακέτων</link>), χρησιμοποιώντας την
εντολή &man.pkg.delete.1;:</para>
<screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
</sect2>
<sect2 id="ports-upgrading">
<title>Αναβαθμίζοντας τα Ports</title>
<indexterm>
<primary>ports</primary>
<secondary>upgrading</secondary>
</indexterm>
<para>Αρχικά, δείτε τα παρωχημένα ports για τα οποία υπάρχουν
διαθέσιμες νεότερες εκδόσεις στην Συλλογή των Ports, με την εντολή
&man.pkg.version.1;:</para>
<screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
<sect3 id="ports-file-updating">
<title><filename>/usr/ports/UPDATING</filename></title>
<para>Μόλις ανανεώσετε την Συλλογή των Ports, πρέπει να ελέγξετε το
αρχείο <filename>/usr/ports/UPDATING</filename>, πριν επιχειρήσετε
την αναβάθμιση ενός port. Αυτό το αρχείο περιγράφει διάφορα πιθανά
προβλήματα, καθώς και ενδεχόμενα πρόσθετα βήματα που πρέπει να
εκτελέσετε όταν ανανεώνετε ένα port. Παραδείγματα των παραπάνω,
είναι η αλλαγή μορφής κάποιων αρχείων, αλλαγή στην τοποθεσία
των αρχείων ρυθμίσεων, ή άλλες ασυμβατότητες
με παλαιότερες εκδόσεις.</para>
<para>Αν το <filename>UPDATING</filename> αναιρεί κάτι που διαβάσατε
εδώ, θεωρήστε ότι ισχύει το <filename>UPDATING</filename>.</para>
</sect3>
<sect3 id="portupgrade">
<title>Αναβαθμίζοντας Ports με το Portupgrade</title>
<indexterm>
<primary>portupgrade</primary>
</indexterm>
<para>Το εργαλείο <application>portupgrade</application> είναι
σχεδιασμένο για να αναβαθμίζει εύκολα εγκατεστημένα ports.
Διατίθεται από το
<filename role="package">ports-mgmt/portupgrade</filename> port.
Εγκαταστήστε το όπως κάθε port, χρησιμοποιώντας την εντολή
<command>make <maketarget>install clean</maketarget></command>:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portupgrade</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Η εντολή <command>pkgdb -F</command> θα διαβάσει και θα
διορθώσει όλες τις ασυνέπειες που ίσως υπάρχουν στη λίστα των
εγκατεστημένων ports. Είναι καλή ιδέα είναι να την εκτελείτε
συχνά, ενδεχομένως πριν από κάθε αναβάθμιση.</para>
<para>Όταν εκτελείτε το <command>portupgrade -a</command>, το
<application>portupgrade</application> θα αρχίσει να αναβαθμίζει
όλα τα παρωχημένα ports που είναι εγκατεστημένα στο σύστημα σας.
Χρησιμοποιήστε την επιλογή <option>-i</option> αν θέλετε να σας
ρωτά για επιβεβαίωση για κάθε ξεχωριστή αναβάθμιση.</para>
<screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
<para>Αν θέλετε να αναβαθμίσετε μόνο μία συγκεκριμένη εφαρμογή, και
όχι όλα τα διαθέσιμα ports, χρησιμοποιήστε το
<command>portupgrade <replaceable>pkgname</replaceable></command>.
Συμπεριλάβετε την επιλογή <option>-R</option> αν το
<application>portupgrade</application> πρέπει πρώτα να αναβαθμίσει
όλα τα ports που απαιτούνται για την συγκεκριμένη εφαρμογή.</para>
<screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
<para>Για να χρησιμοποιήσετε πακέτα αντί για ports στην εγκατάσταση,
δώστε την επιλογή <option>-P</option>. Με αυτή την επιλογή το
<application>portupgrade</application> αναζητά
τους τοπικούς καταλόγους που ορίζονται στο <envar>PKG_PATH</envar>,
ή ανακτά τα πακέτα από απομακρυσμένα sites εάν δεν βρεθούν τοπικά.
Αν τα πακέτα δεν μπορούν να ανακτηθούν με τους παραπάνω τρόπους, το
<application>portupgrade</application> θα χρησιμοποιήσει τα ports.
Για να αποφύγετε εντελώς την χρήση των ports, καθορίστε την επιλογή
<option>-PP</option>.</para>
<screen>&prompt.root; <userinput>portupgrade -PR gnome2</userinput></screen>
<para>Για να ανακτήσετε απλώς τα distfiles (ή τα πακέτα, αν έχετε
ορίσει την επιλογή <option>-P</option>) χωρίς να μεταγλωττίσετε ή να
εγκαταστήσετε τίποτα, χρησιμοποιήστε το <option>-F</option>.
Για περισσότερες πληροφορίες, δείτε το &man.portupgrade.1;.</para>
</sect3>
<sect3 id="portmanager">
<title>Αναβαθμίζοντας Ports με το Portmanager</title>
<indexterm>
<primary>portmanager</primary>
</indexterm>
<para>Το <application>Portmanager</application> είναι ένα ακόμα
εργαλείο για εύκολη αναβάθμιση εγκατεστημένων ports. Διατίθεται
από το <filename role="package">ports-mgmt/portmanager</filename>
port:</para>
<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmanager</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Όλα τα εγκατεστημένα ports μπορούν να αναβαθμιστούν
χρησιμοποιώντας αυτή την απλή εντολή:</para>
<screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
<para>Μπορείτε να προσθέσετε την επιλογή <option>-ui</option>
στην παραπάνω εντολή (<userinput>portmanager -u -ui</userinput>)
για να ερωτηθείτε να επιβεβαιώσετε κάθε βήμα που θα εκτελέσει το
<application>Portmanager</application>.
Το <application>Portmanager</application> μπορεί επίσης
να χρησιμοποιηθεί για να εγκαταστήσετε νέα ports στο σύστημα.
Σε αντίθεση με την εντολή
<command>make <maketarget>install clean</maketarget></command>, το
<application>Portmanager</application> θα αναβαθμίσει όλες
τις εξαρτήσεις πριν την μεταγλώττιση και εγκατάσταση του
επιλεγμένου port.</para>
<screen>&prompt.root; <userinput>portmanager <replaceable>x11/gnome2</replaceable></userinput></screen>
<para>Αν υπάρχουν προβλήματα που σχετίζονται με τις εξαρτήσεις ενός
επιλεγμένου port, μπορείτε να χρησιμοποιήσετε το
<application>Portmanager</application> για να τις
επανα-μεταγλωττίσει όλες με την σωστή σειρά. Μόλις τελειώσει με
τις εξαρτήσεις, θα επανα-μεταγλωττίσει και το προβληματικό
port.</para>
<screen>&prompt.root; <userinput>portmanager <replaceable>graphics/gimp</replaceable> -f</userinput></screen>
<para>Για περισσότερες πληροφορίες δείτε τη σελίδα manual
&man.portmanager.1;.</para>
</sect3>
<sect3 id="portmaster">
<title>Αναβαθμίζοντας τα Ports μέσω του Portmaster</title>
<indexterm>
<primary>portmaster</primary>
</indexterm>
<para>Το <application>Portmaster</application> είναι ένα ακόμα
εργαλείο για την αναβάθμιση των εγκατεστημένων ports. Το
<application>Portmaster</application> σχεδιάστηκε ώστε να
χρησιμοποιεί τα εργαλεία που παρέχει το <quote>βασικό</quote>
σύστημα (δεν εξαρτάται από άλλα ports) και χρησιμοποιεί τις
πληροφορίες του <filename class="directory">/var/db/pkg</filename>
για να καθορίσει ποια ports θα αναβαθμίσει. Είναι διαθέσιμο μέσω
του port
<filename role="package">ports-mgmt/portmaster</filename>:</para>
<screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmaster</filename></userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Το <application>Portmaster</application> ομαδοποιεί τα ports
σε τέσσερις κατηγορίες:</para>
<itemizedlist>
<listitem>
<para>Root ports (δεν εξαρτώνται από άλλα, και ούτε άλλα
εξαρτώνται από αυτά)</para>
</listitem>
<listitem>
<para>Trunk ports (δεν εξαρτώνται από άλλα, ωστόσο κάποια πακέτα
εξαρτώνται από αυτά)</para>
</listitem>
<listitem>
<para>Branch ports (έχουν εξαρτήσεις και προς τις δύο
κατευθύνσεις)</para>
</listitem>
<listitem>
<para>Leaf ports (εξαρτώνται από άλλα, αλλά όχι το
αντίθετο)</para>
</listitem>
</itemizedlist>
<para>Μπορείτε να δείτε μια λίστα όλων των εγκατεστημένων ports και
να ψάξετε για ενημερωμένες εκδόσεις, χρησιμοποιώντας την επιλογή
<option>-L</option>:</para>
<screen>&prompt.root; <userinput>portmaster -L</userinput>
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports
===>>> 137 total installed ports
===>>> 83 have new versions available</screen>
<para>Μπορείτε να αναβαθμίσετε όλα τα εγκατεστημένα ports με την
παρακάτω απλή εντολή:</para>
<screen>&prompt.root; <userinput>portmaster -a</userinput></screen>
<note><para>Από προεπιλογή, το <application>Portmaster</application>
θα δημιουργήσει αντίγραφο ασφαλείας του εγκατεστημένου πακέτου
πριν το διαγράψει. Αν η εγκατάσταση της νέας έκδοσης είναι
επιτυχής, το <application>Portmaster</application> θα σβήσει το
αντίγραφο αυτό. Αν χρησιμοποιήσετε την επιλογή
<option>-b</option>, το <application>Portmaster</application> δεν
θα σβήσει αυτόματα το αντίγραφο. Αν χρησιμοποιήσετε την επιλογή
<option>-i</option>, θα θέσετε το
<application>Portmaster</application> σε διαδραστική λειτουργία,
όπου θα σας ζητάει επιβεβαίωση πριν την αναβάθμιση κάθε
port.</para></note>
<para>Αν αντιμετωπίσετε λάθη κατά τη διαδικασία της αναβάθμισης,
μπορείτε να χρησιμοποιήσετε την επιλογή <option>-f</option> για
να αναβαθμίσετε και να μεταγλωττίσετε ξανά όλα τα ports:</para>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<para>Μπορείτε επίσης να χρησιμοποιήσετε το
<application>Portmaster</application> για να εγκαταστήσετε νέα
ports στο σύστημα σας, αναβαθμίζοντας και όλες τις εξαρτήσεις τους
πριν τη μεταγλώττιση και εγκατάσταση τους:</para>
<screen>&prompt.root; <userinput>portmaster <replaceable>shells/bash</replaceable></userinput></screen>
<para>Παρακαλούμε δείτε τη σελίδα manual του &man.portmaster.8; για
περισσότερες πληροφορίες.</para>
</sect3>
</sect2>
<sect2 id="ports-disk-space">
<title>Ports και Αποθηκευτικός Χώρος</title>
<indexterm>
<primary>ports</primary>
<secondary>disk-space</secondary>
</indexterm>
<para>Η Συλλογή των Ports καταναλώνει διαθέσιμο χώρο στο δίσκο με την
πάροδο του χρόνου. Μετά την μεταγλώττιση και εγκατάσταση λογισμικού
από τα ports, πρέπει πάντα να θυμάστε να καθαρίζετε τους προσωρινούς
καταλόγους <filename class="directory">work</filename>
χρησιμοποιώντας την εντολή
<command>make <maketarget>clean</maketarget></command>. Mπορείτε να
καθαρίσετε όλη την Συλλογή των Ports με την ακόλουθη εντολή:</para>
<screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
<para>Με την πάροδο του χρόνου, θα συσσωρευτούν πολλά αρχεία διανομής
πηγαίου κώδικα στον κατάλογο
<filename class="directory">distfiles</filename>.
Μπορείτε να τα αφαιρέσετε χειροκίνητα, ή μπορείτε να χρησιμοποιήσετε
την ακόλουθη εντολή για να διαγράψετε όλα τα distfiles που δεν
σχετίζονται πλέον με κανένα port:</para>
<screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
<para>Ή για να αφαιρέσετε όλα τα distfiles που δεν σχετίζονται με
κανένα port που βρίσκεται εγκατεστημένο στο σύστημα σας:</para>
<screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>
<note>
<para>Το εργαλείο <command>portsclean</command> εγκαθίσταται ως μέρος
του <application>portupgrade</application>.</para>
</note>
<para>Μην ξεχνάτε να αφαιρείτε τα εγκατεστημένα ports όταν δεν τα
χρειάζεστε πλέον. Ένα καλό εργαλείο για να αυτοματοποιηθεί αυτή η
εργασία, είναι το port
<filename role="package">ports-mgmt/pkg_cutleaves</filename>.</para>
</sect2>
</sect1>
<sect1 id="ports-nextsteps">
<title>Ενέργειες μετά την Εγκατάσταση</title>
<para>Μετά την εγκατάσταση μιας νέας εφαρμογής, λογικά θα θέλετε
να διαβάσετε ότι τεκμηρίωση υπάρχει, να τροποποιήσετε τα
αρχεία ρυθμίσεων που χρειάζεται, να βεβαιωθείτε ότι η
εφαρμογή ξεκινάει κατά την εκκίνηση (αν είναι daemon), κ.λ.π.</para>
<para>Τα ακριβή βήματα που θα χρειαστούν για να ρυθμίσετε κάθε
εφαρμογή, θα είναι προφανώς διαφορετικά. Όμως, αν μόλις
εγκαταστήσατε μια νέα εφαρμογή και αναρωτιέστε <quote>Τώρα τι;</quote>
οι παρακάτω συμβουλές μπορεί να σας βοηθήσουν:</para>
<itemizedlist>
<listitem>
<para>Χρησιμοποιήστε το &man.pkg.info.1; για να δείτε τι αρχεία
εγκαταστάθηκαν, και που. Για παράδειγμα, αν μόλις εγκαταστήσατε το
FooPackage version 1.0.0, τότε η εντολή:</para>
<screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
<para>θα σας δείξει όλα τα αρχεία που εγκαταστάθηκαν από αυτό το
πακέτο. Προσέξτε τα αρχεία στον κατάλογο
<filename>man/</filename>, που θα είναι σελίδες manual, τους
κατάλογους <filename>etc/</filename>, όπου θα είναι τα αρχεία
ρυθμίσεων, και το <filename>doc/</filename>, όπου θα βρίσκεται πιο
περιεκτική τεκμηρίωση.</para>
<para>Αν δεν είστε σίγουρος ποια έκδοση της εφαρμογής εγκαταστήσατε,
μια εντολή όπως αυτή:</para>
<screen>&prompt.root; <userinput>pkg_info | grep -i <replaceable>foopackage</replaceable></userinput></screen>
<para>θα βρει όλα τα εγκατεστημένα πακέτα που έχουν το
<replaceable>foopackage</replaceable> στο όνομα του πακέτου.
Αντικαταστήστε το <replaceable>foopackage</replaceable> στην
γραμμή εντολών με το πακέτο που αναζητάτε.</para>
</listitem>
<listitem>
<para>Μόλις δείτε που βρίσκονται τα manual pages της εφαρμογής, δείτε
τα με την &man.man.1;. Όμοια, δείτε τα παραδείγματα των αρχείων
ρύθμισης, και όποια άλλη πρόσθετη τεκμηρίωση διατίθεται.</para>
</listitem>
<listitem>
<para>Αν υπάρχει web site για την εφαρμογή, ελέγξτε το για πρόσθετη
τεκμηρίωση, συχνές ερωτήσεις (FAQ), και άλλα. Αν δεν είστε
σίγουρος για την διεύθυνσή του web site, ίσως το βρείτε στην έξοδο
της εντολής:</para>
<screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>
<para>Αν υπάρχει γραμμή <literal>WWW:</literal>, θα πρέπει να
έχει το URL για το web site της εφαρμογής.</para>
</listitem>
<listitem>
<para>Ports που πρέπει να ξεκινούν κατά την εκκίνηση
(όπως διακομιστές Internet) συνήθως εγκαθιστούν ένα script στο
<filename>/usr/local/etc/rc.d</filename>. Πρέπει να ελέγξετε το
script για την ορθότητα του και να το τροποποιήσετε ή να το
μετονομάσετε αν χρειάζεται. Δείτε το <link
linkend="configtuning-starting-services">Εκκινώντας
Υπηρεσίες</link> για περισσότερες πληροφορίες.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="ports-broken">
<title>Αντιμετωπίζοντας Χαλασμένα Ports</title>
<para>Αν έρθετε αντιμέτωπος με ένα port το οποίο δεν λειτουργεί,
υπάρχουν κάποια πράγματα που μπορείτε να κάνετε:</para>
<orderedlist>
<listitem>
<para>Δείτε αν εκκρεμεί κάποια διόρθωση για το port στο
<ulink url="&url.base;/support.html#gnats">Problem Report
database</ulink>. Εάν ναι, μπορείτε να χρησιμοποιήσετε τη
προτεινόμενη διόρθωση.</para>
</listitem>
<listitem>
<para>Ζητήστε βοήθεια από τον συντηρητή του port. Πληκτρολογήστε
<command>make <maketarget>maintainer</maketarget></command> ή
διαβάστε το <filename>Makefile</filename> για να βρείτε την
διεύθυνση email του συντηρητή. Στο μήνυμα σας, θυμηθείτε να
συμπεριλάβετε το όνομα και την έκδοση του port (στείλτε τη γραμμή
<literal>&dollar;&os;:</literal> από το
<filename>Makefile</filename>) καθώς και την έξοδο του
σφάλματος.</para>
<note>
<para>Μερικά ports δεν συντηρούνται από κάποιο συγκεκριμένο άτομο,
αλλά από κάποια <ulink
url="&url.articles.mailing-list-faq;/article.html">mailing
list</ulink>. Πολλές, αν όχι όλες, από αυτές τις διευθύνσεις
έχουν την μορφή
<email role="nolink">freebsd-listname@FreeBSD.org</email>.
Παρακαλούμε να το έχετε υπόψη σας κατά τη διατύπωση των
ερωτήσεων σας.</para>
<para>Συγκεκριμένα, τα ports που φαίνονται ότι συντηρούνται από το
<email role="nolink">ports@FreeBSD.org</email>, δεν
συντηρούνται από κανέναν στην πραγματικότητα. Διορθώσεις και
υποστήριξη, αν υπάρχουν, έρχονται γενικά από την κοινότητα που
συμμετέχει στην συγκεκριμένη mailing list. Χρειαζόμαστε πάντοτε
περισσότερους εθελοντές!</para>
</note>
<para>Αν δεν λάβετε απάντηση,
μπορείτε να χρησιμοποιήσετε το &man.send-pr.1; για να στείλετε
μια αναφορά σφάλματος (δείτε το <ulink
url="&url.articles.problem-reports;/article.html">Γράφοντας
Αναφορές Σφάλματος για το &os;</ulink>).</para>
</listitem>
<listitem>
<para>Διορθώστε το! Το <ulink
url="&url.books.porters-handbook;/index.html">Porter's
Handbook</ulink> περιέχει λεπτομερείς πληροφορίες για την υποδομή
των <quote>Ports</quote> ώστε να μπορείτε να διορθώσετε το
περιστασιακό προβληματικό port ή ακόμα και να δημιουργήσετε ένα
δικό σας port!</para>
</listitem>
<listitem>
<para>Ανακτήστε το πακέτο από ένα κοντινό σας FTP site. Η
<quote>κύρια</quote> συλλογή πακέτων βρίσκεται στο <hostid
role="fqdn">ftp.FreeBSD.org</hostid>, στον <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">κατάλογο
πακέτων</ulink>. Πριν τη χρησιμοποιήσετε, ελέγξτε
<emphasis>πρώτα</emphasis> το <link
linkend="mirrors-ftp">τοπικό σας mirror</link>.
Τα πακέτα είναι πιο σίγουρο ότι θα λειτουργήσουν,
από το να προσπαθείτε να μεταγλωττίσετε τον πηγαίο κώδικα, και
η διαδικασία τελειώνει πιο γρήγορα. Χρησιμοποιήστε το πρόγραμμα
&man.pkg.add.1; για να εγκαταστήσετε το πακέτο στο
σύστημα σας.</para>
</listitem>
</orderedlist>
</sect1>
</chapter>