1631 lines
65 KiB
XML
1631 lines
65 KiB
XML
<?xml version="1.0" encoding="ISO-8859-7" standalone="no"?>
|
||
<!--
|
||
|
||
Το Εγχειρίδιο του FreeBSD: Εγκατάσταση Εφαρμογών: Packages και Ports
|
||
|
||
The FreeBSD Greek Documentation Project
|
||
|
||
$FreeBSD$
|
||
|
||
%SOURCE% en_US.ISO8859-1/books/handbook/ports/chapter.sgml
|
||
%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; 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; 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><</entry>
|
||
<entry>Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που
|
||
είναι διαθέσιμη στο δέντρο των ports.</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>></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 role="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>
|
||
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
|
||
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
|
||
===> Extracting for lsof-4.57
|
||
...
|
||
[extraction output snipped]
|
||
...
|
||
>> 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
|
||
...
|
||
[configure output snipped]
|
||
...
|
||
===> 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>
|
||
===> Installing for lsof-4.57
|
||
...
|
||
[installation output snipped]
|
||
...
|
||
===> Generating temporary packing list
|
||
===> Compressing manual pages for lsof-4.57
|
||
===> Registering installation for lsof-4.57
|
||
===> 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>
|
||
===> 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>$&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>
|