diff --git a/el_GR.ISO8859-7/books/handbook/Makefile b/el_GR.ISO8859-7/books/handbook/Makefile
index cd8ed8df49..63186279a3 100644
--- a/el_GR.ISO8859-7/books/handbook/Makefile
+++ b/el_GR.ISO8859-7/books/handbook/Makefile
@@ -1,318 +1,317 @@
#
# $FreeBSD$
#
# Μορφοποίηση του Εγχειριδίου του FreeBSD
#
# %SOURCE% en_US.ISO8859-1/books/handbook/Makefile
-# %SRCID% 1.111
+# %SRCID% 1.112
#
# ------------------------------------------------------------------------
#
# Μεταβλητές σχετικές με το Εγχειρίδιο
#
# WITH_PGPKEYS Η εκτυπώσιμη μορφή του εγχειριδίου περιέχει κανονικά
# μόνο τα fingerprints από τα PGP κλειδιά. Αν θέλετε
# να εκτυπώνονται ολόκληρα τα κλειδιά, τότε αυτή η
# μεταβλητή πρέπει να είναι 'defined'. Αυτή η επιλογή
# δεν επηρεάζει σε τίποτα τις μορφές HTML.
#
# Make targets μόνο για το Εγχειρίδιο
#
# pgpkeyring This target will read the contents of
# pgpkeys/chapter.sgml and will extract all of
# the pgpkeys to standard out. This output can then
# be redirected into a file and distributed as a
# public keyring of FreeBSD developers that can
# easily be imported into PGP/GPG.
#
# ------------------------------------------------------------------------
#
# Για να προσθέσετε ένα νέο κεφάλαιο στο Εγχειρίδιο:
#
# - Ενημερώστε αυτό το Makefile, το chapters.ent και το book.sgml
# - Προσθέστε μια σύντομη περιγραφή του κεφαλαίου στο preface/preface.sgml
#
# ------------------------------------------------------------------------
.PATH: ${.CURDIR}/../../share/sgml/glossary
MAINTAINER= doc@FreeBSD.org
DOC?= book
FORMATS?= html-split
HAS_INDEX= true
USE_PS2PDF= yes
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
IMAGES_EN = advanced-networking/isdn-bus.eps
IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps
IMAGES_EN+= advanced-networking/natd.eps
IMAGES_EN+= advanced-networking/net-routing.pic
IMAGES_EN+= advanced-networking/static-routes.pic
IMAGES_EN+= geom/striping.pic
IMAGES_EN+= install/adduser1.scr
IMAGES_EN+= install/adduser2.scr
IMAGES_EN+= install/adduser3.scr
IMAGES_EN+= install/boot-loader-menu.scr
IMAGES_EN+= install/boot-mgr.scr
IMAGES_EN+= install/config-country.scr
IMAGES_EN+= install/console-saver1.scr
IMAGES_EN+= install/console-saver2.scr
IMAGES_EN+= install/console-saver3.scr
IMAGES_EN+= install/console-saver4.scr
IMAGES_EN+= install/disklabel-auto.scr
IMAGES_EN+= install/disklabel-ed1.scr
IMAGES_EN+= install/disklabel-ed2.scr
IMAGES_EN+= install/disklabel-fs.scr
IMAGES_EN+= install/disklabel-root1.scr
IMAGES_EN+= install/disklabel-root2.scr
IMAGES_EN+= install/disklabel-root3.scr
IMAGES_EN+= install/disk-layout.eps
IMAGES_EN+= install/dist-set.scr
IMAGES_EN+= install/dist-set2.scr
IMAGES_EN+= install/docmenu1.scr
IMAGES_EN+= install/ed0-conf.scr
IMAGES_EN+= install/ed0-conf2.scr
IMAGES_EN+= install/edit-inetd-conf.scr
IMAGES_EN+= install/fdisk-drive1.scr
IMAGES_EN+= install/fdisk-drive2.scr
IMAGES_EN+= install/fdisk-edit1.scr
IMAGES_EN+= install/fdisk-edit2.scr
IMAGES_EN+= install/ftp-anon1.scr
IMAGES_EN+= install/ftp-anon2.scr
IMAGES_EN+= install/hdwrconf.scr
IMAGES_EN+= install/keymap.scr
IMAGES_EN+= install/main1.scr
IMAGES_EN+= install/mainexit.scr
IMAGES_EN+= install/main-std.scr
IMAGES_EN+= install/main-options.scr
IMAGES_EN+= install/main-doc.scr
IMAGES_EN+= install/main-keymap.scr
IMAGES_EN+= install/media.scr
IMAGES_EN+= install/mouse1.scr
IMAGES_EN+= install/mouse2.scr
IMAGES_EN+= install/mouse3.scr
IMAGES_EN+= install/mouse4.scr
IMAGES_EN+= install/mouse5.scr
IMAGES_EN+= install/mouse6.scr
IMAGES_EN+= install/mta-main.scr
IMAGES_EN+= install/net-config-menu1.scr
IMAGES_EN+= install/net-config-menu2.scr
IMAGES_EN+= install/nfs-server-edit.scr
IMAGES_EN+= install/ntp-config.scr
IMAGES_EN+= install/options.scr
IMAGES_EN+= install/pkg-cat.scr
IMAGES_EN+= install/pkg-confirm.scr
IMAGES_EN+= install/pkg-install.scr
IMAGES_EN+= install/pkg-sel.scr
IMAGES_EN+= install/probstart.scr
IMAGES_EN+= install/routed.scr
IMAGES_EN+= install/security.scr
IMAGES_EN+= install/sysinstall-exit.scr
IMAGES_EN+= install/timezone1.scr
IMAGES_EN+= install/timezone2.scr
IMAGES_EN+= install/timezone3.scr
IMAGES_EN+= install/userconfig.scr
IMAGES_EN+= install/userconfig2.scr
IMAGES_EN+= mail/mutt1.scr
IMAGES_EN+= mail/mutt2.scr
IMAGES_EN+= mail/mutt3.scr
IMAGES_EN+= mail/pine1.scr
IMAGES_EN+= mail/pine2.scr
IMAGES_EN+= mail/pine3.scr
IMAGES_EN+= mail/pine4.scr
IMAGES_EN+= mail/pine5.scr
IMAGES_EN+= install/example-dir1.eps
IMAGES_EN+= install/example-dir2.eps
IMAGES_EN+= install/example-dir3.eps
IMAGES_EN+= install/example-dir4.eps
IMAGES_EN+= install/example-dir5.eps
IMAGES_EN+= security/ipsec-network.pic
IMAGES_EN+= security/ipsec-crypt-pkt.pic
IMAGES_EN+= security/ipsec-encap-pkt.pic
IMAGES_EN+= security/ipsec-out-pkt.pic
IMAGES_EN+= vinum/vinum-concat.pic
IMAGES_EN+= vinum/vinum-mirrored-vol.pic
IMAGES_EN+= vinum/vinum-raid10-vol.pic
IMAGES_EN+= vinum/vinum-raid5-org.pic
IMAGES_EN+= vinum/vinum-simple-vol.pic
IMAGES_EN+= vinum/vinum-striped-vol.pic
IMAGES_EN+= vinum/vinum-striped.pic
IMAGES_EN+= virtualization/parallels-freebsd1.png
IMAGES_EN+= virtualization/parallels-freebsd2.png
IMAGES_EN+= virtualization/parallels-freebsd3.png
IMAGES_EN+= virtualization/parallels-freebsd4.png
IMAGES_EN+= virtualization/parallels-freebsd5.png
IMAGES_EN+= virtualization/parallels-freebsd6.png
IMAGES_EN+= virtualization/parallels-freebsd7.png
IMAGES_EN+= virtualization/parallels-freebsd8.png
IMAGES_EN+= virtualization/parallels-freebsd9.png
IMAGES_EN+= virtualization/parallels-freebsd10.png
IMAGES_EN+= virtualization/parallels-freebsd11.png
IMAGES_EN+= virtualization/parallels-freebsd12.png
IMAGES_EN+= virtualization/parallels-freebsd13.png
IMAGES_EN+= virtualization/virtualpc-freebsd1.png
IMAGES_EN+= virtualization/virtualpc-freebsd2.png
IMAGES_EN+= virtualization/virtualpc-freebsd3.png
IMAGES_EN+= virtualization/virtualpc-freebsd4.png
IMAGES_EN+= virtualization/virtualpc-freebsd5.png
IMAGES_EN+= virtualization/virtualpc-freebsd6.png
IMAGES_EN+= virtualization/virtualpc-freebsd7.png
IMAGES_EN+= virtualization/virtualpc-freebsd8.png
IMAGES_EN+= virtualization/virtualpc-freebsd9.png
IMAGES_EN+= virtualization/virtualpc-freebsd10.png
IMAGES_EN+= virtualization/virtualpc-freebsd11.png
IMAGES_EN+= virtualization/virtualpc-freebsd12.png
IMAGES_EN+= virtualization/virtualpc-freebsd13.png
IMAGES_EN+= virtualization/vmware-freebsd01.png
IMAGES_EN+= virtualization/vmware-freebsd02.png
IMAGES_EN+= virtualization/vmware-freebsd03.png
IMAGES_EN+= virtualization/vmware-freebsd04.png
IMAGES_EN+= virtualization/vmware-freebsd05.png
IMAGES_EN+= virtualization/vmware-freebsd06.png
IMAGES_EN+= virtualization/vmware-freebsd07.png
IMAGES_EN+= virtualization/vmware-freebsd08.png
IMAGES_EN+= virtualization/vmware-freebsd09.png
IMAGES_EN+= virtualization/vmware-freebsd10.png
IMAGES_EN+= virtualization/vmware-freebsd11.png
IMAGES_EN+= virtualization/vmware-freebsd12.png
# Images from the cross-document image library
IMAGES_LIB= callouts/1.png
IMAGES_LIB+= callouts/2.png
IMAGES_LIB+= callouts/3.png
IMAGES_LIB+= callouts/4.png
IMAGES_LIB+= callouts/5.png
IMAGES_LIB+= callouts/6.png
IMAGES_LIB+= callouts/7.png
IMAGES_LIB+= callouts/8.png
IMAGES_LIB+= callouts/9.png
IMAGES_LIB+= callouts/10.png
IMAGES_LIB+= callouts/11.png
IMAGES_LIB+= callouts/12.png
IMAGES_LIB+= callouts/13.png
IMAGES_LIB+= callouts/14.png
IMAGES_LIB+= callouts/15.png
#
# Η λίστα SRCS περιέχει όλα τα SGML αρχεία που αποτελούν μέρη του κειμένου.
# Αλλαγές σε οποιοδήποτε από αυτά τα αρχεία προκαλούν rebuild.
#
# SGML content
SRCS+= audit/chapter.sgml
SRCS+= book.sgml
SRCS+= colophon.sgml
SRCS+= dtrace/chapter.sgml
SRCS+= freebsd-glossary.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= basics/chapter.sgml
SRCS+= bibliography/chapter.sgml
SRCS+= boot/chapter.sgml
SRCS+= config/chapter.sgml
SRCS+= cutting-edge/chapter.sgml
SRCS+= desktop/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= firewalls/chapter.sgml
SRCS+= filesystems/chapter.sgml
SRCS+= geom/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= introduction/chapter.sgml
SRCS+= jails/chapter.sgml
SRCS+= kernelconfig/chapter.sgml
SRCS+= l10n/chapter.sgml
SRCS+= linuxemu/chapter.sgml
SRCS+= mac/chapter.sgml
SRCS+= mail/chapter.sgml
SRCS+= mirrors/chapter.sgml
SRCS+= multimedia/chapter.sgml
SRCS+= network-servers/chapter.sgml
SRCS+= pgpkeys/chapter.sgml
SRCS+= ports/chapter.sgml
SRCS+= ppp-and-slip/chapter.sgml
SRCS+= preface/preface.sgml
SRCS+= printing/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
-SRCS+= updating/chapter.sgml
SRCS+= users/chapter.sgml
SRCS+= vinum/chapter.sgml
SRCS+= virtualization/chapter.sgml
SRCS+= x11/chapter.sgml
# Entities
SRCS+= chapters.ent
SYMLINKS= ${DESTDIR} index.html handbook.html
# Turn on all the chapters.
CHAPTERS?= ${SRCS:M*chapter.sgml}
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./}
SGMLFLAGS+= -i chap.freebsd-glossary
pgpkeyring: pgpkeys/chapter.sgml
@${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
#
# Handbook-specific variables
#
.if defined(WITH_PGPKEYS)
JADEFLAGS+= -V withpgpkeys
.endif
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
#
# rules generating lists of mirror site from XML database.
#
XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \
mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \
eresources:::eresources.sgml.www.inc.tmp
DEPENDSET.DEFAULT= transtable mirror
XSLT.DEFAULT= ${XSL_MIRRORS}
XML.DEFAULT= ${XML_MIRRORS}
NO_TIDY.DEFAULT= yes
PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \
--param 'proto' "'ftp'" \
--param 'target' "'handbook/mirrors/chapter.sgml'"
PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \
--param 'proto' "'cvsup'" \
--param 'target' "'handbook/mirrors/chapter.sgml'"
PARAMS.eresources+= --param 'type' "'www'" \
--param 'proto' "'http'" \
--param 'target' "'handbook/eresources/chapter.sgml'"
SRCS+= mirrors.sgml.ftp.inc \
mirrors.sgml.cvsup.inc \
eresources.sgml.www.inc
CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \
mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \
eresources.sgml.www.inc eresources.sgml.www.inc.tmp
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
.for p in ftp cvsup
mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
.endfor
eresources.sgml.www.inc: eresources.sgml.www.inc.tmp
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
# Local variables:
# mode: makefile-bsdmake
# coding: iso-8859-7
# End:
diff --git a/el_GR.ISO8859-7/books/handbook/book.sgml b/el_GR.ISO8859-7/books/handbook/book.sgml
index ee07e78eef..138a70815c 100644
--- a/el_GR.ISO8859-7/books/handbook/book.sgml
+++ b/el_GR.ISO8859-7/books/handbook/book.sgml
@@ -1,375 +1,376 @@
%books.ent;
%chapters;
%txtfiles;
+
+
%pgpkeys;
]>
Εγχειρίδιο του FreeBSDΟμάδα Τεκμηρίωσης του FreeBSDΦεβρουάριος 199919951996199719981999200020012002200320042005200620072008Ομάδα Τεκμηρίωσης του FreeBSD
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
Καλώς ήρθατε στο FreeBSD! Αυτό το εγχειρίδιο καλύπτει την
εγκατάσταση και την καθημερινή χρήση του FreeBSD
&rel2.current;-RELEASE και του FreeBSD
&rel.current;-RELEASE. Το βιβλίο αυτό είναι
μόνιμα υπό βελτίωση και ανάπτυξη και
αποτελεί το αποτέλεσμα της δουλειάς πολλών ατόμων, οπότε κάποια
τμήματα μπορεί να περιέχουν σχετικά ξεπερασμένες πληροφορίες και
να χρειάζονται ανανέωση. Αν ενδιαφέρεστε να μας βοηθήσετε σε
αυτό το έργο, επικοινωνήστε μαζί μας μέσω της διεύθυνσης
&a.doc;. Η τελευταία έκδοση αυτού του κειμένου είναι πάντα
διαθέσιμη από την
ιστοσελίδα του &os;
(παλιότερες εκδόσεις μπορείτε να βρείτε στη διεύθυνση
). Μπορείτε
επίσης να μεταφορτώσετε στον υπολογιστή σας το ίδιο βιβλίο σε
άλλες μορφές αρχείου και με διάφορες μορφές συμπίεσης από
τον εξυπηρετητή
FTP του &os; ή ένα από τα
πολλά mirror sites. Αν
προτιμάτε ένα τυπωμένο αντίτυπο, μπορείτε να αγοράσετε ένα
αντίγραφο του Εγχειριδίου, από το
FreeBSD Mall.
Μπορείτε επίσης
να ψάξετε σε όλο το
βιβλίο.
&chap.preface;
Ξεκινώντας με το FreeBSDΑυτό το μέρος του Εγχειριδίου του &os; είναι για τους χρήστες και
τους διαχειριστές συστημάτων που δεν έχουν ήδη μεγάλη εμπειρία με το
&os;. Τα κεφάλαια που ακολουθούν:Είναι εισαγωγικά για το &os;Σας καθοδηγούν κατά τη διάρκεια της διαδικασίας
εγκατάστασηςΣας εισάγουν στις βασικές έννοιες του &unix;Περιγράφουν τη διαδικασία εγκατάστασης της πληθώρας εφαρμογών
που είναι διαθέσιμες στο &os;Σας εισάγουν στο γραφικό περιβάλλον του &unix;, το σύστημα Χ,
και σας καθοδηγούν σχετικά με τις αρχικές ρυθμίσεις ενός γραφικού
περιβάλλοντος εργασίας, με το οποίο μπορείτε να είστε ακόμα πιο
παραγωγικοίΣε αυτό το τμήμα του βιβλίου, έχουμε προσπαθήσει να μειώσουμε
στο ελάχιστο τις αναφορές σε τμήματα ή κεφάλαια του Εγχειριδίου
τα οποία δεν έχετε ήδη διαβάσει. Αυτό αποσκοπεί στο να γίνει
πιο εύκολη η ανάγνωση του τμήματος αυτού του Εγχειριδίου από την
αρχή μέχρι και το τέλος, χωρίς να απαιτείται να ψάχνετε συνεχώς
τα επόμενα ή προηγούμενα τμήματα.Βασικές ΕργασίεςΤώρα που έχουμε καλύψει πλέον τα βασικά θέματα, αυτό το
τμήμα του Εγχειριδίου του &os; περιγράφει τις πιο βασικές εργασίες
και τα πιο δημοφιλή χαρακτηριστικά του &os;. Τα κεφάλαια αυτού του
τμήματος:Παρουσιάζουν τις πιο δημοφιλείς και χρήσιμες εφαρμογές
και περιβάλλοντα εργασίας: φυλλομετρητές (browsers), γραφικά
περιβάλλοντα εργασίας, εργαλεία προβολής διαφόρων μορφών
αρχείων, κλπ.Παρουσιάζουν ορισμένα από τα εργαλεία πολυμέσων
(multimedia) που είναι διαθέσιμα για το &os;Εξηγούν τη διαδικασία μεταγλώττισης και εγκατάστασης
ενός προσαρμοσμένου πυρήνα για το &os;, έτσι ώστε να
ενεργοποιηθούν έξτρα χαρακτηριστικά για το σύστημά
σας.Περιγράφουν σε βάθος το σύστημα εκτυπώσεων, τόσο για
εκτυπωτές που είναι απευθείας συνδεδεμένοι με το σταθμό
εργασίας σας, όσο και για δικτυακούς εκτυπωτές.Περιγράφουν πώς μπορείτε να τρέξετε εφαρμογές Linux στο
&os; σύστημά σας.Μερικά από αυτά τα κεφάλαια απαιτούν να έχετε μελετήσει πιο
πριν κάποιο άλλο κεφάλαιο. Όπου είναι απαραίτητο κάτι τέτοιο,
αναφέρεται στη σύνοψη του κάθε κεφαλαίου.Διαχείριση ΣυστήματοςΤα κεφάλαια του &os; Handbook που ακολουθούν αναφέρονται σε θέματα
που έχουν σχέση με τη διαχείριση του συστήματος.
Κάθε κεφάλαιο ξεκινά περιγράφοντας τι θα μάθετε διαβάζοντας
το συγκεκριμένο κεφάλαιο, καθώς και τι προαπαιτούμενα έχει το κεφάλαιο
αυτό: τι πρέπει να έχετε ήδη διαβάσει και κατανοήσει πριν ασχοληθείτε
με αυτό το κεφάλαιο.Αυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς
παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους
οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για
το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά,
ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε
με το &os;.Δικτυακές ΕπικοινωνίεςΤο &os; είναι ένα από τα πιο ευρέως διαδεδομένα λειτουργικά
συστήματα για υψηλής απόδοσης δικτυακές εφαρμογές και εξυπηρετητές.
Τα κεφάλαια σε αυτό το τμήμα περιγράφουν:Τις επικοινωνίες με σειραϊκή σύνδεση (serial)Τα πρωτόκολλα PPP και PPP πάνω από EthernetΤην Ηλεκτρονική ΑλληλογραφίαΤην Εγκατάσταση Δικτυακών ΥπηρεσιώνΤη Ρύθμιση και Λειτουργία των FirewallsΆλλα Προχωρημένα Θέματα ΔικτύωνΑυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς
παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους
οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για
το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά,
ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε
με το &os;.
-
Παραρτήματα
&chap.colophon;
diff --git a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml
index b83edb4a8b..e34abae41e 100644
--- a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml
+++ b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml
@@ -1,1980 +1,2490 @@
-
+JimMockΑναδομήθηκε, αναδιοργανώθηκε, και τμήματα του ανανεώθηκαν
από τον JordanHubbardΑρχική συνεισφορά από τους Poul-HenningKampJohnPolstraNikClayton
- Η Κόψη του Ξυραφιού
+ Ενημέρωση και Αναβάθμιση του &os;
-
+ ΣύνοψηΤο &os; βρίσκεται υπό συνεχή εξέλιξη μεταξύ των επίσημων εκδόσεων
- του. Για όποιον θέλει να βρίσκεται στην κόψη του ξυραφιού, υπάρχουν
- διάφοροι μηχανισμοί που εξασφαλίζουν με εύκολο τρόπο την ανανέωση ενός
- συστήματος με τις τελευταίες εξελίξεις. Σας προειδοποιούμε—η
- κόψη του ξυραφιού δεν είναι για τον καθένα! Το κεφάλαιο αυτό θα σας
- βοηθήσει να αποφασίσετε αν θέλετε να παρακολουθείτε το σύστημα
- ανάπτυξης, ή αν θα προτιμήσετε να παραμείνετε σε μια από τις παγιωμένες
- εκδόσεις.
+ του. Μερικοί άνθρωποι προτιμούν να χρησιμοποιούν τις επίσημες εκδόσεις,
+ ενώ άλλοι προτιμούν να κρατούν το σύστημα τους ενημερωμένο με τις
+ τελευταίες εξελίξεις. Ωστόσο, ακόμα και οι επίσημες εκδόσεις
+ ενημερώνονται συχνά με διορθώσεις κρίσιμων σφαλμάτων και ασφαλείας.
+ Όποια έκδοση και να χρησιμοποιήσετε, το &os; παρέχει όλα τα
+ απαραίτητα εργαλεία για να κρατήσετε το σύστημα σας ενημερωμένο, και
+ επίσης σας επιτρέπει να αναβαθμιστείτε εύκολα σε κάποια επόμενη
+ έκδοση. Το κεφάλαιο αυτό θα σας βοηθήσει να αποφασίσετε αν θέλετε να
+ παρακολουθείτε το σύστημα ανάπτυξης, ή αν θα προτιμήσετε να παραμείνετε
+ σε μια από τις παγιωμένες εκδόσεις. Θα παρουσιάσουμε επίσης τα βασικά
+ εργαλεία που απαιτούνται για την ενημέρωση και αναβάθμιση του
+ συστήματος.
Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:
+
- Τη διαφορά μεταξύ των δύο κλάδων που βρίσκονται σε εξέλιξη: του
- &os.stable; και του &os.current;.
+ Ποια βοηθητικά προγράμματα μπορείτε να χρησιμοποιήσετε για να
+ ενημερώσετε το σύστημα και την Συλλογή των Ports.
- Πως να διατηρείτε το σύστημα σας ανανεωμένο με τα
+ Πως να διατηρείτε το σύστημα σας ενημερωμένο με τα προγράμματα
+ freebsd-updateCVSup,
CVS, ή
CTM.
+
+ Πως να συγκρίνετε την κατάσταση ενός εγκατεστημένου συστήματος,
+ με αναφορά ένα γνωστό και εγγυημένα σωστό σύστημα.
+
+
+
+ Τη διαφορά μεταξύ των δύο κλάδων που βρίσκονται σε εξέλιξη: του
+ &os.stable; και του &os.current;.
+
+
Πως να ξαναφτιάξετε και να επανεγκαταστήσετε ολόκληρο
το βασικό σύστημα με την make buildworld
(κλπ).Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:Να ρυθμίσετε σωστά τη σύνδεση σας στο δίκτυο ().Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό
τρίτου κατασκευαστή ().Στο κεφάλαιο αυτό γίνεται συχνά χρήση της εντολής
cvsup για την ανάκτηση ή ενημέρωση των αρχείων
πηγαίου κώδικα του &os;. Για να την χρησιμοποιήσετε, θα πρέπει να
εγκαταστήσετε ένα πακέτο ή port όπως το
net/cvsup-without-gui.
Αν χρησιμοποιείτε &os; 6.2-RELEASE ή νεώτερο, μπορείτε να
αντικαταστήσετε αυτή την εντολή με την &man.csup.1; η οποία ανήκει
πλέον στο βασικό σύστημα.
+
+
+
+
+ Tom
+ Rhodes
+ Γράφηκε από τον
+
+
+
+
+ Colin
+ Percival
+ Βασίστηκε σε σημειώσεις που παρείχε ο
+
+
+
+ Ενημερώνοντας το &os;
+
+ Updating and Upgrading FreeBSD
+
+ freebsd-update
+ updating-upgrading
+
+
+ Η εφαρμογή ενημερώσεων ασφαλείας αποτελεί ένα σημαντικό τμήμα της
+ συντήρησης λογισμικού, ειδικά όταν πρόκειται για το λειτουργικό σύστημα.
+ Για μεγάλο διάστημα, η διαδικασία αυτή δεν ήταν εύκολη στο &os;.
+ Έπρεπε να εφαρμοστούν patches στον πηγαίο κώδικα, να γίνει μεταγλώττιση
+ του από την αρχή, και να εγκατασταθούν ξανά τα νέα εκτελέσιμα.
+
+ Αυτό δεν είναι πλέον αναγκαίο, καθώς το &os; διαθέτει τώρα ένα
+ βοηθητικό πρόγραμμα, το freebsd-update. Το πρόγραμμα
+ παρέχει δύο διαφορετικές λειτουργίες. Η πρώτη είναι η δυνατότητα
+ δυαδικής (binary) ενημέρωσης του βασικού συστήματος με τις τελευταίες
+ διορθώσεις ασφάλειας και λαθών, χωρίς να χρειάζεται ξανά μεταγλώττιση
+ και εγκατάσταση. Η δεύτερη είναι η δυνατότητα αναβάθμισης του
+ συστήματος σε μια νέα μικρή ή μεγάλη επίσημη έκδοση (release).
+
+
+ Δυαδικές διορθώσεις λαθών και ασφάλειας, διατίθενται για όλες
+ τις αρχιτεκτονικές και εκδόσεις που υποστηρίζονται από την ομάδα
+ ασφάλειας. Ωστόσο, ορισμένα χαρακτηριστικά όπως η δυνατότητα
+ αναβάθμισης του λειτουργικού σε μια νέα έκδοση, απαιτούν την
+ τελευταία έκδοση του &man.freebsd-update.8; και του &os; 6.3.
+ Πριν προχωρήσετε στην αναβάθμιση σε μια νέα έκδοση, θα πρέπει να
+ διαβάσετε τις σχετικές με αυτήν ανακοινώσεις, καθώς μπορεί να
+ περιέχουν σημαντικές πληροφορίες. Μπορείτε να δείτε τις
+ ανακοινώσεις εκδόσεων στην παρακάτω τοποθεσία:
+ .
+
+
+ Αν υπάρχει κάποιο crontab που χρησιμοποιεί τις
+ δυνατότητες του freebsd-update, θα πρέπει να
+ απενεργοποιηθεί πριν ξεκινήσει η παρακάτω διαδικασία. Μπορείτε να
+ εγκαταστήσετε την τελευταία έκδοση του
+ freebsd-update κατεβάζοντας το συμπιεσμένο πακέτο
+ από το παραπάνω URL και εκτελώντας τις παρακάτω
+ εντολές:
+
+ &prompt.root; gunzip -c freebsd-update-upgrade.tgz | tar xvf -
+&prompt.root; mv freebsd-update.sh /usr/sbin/freebsd-update
+&prompt.root; mv freebsd-update.conf /etc
+
+ Δεν απαιτείται να κατεβάσετε την τελευταία έκδοση, αν χρησιμοποιείτε
+ κάποια από τις τρέχουσες εκδόσεις του &os;.
+
+
+ Το Αρχείο Ρυθμίσεων
+
+ Κάποιοι χρήστες ίσως θέλουν να αλλάξουν το αρχείο ρυθμίσεων, ώστε
+ να έχουν καλύτερο έλεγχο της διαδικασίας. Οι επιλογές είναι γενικά
+ αρκετά καλά τεκμηριωμένες, αλλά οι παρακάτω ίσως να χρειάζονται
+ κάποιες επιπλέον επεξηγήσεις:
+
+ # Components of the base system which should be kept updated.
+Components src world kernel
+
+ Αυτή η παράμετρος ελέγχει ποια τμήματα του &os; θα διατηρούνται
+ ενημερωμένα. Η προεπιλογή είναι να ενημερώνεται ο πηγαίος κώδικας,
+ όλο το βασικό σύστημα, και ο πυρήνας. Τα τμήματα είναι τα ίδια
+ που διατίθενται και κατά την εγκατάσταση, για παράδειγμα αν βάλετε
+ την επιλογή world/games θα εγκαθίστανται ενημερώσεις
+ για τα παιχνίδια. Αν βάλετε src/bin θα επιτρέψετε
+ την ενημέρωση του πηγαίου κώδικα του καταλόγου
+ src/bin.
+
+ Η καλύτερη επιλογή είναι να αφήσετε εδώ την προεπιλεγμένη τιμή,
+ καθώς αν την αλλάξετε ώστε να περιέχει συγκεκριμένα μόνο τμήματα,
+ θα αναγκαστείτε να αναφέρετε χωριστά μέσα στο αρχείο ρυθμίσεων κάθε
+ τμήμα που θέλετε να ενημερώνεται. Αυτό ίσως έχει καταστροφικά
+ αποτελέσματα, καθώς είναι πιθανό ο πηγαίος κώδικας και τα εκτελέσιμα
+ προγράμματα να μην είναι πλέον σε συγχρονισμό μεταξύ τους.
+
+ # Paths which start with anything matching an entry in an IgnorePaths
+# statement will be ignored.
+IgnorePaths
+
+ Προσθέστε διαδρομές σε καταλόγους, όπως
+ /bin ή
+ /sbin για να αφήσετε
+ απείραχτους τους συγκεκριμένους καταλόγους κατά την διαδικασία
+ ενημέρωσης. Η επιλογή αυτή μπορεί να χρησιμοποιηθεί για να αποτρέψει
+ το freebsd-update να γράψει πάνω σε πιθανόν
+ δικές σας τοπικές αλλαγές.
+
+ # Paths which start with anything matching an entry in an UpdateIfUnmodified
+# statement will only be updated if the contents of the file have not been
+# modified by the user (unless changes are merged; see below).
+UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
+
+ Η επιλογή αυτή θα ενημερώσει τα αρχεία ρυθμίσεων στους καταλόγους
+ που καθορίζονται, μόνο αν αυτά δεν έχουν μεταβληθεί από το χρήστη.
+ Αν υπάρχουν τοπικές αλλαγές, δεν θα γίνει ενημέρωση. Υπάρχει μια
+ ακόμα επιλογή, η KeepModifiedMetadata, η οποία
+ οδηγεί το freebsd-update να αποθηκεύσει τις αλλαγές
+ μεταξύ των δύο εκδόσεων κατά τη διάρκεια της συγχώνευσης
+ (merge).
+
+ # When upgrading to a new &os; release, files which match MergeChanges
+# will have any local changes merged into the version from the new release.
+MergeChanges /etc/ /var/named/etc/
+
+ Πρόκειται για τη λίστα των καταλόγων που περιέχουν αρχεία
+ ρυθμίσεων, και στα οποία το freebsd-update θα
+ επιχειρεί την διαδικασία συγχώνευσης αλλαγών. Η διαδικασία
+ συγχώνευσης γίνεται με μια σειρά από patches τύπου &man.diff.1;
+ παρόμοια με το &man.mergemaster.8; αλλά με λιγότερες επιλογές. Οι
+ συγχωνεύσεις είτε γίνονται δεκτές, είτε προκαλούν το άνοιγμα κάποιου
+ συντάκτη κειμένου, διαφορετικά η εκτέλεση του
+ freebsd-update ακυρώνεται. Αν δεν είστε
+ σίγουρος, κρατήστε αντίγραφο ασφαλείας του καταλόγου
+ /etc και απλώς δεχθείτε τις
+ αλλαγές. Δείτε το για
+ περισσότερες πληροφορίες σχετικά με την εντολή
+ mergemaster.
+
+ # Directory in which to store downloaded updates and temporary
+# files used by &os; Update.
+# WorkDir /var/db/freebsd-update
+
+ Στον κατάλογο αυτό φυλάσσονται όλα τα patches και τα προσωρινά
+ αρχεία. Σε περιπτώσεις όπου ο χρήστης εκτελεί αναβάθμιση σε μια
+ νεότερη έκδοση του &os;, θα πρέπει να διαθέτει τουλάχιστον ένα
+ gigabyte ελεύθερου χώρου.
+
+ # When upgrading between releases, should the list of Components be
+# read strictly (StrictComponents yes) or merely as a list of components
+# which *might* be installed of which &os; Update should figure out
+# which actually are installed and upgrade those (StrictComponents no)?
+# StrictComponents no
+
+ Αν θέσετε την παραπάνω επιλογή στο yes,
+ το freebsd-update θα υποθέσει ότι η λίστα
+ Components είναι πλήρης και δεν θα επιχειρήσει
+ να προχωρήσει σε αλλαγές εκτός λίστας. Ουσιαστικά, το
+ freebsd-update θα προσπαθήσει να ενημερώσει κάθε
+ αρχείο που ανήκει στη λίστα Components.
+
+
+
+ Patches Σχετικά με την Ασφάλεια
+
+ Τα patches που σχετίζονται με την ασφάλεια, αποθηκεύονται σε
+ ένα απομακρυσμένο μηχάνημα και μπορούν να μεταφορτωθούν και να
+ εγκατασταθούν με την ακόλουθη εντολή:
+
+ &prompt.root; freebsd-update fetch
+&prompt.root; freebsd-update install
+
+ Αν με την παραπάνω εντολή εγκατασταθούν ενημερώσεις στον πυρήνα,
+ θα χρειαστεί να επανεκκινήσετε το σύστημα. Αν όλα πάνε καλά, το
+ σύστημα θα είναι πλέον ενημερωμένο και μπορείτε να εκτελείτε το
+ freebsd-update αυτόματα με την βοήθεια του
+ &man.cron.8;. Μια απλή καταχώριση στο αρχείο
+ /etc/crontab είναι επαρκής για αυτό
+ το σκοπό:
+
+ @daily root freebsd-update cron
+
+ Η παραπάνω καταχώριση ορίζει ότι το
+ freebsd-update θα εκτελείται μια φορά την ημέρα.
+ Με τον τρόπο αυτό, και όταν η εκτέλεση είναι μέσω της επιλογής
+ , το freebsd-update απλώς
+ θα ελέγχει για ενημερώσεις. Αν υπάρχουν, η εφαρμογή θα τις
+ κατεβάζει, αλλά δεν θα τις εγκαθιστά. Θα στέλνει όμως ένα email
+ στο χρήστη root ώστε να τις εγκαταστήσει
+ χειροκίνητα.
+
+ Αν οτιδήποτε πάει στραβά, το freebsd-update
+ έχει την ικανότητα να επιστρέφει στην προηγούμενη σταθερή κατάσταση,
+ αναιρώντας το τελευταίο σετ αλλαγών με την ακόλουθη εντολή:
+
+ &prompt.root; freebsd-update rollback
+
+ Με την ολοκλήρωση της εντολής, θα πρέπει να επανεκκινήσετε το
+ σύστημα αν έχουν γίνει αλλαγές στον πυρήνα ή σε κάποιο από τα
+ αρθρώματα του. Αυτό θα επιτρέψει στο &os; να φορτώσει τα νέα
+ εκτελέσιμα στη μνήμη.
+
+
+ Η εντολή freebsd-update λειτουργεί μόνο
+ με τον πυρήνα GENERIC. Αν έχετε κάνει αλλαγές
+ στον GENERIC ή έχετε εγκαταστήσει
+ προσαρμοσμένο πυρήνα, το freebsd-update δεν θα
+ ολοκληρώσει τις αλλαγές. Θα αποτύχει στην πρώτη περίπτωση, και
+ θα εμφανίσει ένα μήνυμα λάθους στη δεύτερη.
+
+
+
+
+ Αναβαθμίσεις σε Μικρές και Μεγάλες Εκδόσεις
+
+ Η διαδικασία αυτή θα απομακρύνει τα παλιά αρχεία αντικειμενικού
+ κώδικα (object files) καθώς και τις παλιές βιβλιοθήκες, κάνοντας
+ τις περισσότερες εφαρμογές τρίτων κατασκευαστών να μη λειτουργούν.
+ Σας συνιστούμε είτε να απεγκαταστήσετε όλα τα εγκατεστημένα ports και
+ να τα εγκαταστήσετε ξανά, ή να τα αναβαθμίσετε αργότερα,
+ χρησιμοποιώντας το βοηθητικό πρόγραμμα
+ ports-mgmt/portupgrade.
+ Οι περισσότεροι χρήστες θα θέλουν να κάνουν μια δοκιμαστική
+ μεταγλώττιση χρησιμοποιώντας την ακόλουθη εντολή:
+
+ &prompt.root; portupgrade -af
+
+ Με αυτό τον τρόπο εξασφαλίζεται ότι τα πάντα θα επανεγκατασταθούν
+ σωστά. Σημειώστε ότι αν θέσετε την μεταβλητή περιβάλλοντος
+ BATCH στην τιμή yes, όλες οι
+ πιθανές ερωτήσεις που θα εμφανιστούν κατά τη διαδικασία, θα
+ απαντηθούν αυτόματα με yes. Έτσι δεν υπάρχει πλέον
+ ανάγκη για παρέμβαση του χρήστη κατά τη διάρκεια της διαδικασίας
+ μεταγλώττισης.
+
+ Είναι δυνατές οι αναβαθμίσεις τόσο σε μικρές όσο και σε μεγάλες
+ εκδόσεις, δίνοντας στην εντολή freebsd-update τον
+ επιθυμητό αριθμό έκδοσης. Για παράδειγμα, η ακόλουθη εντολή θα
+ αναβαθμίσει το σύστημα σε &os; 6.3:
+
+ &prompt.root; freebsd-update -r 6.3-RELEASE upgrade
+
+ Μετά τη λήψη της εντολής, το
+ freebsd-update θα αξιολογήσει την κατάσταση του
+ συστήματος και του αρχείου ρυθμίσεων του, σε μια απόπειρα να μαζέψει
+ τις απαραίτητες πληροφορίες για την αναβάθμιση του συστήματος.
+ Οι πληροφορίες που ανιχνεύθηκαν θα εμφανιστούν στην οθόνη με τη μορφή
+ μιας λίστας εγκατεστημένων προγραμμάτων. Για παράδειγμα:
+
+ Looking up update.FreeBSD.org mirrors... 1 mirrors found.
+Fetching metadata signature for 6.3-BETA1 from update1.FreeBSD.org... done.
+Fetching metadata index... done.
+Inspecting system... done.
+
+The following components of FreeBSD seem to be installed:
+kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
+src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
+src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
+world/base world/info world/lib32 world/manpages
+
+The following components of FreeBSD do not seem to be installed:
+kernel/generic world/catpages world/dict world/doc world/games
+world/proflibs
+
+Does this look reasonable (y/n)? y
+
+ Στο σημείο αυτό, το freebsd-update θα
+ κατεβάσει όλα τα αρχεία που απαιτούνται για την αναβάθμιση. Σε
+ μερικές περιπτώσεις, ο χρήστης θα κληθεί να απαντήσει σε ερωτήσεις
+ σχετικά με το τι θα εγκατασταθεί ή πως πρέπει να προχωρήσει η
+ διαδικασία.
+
+ Αφού μεταφορτωθούν όλα τα patches στο τοπικό σύστημα, θα γίνει
+ και η εφαρμογή τους. Η διαδικασία αυτή ίσως πάρει λίγο χρόνο,
+ ανάλογα με την ταχύτητα και το φορτίο του μηχανήματος. Έπειτα θα
+ γίνει η συγχώνευση των αρχείων ρυθμίσεων. Αυτό το μέρος της
+ διαδικασίας απαιτεί παρέμβαση του χρήστη, καθώς σε κάποια αρχεία θα
+ χρειαστεί η συγχώνευση να γίνει χειροκίνητα με τη βοήθεια κάποιου
+ συντάκτη κειμένου. Ο χρήστης θα ενημερώνεται για το αποτέλεσμα κάθε
+ επιτυχημένης συγχώνευσης καθώς εξελίσσεται η διαδικασία. Σε
+ περίπτωση αποτυχημένης συγχώνευσης (ή αγνόησης της), η διαδικασία
+ αναβάθμισης θα διακοπεί. Ενδεχομένως να θέλετε να κρατήσετε αντίγραφο
+ ασφαλείας του καταλόγου /etc
+ και να συγχωνεύσετε αργότερα (χειροκίνητα) κάποια σημαντικά αρχεία,
+ όπως το master.passwd ή το
+ group.
+
+
+ Στο σημείο αυτό δεν έχει γίνει ακόμα καμιά αλλαγή στο σύστημα,
+ καθώς όλη η διαδικασία της αναβάθμισης και συγχώνευσης γίνεται σε
+ διαφορετικό κατάλογο. Όταν εφαρμοστούν επιτυχώς όλα τα patches
+ και ολοκληρωθεί με επιτυχία η διαδικασία της συγχώνευσης όλων των
+ αρχείων ρύθμισης, ο χρήστης θα πρέπει να επιβεβαιώσει την τελική
+ εγκατάσταση.
+
+
+ Με το τέλος αυτής τη διαδικασίας, η αναβάθμιση μπορεί να
+ οριστικοποιηθεί στο δίσκο, με τη χρήση της ακόλουθης εντολής:
+
+ &prompt.root; freebsd-update install
+
+ Στην πρώτη φάση, θα αλλαχθεί ο πυρήνας και τα σχετικά αρθρώματα.
+ Στο σημείο αυτό, θα πρέπει να γίνει επανεκκίνηση του μηχανήματος.
+ Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να επανεκκινήσετε
+ το μηχάνημα ώστε να φορτωθεί στη μνήμη ο νέος πυρήνας:
+
+ &prompt.root; shutdown -r now
+
+ Μόλις το σύστημα επανέλθει σε λειτουργία, θα πρέπει να εκτελέσετε
+ ξανά το freebsd-update. Η προηγούμενη λειτουργία
+ έχει αποθηκευθεί, και έτσι το freebsd-update δεν θα
+ ξεκινήσει από την αρχή, αλλά θα απομακρύνει όλες τις παλιές
+ κοινόχρηστες βιβλιοθήκες και τα αρχεία αντικειμενικού κώδικα. Για να
+ συνεχίσετε σε αυτό το στάδιο, δώστε την ακόλουθη εντολή:
+
+ &prompt.root; freebsd-update install
+
+
+ Ανάλογα με το αν υπήρξαν αλλαγές στους αριθμούς εκδόσεων των
+ βιβλιοθηκών, ίσως να υπάρχουν μόνο δύο φάσεις εγκατάστασης αντί για
+ τρεις.
+
+
+ Όλο το λογισμικό τρίτου κατασκευαστή θα πρέπει τώρα να
+ μεταγλωττιστεί και να επανεγκατασταθεί από την αρχή. Αυτό απαιτείται
+ καθώς το εγκατεστημένο λογισμικό ίσως εξαρτάται από βιβλιοθήκες οι
+ οποίες αφαιρέθηκαν κατά τη διαδικασία της αναβάθμισης. Μπορείτε να
+ χρησιμοποιήσετε την εντολή
+ ports-mgmt/portupgrade
+ για να αυτοματοποιήσετε αυτή τη διαδικασία. Για να ξεκινήσετε, δώστε
+ τις παρακάτω εντολές:
+
+ &prompt.root; portupgrade -f ruby
+&prompt.root; rm /var/db/pkg/pkgdb.db
+&prompt.root; portupgrade -f ruby18-bdb
+&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
+&prompt.root; portupgrade -af
+
+ Μόλις ολοκληρωθεί το παραπάνω, ολοκληρώστε τη διαδικασία
+ αναβάθμισης με μια τελευταία κλήση της εντολής
+ freebsd-update. Δώστε την παρακάτω εντολή για να
+ ολοκληρώσετε οτιδήποτε έχει απομείνει στη διαδικασία
+ αναβάθμισης:
+
+ &prompt.root; freebsd-update install
+
+ Επανεκκινήστε το μηχάνημα σας στην νέα έκδοση του &os;.
+ Η διαδικασία έχει ολοκληρωθεί.
+
+
+
+ Σύγκριση Κατάστασης του Συστήματος
+
+ Το βοηθητικό πρόγραμμα freebsd-update μπορεί να
+ χρησιμοποιηθεί για να ελέγξετε την κατάσταση της εγκατεστημένης
+ έκδοσης του &os; σε σχέση με μια γνωστή και σωστή εγκατάσταση.
+ Η επιλογή αυτή συγκρίνει και αξιολογεί την τρέχουσα έκδοση των
+ προγραμμάτων συστήματος, των βιβλιοθηκών και των αρχείων ρύθμισης.
+ Για να ξεκινήσετε τη σύγκριση, δώστε την ακόλουθη εντολή:
+
+ &prompt.root; freebsd-update IDS >> outfile.ids
+
+
+ Αν και το όνομα της εντολής είναι IDS, δεν
+ θα πρέπει σε καμιά περίπτωση να θεωρηθεί υποκατάστατο ενός
+ συστήματος ανίχνευσης εισβολέα (intrusion detection system) όπως
+ είναι για παράδειγμα το
+ security/snort.
+ Καθώς το freebsd-update αποθηκεύει τα δεδομένα
+ του στο δίσκο, υπάρχει πάντα η πιθανότητα να έχει γίνει αλλοίωση
+ τους. Αν και η πιθανότητα αυτή μπορεί να μειωθεί χρησιμοποιώντας
+ τη ρύθμιση kern.securelevel και αποθηκεύοντας
+ τα δεδομένα της εντολής freebsd-update σε ένα
+ σύστημα αρχείων μόνο για ανάγνωση, μια ακόμα καλύτερη λύση θα ήταν
+ να συγκρίνετε το σύστημα με κάποιο δίσκο που θεωρείτε σίγουρα
+ ασφαλή. Μπορείτε να χρησιμοποιήσετε ένα δίσκο
+ DVD ή ένα εξωτερικό δίσκο USB
+ που φυλάσσετε σε ασφαλή τοποθεσία.
+
+
+ Θα γίνει τώρα μια επιθεώρηση του συστήματος και θα εκτυπωθεί
+ μια λίστα από αρχεία και τιμές hash του τύπου &man.sha256.1;,
+ τόσο για το εγκατεστημένο όσο και για το γνωστό σύστημα. Επειδή
+ πρόκειται για μεγάλη λίστα, την ανακατευθύνουμε στο αρχείο
+ outfile.ids. Στην οθόνη το κείμενο θα κυλούσε
+ πολύ γρήγορα, και σύντομα θα γέμιζε την προσωρινή μνήμη απεικόνισης
+ της κονσόλας.
+
+ Οι γραμμές αυτές έχουν γενικά μεγάλο μήκος, αλλά είναι εύκολο
+ να επεξεργαστούμε την έξοδο. Για παράδειγμα, για να δείτε μια λίστα
+ όλων των αρχείων που διαφέρουν από αυτά της επίσημης έκδοσης, δώστε
+ την ακόλουθη εντολή:
+
+ &prompt.root; cat outfile.ids | awk '{ print $1 }' | more
+/etc/master.passwd
+/etc/motd
+/etc/passwd
+/etc/pf.conf
+
+ Τα παραπάνω είναι μόνο ένα μέρος της εξόδου, υπάρχουν ακόμα
+ πολλά διαφορετικά αρχεία. Κάποια από αυτά τα αρχεία είναι φυσιολογικό
+ να έχουν τροποποιηθεί. Για παράδειγμα, το
+ /etc/passwd έχει τροποποιηθεί, καθώς έχουν
+ προστεθεί χρήστες στο σύστημα. Σε μερικές περιπτώσεις, μπορεί να
+ υπάρχουν και άλλα αρχεία, όπως π.χ. αρθρώματα πυρήνα τα οποία
+ διαφέρουν αφού έχουν ενημερωθεί μέσω της
+ freebsd-update. Για να εξαιρέσετε συγκεκριμένα
+ αρχεία ή καταλόγους, προσθέστε τα στην επιλογή
+ IDSIgnorePaths στο αρχείο ρυθμίσεων
+ /etc/freebsd-update.conf.
+
+ Εκτός από την χρήση που αναφέραμε προηγουμένως, το σύστημα αυτό
+ μπορεί να χρησιμοποιηθεί και ως τμήμα μιας λεπτομερούς διαδικασίας
+ αναβάθμισης.
+
+
+
+
+
+
+
+ Tom
+ Rhodes
+ Γράφηκε από τον
+
+
+
+
+ Colin
+ Percival
+ Βασισμένο σε σημειώσεις που παρείχε ο
+
+
+
+ Portsnap: Ένα Εργαλείο Ενημέρωσης της Συλλογής των Ports
+
+ Updating and Upgrading
+
+ Portsnap
+ Updating and Upgrading
+
+
+ Το βασικό σύστημα του &os; περιλαμβάνει επίσης ένα βοηθητικό
+ πρόγραμμα για την ενημέρωση της Συλλογής των Ports. Πρόκειται για το
+ &man.portsnap.8;. Όταν το εκτελέσετε, θα συνδεθεί σε ένα απομακρυσμένο
+ διακομιστή, θα επαληθεύσει το κλειδί του πηγαίου κώδικα, και θα
+ κατεβάσει ένα νέο αντίγραφο της Συλλογής των Ports. Το κλειδί
+ χρησιμοποιείται για να επαληθεύσει την ακεραιότητα όλων των αρχείων
+ που μεταφορτώνονται, εξασφαλίζοντας ότι δεν έχουν αλλοιωθεί κατά
+ την μεταφορά. Για να κατεβάσετε τα τελευταία αρχεία της Συλλογής των
+ Ports, εκτελέστε την ακόλουθη εντολή:
+
+ &prompt.root; portsnap fetch
+Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
+Fetching snapshot tag from portsnap1.FreeBSD.org... done.
+Fetching snapshot metadata... done.
+Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
+Fetching 3 metadata patches.. done.
+Applying metadata patches... done.
+Fetching 3 metadata files... done.
+Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
+Applying patches... done.
+Fetching 133 new ports or files... done.
+
+ Το παραπάνω παράδειγμα δείχνει ότι το &man.portsnap.8;
+ βρήκε και επαλήθευσε αρκετά patches τα οποία πρέπει να εφαρμοστούν
+ στο υπάρχον δέντρο των ports. Αυτό δείχνει επίσης ότι το πρόγραμμα
+ έχει εκτελεστεί κατά το παρελθόν. Αν αυτή ήταν η πρώτη φορά που
+ εκτελούνταν, θα γίνονταν απλώς κατέβασμα της συλλογής.
+
+ Όταν το &man.portsnap.8; εκτελέσει επιτυχώς της λειτουργία
+ fetch, η Συλλογή των Ports και τα
+ αντίστοιχα patches έχουν αποθηκευθεί στο τοπικό σύστημα και έχει γίνει
+ η επαλήθευση τους. Τα ενημερωμένα αρχεία μπορούν να εγκατασταθούν
+ γράφοντας:
+
+ &prompt.root; portsnap extract
+/usr/ports/.cvsignore
+/usr/ports/CHANGES
+/usr/ports/COPYRIGHT
+/usr/ports/GIDs
+/usr/ports/KNOBS
+/usr/ports/LEGAL
+/usr/ports/MOVED
+/usr/ports/Makefile
+/usr/ports/Mk/bsd.apache.mk
+/usr/ports/Mk/bsd.autotools.mk
+/usr/ports/Mk/bsd.cmake.mk
+...
+
+ Η διαδικασία έχει πλέον ολοκληρωθεί, και μπορείτε να εγκαταστήσετε
+ ή να αναβαθμίσετε εφαρμογές χρησιμοποιώντας την ενημερωμένη Συλλογή των
+ Ports.
+
+
- &os.current; και &os.stable;
+ Παρακολούθηση Ενός Κλάδου Ανάπτυξης-CURRENT-STABLEΥπάρχουν δύο κλάδοι ανάπτυξης στο &os;, το &os.current; και το
&os.stable;. Στην ενότητα αυτή, θα εξηγήσουμε κάποια πράγματα σχετικά
με αυτούς τους κλάδους, και θα περιγράψουμε πως μπορείτε να διατηρήσετε
το σύστημα σας ενημερωμένο σε κάποιον από αυτούς. Θα μιλήσουμε αρχικά
για το &os.current; και έπειτα για το &os.stable;.Παρακολουθώντας το &os.current;Καθώς διαβάζετε αυτό το κείμενο, να έχετε υπόψιν σας ότι το
&os.current; είναι πράγματι η κόψη του ξυραφιού στην
ανάπτυξη του &os;. Οι χρήστες του &os.current; αναμένεται να έχουν
αυξημένες τεχνικές γνώσεις, και να είναι ικανοί να επιλύουν δύσκολα
προβλήματα του συστήματος τους, χωρίς βοήθεια. Αν είστε καινούριος
στο &os;, μάλλον θα πρέπει να το ξανασκεφτείτε πριν το
εγκαταστήσετε.Τι Είναι το &os.current;;snapshotΤο &os.current; αποτελείται από τον πλέον πρόσφατο λειτουργικό
πηγαίο κώδικα του &os;. Περιλαμβάνει αλλαγές που βρίσκονται σε
εξέλιξη, πειραματικές αλλαγές, και μηχανισμούς μετάβασης οι οποίοι
δεν είναι σίγουρο ότι θα περιλαμβάνονται στην επόμενη επίσημη
έκδοση του λογισμικού. Αν και πολλά μέλη της ομάδας ανάπτυξης του
&os; μεταγλωττίζουν καθημερινά τον πηγαίο κώδικα του &os.current;,
υπάρχουν χρονικές περίοδοι που η μεταγλώττιση του είναι αδύνατη.
Τα προβλήματα αυτά γενικά επιλύονται όσο πιο γρήγορα γίνεται, αλλά
το αν το &os.current; θα σας φέρει την καταστροφή ή κάποιο
πολυπόθητο χαρακτηριστικό, είναι περισσότερο θέμα της χρονικής
στιγμής που θα επιλέξετε να ανακτήσετε τον πηγαίο κώδικα!Ποιος Χρειάζεται το &os.current;;Το &os.current; διατίθεται και ενδιαφέρει κυρίως τις παρακάτω
τρεις ομάδες:Μέλη της κοινότητας του &os; που δουλεύουν ενεργά σε κάποιο
τμήμα του πηγαίου κώδικα, και για τους οποίους η παρακολούθηση
του &os.current; είναι απόλυτα απαραίτητη.Μέλη της κοινότητας του &os; που είναι ενεργοί testers
και είναι πρόθυμοι να αναλώσουν το χρόνο τους για να λύσουν
προβλήματα, ώστε να εξασφαλίσουν ότι το &os.current;
θα παραμείνει όσο το δυνατόν πιο σωστό. Συνήθως, τα μέλη αυτά
κάνουν προτάσεις για τοπικές αλλαγές και για την γενική
κατεύθυνση του &os;, και στέλνουν patches για την
πραγματοποίηση τους.Αυτοί που απλώς θέλουν να βλέπουν τις τελευταίες
ενημερώσεις, ή να χρησιμοποιούν τον τελευταίο πηγαίο κώδικα ως
αναφορά (π.χ. για μελέτη και όχι για
εκτέλεση). Μέλη αυτής της ομάδας μπορεί επίσης περιστασιακά να
συνεισφέρουν σχόλια ή κώδικα.Τι Δεν Είναι το &os.current;;Δεν είναι ένας γρήγορος τρόπος να πάρετε κώδικα ο
οποίος δεν έχει κυκλοφορήσει ακόμα σε κάποια έκδοση, με την
ελπίδα ότι περιέχει κάποια νέα εκπληκτική δυνατότητα και
θέλετε να είστε ο πρώτος που τη χρησιμοποιεί. Αν είστε
πράγματι ο πρώτος που την χρησιμοποιεί, θα είστε επίσης και ο
πρώτος που θα συναντήσετε τα νέα προβλήματα και bugs.Δεν είναι ένας γρήγορος τρόπος για να ανακτήσετε
διορθώσεις προβλημάτων. Κάθε νέα έκδοση του &os.current;
μπορεί να εισάγει τόσα νέα bugs όσα και αυτά που
διορθώνει.Το &os.current; δεν αποτελεί
επίσημα υποστηριζόμενο κώδικα. Αν και
καταβάλλουμε κάθε δυνατή προσπάθεια να βοηθήσουμε όσους
ανήκουν πραγματικά σε κάποια από τις τρεις
ομάδες που αναφέραμε, ωστόσο δεν έχουμε το
χρόνο να παρέχουμε τεχνική υποστήριξη. Αυτό δεν
συμβαίνει επειδή είμαστε κακοήθεις και δύσκολοι και δεν θέλουμε
να βοηθάμε τους ανθρώπους (δεν θα είχαμε καν δημιουργήσει το
&os; αν σκεφτόμασταν έτσι). Πολύ απλά, δεν μπορούμε να
απαντάμε εκατοντάδες μηνύματα την ημέρα και
ταυτόχρονα να δουλεύουμε στο &os;! Αν
δώσετε σε οποιοδήποτε μέλος της ομάδας ανάπτυξης την επιλογή
να απαντάει σε πολλές ερωτήσεις σχετικά με πειραματικό κώδικα
ή να δουλεύει για τη βελτίωση του &os;, θα επιλέξει σίγουρα το
δεύτερο.Χρησιμοποιώντας το &os.current;-CURRENTusingΓραφτείτε στις λίστες &a.current.name; και
&a.svn-src-head.name;. Δεν είναι απλώς καλή ιδέα, είναι
βασικό να το κάνετε. Αν δεν είστε
γραμμένος στη λίστα &a.current.name;, δεν
θα βλέπετε τα σχόλια σχετικά με την τρέχουσα κατάσταση του
συστήματος από όσους το χρησιμοποιούν, και έτσι πιθανώς θα
καταλήξετε να αντιμετωπίζετε πολλά προβλήματα που άλλοι έχουν
ήδη ανακαλύψει και λύσει. Ακόμα πιο σημαντικό είναι ότι θα
χάνετε σημαντικές ανακοινώσεις, οι οποίες μπορεί να είναι
κρίσιμες για την διατήρηση του συστήματος σας σε υγιή
κατάσταση.Η λίστα &a.svn-src-head.name; θα σας επιτρέψει να βλέπετε
τις καταχωρήσεις στο commit log για κάθε αλλαγή που γίνεται,
καθώς και πληροφορίες για πιθανές παρενέργειες που μπορεί να
έχει.Για να γραφτείτε σε αυτές, ή σε οποιεσδήποτε από τις
υπάρχουσες λίστες, επισκεφθείτε την τοποθεσία
&a.mailman.lists.link; και επιλέξτε τη λίστα στην οποία θέλετε
να γίνετε συνδρομητής. Οδηγίες για την υπόλοιπη διαδικασία
θα βρείτε επιτόπου. Αν σας ενδιαφέρει να παρακολουθείτε τις
αλλαγές σε όλο το δέντρο πηγαίου κώδικα, σας συνιστούμε να
εγγραφείτε στη λίστα &a.svn-src-all.name;.Ανακτήστε τον πηγαίο κώδικα από ένα
mirror site του &os;. Αυτό
μπορεί να γίνει με δύο τρόπους:cvsupcron-CURRENTSyncing with CVSupΧρησιμοποιήστε το πρόγραμμα cvsup σε συνδυασμό με το
supfile με την ονομασία
standard-supfile το οποίο θα βρείτε
στον κατάλογο
/usr/share/examples/cvsup.
Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας
επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και
στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές.
Πολλοί χρήστες εκτελούν το cvsup μέσω
του cron ώστε να κρατάνε τον πηγαίο
κώδικα του συστήματος τους πάντα ανανεωμένο αυτόματα. Θα
πρέπει να προσαρμόσετε το υπόδειγμα του
supfile που δίνουμε παραπάνω, και να
ρυθμίσετε το cvsup για το
περιβάλλον σας.Το υπόδειγμα του αρχείου
standard-supfile προορίζεται για
χρήση με κάποιο συγκεκριμένο κλάδο ασφάλειας (security
branch) του &os;, και όχι με το &os.current;. Θα πρέπει
να επεξεργαστείτε το αρχείο και να αντικαταστήσετε την
παρακάτω γραμμή:*default release=cvs tag=RELENG_X_Yμε την ακόλουθη:*default release=cvs tag=.Για περισσότερες πληροφορίες σχετικά με τα tags που
μπορείτε να χρησιμοποιήσετε, παρακαλούμε διαβάστε στο
Εγχειρίδιο την ενότητα Ετικέτες (Tags) για το CVS.-CURRENTSyncing with CTMΧρησιμοποιήστε την υπηρεσία CTM. Αν έχετε πολύ κακή
συνδεσιμότητα (υψηλό κόστος σύνδεσης ή πρόσβαση μόνο μέσω
email) το CTM αποτελεί για σας
μια εναλλακτική λύση. Μπορεί ωστόσο να σας δημιουργήσει
διάφορα προβλήματα και να καταλήξετε με χαλασμένα αρχεία.
Για το λόγο αυτό, το CTM
χρησιμοποιείται σπάνια, κάτι το οποίο αυξάνει ακόμα
περισσότερο την πιθανότητα να μη δουλεύει σωστά για μεγάλα
χρονικά διαστήματα. Σας συνιστούμε να χρησιμοποιήσετε το
CVSup
αν διαθέτετε modem 9600 bps ή ταχύτερο.Αν σκοπεύετε να ανακτήσετε τον πηγαίο κώδικα για κανονική
χρήση (εκτέλεση) και όχι απλώς για να τον δείτε, τότε
ανακτήστε ολόκληρο το &os.current; και όχι
κάποια επιλεγμένα τμήματα. Σε διαφορετική περίπτωση, είναι
αρκετά πιθανό να συναντήσετε προβλήματα, καθώς πολλά κομμάτια
του κώδικα εξαρτώνται από ανανεώσεις σε άλλα, και δεν μπορούν
να μεταγλωττιστούν αυτόνομα.-CURRENTcompilingΠριν μεταγλωττίσετε το &os.current;, διαβάστε προσεκτικά το
Makefile στον κατάλογο
/usr/src. Θα πρέπει να μεταγλωττίσετε τον πυρήνα και όλο το
βασικό σύστημα (world) την πρώτη φορά, ως μέρος της
διαδικασίας αναβάθμισης. Διαβάζοντας την &a.current;
και το /usr/src/UPDATING θα είστε
ενημερωμένοι για νέες διαδικασίες όσο αφορά την εκκίνηση στο νέο
σας σύστημα. Οι διαδικασίες αυτές είναι συχνά απαραίτητες όσο
πλησιάζουμε σε μια νέα επίσημη έκδοση.Γίνετε ενεργό μέλος! Αν χρησιμοποιείτε το &os.current;,
θέλουμε να ξέρουμε τη γνώμη σας για αυτό, ειδικά αν έχετε
προτάσεις για βελτιώσεις ή διορθώσεις λαθών. Προτάσεις που
συνοδεύονται και από κώδικα γίνονται δεκτές με
ενθουσιασμό!Χρησιμοποιώντας το &os;-STABLEΤι Είναι το &os.stable;;-STABLEΤο &os.stable; είναι ένας κλάδος ανάπτυξης από τον οποίο
προκύπτουν οι μεγάλες (major) εκδόσεις. Οι αλλαγές
εισάγονται σε αυτό τον κλάδο με διαφορετικό ρυθμό, και με τη γενική
παραδοχή ότι έχουν πρώτα περάσει από το &os.current; για δοκιμή.
Ωστόσο, δεν παύει να είναι ένας κλάδος
ανάπτυξης, και αυτό σημαίνει ότι ο κώδικας του &os.stable; μπορεί
μια δεδομένη χρονική στιγμή να είναι ακατάλληλος για συγκεκριμένες
εφαρμογές. Πρόκειται για μια ακόμα γραμμή ανάπτυξης για τους
προγραμματιστές, και δεν είναι απαραίτητα κατάλληλη για τους
τελικούς χρήστες.Ποιος Χρειάζεται το &os.stable;;Αν σας ενδιαφέρει να παρακολουθείτε ή να συμβάλλετε στην
ανάπτυξη του &os;, και ειδικά όσο αφορά την επόμενη επίσημη
έκδοση του από τον ίδιο κλάδο (point release), είναι καλή ιδέα να
παρακολουθείτε το &os.stable;.Αν και είναι αλήθεια ότι οι διορθώσεις ασφάλειας γίνονται και
στον κλάδο &os.stable;, ωστόσο δεν χρειάζεται
να παρακολουθείτε το &os.stable; μόνο για αυτό το λόγο. Κάθε
αναφορά προβλήματος ασφάλειας του &os; εξηγεί πως να διορθώσετε το
πρόβλημα για κάθε επίσημη έκδοση η οποία επηρεάζεται από αυτό
Αυτό βέβαια δεν είναι απόλυτα αληθινό. Δεν μπορούμε
να συνεχίσουμε να υποστηρίζουμε τις παλιές εκδόσεις του &os; για
πάντα, αν και τις υποστηρίζουμε για πολλά χρόνια. Για πλήρη
περιγραφή της τρέχουσας πολιτικής όσο αφορά την ασφάλεια των
παλιών εκδόσεων του &os;, δείτε http://www.FreeBSD.org/security/.,
και η παρακολούθηση ενός κλάδου ανάπτυξης μόνο για λόγους
ασφαλείας, πιθανόν να φέρει επίσης και άλλες ανεπιθύμητες αλλαγές
μαζί της.Αν και καταβάλλουμε κάθε δυνατή προσπάθεια ώστε να εξασφαλίσουμε
ότι ο κλάδος &os.stable; μπορεί να μεταγλωττιστεί και να εκτελεστεί
σε κάθε δεδομένη χρονική στιγμή, δεν μπορούμε ωστόσο να το
εγγυηθούμε. Επιπρόσθετα, αν και ο κώδικας αναπτύσσεται στο
&os.current; πριν περάσει στο &os.stable;, ο κόσμος που εκτελεί το
&os.stable; είναι περισσότερος, και έτσι είναι αναπόφευκτο να
ανακαλύπτονται πιο πολλά σφάλματα και ακραίες περιπτώσεις στο
&os.stable; τα οποία δεν έχουν γίνει εμφανή στο &os.current;.Για τους λόγους αυτούς, δεν συνιστούμε να
παρακολουθείτε τυφλά το &os.stable;, και ειδικότερα είναι σημαντικό
να μην αναβαθμίζετε σε αυτό εξυπηρετητές σε περιβάλλοντα παραγωγής,
χωρίς να έχετε πρώτα ελέγξει αναλυτικά τον κώδικα στο δικό σας
περιβάλλον ανάπτυξης.Αν δεν διαθέτετε τους πόρους για να το κάνετε αυτό, σας
συνιστούμε να χρησιμοποιείτε την τελευταία επίσημη έκδοση του &os;,
και να αναβαθμίζεστε από τη μια έκδοση στην επόμενη μέσω του
μηχανισμού δυαδικών ενημερώσεων.Χρησιμοποιώντας το &os.stable;-STABLEusingΓραφτείτε συνδρομητής στη λίστα &a.stable.name;. Θα είστε
έτσι ενημερωμένοι για εξαρτήσεις μεταγλώττισης που ίσως
εμφανιστούν στο &os.stable;, ή για άλλα προβλήματα που χρήζουν
ειδικής προσοχής. Στη λίστα αυτή θα βρίσκετε επίσης
ανακοινώσεις από μέλη της ομάδας ανάπτυξης, όταν πρόκειται να
συμπεριληφθεί κάποια αμφιλεγόμενη ανανέωση ή διόρθωση, δίνοντας
έτσι στους χρήστες την ευκαιρία να εκφέρουν γνώμη σχετικά με τα
προβλήματα που θα προκαλέσει η προτεινόμενη αλλαγή.Θα πρέπει να εγγραφείτε στην κατάλληλη λίστα
SVN ανάλογα με τον κλάδο που
παρακολουθείτε. Για παράδειγμα, αν παρακολουθείτε τον κλάδο
7-STABLE, η κατάλληλη λίστα είναι η &a.svn-src-stable-7.name;.
Αυτό θα σας επιτρέψει να βλέπετε τις
καταχωρήσεις στο commit log για κάθε αλλαγή που γίνεται, καθώς
και πληροφορίες για πιθανές παρενέργειες που μπορεί να
έχει.Για να γραφτείτε σε αυτές, ή σε οποιεσδήποτε από τις
υπάρχουσες λίστες, επισκεφθείτε την τοποθεσία
&a.mailman.lists.link; και επιλέξτε τη λίστα στην οποία θέλετε
να γίνετε συνδρομητής. Οδηγίες για την υπόλοιπη διαδικασία
θα βρείτε επιτόπου. Αν σας ενδιαφέρει να παρακολουθείτε τις
αλλαγές σε όλο το δέντρο πηγαίου κώδικα, σας συνιστούμε να
εγγραφείτε στη λίστα &a.svn-src-all.name;.Αν πρόκειται να εγκαταστήσετε ένα νέο σύστημα με σκοπό να
εκτελείτε τα μηνιαία snapshot του &os.stable;, παρακαλούμε να
ελέγξετε την τοποθεσία Snapshots για
περισσότερες πληροφορίες. Εναλλακτικά, είναι δυνατόν να
εγκαταστήσετε το πιο πρόσφατο &os.stable; από κάποιο
mirror site ακολουθώντας τις
παρακάτω οδηγίες ώστε να αναβαθμίσετε το σύστημα σας στην πλέον
πρόσφατη έκδοση πηγαίου κώδικα του &os.stable;.Αν διαθέτετε ήδη κάποια προηγούμενη έκδοση του &os; και
επιθυμείτε να αναβαθμιστείτε μέσω του πηγαίου κώδικα, μπορείτε
εύκολα να χρησιμοποιήσετε κάποιο mirror site του &os;. Υπάρχουν δύο
τρόποι για να γίνει αυτό:cvsupcron-STABLEsyncing with CVSupΧρησιμοποιήστε το πρόγραμμα cvsup σε συνδυασμό με το
supfile με την ονομασία
stable-supfile το οποίο θα βρείτε
στον κατάλογο
/usr/share/examples/cvsup.
Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας
επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και
στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές.
Πολλοί χρήστες εκτελούν το cvsup μέσω
του cron ώστε να κρατάνε τον πηγαίο
κώδικα του συστήματος τους πάντα ανανεωμένο αυτόματα. Θα
πρέπει να προσαρμόσετε το υπόδειγμα του
supfile που δίνουμε παραπάνω, και να
ρυθμίσετε το cvsup για το
περιβάλλον σας.-STABLEsyncing with CTMΧρησιμοποιήστε την υπηρεσία CTM. Αν δεν έχετε
γρήγορη και φτηνή σύνδεση με το Internet, αυτή είναι η
συνιστώμενη μέθοδος.Ουσιαστικά, αν χρειάζεστε γρήγορη και κατά απαίτηση
πρόσβαση στον πηγαίο κώδικα, και το εύρος ζώνης της σύνδεσης
δεν αποτελεί πρόβλημα, χρησιμοποιήστε το
cvsup ή το ftp.
Διαφορετικά, χρησιμοποιήστε το
CTM.-STABLEcompilingΠριν μεταγλωττίσετε το &os.stable;, διαβάστε προσεκτικά το
Makefile στον κατάλογο
/usr/src. Θα πρέπει να μεταγλωττίσετε τον πυρήνα και όλο το
βασικό σύστημα (world) την πρώτη φορά, ως μέρος της
διαδικασίας αναβάθμισης. Διαβάζοντας την &a.stable;
και το /usr/src/UPDATING θα είστε
ενημερωμένοι για νέες διαδικασίες όσο αφορά την εκκίνηση στο νέο
σας σύστημα. Οι διαδικασίες αυτές είναι συχνά απαραίτητες όσο
πλησιάζουμε σε μια νέα επίσημη έκδοση.Συγχρονίζοντας τον Πηγαίο σας ΚώδικαΥπάρχουν διάφοροι τρόποι να χρησιμοποιήσετε μια σύνδεση Internet
(ή email) για να ενημερώνετε οποιοδήποτε τμήμα πηγαίου
κώδικα του &os; Project σας ενδιαφέρει, ή και όλα αν το
επιθυμείτε. Οι βασικές υπηρεσίες που προσφέρουμε είναι το
Ανώνυμο CVS, το
CVSup, και το CTM.Αν και είναι δυνατόν να ενημερώσετε μόνο κάποια τμήματα του
δέντρου πηγαίου κώδικα, η μόνη διαδικασία ενημέρωσης που
υποστηρίζεται αφορά την ενημέρωση ολόκληρου του δέντρου. Μετά την
ενημέρωση, θα πρέπει να μεταγλωττίσετε ξανά τόσο το userland (δηλ. τα
προγράμματα που εκτελούνται στην περιοχή χρήστη, όπως αυτά που
βρίσκονται στους καταλόγους /bin και
/sbin) όσο και τον πηγαίο κώδικα του πυρήνα.
Αν ενημερώσετε μόνο ένα τμήμα του πηγαίου κώδικα, μόνο τον πυρήνα ή
μόνο το userland, θα αντιμετωπίσετε προβλήματα. Τα προβλήματα αυτά
μπορεί να κυμαίνονται από σφάλματα μεταγλώττισης μέχρι kernel panic
και καταστροφή δεδομένων.CVSanonymousΤο Ανώνυμο CVS και το
CVSup χρησιμοποιούν τη μέθοδο
pull για την ενημέρωση του πηγαίου κώδικα. Στην
περίπτωση του CVSup, ο χρήστης (η κάποιο
script που εκτελείται μέσω cron) εκτελεί το πρόγραμμα
cvsup το οποίο αλληλεπιδρά με ένα αντίστοιχο
εξυπηρετητή cvsupd ώστε να ενημερώσει τα σχετικά
αρχεία. Οι ενημερώσεις που λαμβάνετε είναι πάντοτε οι τελευταίες
διαθέσιμες, και θα τις λάβετε μόνο όταν τις ζητήσετε. Μπορείτε εύκολα
να περιορίσετε τις ενημερώσεις σε συγκεκριμένα αρχεία ή καταλόγους τα
οποία σας ενδιαφέρουν. Οι ενημερώσεις δημιουργούνται δυναμικά από τον
εξυπηρετητή, ανάλογα με το τι έχετε εγκατεστημένο και τι επιθυμείτε να
λάβετε. Το Ανώνυμο CVS είναι κάπως πιο
απλοϊκό από το CVSup, δεδομένου ότι είναι
απλώς μια επέκταση του CVS που επιτρέπει την
ανάκτηση αλλαγών απευθείας από κάποιο απομακρυσμένο CVS repository. Το
CVSup είναι αρκετά πιο αποτελεσματικό σε
αυτόν το τομέα, αλλά το Ανώνυμο CVS είναι
απλούστερο στη χρήση.CTMΑπό την άλλη μεριά, το CTM δεν συγκρίνει
άμεσα τον πηγαίο κώδικα που έχετε με αυτόν που υπάρχει στον κεντρικό
εξυπηρετητή ώστε να ανακτήσει μόνο τις αλλαγές. Αντίθετα, στο κεντρικό
μηχάνημα CTM, εκτελείται αρκετές φορές την ημέρα ένα script. Το script
αυτό αναγνωρίζει τις αλλαγές στα αρχεία σε σχέση με την προηγούμενη
εκτέλεση του, και έπειτα πακετάρει και συμπιέζει τις αλλαγές με τρόπο
κατάλληλο για αποστολή μέσω email (μόνο εκτυπώσιμοι ASCII χαρακτήρες).
Σε κάθε τέτοιο πακέτο αλλαγών αντιστοιχίζεται ένας μοναδιαίος αριθμός
ακολουθίας (sequence number) που το αναγνωρίζει. Μετά τη λήψη τους,
μπορείτε να δώσετε αυτά τα αρχεία διαφορών του
CTM (CTM deltas) στο βοηθητικό
πρόγραμμα &man.ctm.rmail.1; το οποίο αυτόματα θα τα αποκωδικοποιήσει,
θα τα επαληθεύσει, και θα εφαρμόσει τις αλλαγές στο αντίγραφο πηγαίου
κώδικα του χρήστη. Η διαδικασία αυτή είναι πολύ πιο αποδοτική από το
CVSup, και επιβαρύνει λιγότερο τους
εξυπηρετητές μας, καθώς είναι μια διαδικασία τύπου
push αντί για pull.Υπάρχουν φυσικά κάποια σημεία που υστερεί. Αν από λάθος διαγράψετε
κάποια τμήματα του πηγαίου σας κώδικα, το
CVSup θα ανιχνεύσει και θα διορθώσει αυτόματα
τη βλάβη για σας. Το CTM δεν θα το κάνει
αυτό, και αν σβήσετε κάποιο τμήμα του δέντρου σας (και δεν έχετε
αντίγραφο ασφαλείας) θα πρέπει να ξεκινήσετε από την αρχή (από το πιο
πρόσφατο CVS base delta) και να το ξανακτίσετε από την
αρχή με το CTM. Με το
Ανώνυμο CVS, μπορείτε απλώς να διαγράψετε
τα προβληματικά αρχεία και να συγχρονίσετε ξανά τον πηγαίο σας
κώδικα.Μεταγλωττίζοντας το Βασικό Σύστημα (world)Rebuilding worldΈχοντας συγχρονίσει το τοπικό σας δέντρο πηγαίου κώδικα σε κάποια
συγκεκριμένη έκδοση του &os; (&os.stable;, &os.current;, κ.ο.κ.),
μπορείτε έπειτα να το χρησιμοποιήσετε για να μεταγλωττίσετε το
σύστημα σας από την αρχή.Δημιουργήστε Ένα Αντίγραφο ΑσφαλείαςΔεν μπορούμε παρά να τονίσουμε πόσο σημαντικό είναι να
δημιουργήσετε ένα αντίγραφο ασφαλείας του συστήματος σας
πριν ξεκινήσετε αυτή τη διαδικασία. Αν και η
μεταγλώττιση του βασικού συστήματος είναι (όσο τουλάχιστον ακολουθείτε
αυτές τις οδηγίες) μια σχετικά απλή διαδικασία, αναμφίβολα θα υπάρξουν
και περιπτώσεις που λάθη δικά σας, ή άλλων (στο δέντρο πηγαίου
κώδικα), θα σας οδηγήσουν σε ένα σύστημα που δεν θα μπορεί να
εκκινήσει.Βεβαιωθείτε ότι έχετε ενημερωμένο αντίγραφο ασφαλείας. Καλό θα
είναι να έχετε επίσης πρόχειρη μια δισκέτα fixit ή ένα CD εκκίνησης.
Ίσως να μην χρειαστεί ποτέ να τα χρησιμοποιήσετε, αλλά καλύτερα να
είστε ασφαλής παρά να το μετανοιώνετε αργότερα!Γίνετε Συνδρομητής στη Σωστή Λίστα Ηλ. Ταχυδρομείουmailing listΑπό τη φύση τους, οι κλάδοι &os.stable; και &os.current;
βρίσκονται σε συνεχή ανάπτυξη. Όσοι συνεισφέρουν
στο &os; είναι απλώς άνθρωποι, και περιστασιακά λάθη απλώς
συμβαίνουν.Ορισμένες φορές τα λάθη αυτά είναι μάλλον ακίνδυνα, και το μόνο
που κάνουν είναι να εμφανίζουν μερικές διαγνωστικές προειδοποιήσεις
στο σύστημα σας. Ή μπορεί η αλλαγή να είναι καταστροφική, και να
οδηγήσει το σύστημα σας σε αδυναμία εκκίνησης ή ακόμα και να
καταστρέψει τα συστήματα αρχείων σας (ή και ακόμα χειρότερες
συνέπειες).Αν συμβούν τέτοια προβλήματα, σύντομα θα εμφανιστεί ένα μήνυμα
τύπου heads up στις σχετικές λίστες ταχυδρομείου, το
οποίο θα εξηγεί το πρόβλημα και ποια συστήματα επηρεάζει. Όταν το
πρόβλημα λυθεί, θα γίνει μια αντίστοιχη all clear
ανακοίνωση.Αν προσπαθείτε να ακολουθήσετε το &os.stable; ή το &os.current;,
και δεν διαβάζετε τις αντίστοιχες λίστες &a.stable.name; και
&a.current.name;, ψάχνετε για μπελάδες.Μην Χρησιμοποιήσετε την εντολή
make worldΜεγάλο μέρος της παλαιότερης τεκμηρίωσης, συνιστά τη χρήση της
εντολής make world. Αν την χρησιμοποιήσετε, θα
παραλειφθούν ορισμένα σημαντικά βήματα της διαδικασίας.
Χρησιμοποιήστε τη μόνο αν είστε απόλυτα σίγουροι για αυτό που κάνετε.
Για τις περισσότερες περιπτώσεις, η εντολή
make world είναι λανθασμένη, και αντί για αυτή
θα πρέπει να ακολουθήσετε τη διαδικασία που περιγράφουμε
παρακάτω.Ο Κανονικός Τρόπος να Ενημερώσετε το Σύστημα σαςΠριν ενημερώσετε το σύστημα σας, θα πρέπει να ελέγξετε το
/usr/src/UPDATING για τυχόν βήματα που θα πρέπει
να εκτελέσετε πριν την εκκίνηση της μεταγλώττισης. Τα βήματα αυτά
εξαρτώνται από την έκδοση του πηγαίου κώδικα που πρόκειται να
χρησιμοποιήσετε. Έπειτα, ακολουθήστε την παρακάτω διαδικασία:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowΥπάρχουν κάποιες μάλλον σπάνιες περιπτώσεις, που απαιτείται
μια επιπλέον εκτέλεση του mergemaster -p πριν
το βήμα buildworld. Οι περιπτώσεις αυτές
περιγράφονται στο UPDATING. Σε γενικές
γραμμές πάντως, μπορείτε με ασφάλεια να παραλείψετε αυτό το βήμα,
αν δεν αναβαθμίζετε το σύστημα σας μεταξύ πολλαπλών εκδόσεων του
&os;.Μετά την επιτυχή ολοκλήρωση του
installkernel, θα πρέπει να επανεκκινήσετε
σε κατάσταση ενός χρήστη (π.χ. χρησιμοποιώντας την εντολή
boot -s στην προτροπή του φορτωτή εκκίνησης).
Έπειτα εκτελέστε:&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootΔιαβάστε τις Επιπλέον ΕξηγήσειςΗ διαδικασία που περιγράψαμε παραπάνω είναι μια απλή περίληψη
για να σας βοηθήσει να ξεκινήσετε. Θα πρέπει ωστόσο να διαβάσετε
τις παρακάτω ενότητες για να κατανοήσετε πλήρως κάθε βήμα, ειδικά
αν θέλετε να χρησιμοποιήσετε δικό σας προσαρμοσμένο πυρήνα.Διαβάστε το /usr/src/UPDATINGΠριν κάνετε οτιδήποτε άλλο, διαβάστε το
/usr/src/UPDATING (ή το αντίστοιχο αρχείο, αν
έχετε αποθηκεύσει τον πηγαίο κώδικα σε άλλο κατάλογο). Το αρχείο
αυτό περιέχει σημαντικές πληροφορίες σχετικά με προβλήματα που μπορεί
να συναντήσετε ή ίσως να καθορίζει τη σειρά με την οποία πρέπει να
εκτελεστούν κάποιες εντολές. Αν το αρχείο
UPDATING έρχεται σε σύγκρουση με κάτι που
διαβάσατε εδώ, προτεραιότητα έχει το αρχείο
UPDATING.Η ανάγνωση του αρχείου UPDATING δεν είναι
αποδεκτό υποκατάστατο της συνδρομής στη σωστή λίστα ηλεκτρονικού
ταχυδρομείου, όπως περιγράψαμε προηγουμένως. Οι δύο απαιτήσεις
είναι συμπληρωματικές, δεν αλληλοαναιρούνται.Ελέγξτε το /etc/make.confmake.confΕξετάστε τα αρχεία
/usr/share/examples/etc/make.conf
και
/etc/make.conf. Το πρώτο περιέχει κάποιες
προεπιλεγμένες μεταβλητές (defines), οι περισσότερες από τις οποίες
είναι ως σχόλια. Για να τα χρησιμοποιήσετε όταν μεταγλωττίζετε το
σύστημα σας, προσθέστε τα στο /etc/make.conf.
Να έχετε υπόψη σας, πως οτιδήποτε προσθέτετε στο αρχείο
/etc/make.conf χρησιμοποιείτε επίσης κάθε φορά
που εκτελείτε την εντολή make, έτσι είναι γενικά
καλή ιδέα να βάλετε τιμές που είναι λογικές για το
σύστημα σας.Ένας τυπικός χρήστης θα θέλει πιθανώς να αντιγράψει τις γραμμές
CFLAGS και
NO_PROFILE από το αρχείο
/usr/share/examples/etc/make.conf
στο
/etc/make.conf αφαιρώντας ταυτόχρονα και το
σύμβολο του σχολίου.Εξετάστε και τις άλλες μεταβλητές (COPTFLAGS,
NOPORTDOCS κ.ο.κ.) και αποφασίστε αν σχετίζονται
με το επιθυμητό για σας αποτέλεσμα.Ενημερώστε τα Αρχεία στο /etcΟ κατάλογος /etc περιέχει μεγάλο μέρος των
πληροφοριών ρύθμισης του συστήματος σας, όπως επίσης και scripts που
εκτελούνται κατά την εκκίνηση του συστήματος. Μερικά από τα scripts
αυτά αλλάζουν από έκδοση σε έκδοση του &os;.Ορισμένα από τα αρχεία ρυθμίσεων χρησιμοποιούνται επίσης κατά την
καθημερινή χρήση του συστήματος. Το /etc/group
είναι ένα από αυτά.Έχουν υπάρξει περιπτώσεις στο παρελθόν, όπου το
make installworld ανέμενε από πριν την ύπαρξη
συγκεκριμένων ονομάτων χρηστών (usernames) ή ομάδων (groups). Κατά
τη διαδικασία της αναβάθμισης ήταν αρκετά πιθανό αυτοί οι χρήστες ή
ομάδες να μην υπήρχαν. Αυτό δημιουργούσε προβλήματα στην
διαδικασία. Σε κάποιες περιπτώσεις, το
make buildworld θα ελέγξει αν υπάρχουν αυτοί οι
χρήστες ή ομάδες.Μια τέτοια περίπτωση παρουσιάστηκε όταν προστέθηκε ο χρήστης
smmsp. Η διαδικασία αναβάθμισης αποτύγχανε σε
πολλούς χρήστες, τη στιγμή που το &man.mtree.8; προσπαθούσε να
δημιουργήσει τον κατάλογο
/var/spool/clientmqueue.Η λύση είναι να εκτελέσετε το &man.mergemaster.8; σε κατάσταση
προ-εγκατάστασης, δίνοντας την επιλογή . Αυτή
θα συγκρίνει μόνο τα αρχεία που είναι απαραίτητα για την επιτυχία
εκτέλεσης του buildworld ή του
installworld. Αν η έκδοση του
mergemaster που έχετε είναι παλιά και δεν
υποστηρίζει το , χρησιμοποιήστε την νέα έκδοση
από το δέντρο του πηγαίου κώδικα όταν την εκτελέσετε για πρώτη
φορά:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pΑν αισθάνεστε ιδιαίτερα παρανοϊκός, μπορείτε να ελέγξετε το
σύστημα σας για να δείτε ποια αρχεία ανήκουν στην ομάδα που
μετονομάζετε ή διαγράφετε:&prompt.root; find / -group GID -printΗ παραπάνω εντολή θα σας δείξει όλα τα αρχεία τα οποία ανήκουν
στην ομάδα GID (μπορείτε να δώσετε όνομα
ή αριθμητικό αναγνωριστικό της ομάδας).Μεταβείτε σε Κατάσταση Ενός Χρήστηsingle-user modeΊσως προτιμάτε να μεταγλωττίσετε το σύστημα σε κατάσταση ενός
χρήστη. Εκτός από το προφανές πλεονέκτημα της ελαφρά μεγαλύτερης
ταχύτητας, η επανεγκατάσταση του συστήματος θα επηρεάσει πολλά
σημαντικά αρχεία του συστήματος, όλα τα εκτελέσιμα αρχεία του βασικού
συστήματος, τις βιβλιοθήκες, τα αρχεία include κ.α. Αν τα αλλάξετε
αυτά σε ένα σύστημα που βρίσκεται σε κανονική λειτουργία (και ειδικά
αν υπάρχουν ενεργοί χρήστες την δεδομένη στιγμή), ψάχνετε για
μπελάδες.multi-user modeΜια άλλη μέθοδος είναι να μεταγλωττίσετε το σύστημα σε κατάσταση
κανονικής λειτουργίας, αλλά να μεταβείτε σε κατάσταση ενός χρήστη για
την εγκατάσταση. Αν θέλετε να το κάνετε με αυτό τον τρόπο, απλώς
μην εκτελέσετε τα ακόλουθα βήματα μέχρι το τέλος της μεταγλώττισης.
Μπορείτε να αναβάλλετε τη μετάβαση σε κατάσταση ενός χρήστη μέχρι
να είστε έτοιμοι για το installkernel ή
installworld.Ως υπερχρήστης μπορείτε να εκτελέσετε:&prompt.root; shutdown nowσε ένα σύστημα σε κανονική λειτουργία για να μεταβείτε σε
κατάσταση ενός χρήστη.Εναλλακτικά, επανεκκινήστε το σύστημα και στην προτροπή του
φορτωτή εκκίνησης, επιλέξτε single user. Το σύστημα
θα ξεκινήσει σε κατάσταση ενός χρήστη. Στην προτροπή της γραμμής
εντολών θα πρέπει να γράψετε:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aΘα γίνει έλεγχος στα συστήματα αρχείων, και προσάρτηση του
/ με δυνατότητα ανάγνωσης/εγγραφής. Έπειτα θα
προσαρτηθούν όλα τα άλλα συστήματα αρχείων UFS τα οποία αναφέρονται
στο /etc/fstab, και θα ενεργοποιηθεί το
swap.Αν το CMOS ρολόι του υπολογιστή σας είναι ρυθμισμένο σε
τοπική ώρα και όχι σε GMT (αυτό είναι αλήθεια αν η έξοδος της
εντολής &man.date.1; δεν δείχνει σωστή ημερομηνία και ώρα), ίσως
χρειαστεί να εκτελέσετε επίσης την παρακάτω εντολή:&prompt.root; adjkerntz -iΜε αυτό τον τρόπο θα βεβαιωθείτε ότι οι τοπικές σας ρυθμίσεις
ώρας έχουν ρυθμιστεί σωστά. Διαφορετικά, μπορεί να συναντήσετε
προβλήματα αργότερα.Διαγράψτε το /usr/objΚαθώς γίνεται η επαναμεταγλώττιση, τμήματα του συστήματος
τοποθετούνται από προεπιλογή σε υποκαταλόγους του
/usr/obj. Οι υποκατάλογοι αυτοί αντιγράφουν τη
δομή που ακολουθείται στο /usr/src.Μπορείτε να επιταχύνετε τη διαδικασία του
make buildworld και επίσης να γλυτώσετε από κάποια
πιθανά προβλήματα, αν διαγράψετε και αυτό τον κατάλογο.Κάποια αρχεία σε υποκαταλόγους του /usr/obj
μπορεί να έχουν χαρακτηριστεί ως immutable μέσω του αντίστοιχου flag
(για περισσότερες λεπτομέρειες δείτε το &man.chflags.1;). Πριν
διαγράψετε αυτά τα αρχεία, θα πρέπει πρώτα να καταργήσετε αυτό το
flag.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *
-
+ Επαναμεταγλωττίστε το Βασικό ΣύστημαΑποθηκεύστε την ΈξοδοΚαθώς εκτελείται η &man.make.1;, είναι καλή ιδέα η έξοδος της
να αποθηκεύεται σε κάποιο άλλο αρχείο. Αν κάτι πάει στραβά, θα
έχετε ένα αντίγραφο του μηνύματος λάθους. Αν και αυτό ίσως δεν σας
βοηθήσει να βρείτε τι πήγε στραβά, μπορεί να διευκολύνει άλλους αν
στείλετε το μήνυμα σας σε μια από τις λίστες ηλεκτρονικού
ταχυδρομείου του &os;.Ο ευκολότερος τρόπος για να γίνει αυτό, είναι χρησιμοποιώντας
την εντολή &man.script.1; με μια παράμετρο που να καθορίζει το όνομα
του αρχείου στο οποίο θα αποθηκευτεί η έξοδος. Θα πρέπει να
το εκτελέσετε αμέσως πριν ξεκινήσετε την μεταγλώττιση του βασικού
συστήματος, και να γράψετε exit μόλις
η διαδικασία ολοκληρωθεί.&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… μεταγλώττιση, μεταγλώττιση, μεταγλώττιση …
&prompt.root; exit
Script done, …Αν αποφασίσετε να αποθηκεύσετε την έξοδο,
μη χρησιμοποιήσετε για αυτό το σκοπό τον
κατάλογο /tmp. Τα περιεχόμενα αυτού του
καταλόγου πιθανώς να διαγραφούν την επόμενη φορά που θα εκκινήσετε
το σύστημα σας. Ένας καλύτερος κατάλογος για την αποθήκευση του
είναι ο /var/tmp (όπως στο προηγούμενο
παράδειγμα) ή ο προσωπικός κατάλογος του
root.Μεταγλωττίστε το Βασικό ΣύστημαΘα πρέπει να βρίσκεστε στον κατάλογο
/usr/src:&prompt.root; cd /usr/src(εκτός αν φυσικά έχετε αποθηκεύσει τον πηγαίο κώδικα σε κάποιο
άλλο κατάλογο, οπότε απλώς μετακινηθείτε σε αυτόν).makeΓια να επαναμεταγλωττίσετε το βασικό σύστημα, χρησιμοποιήστε
την εντολή &man.make.1;. Η εντολή αυτή διαβάζει τις σχετικές
οδηγίες από το αρχείο Makefile, το οποίο
περιγράφει με ποιο τρόπο πρέπει να μεταγλωττιστούν τα προγράμματα
από τα οποία αποτελείται το &os;, τη σειρά με την οποία πρέπει να
γίνει η μεταγλώττιση κ.ο.κ.Η γενική μορφή της εντολής που θα πληκτρολογήσετε είναι η
παρακάτω:&prompt.root; make -x -DVARIABLEtargetΣτο παράδειγμα αυτό, το
αντιπροσωπεύει μια
επιλογή που θέλετε να δώσετε στην &man.make.1;. Δείτε την σελίδα
manual του &man.make.1; για παραδείγματα δυνατών επιλογών.Η επιλογή
περνάει μια μεταβλητή στο Makefile.
Η συμπεριφορά του Makefile ελέγχεται από
τέτοιου είδους μεταβλητές. Πρόκειται για τις ίδιες μεταβλητές που
καθορίζονται και στο /etc/make.conf, και αυτός
είναι ένας ακόμα τρόπος καθορισμού τους.&prompt.root; make -DNO_PROFILE targetΤο παραπάνω δείχνει ένα επιπλέον τρόπο να καθορίσετε ότι δεν
θέλετε να μεταγλωττιστούν οι βιβλιοθήκες με πληροφορίες profiling,
και αντιστοιχεί με την παρακάτω γραμμή στο
/etc/make.conf:NO_PROFILE= true # Avoid compiling profiled librariesΤο target δηλώνει στο &man.make.1;
τι θέλετε να κάνετε. Σε κάθε Makefile ορίζεται
ένας αριθμός διαφορετικών targets, και η επιλογή που
θα κάνετε, καθορίζει τι ακριβώς θα γίνει.Κάποια από τα targets που καθορίζονται στο
Makefile, δεν προορίζονται για άμεση εκτέλεση
από το χρήστη. Αντί για αυτό, χρησιμοποιούνται από τη διαδικασία
μεταγλώττισης για να μοιραστεί ο αριθμός των βημάτων που απαιτούνται
για τη μεταγλώττιση του συστήματος, σε ένα αριθμό
υπo-βημάτων.Στις περισσότερες περιπτώσεις δεν θα χρειαστεί να δώσετε καμία
παράμετρο στο &man.make.1;, και έτσι η εντολή σας θα μοιάζει με την
παρακάτω:&prompt.root; make targetΌπου το target θα είναι μια από τις
πολλές επιλογές μεταγλώττισης. Το πρώτο target θα πρέπει πάντα να
είναι το buildworld.Όπως εννοείται και από το όνομα, το
buildworld μεταγλωττίζει ένα πλήρες δέντρο
μέσα στον κατάλογο /usr/obj, ενώ το
installworld, εγκαθιστά αυτό το δέντρο στο
τρέχον μηχάνημα.Η ύπαρξη διαφορετικών επιλογών, είναι χρήσιμη για δύο λόγους.
Πρώτα από όλα, σας επιτρέπει να εκτελέσετε τη διαδικασία
μεταγλώττισης με ασφάλεια, γνωρίζοντας ότι δεν πρόκειται να
επηρεαστεί κανένα τμήμα του τρέχοντος συστήματος σας. Η διαδικασία
μεταγλώττισης είναι self hosted, απομονωμένη από την
υπόλοιπη λειτουργία του μηχανήματος. Μπορείτε έτσι να εκτελέσετε
το buildworld σε ένα μηχάνημα που βρίσκεται
σε κανονική λειτουργία (πολλαπλών χρηστών) χωρίς να υπάρχει φόβος
παρενεργειών. Ωστόσο, συνίσταται να εκτελέσετε το
installworld σε κατάσταση λειτουργίας
ενός χρήστη.Ο δεύτερος λόγος είναι ότι σας επιτρέπει να χρησιμοποιήσετε
προσαρτήσεις NFS για να αναβαθμίσετε πολλά μηχανήματα του δικτύου
σας. Αν έχετε τρία μηχανήματα, τα
A, B και C
τα οποία θέλετε να αναβαθμίσετε, εκτελέστε το
make buildworld και το
make installworld στο μηχάνημα
A. Το B και το
C μπορούν να προσαρτήσουν τον κατάλογο
/usr/src και τον
/usr/obj από τον A μέσω NFS,
και έπειτα μπορείτε να εκτελέσετε το
make installworld για να εγκαταστήσετε το
έτοιμο πλέον σύστημα στον B και
C.Αν και υπάρχει ακόμα το target world,
δεν συνίσταται πλέον η χρήση του.Εκτελέστε την εντολή:&prompt.root; make buildworldΜπορείτε να καθορίσετε την επιλογή στην
make ώστε να εκτελεστεί σε πολλαπλές διεργασίες.
Αυτό είναι περισσότερο χρήσιμο σε μηχανήματα με πολλούς
επεξεργαστές, ωστόσο καθώς το μεγαλύτερο μέρος της διαδικασίας
μεταγλώττισης καθυστερεί εξαιτίας του σκληρού δίσκου (IO bound)
και όχι της CPU, μπορεί να σας φανεί χρήσιμο ακόμα και σε μηχανήματα
με ένα επεξεργαστή.Σε ένα τυπικό μηχάνημα με μια CPU, θα μπορούσατε να
δώσετε:&prompt.root; make -j4 buildworldΜε την παραπάνω εντολή, το &man.make.1; θα χρησιμοποιεί μέχρι
4 διεργασίες κάθε χρονική στιγμή. Από την εμπειρία που έχουμε
και από ότι αναφέρουν οι χρήστες στις λίστες, φαίνεται ότι η
ρύθμιση αυτή δίνει γενικά την καλύτερη απόδοση.Αν έχετε μηχάνημα με πολλούς επεξεργαστές, και χρησιμοποιείτε
πυρήνα με δυνατότητα SMP, δοκιμάστε τιμές μεταξύ του 6 και του 10
για να δείτε ποια επιταχύνει καλύτερα το αποτέλεσμα.Χρόνος Μεταγλώττισηςrebuilding worldtimingsΟ χρόνος που απαιτείται για την μεταγλώττιση επηρεάζεται από
πολλούς παράγοντες. Ωστόσο, σε σύγχρονα μηχανήματα η διαδικασία
δεν κρατάει συνήθως παραπάνω από μία ή δύο ώρες, όταν γίνεται
μεταγλώττιση του δέντρου &os.stable;, και μάλιστα χωρίς να
χρειάζεται να γίνουν ειδικές ρυθμίσεις ή κόλπα. Το δέντρο
&os.current; χρειάζεται γενικά λίγο περισσότερο χρόνο για να
μεταγλωττιστεί.Μεταγλωττίστε και Εγκαταστήστε Νέο ΠυρήναkernelcompilingΓια να εκμεταλλευθείτε πλήρως το νέο σας σύστημα, θα πρέπει να
επαναμεταγλωττίσετε τον πυρήνα. Αυτό είναι πρακτικά αναγκαίο, καθώς
κάποιες δομές στη μνήμη πιθανώς να έχουν αλλάξει, και έτσι
προγράμματα όπως τα &man.ps.1; και &man.top.1; δεν θα λειτουργούν
σωστά μέχρι να συγχρονίσετε τον πυρήνα με την έκδοση πηγαίου
κώδικα του βασικού συστήματος.Ο απλούστερος και πλέον ασφαλής τρόπος, είναι να μεταγλωττίσετε
και να εγκαταστήσετε ένα πυρήνα βασισμένο στον
GENERIC. Αν και ο GENERIC
μπορεί να μην περιέχει όλες τις απαραίτητες συσκευές για το σύστημα
σας, θα πρέπει να περιέχει ότι χρειάζεται ώστε να ξεκινήσετε ξανά
το σύστημα σας σε κατάσταση λειτουργίας ενός χρήστη. Αυτό είναι ένα
καλό τεστ σωστής λειτουργίας του συστήματος. Μετά την εκκίνηση με
τον GENERIC, και αφού επαληθεύσετε τη σωστή
λειτουργία του συστήματος, μπορείτε να μεταγλωττίσετε ένα νέο
πυρήνα βασισμένο στο δικό σας προσαρμοσμένο αρχείο ρυθμίσεων.Στο &os; είναι σημαντικό να εκτελέσετε το build world πριν μεταγλωττίσετε νέο
πυρήνα.Αν θέλετε να μεταγλωττίσετε νέο πυρήνα, και έχετε ήδη ένα
αρχείο με προσαρμοσμένες ρυθμίσεις, χρησιμοποιήστε απλώς την επιλογή
KERNCONF=MYKERNEL
με τον τρόπο που φαίνεται παρακάτω:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELΣημειώστε ότι αν έχετε ανεβάσει την τιμή του
kern.securelevel πάνω από το 1,
και έχετε θέσει το flag
noschg ή κάποιο αντίστοιχο στο εκτελέσιμο αρχείο
του πυρήνα, μάλλον θα χρειαστεί να μεταβείτε σε κατάσταση λειτουργίας
ενός χρήστη για να χρησιμοποιήσετε το
installkernel. Διαφορετικά, μπορείτε να
εκτελέσετε και τις δύο αυτές εντολές από την κανονική κατάσταση
λειτουργίας (πολλών χρηστών) χωρίς να δημιουργηθούν προβλήματα.
Δείτε τη σελίδα manual του &man.init.8; για λεπτομέρειες σχετικά με
τη ρύθμιση kern.securelevel και τη σελίδα
του &man.chflags.1; για λεπτομέρειες σχετικά με τα διάφορα flags
που χρησιμοποιούνται σε αρχεία.Επανεκκινήστε σε Κατάσταση Λειτουργίας Ενός Χρήστηsingle-user modeΘα πρέπει να επανεκκινήσετε σε κατάσταση λειτουργίας ενός χρήστη
για να επαληθεύσετε τη λειτουργία του νέου πυρήνα. Για το σκοπό
αυτό, χρησιμοποιήστε τις οδηγίες που είδαμε στο
.Εγκαταστήστε τα Νέα Εκτελέσιμα του ΣυστήματοςΑν μεταγλωττίζατε μια αρκετά πρόσφατη έκδοση του &os;, η οποία
διαθέτει το target make buildworld, θα πρέπει
τώρα να χρησιμοποιήσετε το installworld
για να εγκαταστήσετε τα νέα εκτελέσιμα του συστήματος.Εκτελέστε τις παρακάτω εντολές:&prompt.root; cd /usr/src
&prompt.root; make installworldΑν έχετε καθορίσει μεταβλητές στη γραμμή εντολών του
make buildworld θα πρέπει να καθορίσετε τις
ίδιες μεταβλητές και στην γραμμή εντολών του
make installworld. Αυτό δεν είναι απαραίτητα
αλήθεια για άλλες επιλογές. Για παράδειγμα, η επιλογή
δεν πρέπει ποτέ να χρησιμοποιείτε με το
installworld.Για παράδειγμα αν εκτελέσετε:&prompt.root; make -DNO_PROFILE buildworldΘα πρέπει να εγκαταστήσετε το αποτέλεσμα χρησιμοποιώντας:&prompt.root; make -DNO_PROFILE installworldδιαφορετικά το &man.make.1; θα προσπαθήσει να εγκαταστήσει
βιβλιοθήκες με profiling, τις οποίες όμως δεν μεταγλωττίσατε κατά
τη διάρκεια της φάσης make buildworld.Ενημερώστε Όσα Αρχεία δεν Ενημερώθηκαν από το
make installworldΗ επαναμεταγλώττιση του βασικού συστήματος δεν θα ενημερώσει
ορισμένους καταλόγους (ειδικότερα τους
/etc, /var και
/usr) με τα νέα ή αλλαγμένα αρχεία
ρυθμίσεων.Ο απλούστερος τρόπος για να ενημερώσετε τα αρχεία αυτά είναι να
χρησιμοποιήσετε το &man.mergemaster.8;, αν και μπορείτε να το κάνετε
και χειροκίνητα αν προτιμάτε. Άσχετα από τον τρόπο που θα
προτιμήσετε, βεβαιωθείτε ότι έχετε πάρει αντίγραφο ασφαλείας του
/etc σε περίπτωση που κάτι πάει στραβά.TomRhodesΣυνεισφορά του mergemastermergemasterΤο βοηθητικό πρόγραμμα &man.mergemaster.8; είναι ένα Bourne
script το οποίο θα σας βοηθήσει να καθορίσετε τις διαφορές μεταξύ
των εγκατεστημένων στο /etc αρχείων ρυθμίσεων,
και των αντίστοιχων στο δέντρο πηγαίου κώδικα στο
/usr/src/etc. Αυτή είναι και η συνιστώμενη
λύση για να ενημερώσετε τα αρχεία ρυθμίσεων του συστήματος με τυχόν
αλλαγές που έχουν γίνει στον νέο πηγαίο κώδικα.Για να ξεκινήσετε, απλώς γράψτε mergemaster
στην προτροπή της γραμμής εντολών και παρακολουθήστε την καθώς
λειτουργεί. Το mergemaster θα δημιουργήσει ένα
προσωρινό περιβάλλον root, από το / και κάτω,
και θα το γεμίσει με διάφορα αρχεία ρυθμίσεων του συστήματος. Έπειτα
θα γίνει σύγκριση αυτών των αρχείων με τα αντίστοιχα που βρίσκονται
ήδη εγκατεστημένα στο σύστημα σας. Στο σημείο αυτό, θα σας δείξει
τα αρχεία που διαφέρουν με μορφή &man.diff.1;, όπου οι γραμμές που
έχουν τροποποιηθεί ή είναι νέες θα φαίνονται με ένα
, ενώ με το θα φαίνονται οι
γραμμές που είτε αφαιρούνται εντελώς ή που αντικαθίστανται από μια
νέα γραμμή. Δείτε τη σελίδα manual του &man.diff.1; για περισσότερες
πληροφορίες σχετικά με τη σύνταξη του &man.diff.1; και για τον τρόπο
με τον οποίο φαίνονται οι διαφορές μεταξύ των αρχείων.Το &man.mergemaster.8; θα σας δείξει έπειτα κάθε αρχείο που
παρουσιάζει διαφορές, και στο σημείο αυτό θα έχετε την δυνατότητα
είτε να διαγράψετε το νέο αρχείο (το οποίο αναφέρεται ως προσωρινό
αρχείο), είτε να εγκαταστήσετε το προσωρινό αρχείο χωρίς να κάνετε
σε αυτό καμιά αλλαγή, είτε να συγχωνεύσετε τις αλλαγές των δύο
αρχείων, ή τέλος να ξαναδείτε τις διαφορές μέσω της
&man.diff.1;.Αν επιλέξετε να διαγράψετε το προσωρινό αρχείο, το
&man.mergemaster.8; θα καταλάβει ότι επιθυμείτε να διατηρήσετε το
τρέχον αρχείο σας χωρίς αλλαγές, και να διαγράψετε τη νέα έκδοση.
Η επιλογή αυτή γενικά δεν συνίσταται, εκτός αν δεν βλέπετε κανένα
λόγο να αλλάξετε το τρέχον αρχείο. Μπορείτε να δείτε βοήθεια
οποιαδήποτε στιγμή κατά τη διάρκεια της διαδικασίας, πληκτρολογώντας
? στην προτροπή του &man.mergemaster.8;. Αν
αποφασίσετε να παραλείψετε κάποιο αρχείο, αυτό θα εμφανιστεί
ξανά μετά το τέλος όλων των άλλων αρχείων.Αν επιλέξετε να εγκαταστήσετε το προσωρινό αρχείο χωρίς αλλαγές,
αυτό θα αντικαταστήσει το ήδη εγκατεστημένο σας αρχείο. Αυτή είναι
και η καλύτερη επιλογή για τα αρχεία τα οποία δεν έχετε αλλάξει
εσείς χειροκίνητα.Αν επιλέξετε να συγχωνεύσετε τα δύο αρχεία, θα εμφανιστεί ένας
επεξεργαστής κειμένου με τα περιεχόμενα και των δύο αρχείων.
Μπορείτε τώρα να τα συγχωνεύσετε παρατηρώντας ταυτόχρονα και τα δύο
αρχεία δίπλα-δίπλα, και επιλέγοντας τμήματα και από τα δύο για να
δημιουργήσετε την τελική έκδοση. Κατά τη σύγκριση αυτή, μπορείτε να
χρησιμοποιήσετε το πλήκτρο l για να επιλέξετε τα
περιεχόμενα που φαίνονται στην αριστερή πλευρά, ή το
r για τα αντίστοιχα περιεχόμενα στη δεξιά.
Το τελικό αποτέλεσμα θα είναι ένα αρχείο που θα αποτελείται από
τμήματα και των δύο αρχείων, και το οποίο μπορείτε να εγκαταστήσετε.
Η επιλογή αυτή χρησιμοποιείται συνήθως για αρχεία των οποίων το
περιεχόμενο έχει μεταβληθεί από το χρήστη.Αν επιλέξετε να δείτε ξανά τις διαφορές μέσω της &man.diff.1;,
αυτές θα εμφανιστούν ακριβώς όπως έγινε και πριν
σας ρωτήσει το &man.mergemaster.8; να επιλέξετε τι θέλετε να κάνετε
με το αρχείο.Μόλις ολοκληρωθεί η λειτουργία του &man.mergemaster.8; στα αρχεία
συστήματος, θα σας ρωτήσει για άλλες επιλογές.
Το &man.mergemaster.8; ίσως σας ρωτήσει αν θέλετε να αναδημιουργήσετε
το αρχείο των κωδικών (password file), και θα τελειώσει δίνοντας σας
την επιλογή να διαγράψετε τυχόν προσωρινά αρχεία που δημιουργήθηκαν
κατά την διαδικασία.Χειροκίνητη ΕνημέρωσηΑν επιθυμείτε να κάνετε την ενημέρωση χειροκίνητα, δεν μπορείτε
απλώς να αντιγράψετε τα αρχεία από τον κατάλογο
/usr/src/etc στον /etc και
να περιμένετε ότι το σύστημα σας θα λειτουργήσει σωστά. Κάποια από
αυτά τα αρχεία θα πρέπει να εγκατασταθούν πρώτα. Αυτό
συμβαίνει επειδή ο κατάλογος /usr/src/etcδεν είναι κανονικό αντίγραφο του
/etc. Επιπρόσθετα, υπάρχουν αρχεία τα οποία
πρέπει να βρίσκονται στον κατάλογο /etc, αλλά
δεν υπάρχουν στον /usr/src/etc.Αν χρησιμοποιείτε το &man.mergemaster.8; (όπως και συνίσταται),
μπορείτε να διαβάσετε κατευθείαν την επόμενη ενότητα.
+ linkend="updating-upgrading-rebooting">επόμενη ενότητα.
Ο απλούστερος τρόπος να το κάνετε αυτό χειροκίνητα, είναι να
εγκαταστήσετε τα αρχεία σε ένα νέο κατάλογο, και έπειτα να τα
εξετάσετε ένα-ένα ψάχνοντας για τις αλλαγές.Κρατήστε Ένα Αντίγραφο Ασφαλείας του Καταλόγου
/etcΑν και θεωρητικά, τίποτα δεν πρόκειται να πειράξει αυτό τον
κατάλογο αυτόματα, είναι πάντα καλύτερα να είμαστε σίγουροι.
Για το λόγο αυτό, αντιγράψτε τον υπάρχοντα κατάλογο
/etc σε κάποιο ασφαλές μέρος. Χρησιμοποιήστε
μια εντολή όπως η παρακάτω:&prompt.root; cp -Rp /etc /etc.oldΗ επιλογή πραγματοποιεί αναδρομική
αντιγραφή, ενώ η διατηρεί τα δικαιώματα, την
ιδιοκτησία, τις ημερομηνίες των αρχείων, κ.ο.κ.θα πρέπει να δημιουργήσετε μια ψευτο-δομή καταλόγων για να
εγκαταστήσετε το νέο κατάλογο /etc και άλλα
αρχεία. Μια λογική επιλογή είναι ο κατάλογος
/var/tmp/root, και κάτω από αυτόν, θα πρέπει
επίσης να δημιουργήσετε και μια ολόκληρη σειρά από τους υποκαταλόγους
που απαιτούνται.&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionΟι παραπάνω εντολές θα δημιουργήσουν την απαιτούμενη δομή
καταλόγων και θα εγκαταστήσουν τα αρχεία. Μεγάλο μέρος των
υποκαταλόγων που έχουν δημιουργηθεί κάτω από τον
/var/tmp/root είναι άδειοι, και πρέπει να
διαγραφούν. Ο απλούστερος τρόπος για να γίνει αυτό, φαίνεται
παρακάτω:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullΑυτό θα διαγράψει όλους τους άδειους υποκαταλόγους. (Η έξοδος
σφάλματος ανακατευθύνεται στο /dev/null ώστε
να μην εμφανίζονται στην οθόνη προειδοποιήσεις για καταλόγους που
δεν είναι άδειοι.)Τώρα, ο /var/tmp/root περιέχει όλα τα αρχεία
που θα πρέπει να τοποθετηθούν σε κατάλληλες θέσεις κάτω από τον
/. Θα πρέπει τώρα να διατρέξετε καθένα από
αυτά τα αρχεία, και να καθορίσετε πως καθένα από αυτά διαφέρει από
το αντίστοιχο υπάρχον (εγκατεστημένο) αρχείο.Σημειώστε ότι κάποια από τα αρχεία τα οποία έχουν
εγκατασταθεί στον /var/tmp/root έχουν μια
αρχική .. Τη στιγμή που γράφονται αυτές οι γραμμές,
τα μόνα αρχεία στα οποία συμβαίνει αυτό είναι τα αρχεία εκκίνησης
του κελύφους στον κατάλογο /var/tmp/root/ και
/var/tmp/root/root/, αν και μπορεί να υπάρχουν
και άλλα (ανάλογα με το πότε διαβάζετε το κείμενο). Βεβαιωθείτε ότι
χρησιμοποιείτε την εντολή ls -a για να τα δείτε
όλα.Ο απλούστερος τρόπος για να συγκρίνετε δύο αρχεία, είναι να
χρησιμοποιήσετε την εντολή &man.diff.1;:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsΗ παραπάνω εντολή θα σας δείξει τις διαφορές μεταξύ του αρχείου
/etc/shells και του νέου αρχείου
/var/tmp/root/etc/shells. Χρησιμοποιήστε τις
διαφορές αυτές για να αποφασίσετε αν θα πρέπει να συγχωνεύσετε τις
αλλαγές που έχετε κάνει, ή απλώς να αντιγράψετε το παλιό σας αρχείο
πάνω από το νέο.Προσθέστε την Ημερομηνία στο Όνομα του Νέου Root Καταλόγου,
(/var/tmp/root) Ώστε να Μπορείτε Εύκολα να
Συγκρίνετε Διαφορετικές Εκδόσεις Μεταξύ τουςΑν μεταγλωττίζετε συχνά το βασικό σύστημα, θα πρέπει επίσης
να ενημερώνετε συχνά τον κατάλογο /etc, το
οποίο μπορεί να είναι ενοχλητικό.Μπορείτε να επιταχύνετε αυτή τη διαδικασία, τηρώντας ένα
αντίγραφο του τελευταίου σετ αλλαγμένων αρχείων τα οποία
συγχωνεύσατε στον κατάλογο /etc. Η παρακάτω
διαδικασία θα σας δώσει μια ιδέα για το πως μπορεί να
γίνει αυτό:Μεταγλωττίστε το βασικό σύστημα όπως κάνετε συνήθως. Όταν
θέλετε να ενημερώσετε τον /etc και τους
άλλους καταλόγους, δώστε στον κατάλογο προορισμού ένα όνομα
βασισμένο στην τρέχουσα ημερομηνία. Αν το κάνατε αυτό
στις 14 Φεβρουαρίου 1998, θα γράφατε κάτι σαν το
παρακάτω:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionΣυγχωνεύστε τις αλλαγές από αυτό τον κατάλογο, με τον τρόπο
που περιγράψαμε παραπάνω.Μην διαγράψετε τον κατάλογο
/var/tmp/root-19980214 όταν τελειώσετε
με την παραπάνω διαδικασία.Όταν κατεβάσετε την τελευταία έκδοση του πηγαίου κώδικα και
τον μεταγλωττίσετε ξανά, ακολουθήστε το βήμα 1. Αυτό θα σας
δώσει ένα κατάλογο που μπορεί να ονομάζεται
/var/tmp/root-19980221 (αν ανάμεσα στις
δύο μεταγλωττίσεις παρεμβάλλεται διάστημα μιας
εβδομάδας).Μπορείτε τώρα να δείτε τις διαφορές που υπάρχουν ανάμεσα
στις δύο εβδομάδες, χρησιμοποιώντας την εντολή
&man.diff.1; σε αναδρομική λειτουργία για να δημιουργήσετε τις
διαφορές μεταξύ των δύο καταλόγων:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Τυπικά, αυτό το σετ αλλαγών θα είναι πολύ μικρότερο από
αυτό μεταξύ του /var/tmp/root-19980221/etc
και του /etc. Καθώς αυτό το σετ αλλαγών
είναι μικρότερο, είναι και πιο εύκολο να εφαρμόσετε αυτές
τις αλλαγές στον κατάλογο /etc.Μπορείτε τώρα να διαγράψετε τον παλιότερο από τους δύο
καταλόγους /var/tmp/root-*:&prompt.root; rm -rf /var/tmp/root-19980214Επαναλάβετε αυτή τη διαδικασία κάθε φορά που θέλετε να
συγχωνεύσετε τις αλλαγές στον κατάλογο
/etc.Μπορείτε επίσης να χρησιμοποιήσετε την εντολή &man.date.1; για
να αυτοματοποιήσετε την δημιουργία των ονομάτων καταλόγων:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`
-
+ ΕπανεκκίνησηΗ διαδικασία έχει πλέον ολοκληρωθεί. Αφού επαληθεύσετε ότι όλα
βρίσκονται στις σωστές θέσεις, μπορείτε να επανεκκινήσετε το σύστημα.
Μια απλή εντολή &man.shutdown.8; είναι επαρκής:&prompt.root; shutdown -r nowΟλοκλήρωσηΈχετε πλέον αναβαθμίσει το &os; σύστημα σας. Συγχαρητήρια.Αν τα πράγματα δεν πήγαν εντελώς σωστά, είναι εύκολο να
μεταγλωττίσετε ξανά οποιοδήποτε τμήμα του συστήματος.
Για παράδειγμα, αν διαγράψετε κατά λάθος το
/etc/magic ως μέρος μιας αναβάθμισης ή
συγχώνευσης του /etc, η εντολή &man.file.1;
θα σταματήσει να λειτουργεί. Στην περίπτωση αυτή, η διόρθωση είναι
να εκτελέσετε:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installΕρωτήσειςΠρέπει να μεταγλωττίσω ξανά ολόκληρο το βασικό σύστημα σε
κάθε αλλαγή;Δεν υπάρχει εύκολη απάντηση σε αυτό το ερώτημα, καθώς
εξαρτάται από τη φύση της αλλαγής. Για παράδειγμα, αν
εκτελέσετε το CVSup, και δείτε ότι
ενημερώθηκαν τα παρακάτω αρχεία:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkΤο πιθανότερο είναι ότι δεν χρειάζεται να μεταγλωττίσετε
ξανά όλο το βασικό σύστημα. Μπορείτε απλώς να μεταβείτε στους
σχετικούς υποκαταλόγους και να εκτελέσετε το
make all install, και θα έχετε τελειώσει.
Αν όμως υπάρχει κάποια σημαντική αλλαγή, για παράδειγμα το
src/lib/libc/stdlib, θα πρέπει είτε να
επαναμεταγλωττίσετε το βασικό σύστημα, ή τουλάχιστον αυτά τα
κομμάτια τα οποία είναι στατικά συνδεδεμένα (όπως και οτιδήποτε
άλλο έχετε προσθέσει εσείς και το οποίο είναι στατικά
συνδεδεμένο).Τελικά, η απόφαση είναι δική σας. Μπορεί να είστε
ικανοποιημένος αν μεταγλωττίζετε το βασικό σύστημα κάθε δύο
βδομάδες, αφήνοντας τις αλλαγές να συγκεντρωθούν στη διάρκεια
αυτού του διαστήματος. Ή μπορεί να θέλετε να μεταγλωττίσετε
μόνο τις αλλαγές, αν έχετε την πεποίθηση ότι μπορείτε να
εντοπίσετε όλες τις εξαρτήσεις τους.Και φυσικά, όλα αυτά εξαρτώνται από το πόσο συχνά θέλετε να
ενημερώνετε το σύστημα σας, και από το αν ακολουθείτε το
&os.stable; ή το &os.current;.Η μεταγλώττιση μου απέτυχε με πλήθος μηνυμάτων signal 11
(ή λάθη με άλλα σήματα). Τι έχει συμβεί;signal 11Αυτό συνήθως δείχνει προβλήματα υλικού. Η διαδικασία
μεταγλώττισης του βασικού συστήματος είναι ένας αποτελεσματικός
τρόπος να δοκιμάσετε το υλικό σας στα όρια του, και συχνά θα
δείξει προβλήματα που σχετίζονται με τη μνήμη. Το πιο σύνηθες
σύμπτωμα, είναι η απότομη διακοπή της μεταγλώττισης, με τον
μεταγλωττιστή να φαίνεται ότι έχει λάβει κάποιο μυστηριώδες
σήμα.Ένα σίγουρο σημάδι για το παραπάνω, είναι να επανεκκινήσετε
τη διαδικασία, και αυτή να σταματήσει σε διαφορετικό
σημείο.Στην περίπτωση αυτή, δεν υπάρχουν και πολλά που μπορείτε να
κάνετε, εκτός από το να αρχίσετε να αλλάζετε εξαρτήματα στο
μηχάνημα σας μέχρι να βρείτε αυτό που είναι υπαίτιο.Μπορώ να διαγράψω το /usr/obj όταν
τελειώσω;Η σύντομη απάντηση είναι ναι.Το /usr/obj περιέχει όλα τα
αντικειμενικά αρχεία που παράγονται κατά τη διάρκεια της
μεταγλώττισης. Συνήθως, ένα από τα πρώτα βήματα στην
διαδικασία make buildworld είναι η διαγραφή
αυτού του καταλόγου και η αναδημιουργία του. Στην περίπτωση
αυτή, το να κρατήσετε τον κατάλογο
/usr/obj αφού έχετε τελειώσει, δεν έχει
και πολύ νόημα, ενώ αν τον σβήσετε θα κερδίσετε ένα μεγάλο
κομμάτι ελεύθερου χώρου (την παρούσα στιγμή περίπου
340 MB).Όμως, αν ξέρετε τι κάνετε, μπορείτε να οδηγήσετε το
make buildworld να παραλείψει αυτό το βήμα.
Αυτό θα επιταχύνει ιδιαίτερα τις νέες μεταγλωττίσεις, καθώς
τα περισσότερα τμήματα του πηγαίου κώδικα δεν θα χρειάζονται
ξανά μεταγλώττιση. Το μειονέκτημα είναι ότι ορισμένες φορές
εμφανίζονται προβλήματα που έχουν σχέση με όχι και τόσο
εμφανείς εξαρτήσεις, και μπορεί να οδηγήσουν σε μυστηριώδη
αποτυχία της μεταγλώττισης. Τέτοια προβλήματα συχνά δημιουργούν
θόρυβο στις λίστες του &os;, όταν κάποιος χρήστης
παραπονιέται ότι η μεταγλώττιση του αποτυγχάνει, χωρίς να
αντιλαμβάνεται ότι αυτό οφείλεται στην προσπάθεια του να
συντομεύσει την διαδικασία.Μπορώ να συνεχίσω μια μεταγλώττιση που διέκοψα;Αυτό εξαρτάται από το πόσο έχετε προχωρήσει στη διαδικασία
μέχρι τη στιγμή που βρήκατε το πρόβλημα.Σε γενικές γραμμές (και αυτός δεν
είναι κανόνας που ισχύει πάντα), η διεργασία του
make buildworld μεταγλωττίζει νέα αντίγραφα
βασικών εργαλείων (όπως τα &man.gcc.1;, και &man.make.1;) καθώς
και των βιβλιοθηκών συστήματος. Έπειτα εγκαθιστώνται αυτά
τα εργαλεία και οι βιβλιοθήκες. Τα νέα εργαλεία και
βιβλιοθήκες χρησιμοποιούνται έπειτα για να επαναμεταγλωττίσουν
τους εαυτούς τους, και εγκαθίστανται ξανά. Ολόκληρο το σύστημα
(το οποίο τώρα περιλαμβάνει και τα συνηθισμένα προγράμματα
χρήστη όπως το &man.ls.1; ή το &man.grep.1;)
επαναμεταγλωττίζεται χρησιμοποιώντας τα νέα αρχεία του
συστήματος.Αν βρίσκεστε στο τελευταίο στάδιο, το οποίο θα το γνωρίζετε
κοιτάζοντας την έξοδο που έχετε αποθηκεύσει, είναι σχετικά
ασφαλές να κάνετε:… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allΜε τον τρόπο αυτό δεν θα αναιρέσετε την εργασία που έχει
γίνει από το προηγούμενο
make buildworld.Αν δείτε το μήνυμα:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------στην έξοδο της εντολής make buildworld,
τότε είναι μάλλον ασφαλές να προχωρήσετε με αυτό τον
τρόπο.Αν δεν δείτε αυτό το μήνυμα, ή αν δεν είστε σίγουρος, τότε
είναι καλύτερα να κάνετε πλήρη μεταγλώττιση παρά να μετανιώνετε
αργότερα.Πως μπορώ να επιταχύνω τη μεταγλώττιση του βασικού
συστήματος;Εκτελέστε την σε κατάσταση ενός χρήστη.Βάλτε τους καταλόγους /usr/src
και /usr/obj σε διαφορετικά συστήματα
αρχείων τα οποία βρίσκονται και σε διαφορετικούς φυσικούς
δίσκους. Αν είναι δυνατόν, βάλτε αυτούς τους δίσκους σε
χωριστούς ελεγκτές.Ακόμα καλύτερα, μοιράστε αυτά τα συστήματα αρχείων
σε πολλαπλούς δίσκους, χρησιμοποιώντας το πρόγραμμα
οδήγησης &man.ccd.4; (concatenated disk driver, οδήγησης
συνενωμένων δίσκων).Απενεργοποιήστε το profiling (θέστε την μεταβλητή
NO_PROFILE=true στο
/etc/make.conf). Είναι σχεδόν σίγουρο
ότι δεν το χρειάζεστε.Στο αρχείο /etc/make.conf, θέστε
το CFLAGS σε κάτι όπως
. Η βελτιστοποίηση
χρειάζεται αρκετά περισσότερο χρόνο,
και η διαφορά απόδοσης μεταξύ
και είναι συνήθως
αμελητέα. Το επιτρέπει στον
μεταγλωττιστή να χρησιμοποιήσει pipes για επικοινωνία αντί
για προσωρινά αρχεία. Αυτό καταναλώνει περισσότερη μνήμη,
αλλά χρησιμοποιεί λιγότερο το σκληρό δίσκο.Χρησιμοποιήστε την επιλογή
στο
&man.make.1; ώστε να εκτελούνται παράλληλα πολλαπλές
διεργασίες μεταγλώττισης. Αυτό συνήθως βοηθάει ακόμα και
σε περίπτωση που έχετε μηχάνημα με ένα επεξεργαστή.Μπορείτε να προσαρτήσετε (ή να επαναπροσαρτήσετε) το
σύστημα αρχείων στο οποίο είναι αποθηκευμένο το
/usr/src με την επιλογή
. Αυτό αποτρέπει την καταγραφή
ημερομηνίας / ώρας πρόσβασης στο σύστημα αρχείων. Κατά πάσα
πιθανότητα, δεν χρειάζεστε αυτή την πληροφορία έτσι και
αλλιώς.&prompt.root; mount -u -o noatime /usr/srcΤο παράδειγμα προϋποθέτει ότι έχετε το
/usr/src στο δικό του σύστημα
αρχείων. Αν αυτό δεν συμβαίνει (αν είναι μέρος του
/usr για παράδειγμα) θα χρειαστεί
να χρησιμοποιήσετε αυτό το σημείο προσάρτησης, και όχι
το /usr/src.Μπορείτε να προσαρτήσετε (ή να επαναπροσαρτήσετε) το
σύστημα αρχείων που περιέχει το
/usr/obj με την επιλογή
. Με τον τρόπο αυτό, οι εγγραφές στο
δίσκο θα γίνονται ασύγχρονα. Με άλλα λόγια, οι εγγραφές
φαίνεται ότι ολοκληρώνονται άμεσα, ενώ η πραγματική εγγραφή
στο δίσκο γίνεται λίγα δευτερόλεπτα αργότερα. Αυτό
επιτρέπει την ομαδοποίηση των εγγραφών, το οποίο μπορεί να
προσφέρει δραματική βελτίωση απόδοσης.Να έχετε υπόψιν σας ότι αυτή η επιλογή μπορεί να
κάνει το σύστημα αρχείων σας πολύ πιο ευαίσθητο. Με την
επιλογή αυτή, υπάρχει αυξημένη πιθανότητα το σύστημα
αρχείων να βρεθεί σε μη
επισκευάσιμη κατάσταση αν υπάρξει διακοπή
ρεύματος.Αν το σύστημα αρχείων περιέχει μόνο το
/usr/obj, το παραπάνω δεν είναι
πρόβλημα. Αν ωστόσο έχετε και άλλα πολύτιμα δεδομένα
στο ίδιο σύστημα αρχείων, σιγουρευτείτε ότι έχετε
ενημερωμένα αντίγραφα ασφαλείας πριν ενεργοποιήσετε αυτή
την επιλογή.&prompt.root; mount -u -o async /usr/objΌπως και προηγουμένως, αν το
/usr/obj δεν είναι σύστημα αρχείων
από μόνο του, αντικαταστήστε το στο παράδειγμα με το
όνομα του πραγματικού σημείου προσάρτησης.Τι να κάνω αν κάτι πάει στραβά;Σιγουρευτείτε ότι το περιβάλλον σας δεν έχει υπολείμματα
από προηγούμενες μεταγλωττίσεις. Αυτό είναι αρκετά απλό.&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirΝαι, θα πρέπει να εκτελέσετε το
make cleandir δύο φορές.Επανεκκινήστε έπειτα όλη τη διαδικασία, ξεκινώντας με το
make buildworld.Αν έχετε ακόμα προβλήματα, στείλτε το μήνυμα λάθους και την
έξοδο του uname -a στην &a.questions;. Να
είστε προετοιμασμένοι να απαντήσετε επιπλέον ερωτήσεις σχετικά
με την εγκατάσταση σας!MikeMeyerΣυνεισφορά του Διαδικασία για Πολλαπλά ΜηχανήματαNFSinstalling multiple machinesΑν έχετε πολλαπλά μηχανήματα στα οποία πρόκειται να χρησιμοποιήσετε
το ίδιο δέντρο πηγαίου κώδικα, είναι σπατάλη πόρων (δίσκου, δικτύου και
επεξεργαστή) να επαναλαμβάνετε σε όλα τη διαδικασία ανάκτησης και
μεταγλώττισης. Η λύση είναι να ορίσετε ένα μηχάνημα να εκτελεί το
μεγαλύτερο μέρος της εργασίας, ενώ τα υπόλοιπα θα μπορούν να την
ανακτούν μέσω NFS. Στην ενότητα αυτή θα παρουσιάσουμε ένα τρόπο με
τον οποίο μπορεί να γίνει αυτό.ΠροκαταρκτικάΠρώτα από όλα, αναγνωρίστε το σετ των μηχανημάτων στα οποία
σκοπεύετε να χρησιμοποιήσετε τα ίδια εκτελέσιμα. Θα ονομάσουμε αυτή
την ομάδα σετ μεταγλώττισης. Κάθε μηχάνημα
μπορεί να έχει δικό του προσαρμοσμένο πυρήνα, αλλά θα έχουν όλα τα
ίδια εκτελέσιμα userland. Από το σετ αυτό, επιλέξτε ένα μηχάνημα το
οποίο θα γίνει το μηχάνημα μεταγλώττισης.
Θα είναι το μηχάνημα στο οποίο θα μεταγλωττίζεται το βασικό σύστημα
και ο πυρήνας. Το ιδανικό είναι να επιλέξετε ένα γρήγορο μηχάνημα,
στο οποίο να υπάρχει αρκετός ελεύθερος χρόνος στον επεξεργαστή για να
εκτελεί τα make buildworld και
make buildkernel. Θα πρέπει επίσης να επιλέξετε
ένα μηχάνημα δοκιμών στο οποίο θα δοκιμάζετε τις
ενημερώσεις λογισμικού πριν τις μεταφέρετε στην παραγωγή. Μπορεί να
είναι και το ίδιο το μηχάνημα μεταγλώττισης, αλλά αυτό δεν είναι
απαραίτητο.Όλα τα μηχανήματα στο σετ μεταγλώττισης χρειάζεται να
προσαρτήσουν το /usr/obj και το
/usr/src από το ίδιο μηχάνημα, και στο ίδιο
σημείο προσάρτησης. Το ιδανικό είναι αυτά τα δύο συστήματα αρχείων
να βρίσκονται σε διαφορετικό φυσικό δίσκο στο μηχάνημα μεταγλώττισης,
αλλά μπορείτε να τα προσαρτήσετε μέσω NFS ακόμα και σε αυτό το
μηχάνημα. Αν έχετε πολλαπλά σετ μεταγλώττισης, το
/usr/src θα πρέπει να βρίσκεται σε ένα από τα
μηχανήματα μεταγλώττισης, και να προσαρτάται στα υπόλοιπα μέσω
NFS.Τέλος, βεβαιωθείτε ότι τα αρχεία
/etc/make.conf και
/etc/src.conf σε όλα τα μηχανήματα του σετ
μεταγλώττισης, είναι ίδια με τα αντίστοιχα στο μηχάνημα μεταγλώττισης.
Αυτό σημαίνει ότι το μηχάνημα μεταγλώττισης θα πρέπει να
μεταγλωττίζει όλα τα τμήματα του βασικού συστήματος τα οποία θα
εγκατασταθούν σε κάθε μηχάνημα του σετ. Επίσης, σε κάθε μηχάνημα
στο σετ μεταγλώττισης θα πρέπει να οριστεί το όνομα του δικού του
προσαρμοσμένου πυρήνα μέσω της μεταβλητής
KERNCONF στο /etc/make.conf,
ενώ και το μηχάνημα μεταγλώττισης θα πρέπει να έχει μια λίστα όλων
των άλλων στο KERNCONF, ξεκινώντας από το δικό
του. Το μηχάνημα μεταγλώττισης, θα πρέπει να έχει τα αρχεία ρύθμισης
του πυρήνα όλων των άλλων μηχανημάτων στον κατάλογο
/usr/src/sys/arch/conf
αν πρόκειται να μεταγλωττίζει τους πυρήνες τους.Το Βασικό ΣύστημαΈχοντας πραγματοποιήσει όλα τα παραπάνω, είστε έτοιμος να
μεταγλωττίσετε τα πάντα. Μεταγλωττίστε τον πυρήνα και το βασικό
σύστημα όπως περιγράψαμε στο
χρησιμοποιώντας το μηχάνημα μεταγλώττισης, αλλά μην εγκαταστήσετε
τίποτα. Μετά το τέλος της μεταγλώττισης, χρησιμοποιήστε το μηχάνημα
δοκιμών και εγκαταστήστε τον πυρήνα που μόλις δημιουργήσατε. Αν το
μηχάνημα αυτό προσαρτά το /usr/src και το
/usr/obj μέσω NFS, όταν το επανεκκινήσετε σε
κατάσταση ενός χρήστη, θα χρειαστεί να ενεργοποιήσετε το δίκτυο και
να τα προσαρτήσετε. Ο ευκολότερος τρόπος για αυτό, είναι να
εκκινήσετε σε κατάσταση πολλαπλών χρηστών και έπειτα να εκτελέσετε
shutdown now για να μεταβείτε σε κατάσταση ενός
χρήστη. Μόλις γίνει αυτό, μπορείτε να εγκαταστήσετε τον νέο πυρήνα
και το βασικό σύστημα, και να εκτελέσετε το
mergemaster όπως θα κάνατε συνήθως. Όταν
τελειώσετε, επανεκκινήστε αυτό το μηχάνημα στην κανονική λειτουργία
πολλαπλών χρηστών.Όταν βεβαιωθείτε ότι όλα λειτουργούν σωστά στο μηχάνημα δοκιμών,
χρησιμοποιήστε την ίδια διαδικασία για να εγκαταστήσετε το νέο
λογισμικό σε κάθε ένα από τα υπόλοιπα μηχανήματα του σετ
μεταγλώττισης.PortsΜπορείτε να χρησιμοποιήσετε τις ίδιες ιδέες και για το δέντρο
των ports. Το πρώτο κρίσιμο βήμα είναι να προσαρτήσετε το
/usr/ports από το ίδιο μηχάνημα, σε όλα τα
μηχανήματα του σετ μεταγλώττισης. Μπορείτε έπειτα να ρυθμίσετε το
/etc/make.conf ώστε να διαμοιράζονται τα
distfiles. Θα πρέπει να θέσετε το DISTDIR σε ένα
κοινόχρηστο κατάλογο, στον οποίο θα δώσετε δικαιώματα εγγραφής σε
οποιοδήποτε χρήστη έχετε δηλώσει ως root στο
NFS. Σε κάθε μηχάνημα θα πρέπει επίσης να οριστεί η μεταβλητή
WRKDIRPREFIX ώστε να δείχνει σε ένα τοπικό
κατάλογο. Τέλος, αν σκοπεύετε να μεταγλωττίζετε και να διανέμετε
έτοιμα πακέτα, θα πρέπει να θέσετε την μεταβλητή
PACKAGES σε ένα κατάλογο, όπως κάνατε και με την
DISTDIR.
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
index 4c44443be1..223895cb52 100644
--- a/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
+++ b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
@@ -1,417 +1,417 @@
TomRhodesΓράφηκε από τον &dtrace;Σύνοψη&dtrace;&dtrace; support&dtrace;Το &dtrace;, γνωστό επίσης ως Dynamic Tracing, είναι ένα εργαλείο το
οποίο αναπτύχθηκε από την &sun; για τον εντοπισμό προβλημάτων απόδοσης
σε συστήματα που πρόκειται να χρησιμοποιηθούν ή χρησιμοποιούνται ήδη
στην παραγωγή. Δεν πρόκειται για εργαλείο αποσφαλμάτωσης, αλλά για
εργαλείο ανάλυσης πραγματικού χρόνου, με το οποίο μπορούν να
εντοπιστούν προβλήματα απόδοσης και άλλες καταστάσεις.Το &dtrace; είναι ένα θαυμάσιο εργαλείο profiling και διαθέτει
εντυπωσιακό πλήθος χαρακτηριστικών για την διάγνωση προβλημάτων του
συστήματος. Μπορεί επίσης να χρησιμοποιηθεί για να εκτελέσει από πριν
έτοιμα scripts, με τα οποία μπορείτε να εκμεταλλευθείτε καλύτερα τις
δυνατότητες του. Οι χρήστες μπορούν ακόμα να γράψουν και τα δικά τους
βοηθητικά προγράμματα, χρησιμοποιώντας την Γλώσσα D που παρέχει το
&dtrace;, και να προσαρμόσουν με αυτό τον τρόπο το profiling στις δικές
τους ανάγκες.Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:Τι είναι το &dtrace; και τι δυνατότητες παρέχει.Τις διαφορές υλοποίησης μεταξύ του &dtrace; του &solaris; και
του &os;.Πως να ενεργοποιήσετε και να χρησιμοποιήσετε το &dtrace;
στο &os;.Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:Να κατανοείτε βασικές έννοιες του &unix; και του &os;
().Να είστε εξοικειωμένος με τις βασικές διαδικασίες ρύθμισης και
μεταγλώττισης προσαρμοσμένου πυρήνα
().Να είστε εξοικειωμένος με την ασφάλεια και τον τρόπο που αυτή
σχετίζεται με το &os; ().Να κατανοείτε πως μπορείτε να ανακτήσετε τον πηγαίο κώδικα του
&os; και να τον χρησιμοποιήσετε ώστε να επαναμεταγλωττίσετε το
- σύστημα σας ().
+ σύστημα σας ().
Τη δεδομένη στιγμή, το &dtrace; θεωρείται ότι είναι σε πειραματικό
στάδιο. Ορισμένες επιλογές μπορεί να υπολείπονται σε λειτουργικότητα,
και κάποια τμήματα ίσως να μη λειτουργούν καθόλου. Με την πάροδο του
χρόνου, οι παραπάνω δυνατότητες θα θεωρηθούν έτοιμες για χρήση σε
μηχανήματα παραγωγής, και η παρούσα τεκμηρίωση θα ανανεωθεί ώστε να
αντιπροσωπεύει αυτή την κατάσταση.Διαφορές στην ΥλοποίησηΑν και το &dtrace; στο &os; είναι αρκετά όμοιο με αυτό του &solaris;,
υπάρχουν κάποιες διαφορές που θα πρέπει να τις εξηγήσουμε πριν
συνεχίσουμε. Η μεγαλύτερη διαφορά που θα παρατηρήσουν οι χρήστες,
είναι ότι στο &os; το &dtrace; πρέπει να ενεργοποιηθεί χειροκίνητα.
Υπάρχουν διάφορες επιλογές και αρθρώματα για τον πυρήνα που πρέπει να
ενεργοποιηθούν ώστε το &dtrace; να λειτουργεί σωστά. Θα εξηγήσουμε
αργότερα αυτές τις ρυθμίσεις.Η επιλογή DDB_CTF του πυρήνα χρησιμοποιείται για
να ενεργοποιήσει την υποστήριξη φορτώματος των δεδομένων
CTF από τον πυρήνα και τα αρθρώματα του. Το
CTF είναι το Compact C Type format του &solaris;,
το οποίο ενθυλακώνει μια ελαττωμένη μορφή πληροφοριών αποσφαλμάτωσης
(debugging), όμοια με το DWARF και τα
stabs. Αυτά τα δεδομένα CTF προστίθενται στα
εκτελέσιμα μέσω των εργαλείων ctfconvert και
ctfmerge. Το βοηθητικό πρόγραμμα
ctfconvert ερμηνεύει τα τμήματα debug
DWARF τύπου ELF που δημιουργούνται
από το μεταγλωττιστή, και το ctfmerge συγχωνεύει τα
τμήματα CTF και ELF από τα
αντικείμενα σε άλλα εκτελέσιμα ή κοινόχρηστες βιβλιοθήκες.
Περισσότερες πληροφορίες για την ενεργοποίηση των παραπάνω στη
μεταγλώττιση του πυρήνα και του συστήματος του &os;, θα δούμε
παρακάτω.Στο &os; κάποιοι παροχείς είναι διαφορετικοί σε σχέση με το
&solaris;. Ο πιο αξιοσημείωτος είναι ο παροχέας
dtmalloc ο οποίος επιτρέπει το tracing του
malloc() ανάλογα με τον τύπο του, στον πυρήνα του
&os;.Μόνο ο root μπορεί να χρησιμοποιήσει το
&dtrace; στο &os;. Αυτό σχετίζεται με διαφορές στην ασφάλεια, καθώς το
&solaris; διαθέτει κάποιους ελέγχους ασφάλειας χαμηλού επιπέδου, οι
οποίοι δεν υπάρχουν ακόμα στο &os;. Για το λόγο αυτό, η χρήση της
συσκευής /dev/dtrace/dtrace απαγορεύεται
αυστηρά για όλους τους χρήστες εκτός από τον
root.Τέλος, το λογισμικό &dtrace; βρίσκεται υπό την άδεια
CDDL της &sun;. Μπορείτε να διαβάσετε το κείμενο
της άδειας Common Development and Distribution
License στο &os;, στο αρχείο
/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE
ή να το διαβάσετε online στη διεύθυνση
http://www.opensolaris.org/os/licensing.Η άδεια ουσιαστικά σημαίνει ότι ένας πυρήνας &os; με τις επιλογές
του &dtrace;, εξακολουθεί να βρίσκεται υπό την άδεια
BSD. Ωστόσο το CDDL εμπλέκεται
τη στιγμή που γίνεται διανομή των αρθρωμάτων σε δυαδική μορφή, ή τη
στιγμή που φορτώνονται.Ενεργοποίηση της Υποστήριξης &dtrace;Για να ενεργοποιήσετε την υποστήριξη για το &dtrace;, προσθέστε τις
ακόλουθες γραμμές στο αρχείο ρυθμίσεων του πυρήνα:options KDTRACE_HOOKS
options DDB_CTFΟι χρήστες της αρχιτεκτονικής AMD64 θα θέλουν να προσθέσουν την
ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα τους:options KDTRACE_FRAMEΗ επιλογή αυτή παρέχει υποστήριξη για τη λειτουργία
FBT. Το &dtrace; μπορεί να λειτουργήσει και χωρίς
αυτήν. Ωστόσο, θα παρέχει περιορισμένη υποστήριξη για
function boundary tracing.Όλος ο πηγαίος κώδικας θα πρέπει να μεταγλωττιστεί ξανά με τις
επιλογές CTF. Για να γίνει αυτό, μεταγλωττίστε
ξανά το &os; χρησιμοποιώντας:&prompt.root; cd /usr/src
&prompt.root; make WITH_CTF=1 kernelΘα χρειαστεί να επανεκκινήσετε το σύστημα.Μετά την επανεκκίνηση, και με τον νέο πυρήνα φορτωμένο πλέον στη
μνήμη, θα πρέπει να προσθέσετε υποστήριξη για το κέλυφος Korn. Αυτό
απαιτείται, καθώς τα εργαλεία &dtrace; περιλαμβάνουν διάφορα βοηθητικά
προγράμματα τα οποία είναι γραμμένα σε
ksh. Εγκαταστήστε το port
shells/ksh93. Μπορείτε επίσης να
εκτελέσετε αυτά τα εργαλεία και μέσω του
shells/pdksh ή του
shells/mksh.Τέλος, ανακτήστε την τρέχουσα σειρά εργαλείων &dtrace;. Η τελευταία
έκδοση διατίθεται στην τοποθεσία
.
Διατίθεται και πρόγραμμα εγκατάστασης, το οποίο δεν είναι ωστόσο
απαραίτητο να εκτελέσετε προκειμένου να χρησιμοποιήσετε τα
εργαλεία.Χρησιμοποιώντας το &dtrace;Πριν χρησιμοποιήσετε τις λειτουργίες του &dtrace;, θα πρέπει να
υπάρχει η αντίστοιχη συσκευή. Για να φορτώσετε τη συσκευή, θα πρέπει
να δώσετε την παρακάτω εντολή:&prompt.root; kldload dtraceallΘα πρέπει να έχετε πλέον υποστήριξη &dtrace;. Για να δείτε όλα τα
probes, θα πρέπει να εκτελέσετε ως διαχειριστής την παρακάτω
εντολή:&prompt.root; dtrace -l | moreΌλη η έξοδος περνάει μέσω του βοηθητικού προγράμματος
more, διαφορετικά γρήγορα θα υπερχείλιζε την
προσωρινή μνήμη της οθόνης. Στο σημείο αυτό, θα πρέπει να θεωρηθεί ότι
το &dtrace; λειτουργεί. Είναι πλέον ώρα να εξετάσουμε αυτή τη σειρά
εργαλείων.Η σειρά των εργαλείων είναι μια συλλογή από έτοιμα scripts που
εκτελούνται με το &dtrace; ώστε να συλλέξουν πληροφορίες σχετικά με το
σύστημα. Υπάρχουν scripts που ελέγχουν για ανοικτά αρχεία, τη μνήμη,
τη χρήση της CPU και πολλά ακόμα. Κάντε εξαγωγή των
scripts με την ακόλουθη εντολή:&prompt.root; gunzip -c DTraceToolkit* | tar xvf -Μετακινηθείτε στον κατάλογο που τα αποσυμπιέσατε με την εντολή
cd και αλλάξτε τα δικαιώματα εκτέλεσης σε όλα τα
αρχεία, όπως στα αρχεία με τα μικρά γράμματα, σε
755.Θα χρειαστεί να γίνουν αλλαγές στο περιεχόμενο σε όλα τα scripts.
Όσα περιέχουν το
/usr/bin/ksh θα πρέπει να αλλαχθούν σε
/usr/local/bin/ksh, τα άλλα που περιέχουν το
/usr/bin/sh θα πρέπει να αλλαχθούν σε
/bin/sh, και τέλος αυτά που περιέχουν το
/usr/bin/perl θα πρέπει να αλλαχθούν σε
/usr/local/bin/perl.Στο σημείο αυτό είναι σημαντικό να υπενθυμίσουμε στον αναγνώστη
ότι η υποστήριξη &dtrace; στο &os; είναι ατελής
και πειραματική. Πολλά από αυτά τα scripts δεν θα λειτουργήσουν,
καθώς είναι είτε πολύ προσανατολισμένα στο &solaris;, ή χρησιμοποιούν
probes τα οποία δεν υποστηρίζονται τη δεδομένη στιγμή.Τη στιγμή που γράφονται αυτές οι γραμμές, μόνο δύο scripts από τη
σειρά εργαλείων του &dtrace; υποστηρίζονται πλήρως στο &os;: το
hotkernel και το procsystime.
Αυτά τα δύο θα εξερευνήσουμε στα επόμενα τμήματα αυτής της
ενότητας.Το hotkernel έχει σχεδιαστεί να αναγνωρίζει
ποια συνάρτηση καταναλώνει το μεγαλύτερο χρόνο στον πυρήνα. Εκτελώντας
το υπό κανονικές συνθήκες, θα δείτε έξοδο παρόμοια με την
παρακάτω:&prompt.root; ./hotkernel
Sampling... Hit Ctrl-C to end.Ο διαχειριστής του συστήματος θα πρέπει να χρησιμοποιήσει το
συνδυασμό πλήκτρων CtrlC για
να σταματήσει τη διεργασία. Με τον τερματισμό του, το script θα
απεικονίσει μια σειρά από συναρτήσεις του πυρήνα και πληροφορίες σχετικά
με το χρόνο τους, ταξινομώντας τις σε αύξουσα σειρά ανάλογα με το
χρόνο:kernel`_thread_lock_flags 2 0.0%
0xc1097063 2 0.0%
kernel`sched_userret 2 0.0%
kernel`kern_select 2 0.0%
kernel`generic_copyin 3 0.0%
kernel`_mtx_assert 3 0.0%
kernel`vm_fault 3 0.0%
kernel`sopoll_generic 3 0.0%
kernel`fixup_filename 4 0.0%
kernel`_isitmyx 4 0.0%
kernel`find_instance 4 0.0%
kernel`_mtx_unlock_flags 5 0.0%
kernel`syscall 5 0.0%
kernel`DELAY 5 0.0%
0xc108a253 6 0.0%
kernel`witness_lock 7 0.0%
kernel`read_aux_data_no_wait 7 0.0%
kernel`Xint0x80_syscall 7 0.0%
kernel`witness_checkorder 7 0.0%
kernel`sse2_pagezero 8 0.0%
kernel`strncmp 9 0.0%
kernel`spinlock_exit 10 0.0%
kernel`_mtx_lock_flags 11 0.0%
kernel`witness_unlock 15 0.0%
kernel`sched_idletd 137 0.3%
0xc10981a5 42139 99.3%Το script αυτό λειτουργεί επίσης με αρθρώματα του πυρήνα. Για να
χρησιμοποιήσετε αυτό το χαρακτηριστικό, εκτελέστε το με την επιλογή
:&prompt.root; ./hotkernel -m
Sampling... Hit Ctrl-C to end.
^C
MODULE COUNT PCNT
0xc107882e 1 0.0%
0xc10e6aa4 1 0.0%
0xc1076983 1 0.0%
0xc109708a 1 0.0%
0xc1075a5d 1 0.0%
0xc1077325 1 0.0%
0xc108a245 1 0.0%
0xc107730d 1 0.0%
0xc1097063 2 0.0%
0xc108a253 73 0.0%
kernel 874 0.4%
0xc10981a5 213781 99.6%Το procsystime script συλλαμβάνει και τυπώνει
τον χρόνο των κλήσεων συστήματος για μια συγκεκριμένη διεργασία μέσω
του PID ή του ονόματος της. Στο παρακάτω παράδειγμα
έχουμε ξεκινήσει μια νέα διεργασία του /bin/csh.
Εκτελέσαμε το procsystime και το αφήσαμε στην
αναμονή καθώς γράφαμε μερικές εντολές στο csh που
είχαμε ανοίξει. Αυτά είναι τα αποτελέσματα της δοκιμής μας:&prompt.root; ./procsystime -n csh
Tracing... Hit Ctrl-C to end...
^C
Elapsed Times for processes csh,
SYSCALL TIME (ns)
getpid 6131
sigreturn 8121
close 19127
fcntl 19959
dup 26955
setpgid 28070
stat 31899
setitimer 40938
wait4 62717
sigaction 67372
sigprocmask 119091
gettimeofday 183710
write 263242
execve 492547
ioctl 770073
vfork 3258923
sigsuspend 6985124
read 3988049784Όπως φαίνεται, η κλήση του συστήματος για ανάγνωση
(read()) είναι αυτή που καταναλώνει τον
περισσότερο χρόνο σε νανοδευτερόλεπτα, ενώ το λιγότερο τον καταναλώνει
η κλήση συστήματος getpid().Η Γλώσσα DΗ σειρά εργαλείων &dtrace;, περιλαμβάνει αρκετά scripts γραμμένα στην
ειδική γλώσσα του &dtrace;. Η γλώσσα αυτή ονομάζεται
η γλώσσα D στην τεκμηρίωση της &sun;, και είναι αρκετά
όμοια με τη C++. Αναλυτική περιγραφή αυτής της γλώσσας είναι πέρα από
τους σκοπούς αυτού του κειμένου. Υπάρχει ενεργή συζήτηση σχετικά με
αυτή, στη διεύθυνση .
diff --git a/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml b/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml
index 1c1c06a7f5..d43c988f87 100644
--- a/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml
+++ b/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml
@@ -1,1608 +1,1608 @@
JimMockΑνανεώθηκε και αναδομήθηκε από τον JakeHambyΑρχική συνεισφορά από τον Ρυθμίζοντας τον Πυρήνα του &os;Σύνοψηπυρήναςδημιουργία προσαρμοσμένου πυρήναΟ πυρήνας είναι η καρδιά του λειτουργικού συστήματος &os;. Είναι
υπεύθυνος για τη διαχείριση της μνήμης, την επιβολή των ρυθμίσεων
ασφαλείας, τη δικτύωση, την πρόσβαση στο δίσκο, και πολλά άλλα. Ένα
συνεχώς αυξανόμενο μέρος του &os; μπορεί να ρυθμιστεί δυναμικά, αλλά
υπάρχουν ακόμα περιπτώσεις οι οποίες απαιτούν ρυθμίσεις και μεταγλώττιση
του πυρήνα του &os; με προσαρμοσμένες παραμέτρους.Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:Για ποιους λόγους μπορεί να χρειαστεί να φτιάξετε ένα
προσαρμοσμένο πυρήνα.Πως να γράψετε ένα αρχείο ρυθμίσεων πυρήνα, ή να αλλάξετε ένα
υπάρχον αρχείο ρυθμίσεων.Πως να χρησιμοποιήσετε το αρχείο ρυθμίσεων του πυρήνα για να
φτιάξετε και να μεταγλωττίσετε ένα νέο πυρήνα.Πως να εγκαταστήσετε το νέο πυρήνα.Πως να επιλύσετε τυχόν προβλήματα με το νέο πυρήνα.Όλες οι εντολές που εμφανίζονται σε αυτό το κεφάλαιο ως παραδείγματα
πρέπει να εκτελεστούν ως root για να είναι
επιτυχείς.Γιατί να Φτιάξετε Προσαρμοσμένο Πυρήνα;Κατά παράδοση, το &os; είχε αυτό που αποκαλούμε
μονολιθικό πυρήνα. Αυτό σημαίνει ότι ο πυρήνας ήταν ένα
μεγάλο πρόγραμμα, υποστήριζε ένα σταθερό αριθμό συσκευών, και αν θέλατε
να αλλάξετε τη συμπεριφορά του, θα έπρεπε να μεταγλωττίσετε καινούριο
και να επανεκκινήσετε τον υπολογιστή σας με αυτόν.Σήμερα, το &os; κινείται ταχύτατα προς ένα μοντέλο όπου οι
περισσότερες λειτουργίες του πυρήνα περιέχονται σε modules (αρθρώματα)
τα οποία μπορούν να φορτωθούν και να αποφορτωθούν κατά απαίτηση,
δυναμικά στον πυρήνα. Αυτό επιτρέπει στον πυρήνα να προσαρμόζεται
σε υλικό το οποίο ενεργοποιείται τη δεδομένη στιγμή (όπως για
παράδειγμα όταν εισέρχεται μια κάρτα PCMCIA σε ένα φορητό υπολογιστή).
Επίσης επιτρέπει στον πυρήνα να επεκτείνει δυναμικά τη λειτουργικότητά
του, προσθέτοντας χαρακτηριστικά τα οποία δεν ήταν απαραίτητα όταν
είχε μεταγλωττιστεί αρχικά. Αυτού του είδους ο πυρήνας είναι γνωστός ως
modular (αρθρωτός).Παρ' όλα αυτά, είναι ακόμα απαραίτητο να γίνουν κάποιες στατικές
ρυθμίσεις στον πυρήνα. Σε ορισμένες περιπτώσεις, αυτό συμβαίνει επειδή
η συγκεκριμένη λειτουργία είναι τόσο στενά συνδεμένη με τον πυρήνα
ώστε δεν μπορεί να φορτωθεί δυναμικά. Σε άλλες, συμβαίνει επειδή απλά
κανείς δεν έχει ακόμα ασχοληθεί να γράψει ένα δυναμικό module που να
παρέχει αυτή τη λειτουργικότητα.Η δημιουργία προσαρμοσμένου πυρήνα είναι από τις πλέον σημαντικές
τελετουργίες που πρέπει να υποστεί κάθε χρήστης του BSD. Η διαδικασία
αυτή, αν και χρονοβόρα, θα αποβεί ιδιαίτερα ωφέλιμη για το &os; σύστημα
σας. Σε αντίθεση με τον GENERIC πυρήνα, ο οποίος
πρέπει να υποστηρίξει μεγάλο εύρος συσκευών, ένας προσαρμοσμένος πυρήνας
περιέχει υποστήριξη μόνο για το υλικό του δικού σας
υπολογιστή. Έτσι έχετε κάποια οφέλη, όπως:Ταχύτερη εκκίνηση. Καθώς ο πυρήνας θα ανιχνεύει μόνο το υλικό
που έχετε στο σύστημα σας, ο χρόνος που χρειάζεται για την εκκίνηση
του συστήματος σας θα μειωθεί δραματικά.Χαμηλότερη κατανάλωση μνήμης. Ένας προσαρμοσμένος πυρήνας,
συχνά χρησιμοποιεί λιγότερη μνήμη από τον
GENERIC πυρήνα, το οποίο είναι σημαντικό,
καθώς ο πυρήνας πρέπει να βρίσκεται πάντα φορτωμένος στη φυσική
μνήμη. Για το λόγο αυτό, ένας προσαρμοσμένος πυρήνας είναι
ιδιαίτερα χρήσιμος σε συστήματα με μικρό μέγεθος φυσικής μνήμης
(RAM).Επιπρόσθετη υποστήριξη συσκευών. Ο προσαρμοσμένος πυρήνας σας
επιτρέπει να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν
υπάρχουν στον GENERIC πυρήνα, όπως για
παράδειγμα για κάρτες ήχου.TomRhodesΓράφηκε από τον Ανακαλύπτοντας τις Συσκευές του Συστήματος σαςΠριν ξεκινήσετε με τη ρύθμιση του πυρήνα σας, θα ήταν σκόπιμο να
κάνετε μια απογραφή υλικού του υπολογιστή σας. Σε περιπτώσεις που το
&os; δεν είναι το βασικό σας λειτουργικό σύστημα, μπορείτε εύκολα να
δημιουργήσετε αυτή τη λίστα, εξετάζοντας τις ρυθμίσεις του τρέχοντος
λειτουργικού συστήματος. Για παράδειγμα, η
Διαχείριση Συσκευών (Device Manager) της
µsoft; δείχνει συνήθως σημαντικές πληροφορίες σχετικά με τις
εγκατεστημένες συσκευές. Μπορείτε να βρείτε την
Διαχείριση Συσκευών
στον πίνακα ελέγχου.Μερικές εκδόσεις των µsoft.windows; διαθέτουν ένα εικονίδιο
με τίτλο Σύστημα (System). Από την οθόνη
που εμφανίζεται μπορείτε να επιλέξετε την
Διαχείριση Συσκευών.Αν δεν υπάρχει άλλο λειτουργικό σύστημα στον υπολογιστή,
ο διαχειριστής θα πρέπει να βρει αυτές τις πληροφορίες χειροκίνητα. Μια
μέθοδος είναι με τη χρήση του βοηθητικού προγράμματος &man.dmesg.8; και
της εντολής &man.man.1;. Τα περισσότερα προγράμματα οδήγησης του &os;
διαθέτουν σελίδα manual, η οποία δείχνει το υποστηριζόμενο υλικό. Κατά
τη διάρκεια της εκκίνησης, εμφανίζεται μια λίστα με τις συσκευές που
ανιχνεύθηκαν. Για παράδειγμα, οι παρακάτω γραμμές δείχνουν ότι το
πρόγραμμα οδήγησης psm εντόπισε ένα
ποντίκι:psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0Αυτό το πρόγραμμα οδήγησης θα πρέπει να περιληφθεί στο αρχείο
ρυθμίσεων του προσαρμοσμένου πυρήνα σας, ή να φορτωθεί δυναμικά μέσω
του &man.loader.conf.5;.Σε ορισμένες περιπτώσεις, η έξοδος της dmesg
μπορεί να δείχνει μόνο τα μηνύματα του συστήματος και όχι τα
αποτελέσματα της ανίχνευσης συσκευών. Στις περιπτώσεις αυτές, μπορείτε
να δείτε την επιθυμητή έξοδο στα περιεχόμενα του αρχείου
/var/run/dmesg.boot.Μια άλλη μέθοδος για την ανίχνευση του υλικού, είναι μέσω του
βοηθητικού προγράμματος &man.pciconf.8;, το οποίο παρέχει πιο αναλυτική
περιγραφή. Για παράδειγμα:ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernetΗ παραπάνω έξοδος, που λήφθηκε μέσω της εντολής
pciconf , δείχνει ότι το
πρόγραμμα οδήγησης ath εντόπισε μια συσκευή
ασύρματου Ethernet. Μπορείτε να δείτε την αντίστοιχη σελίδα manual
του προγράμματος &man.ath.4;, χρησιμοποιώντας την εντολή
man ath.Μπορείτε επίσης να πάρετε χρήσιμες πληροφορίες από την εντολή
&man.man.1;, αν δώσετε την επιλογή . Στο παραπάνω
παράδειγμα, δίνοντας:&prompt.root; man -k AtherosΘα δείτε μια λίστα από σελίδες manual που περιέχουν τη
συγκεκριμένη λέξη:ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)Έχοντας διαθέσιμη την απογραφή υλικού του υπολογιστή σας,
η διαδικασία δημιουργίας προσαρμοσμένου πυρήνα σίγουρα φαίνεται
λιγότερο αποθαρρυντική.Προγράμματα Οδήγησης, Υποσυστήματα και Αρθρώματα (modules)kerneldrivers / modules / subsystemsΠριν δημιουργήσετε ένα προσαρμοσμένο πυρήνα, θα πρέπει πρώτα να
σκεφτείτε για ποιους λόγους τον χρειάζεστε. Σε πολλές περιπτώσεις,
η υποστήριξη κάποιας συγκεκριμένης συσκευής μπορεί να επιτευχθεί με την
χρήση κάποιου αρθρώματος (module).Τα αρθρώματα του πυρήνα βρίσκονται στον κατάλογο
/boot/kernel/ και μπορούν να
φορτωθούν δυναμικά στον πυρήνα που εκτελείται τη δεδομένη στιγμή, με
τη χρήση της εντολής &man.kldload.8;. Τα περισσότερα, αν και όχι όλα,
τα προγράμματα οδήγησης στον πυρήνα, διατίθενται και σε μορφή
αρθρώματος· έχουν επίσης τη δική του σελίδα βοήθειας το καθένα. Για
παράδειγμα, στην προηγούμενη ενότητα, είδαμε το πρόγραμμα οδήγησης
ασύρματου Ethernet ath. Η σελίδα βοήθειας
για αυτή τη συσκευή αναφέρει:Alternatively, to load the driver as a module at boot time, place the
following line in &man.loader.conf.5:
if_ath_load="YES"Όπως αναφέρεται στις οδηγίες, αν βάλετε την γραμμή
if_ath_load="YES" στο αρχείο
/boot/loader.conf, το άρθρωμα θα φορτωθεί δυναμικά
κατά την εκκίνηση του συστήματος σας.Σε μερικές περιπτώσεις ωστόσο, δεν υπάρχει άρθρωμα που να σχετίζεται
με κάποιο πρόγραμμα οδήγησης. Αυτό ισχύει περισσότερο για κάποια
ιδιαίτερα υποσυστήματα και πολύ σημαντικά προγράμματα οδήγησης. Για
παράδειγμα, το πρόγραμμα οδήγησης του συστήματος αρχείων fast file
system (FFS) απαιτείται να είναι ενσωματωμένο στον
πυρήνα. Το ίδιο συμβαίνει και με την υποστήριξη δικτύου (INET).
Δυστυχώς, ο μόνος τρόπος για να δείτε αν ένα πρόγραμμα οδήγησης πρέπει
να είναι υποχρεωτικά ενσωματωμένο στον πυρήνα, είναι να ελέγξετε αν
υπάρχει το αντίστοιχο άρθρωμα.Είναι αρκετά εύκολο να αφαιρέσετε την υποστήριξη για κάποια
συσκευή ή άλλη επιλογή, και να καταλήξετε με ένα πυρήνα που δεν μπορεί
να ξεκινήσει. Για παράδειγμα, αν βγάλετε το πρόγραμμα οδήγησης
&man.ata.4; από το αρχείο ρυθμίσεων του πυρήνα σας, αν το σύστημα σας
χρησιμοποιεί δίσκους ATA δεν θα μπορεί να
ξεκινήσει. Στην περίπτωση αυτή θα πρέπει να βάλετε την αντίστοιχη
γραμμή στο αρχείο loader.conf για να φορτώσετε
το σχετικό άρθρωμα. Αν δεν είστε σίγουροι, ελέγξτε για την ύπαρξη
του αρθρώματος, και απλώς αφήστε την υποστήριξη ενσωματωμένη στον
πυρήνα.Δημιουργία και Εγκατάσταση Προσαρμοσμένου Πυρήναkernelbuilding / installingΑρχικά, θα κάνουμε μια γρήγορη παρουσίαση του καταλόγου στον οποίο
γίνεται η μεταγλώττιση του πυρήνα. Όλοι οι κατάλογοι που θα αναφέρουμε
βρίσκονται κάτω από τον κατάλογο /usr/src/sys ο
οποίος είναι επίσης προσβάσιμος μέσω της διαδρομής
/sys. Υπάρχει εδώ ένας αριθμός υποκαταλόγων ο
οποίος αντιπροσωπεύει διαφορετικά τμήματα του πυρήνα, αλλά οι πλέον
σημαντικοί για το σκοπό μας είναι οι
arch/conf, όπου θα
επεξεργαστείτε τις ρυθμίσεις για τον προσαρμοσμένο πυρήνα σας, και ο
compile, που είναι ο χώρος εργασίας στον οποίο θα
γίνει η μεταγλώττιση του. Ο arch
αντιπροσωπεύει ένα από τα i386,
alpha, amd64,
ia64, powerpc,
sparc64, ή pc98
(ένας εναλλακτικός τύπος PC, διαδεδομένος στην Ιαπωνία). Οτιδήποτε
βρίσκεται μέσα στον συγκεκριμένο κατάλογο μιας αρχιτεκτονικής,
σχετίζεται μόνο με την αρχιτεκτονική αυτή. Το υπόλοιπο του κώδικα,
είναι ανεξάρτητο από την αρχιτεκτονική και κοινό σε κάθε πλατφόρμα όπου
θα μπορούσε να μεταγλωττιστεί το &os;. Παρατηρήστε τη λογική οργάνωση
της δομής των καταλόγων, όπου κάθε υποστηριζόμενη συσκευή, σύστημα
αρχείων και επιλογή βρίσκεται στο δικό της κατάλογο.Στα παραδείγματα αυτού του κεφαλαίου υποθέτουμε ότι χρησιμοποιείτε
την αρχιτεκτονική i386. Αν δεν συμβαίνει αυτό, κάντε τις αντίστοιχες
ρυθμίσεις στα ονόματα των καταλόγων και διαδρομών ώστε να συμβαδίζουν
με την αρχιτεκτονική του μηχανήματος σας.Αν δεν υπάρχει ο κατάλογος
/usr/src/sys στο σύστημα σας, τότε δεν έχετε
εγκαταστήσει τον πηγαίο κώδικα του πυρήνα. Ο ευκολότερος τρόπος για
να τον εγκαταστήσετε είναι εκτελώντας το sysinstall
ως root, επιλέγοντας
Configure, μετά
Distributions, έπειτα
src, μετά
base και
sys. Αν αντιπαθείτε το
sysinstall αλλά έχετε πρόσβαση σε ένα
επίσημο CDROM του &os; μπορείτε να
εγκαταστήσετε τον πηγαίο κώδικα μέσω της γραμμής εντολών:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
&prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf -Έπειτα, μετακινηθείτε στον κατάλογο
arch/conf
και αντιγράψτε το αρχείο ρυθμίσεων GENERIC στο
όνομα το οποίο θέλετε να δώσετε στο νέο σας πυρήνα. Για παράδειγμα:
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNELΚατά παράδοση, το όνομα αυτό γράφεται εξ' ολοκλήρου με κεφαλαία
γράμματα και αν έχετε πολλά μηχανήματα &os; με διαφορετικό υλικό,
είναι καλή ιδέα να του δώσετε το όνομα του μηχανήματος. Για το
παράδειγμα μας, θα το αποκαλούμε
MYKERNEL.Δεν είναι γενικά καλή ιδέα να αποθηκεύσετε το αρχείο ρυθμίσεων σας
απευθείας στον κατάλογο /usr/src. Αν
αντιμετωπίσετε προβλήματα, ίσως μπείτε στον πειρασμό να διαγράψετε
απλώς τον κατάλογο /usr/src και να ξεκινήσετε
από την αρχή. Συνήθως λίγα δευτερόλεπτα μετά από αυτό θα
συνειδητοποιήσετε ότι έχετε επίσης διαγράψει το αρχείο ρυθμίσεων
του πυρήνα σας. Επίσης, μην επεξεργάζεστε απευθείας το αρχείο
GENERIC, καθώς μπορεί οι αλλαγές σας να χαθούν
την επόμενη φορά που θα
- ανανεώσετε τον πηγαίο σας κώδικα.
+ ανανεώσετε τον πηγαίο σας κώδικα.
Καλό θα είναι να αποθηκεύσετε το αρχείο ρυθμίσεων σε άλλο κατάλογο
και να δημιουργήσετε ένα συμβολικό δεσμό προς το αρχείο, στον κατάλογο
i386.Για παράδειγμα:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNELΤώρα, τροποποιήστε το αρχείο
MYKERNEL με τον
επεξεργαστή κειμένου που προτιμάτε. Αν ξεκινάτε μόλις τώρα, πιθανόν ο
μόνος διαθέσιμος επεξεργαστής κειμένου να είναι το
vi, ο οποίος είναι αρκετά πολύπλοκος για να
τον εξηγήσουμε εδώ, αλλά καλύπτεται αρκετά καλά από πλήθος βιβλίων στην
βιβλιογραφία. Ωστόσο, το &os;
διαθέτει επίσης ένα ευκολότερο επεξεργαστή κειμένου, τον
ee ο οποίος είναι η κατάλληλη επιλογή αν
είστε αρχάριος. Αλλάξτε κατά βούληση τα σχόλια στην αρχή του αρχείου
ρυθμίσεων ώστε να αντανακλούν τις αλλαγές που έχετε κάνει και οι οποίες
το διαχωρίζουν από το GENERIC.SunOSΑν έχετε δημιουργήσει πυρήνα στο &sunos; ή σε κάποιο άλλο
λειτουργικό σύστημα τύπου BSD, το μεγαλύτερο μέρος αυτού του αρχείου
θα σας φανεί γνωστό. Από την άλλη, αν έρχεστε από κάποιο άλλο
λειτουργικό, όπως το DOS το αρχείο ρυθμίσεων
GENERIC ίσως να σας είναι δύσκολο στην κατανόηση,
για το λόγο αυτό ακολουθήστε αργά και προσεκτικά τις περιγραφές του
τμήματος
Αρχείο Ρυθμίσεων.Αν συγχρονίσετε τον πηγαίο κώδικα με τις
- τελευταίες αλλαγές του &os; project, να διαβάσετε το αρχείο
+ linkend="updating-upgrading">συγχρονίσετε τον πηγαίο κώδικα
+ με τις τελευταίες αλλαγές του &os; project, να διαβάσετε το αρχείο
/usr/src/UPDATING πριν προχωρήσετε σε οποιοδήποτε
βήμα αναβάθμισης. Το αρχείο αυτό περιγράφει πιθανά σημαντικά
προβλήματα ή περιοχές που χρειάζονται ιδιαίτερη προσοχή όσο αφορά τον
ανανεωμένο πηγαίο κώδικα. Το αρχείο
/usr/src/UPDATING ταιριάζει πάντα με την έκδοση
του πηγαίου κώδικα του &os; που έχετε, και είναι για αυτό το λόγο
πιο ενημερωμένο σε σχέση με ότι διαβάσετε στο παρόν βιβλίο.Θα πρέπει τώρα να μεταγλωττίσετε τον πηγαίο κώδικα του πυρήνα.
Δημιουργώντας τον ΠυρήναΜετακινηθείτε στον κατάλογο /usr/src:&prompt.root; cd /usr/srcΜεταγλωττίστε τον πυρήνα:&prompt.root; make buildkernel KERNCONF=MYKERNELΕγκαταστήστε το νέο πυρήνα:&prompt.root; make installkernel KERNCONF=MYKERNELΕίναι απαραίτητο να έχετε όλο τον πηγαίο κώδικα (source tree) του
&os; για να δημιουργήσετε πυρήνα.Από προεπιλογή, όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα,
δημιουργούνται επίσης και όλα τα modules
(αρθρώματα) πυρήνα. Αν θέλετε να κάνετε πιο γρήγορη ανανέωση του
πυρήνα ή να δημιουργήσετε μόνο συγκεκριμένα modules, θα πρέπει να
τροποποιήσετε το αρχείο /etc/make.conf πριν
ξεκινήσετε τη δημιουργία του πυρήνα:MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfsΣτη μεταβλητή αυτή δίνετε μια λίστα των modules που θέλετε να
δημιουργηθούν, αντί να δημιουργηθούν όλα.WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfsΣτη μεταβλητή αυτή δίνετε μια λίστα modules που θέλετε να
παραλείψετε κατά τη διαδικασία δημιουργίας. Για άλλες μεταβλητές που
ίσως είναι χρήσιμες στη διαδικασία δημιουργίας πυρήνα, δείτε τη σελίδα
manual του &man.make.conf.5;./boot/kernel.oldΟ νέος πυρήνας θα αντιγραφεί στον κατάλογο
/boot/kernel με το όνομα
/boot/kernel/kernel ενώ ο παλιός πυρήνας θα
μετακινηθεί στο /boot/kernel.old/kernel. Τερματίστε
τώρα το σύστημα σας και επανεκκινήστε για να χρησιμοποιήσετε το νέο
πυρήνα. Αν κάτι πάει στραβά, υπάρχουν κάποιες πληροφορίες για
Αντιμετώπιση Προβλημάτων που
ίσως σας φανούν χρήσιμες, στο τέλος αυτού του κεφαλαίου. Βεβαιωθείτε ότι
διαβάσατε το τμήμα που εξηγεί πως να επαναφέρετε το σύστημα σας σε
περίπτωση που ο νέος πυρήνας
δεν εκκινεί.Άλλα αρχεία που σχετίζονται με τη διαδικασία εκκίνησης, όπως ο
&man.loader.8; και οι ρυθμίσεις του, βρίσκονται στον κατάλογο
/boot. Εξειδικευμένα modules ή modules τρίτων
κατασκευαστών μπορούν να τοποθετηθούν στον κατάλογο
/boot/kernel, αν και οι χρήστες
θα πρέπει να γνωρίζουν ότι είναι σημαντικό τα modules να είναι σε
συγχρονισμό με τον πυρήνα. Modules τα οποία δεν προορίζονται για
εκτέλεση με τον τρέχοντα πυρήνα, μπορούν να προκαλέσουν αστάθεια
ή εσφαλμένη λειτουργία του συστήματος σας.JoelDahlΑνανεώθηκε για το &os; 6.X από τον Το Αρχείο ΡυθμίσεωνkernelNOTESNOTESkernelconfiguration fileΗ γενική μορφή ενός αρχείου ρυθμίσεων πυρήνα, είναι αρκετά απλή.
Κάθε γραμμή περιέχει μια λέξη-κλειδί και ένα ή περισσότερα ορίσματα. Για
λόγους απλότητας, οι περισσότερες γραμμές περιέχουν μόνο ένα όρισμα.
Οτιδήποτε βρίσκεται μετά το σύμβολο # θεωρείται
σχόλιο και αγνοείται. Στα επόμενα τμήματα θα βρείτε περιγραφή για τις
λέξεις-κλειδιά, με τη σειρά που εμφανίζονται στο αρχείο ρυθμίσεων
GENERIC.
Για εξαντλητική λίστα των παραμέτρων και
συσκευών που εξαρτώνται από την αρχιτεκτονική, δείτε το αρχείο
NOTES το οποίο βρίσκεται στον ίδιο κατάλογο με το
αρχείο GENERIC. Για επιλογές και ρυθμίσεις που
είναι ανεξάρτητες από την αρχιτεκτονική, δείτε το αρχείο
/usr/src/sys/conf/NOTES.Για να δημιουργήσετε ένα αρχείο το οποίο να περιέχει όλες τις
διαθέσιμες επιλογές, όπως γίνεται συνήθως για δοκιμές, εκτελέστε την
ακόλουθη εντολή ως root:&prompt.root; cd /usr/src/sys/i386/conf && make LINTkernelconfiguration fileΤο παρακάτω είναι ένα παράδειγμα του αρχείου ρυθμίσεων
GENERIC με επιπρόσθετα διευκρινιστικά σχόλια όπου
είναι απαραίτητο. Το παράδειγμα θα πρέπει να ταιριάζει αρκετά καλά
με το αντίγραφο του αρχείου πού έχετε στο
/usr/src/sys/i386/conf/GENERIC.kernel optionsmachinemachine i386Πρόκειται για την αρχιτεκτονική του μηχανήματος. Πρέπει να είναι
alpha, amd64,
i386, ia64,
pc98, powerpc, ή
sparc64.kernel optionscpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUΗ παραπάνω επιλογή καθορίζει τον τύπο της CPU που έχετε στο σύστημα
σας. Μπορεί να έχετε παραπάνω από μια τέτοιες γραμμές (αν για παράδειγμα
δεν είστε σίγουρος αν θα πρέπει να χρησιμοποιήσετε
I586_CPU ή I686_CPU),
αλλά για ένα προσαρμοσμένο πυρήνα είναι καλύτερα να καθορίσετε μόνο τη
CPU που έχετε. Αν δεν είστε σίγουρος για τον τύπο της CPU μπορείτε να
ελέγξετε το αρχείο /var/run/dmesg.boot για να δείτε
τα μηνύματα εκκίνησης του συστήματος σας.kernel optionsidentident GENERICΑυτό είναι το αναγνωριστικό όνομα του πυρήνα. Θα πρέπει να το
αλλάξετε στο όνομα που δώσατε στον πυρήνα σας, π.χ.
MYKERNEL αν έχετε ακολουθήσει τις οδηγίες από το
προηγούμενο μας παράδειγμα. Η τιμή που θα βάλετε στο αλφαριθμητικό
ident θα εκτυπώνεται όταν εκκινείτε με τον
συγκεκριμένο πυρήνα, και έτσι είναι χρήσιμο να δώσετε στο νέο πυρήνα ένα
διαφορετικό όνομα αν θέλετε να το ξεχωρίζετε από το συνηθισμένο πυρήνα
σας (αν π.χ. θέλετε να φτιάξετε ένα πειραματικό πυρήνα).#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.Το αρχείο &man.device.hints.5; χρησιμοποιείται για τον καθορισμό
επιλογών που σχετίζονται με τους οδηγούς συσκευών. Η προεπιλεγμένη θέση
την οποία ελέγχει ο &man.loader.8; κατά την εκκίνηση είναι το
/boot/device.hints. Χρησιμοποιώντας την επιλογή
hints μπορείτε να ενσωματώσετε στατικά τις οδηγίες
αυτές μέσα στον πυρήνα. Στην περίπτωση αυτή δεν υπάρχει λόγος να
δημιουργήσετε το αρχείο device.hints στον κατάλογο
/boot.makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbolsΗ φυσιολογική διαδικασία δημιουργίας του &os; περιλαμβάνει
πληροφορίες εκσφαλμάτωσης (debugging) όταν ο πυρήνας δημιουργείται με
την επιλογή , επιτρέποντας έτσι την χρήση τους όταν
δοθούν στο &man.gcc.1;.options SCHED_4BSD # 4BSD schedulerΟ παραδοσιακός και προεπιλεγμένος scheduler του &os;. Κρατήστε την
επιλογή αυτή.options PREEMPTION # Enable kernel thread preemptionΕπιτρέπει σε νήματα του πυρήνα να προσπεραστούν από άλλα,
υψηλότερης προτεραιότητας. Βοηθάει στην αύξηση απόκρισης του
συστήματος και επιτρέπει σε νήματα διακοπών (interrupts) να εκτελεστούν
πιο γρήγορα, αντί να μένουν σε αναμονή.options INET # InterNETworkingΥποστήριξη δικτύου. Αφήστε την επιλογή αυτή ενεργοποιημένη, ακόμα
και αν δεν σκοπεύετε να συνδεθείτε σε κάποιο δίκτυο. Τα περισσότερα
προγράμματα χρειάζονται έστω και την εσωτερική (loopback) δικτύωση
(τη δυνατότητα δηλ. να κάνουν συνδέσεις δικτύου μέσα στο ίδιο σας το
μηχάνημα), καθιστώντας την επιλογή αυτή ουσιαστικά υποχρεωτική.options INET6 # IPv6 communications protocolsΗ επιλογή αυτή ενεργοποιεί τα πρωτόκολλα επικοινωνίας IPv6.options FFS # Berkeley Fast FilesystemΠρόκειται για το βασικό σύστημα αρχείων του σκληρού δίσκου. Αφήστε
την επιλογή αυτή ενεργοποιημένη, αν ξεκινάτε από το σκληρό δίσκο.
options SOFTUPDATES # Enable FFS Soft Updates supportΗ επιλογή αυτή ενεργοποιεί τα Soft Updates στον πυρήνα, το οποίο
βοηθάει την επιτάχυνση της εγγραφής στους δίσκους. Ακόμα και αν η
λειτουργία αυτή παρέχεται από τον πυρήνα, θα πρέπει επίσης να
ενεργοποιηθεί για συγκεκριμένους δίσκους. Δείτε την έξοδο της εντολής
&man.mount.8; για να δείτε αν είναι ενεργοποιημένα τα Soft Updates
στους δίσκους του συστήματος σας. Αν δεν δείτε την επιλογή
soft-updates θα χρειαστεί να την ενεργοποιήσετε με
την εντολή &man.tunefs.8; (για υπάρχοντα συστήματα αρχείων) ή
&man.newfs.8; (για νέα συστήματα αρχείων).options UFS_ACL # Support for access control listsΜε την επιλογή αυτή, ενεργοποιείται η υποστήριξη του πυρήνα για
λίστες ελέγχου πρόσβασης (access control lists). Τα
ACLs εξαρτιούνται από τη χρήση εκτεταμένων ιδιοτήτων
και από το σύστημα αρχείων UFS2, και περιγράφονται
με λεπτομέρεια στο . Τα ACLs
είναι ενεργοποιημένα από προεπιλογή, και δεν θα πρέπει να τα
απενεργοποιήσετε από τον πυρήνα αν έχουν χρησιμοποιηθεί στο παρελθόν σε
κάποιο σύστημα αρχείων, καθώς αυτό θα τα αφαιρέσει από τα αρχεία,
αλλάζοντας έτσι τον τρόπο προστασίας τους με απρόβλεπτους τρόπους.
options UFS_DIRHASH # Improve performance on big directoriesΜε την επιλογή αυτή, περιλαμβάνονται λειτουργίες που αυξάνουν την
ταχύτητα πρόσβασης του δίσκου σε μεγάλους καταλόγους, με κόστος τη χρήση
επιπρόσθετης μνήμης. Φυσιολογικά, θα θέλετε να κρατήσετε την επιλογή
αυτή σε ένα μεγάλο εξυπηρετητή ή σταθμό εργασίας, και να την αφαιρέσετε
όταν χρησιμοποιείτε το &os; σε ένα μικρό σύστημα όπου η μνήμη είναι
περιορισμένη και η ταχύτητα πρόσβασης στο δίσκο είναι λιγότερο
σημαντική, όπως για παράδειγμα σε ένα firewall.options MD_ROOT # MD is a potential root deviceΜε την επιλογή αυτή ενεργοποιείται η υποστήριξη χρήσης ενός
εικονικού δίσκου στη μνήμη RAM (ramdrive) για χρήση ως συσκευή root.
kernel optionsNFSkernel optionsNFS_ROOToptions NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENTΤο δικτυακό σύστημα αρχείων. Αν δεν έχετε σκοπό να προσαρτήσετε
συστήματα αρχείων από άλλο εξυπηρετητή αρχείων &unix; μέσω TCP/IP,
μπορείτε να μετατρέψετε αυτές τις γραμμές σε σχόλια.kernel optionsMSDOSFSoptions MSDOSFS # MSDOS FilesystemΤο σύστημα αρχείων του &ms-dos;. Αν δεν σκοπεύετε να προσαρτήσετε
δίσκο DOS κατά την εκκίνηση, μπορείτε με ασφάλεια να μετατρέψετε την
επιλογή αυτή σε σχόλιο. Η υποστήριξη θα φορτωθεί αυτόματα την πρώτη
φορά που θα προσαρτήσετε κατάτμηση DOS όπως περιγράψαμε παραπάνω.
Επίσης, το εξαιρετικό πρόγραμμα
emulators/mtools σας επιτρέπει να
έχετε πρόσβαση σε δισκέτες DOS χωρίς να χρειάζεται να τις προσαρτήσετε
και να αποπροσαρτήσετε (και επίσης δεν απαιτεί τη χρήση του
MSDOSFS).options CD9660 # ISO 9660 FilesystemΤο σύστημα αρχείων ISO 9660 για CDROM. Μετατρέψτε το σε σχόλιο αν
δεν έχετε οδηγό CDROM ή αν σπάνια προσαρτάτε CD δεδομένων (καθώς θα
φορτωθεί δυναμικά την πρώτη φορά που θα προσαρτήσετε τέτοιο CD ). Τα
μουσικά CD δεν χρειάζονται αυτό το σύστημα αρχείων.options PROCFS # Process filesystem (requires PSEUDOFS)Αυτό το σύστημα αρχείων περιέχει τις διεργασίες του συστήματος.
Πρόκειται για ένα εικονικό σύστημα αρχείων το οποίο
προσαρτάται στον κατάλογο /proc και επιτρέπει σε
προγράμματα όπως το &man.ps.1; να δίνουν περισσότερες πληροφορίες για
τις διεργασίες που εκτελούνται. Η χρήση του PROCFS
δεν απαιτείται στις περισσότερες περιπτώσεις, καθώς τα περισσότερα
εργαλεία παρακολούθησης και εκσφαλμάτωσης έχουν προσαρμοστεί να
εκτελούνται χωρίς το PROCFS. Στις νέες εγκαταστάσεις,
αυτό το σύστημα αρχείων δεν προσαρτάται από προεπιλογή.options PSEUDOFS # Pseudo-filesystem frameworkΠυρήνες της σειράς 6.Χ που χρησιμοποιούν το
PROCFS πρέπει επίσης να παρέχουν υποστήριξη για το
PSEUDOFS.options GEOM_GPT # GUID Partition Tables.Με την επιλογή αυτή δίνεται η δυνατότητα ύπαρξης μεγάλου αριθμού
κατατμήσεων σε ένα μόνο δίσκο.options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]Συμβατότητα με το 4.3BSD. Αφήστε την επιλογή αυτή ενεργή: κάποια
προγράμματα θα συμπεριφέρονται παράξενα αν την απενεργοποιήσετε.options COMPAT_FREEBSD4 # Compatible with &os;4Η επιλογή αυτή απαιτείται σε συστήματα &os; 5.X &i386; και
Alpha για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί σε
παλιότερες εκδόσεις του &os; και οι οποίες χρησιμοποιούν παλιές
διεπαφές και κλήσεις συστήματος. Συνίσταται να υπάρχει αυτή η επιλογή
σε όλα τα συστήματα &i386; και Alpha τα οποία εκτελούν παλιότερες
εφαρμογές. Αρχιτεκτονικές όπως η ia64 και η &sparc64; που άρχισαν να
υποστηρίζονται από την έκδοση 5.Χ και μετά δεν χρειάζονται αυτή την
επιλογή.options COMPAT_FREEBSD5 # Compatible with &os;5Η επιλογή αυτή απαιτείται στο &os; 6.X και άνω για την
υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os; 5.X και
χρησιμοποιούν τις αντίστοιχες κλήσεις συστήματος.options SCSI_DELAY=5000 # Delay (in ms) before probing SCSIΜε την επιλογή αυτή ο πυρήνας περιμένει 5 δευτερόλεπτα πριν
ανιχνεύσει κάθε συσκευή SCSI στο σύστημα σας. Αν έχετε μόνο IDE δίσκους
μπορείτε να την αγνοήσετε, διαφορετικά μπορείτε να δοκιμάσετε να
μειώσετε τον αριθμό αυτό, για να επιταχύνετε την εκκίνηση. Φυσικά, αν το
κάνετε αυτό και ανακαλύψετε ότι το &os; έχει πρόβλημα στην αναγνώριση
των συσκευών σας, θα πρέπει να την ανεβάσετε ξανά.options KTRACE # ktrace(1) supportΗ επιλογή αυτή ενεργοποιεί το tracing των διεργασιών του πυρήνα, το
οποίο είναι χρήσιμο στην εκσφαλμάτωση.options SYSVSHM # SYSV-style shared memoryΗ επιλογή αυτή ενεργοποιεί την κοινόχρηστη μνήμη σύμφωνα με το
πρότυπο του System V. Η πλέον κοινή χρήση της, είναι η
επέκταση XSHM στα Χ η οποία χρησιμοποιείται αυτόματα από πολλές βαριές
εφαρμογές γραφικών για καλύτερη ταχύτητα. Αν χρησιμοποιείτε Χ,
σίγουρα θέλετε να περιλάβετε αυτή την επιλογή.options SYSVMSG # SYSV-style message queuesΥποστήριξη για μηνύματα του System V. Η επιλογή αυτή προσθέτει
μόνο μερικές εκατοντάδες bytes στον πυρήνα.options SYSVSEM # SYSV-style semaphoresΥποστήριξη σηματοφορέων του System V. Χρησιμοποιείται λιγότερο
συχνά, αλλά προσθέτει μόνο μερικές εκατοντάδες bytes στον πυρήνα.
Η επιλογή της εντολής &man.ipcs.1; θα σας
δείξει ποιες διεργασίες χρησιμοποιούν κάθε μια από αυτές τις
λειτουργίες του System V.options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensionsΕπεκτάσεις πραγματικού χρόνου (Real-time) που προστέθηκαν στο
&posix; το 1993. Χρησιμοποιείται από κάποιες εφαρμογές στη συλλογή των
ports (όπως το &staroffice;).options KBD_INSTALL_CDEV # install a CDEV entry in /devΗ επιλογή αυτή είναι απαραίτητη για τη δημιουργία του αρχείου
συσκευής πληκτρολογίου στον κατάλογο /dev.options ADAPTIVE_GIANT # Giant mutex is adaptive.Το Giant είναι το όνομα ενός συστήματος αμοιβαίου αποκλεισμού
(sleep mutex) το οποίο προστατεύει ένα μεγάλο αριθμό πόρων του πυρήνα.
Στις μέρες μας, αυτό θεωρείται ανεπίτρεπτο από πλευράς απόδοσης και
αντικαθίσταται με κλειδώματα τα οποία προστατεύουν συγκεκριμένους
πόρους. Η επιλογή ADAPTIVE_GIANT επιτρέπει στο Giant
να συμπεριληφθεί στο σετ των mutexes που μπορούν να εκτελεστούν
επιλεκτικά. Έτσι, αν ένα νήμα θέλει να κλειδώσει το Giant mutex, αλλά
αυτό είναι ήδη κλειδωμένο από ένα νήμα σε μια άλλη CPU, το πρώτο νήμα
θα συνεχίσει να εκτελείται, και θα περιμένει για την απελευθέρωση του
κλειδώματος. Φυσιολογικά, το νήμα θα επέστρεφε στην κατάσταση ύπνου
(sleep) και θα περίμενε για την επόμενη ευκαιρία εκτέλεσης του. Αν δεν
είστε σίγουρος, αφήστε αυτή την επιλογή ενεργή.Σημειώστε ότι από το &os; 8.0-CURRENT και τις επόμενες εκδόσεις,
όλα τα mutexes έχουν από προεπιλογή τη δυνατότητα προσαρμογής, εκτός
αν έχει επίτηδες γίνει διαφορετική ρύθμιση, χρησιμοποιώντας την
επιλογή NO_ADAPTIVE_MUTEXES κατά τη μεταγλώττιση.
Το Giant έχει επίσης δυνατότητα προσαρμογής πλέον, και έτσι η
επιλογή ADAPTIVE_GIANT έχει αφαιρεθεί από το
αρχείο ρυθμίσεων πυρήνα.kernel optionsSMPdevice apic # I/O APICΗ συσκευή apic επιτρέπει τη χρήση του I/O APIC για την παράδοση των
interrupts (διακοπών). Η συσκευή apic μπορεί να χρησιμοποιηθεί τόσο σε
πυρήνες για ένα επεξεργαστή (UP) όσο και για πολλαπλούς (SMP), αλλά στη
δεύτερη περίπτωση είναι απαραίτητη. Προσθέστε την επιλογή
options SMP για να έχετε υποστήριξη πολλαπλών
επεξεργαστών.Η συσκευή apic υπάρχει μόνο στην αρχιτεκτονική i386, η γραμμή αυτή
δεν θα πρέπει να χρησιμοποιηθεί σε άλλες αρχιτεκτονικές.device eisaΘα πρέπει να συμπεριλάβετε την επιλογή αυτή αν έχετε μητρική με
δίαυλο τύπου EISA. Ενεργοποιείται έτσι η αυτόματη ανίχνευση και ρύθμιση
όλων των συσκευών στο δίαυλο EISA.device pciΘα πρέπει να συμπεριλάβετε αυτή την επιλογή αν έχετε μητρική με
δίαυλο PCI. Ενεργοποιείται έτσι η αυτόματη ανίχνευση των καρτών PCI και
η επικοινωνία μεταξύ των διαύλων PCI και ISA.# Floppy drives
device fdcΠρόκειται για τον ελεγκτή μονάδας δισκέτας.# ATA and ATAPI devices
device ataΑυτός ο οδηγός υποστηρίζει όλες τις συσκευές τύπου ATA και ATAPI.
Χρειάζεστε μόνο μια καταχώρηση device ata για να
ανιχνεύσει ο πυρήνας όλες τις συσκευές ATA/ATAPI τύπου PCI στα σύγχρονα
μηχανήματα.device atadisk # ATA disk drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη δίσκων ATA.device ataraid # ATA RAID drivesΗ επιλογή αυτή απαιτείται μαζί με τοdevice ata
για την υποστήριξη δίσκων ATA RAID.
device atapicd # ATAPI CDROM drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη οδηγών ATAPI CDROM.device atapifd # ATAPI floppy drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη οδηγών δισκέτας ATAPI.device atapist # ATAPI tape drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη μονάδων ταινίας ATAPI.options ATA_STATIC_ID # Static device numberingΜε την επιλογή αυτή, ο αριθμός του ελεγκτή γίνεται στατικός. Χωρίς
αυτή, οι αριθμοί συσκευών αποδίδονται δυναμικά.# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50Ελεγκτές SCSI. Μπορείτε να μετατρέψετε σε σχόλιο οποιονδήποτε δεν
έχετε στο σύστημα σας. Αν το σύστημα σας έχει μόνο συσκευές IDE,
μπορείτε να αφαιρέσετε όλες τις γραμμές. Οι γραμμές τύπου
*_REG_PRETTY_PRINT χρησιμοποιούνται για να δίνουν
περισσότερες διαγνωστικές πληροφορίες για τους αντίστοιχους οδηγούς.
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)Περιφερειακά SCSI. Μπορείτε και πάλι να μετατρέψετε σε σχόλιο όσες
συσκευές δεν έχετε, ή αν έχετε μόνο συσκευές IDE, μπορείτε να
αφαιρέσετε εντελώς αυτές τις γραμμές.Ο οδηγός USB &man.umass.4; και κάποιοι άλλοι οδηγοί χρησιμοποιούν
το υποσύστημα SCSI αν και δεν είναι πραγματικές SCSI συσκευές. Για το
λόγο αυτό, σιγουρευτείτε ότι δεν αφαιρέσατε την υποστήριξη SCSI αν
περιλαμβάνονται τέτοιοι οδηγοί στο αρχείο ρύθμισης του πυρήνα σας.
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAIDΥποστηριζόμενοι ελεγκτές RAID. Αν δεν έχετε κανένα από αυτούς,
μπορείτε να τους μετατρέψετε σε σχόλια ή να τους αφαιρέσετε εντελώς.
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controllerΟ ελεγκτής πληκτρολογίου (atkbdc) παρέχει
υπηρεσίες I/O για πληκτρολόγια τύπου AT και συσκευές κατάδειξης
(ποντίκια) τύπου PS/2. Ο ελεγκτής απαιτείται για τη λειτουργία του
οδηγού πληκτρολογίου (atkbd) και του οδηγού
συσκευής κατάδειξης PS/2 (psm).device atkbd # AT keyboardΟ οδηγός atkbd, μαζί με τον ελεγκτή
atkbdc, παρέχει πρόσβαση σε πληκτρολόγιο τύπου AT 84
ή εκτεταμένου AT το οποίο συνδέεται στον ελεγκτή πληκτρολογίου.device psm # PS/2 mouseΧρησιμοποιήστε αυτή τη συσκευή αν το ποντίκι σας συνδέεται στην
θύρα PS/2.device kbdmux # keyboard multiplexerΒασική υποστήριξη πολυπλεξίας πληκτρολογίων. Αν δε σκοπεύετε να
χρησιμοποιήσετε περισσότερα από ένα πληκτρολόγια στο σύστημα σας,
μπορείτε με ασφάλεια να αφαιρέσετε αυτή τη γραμμή.device vga # VGA video card driverΤο πρόγραμμα οδήγησης της κάρτας γραφικών.
device splash # Splash screen and screen saver supportΓραφική οθόνη (splash) κατά την εκκίνηση! Η συσκευή αυτή
χρησιμοποιείται επίσης από τα προγράμματα προφύλαξης οθόνης (κονσόλας).
# syscons is the default console driver, resembling an SCO console
device scΟ οδηγός sc είναι ο προεπιλεγμένος οδηγός
κονσόλας και προσομοιώνει κονσόλα τύπου SCO. Καθώς τα περισσότερα
προγράμματα πλήρους οθόνης αποκτούν πρόσβαση στην κονσόλα μέσω κάποιας
βιβλιοθήκης βάσης δεδομένων τερματικών όπως το
termcap, δεν θα πρέπει να έχει σημασία αν
χρησιμοποιήσετε αυτόν τον οδηγό ή τον vt ο οποίος
είναι συμβατός με κονσόλα VT220. Μετά την είσοδο σας
στο σύστημα, θέστε την μεταβλητή TERM στην τιμή
scoansi αν κάποια προγράμματα πλήρους οθόνης έχουν
πρόβλημα όταν χρησιμοποιείται αυτή η κονσόλα.# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursorΠρόκειται για ένα οδηγό κονσόλας συμβατό με VT220, και με προς τα
πίσω συμβατότητα με VT100/102. Λειτουργεί καλά σε κάποιους φορητούς
υπολογιστές που έχουν ασυμβατότητα υλικού με τον sc.
Μετά την είσοδο σας στο σύστημα, θέστε την μεταβλητή TERM
σε vt100 ή vt220. Ο οδηγός μπορεί
επίσης να αποδειχθεί χρήσιμος όταν συνδέεστε σε μεγάλο αριθμό από
διαφορετικά μηχανήματα μέσω δικτύου, όπου δεν υπάρχουν καταχωρήσεις για
τη συσκευή sc στο termcap ή
terminfo — το vt100
θα πρέπει να είναι διαθέσιμο πρακτικά σε κάθε πλατφόρμα.device agpΣυμπεριλάβετε τη συσκευή αυτή αν έχετε AGP κάρτα στο σύστημα σας.
Θα ενεργοποιήσετε με αυτό τον τρόπο την υποστήριξη για AGP και AGP GART
για μητρικές που υποστηρίζουν αυτές τις λειτουργίες.APM# Power management support (see NOTES for more options)
#device apmΥποστήριξη Advanced Power Management (προχωρημένης διαχείρισης
ισχύος). Χρήσιμο για φορητά, αν και η επιλογή αυτή, από προεπιλογή,
είναι ανενεργή στον πυρήνα GENERIC.# Add suspend/resume support for the i8254.
device pmtimerΠρόγραμμα οδήγησης μετρητή χρόνου (Timer) για συμβάντα που
σχετίζονται με διαχείριση ενέργειας όπως το APM και το ACPI.# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) busΥποστήριξη PCMCIA. Την χρειάζεστε αν χρησιμοποιείτε φορητό
υπολογιστή.# Serial (COM) ports
device sio # 8250, 16[45]50 based serial portsΠρόκειται για τις σειριακές θύρες οι οποίες είναι γνωστές στον κόσμο
του &ms-dos;/&windows; ως θύρες COM.Αν έχετε εσωτερικό μόντεμ στη θύρα COM4
και έχετε και σειριακή θύρα COM2, θα πρέπει
να αλλάξετε το IRQ του μόντεμ στο 2 (για περίεργους τεχνικούς λόγους,
IRQ2 = IRQ 9) για να μπορέσετε να το χρησιμοποιήσετε από το &os;. Αν
έχετε κάρτα πολλαπλών σειριακών εξόδων, ελέγξτε τη σελίδα manual του
&man.sio.4; για περισσότερες πληροφορίες σχετικά με τις σωστές τιμές
που πρέπει να προσθέσετε στο /boot/device.hints.
Κάποιες κάρτες γραφικών (ειδικά αυτές που βασίζονται σε ολοκληρωμένα
S3) χρησιμοποιούν διευθύνσεις IO μορφής 0x*2e8,
και καθώς πολλές φτηνές σειριακές κάρτες δεν αποκωδικοποιούν πλήρως
τη 16 bit περιοχή διευθύνσεων, συγκρούονται με τις κάρτες αυτές,
καθιστώντας έτσι πρακτικά άχρηστη τη θύρα
COM4.Κάθε σειριακή πόρτα χρειάζεται να έχει μια μοναδική IRQ (εκτός
αν χρησιμοποιείτε κάρτα πολλαπλών σειριακών που υποστηρίζει
κοινή χρήση interrupts), και έτσι δεν μπορούν να χρησιμοποιηθούν τα
προεπιλεγμένα interrupts για την COM3 και την
COM4.# Parallel port
device ppcΠρόκειται για την παράλληλη θύρα στο δίαυλο ISA.device ppbus # Parallel port bus (required)Παρέχει υποστήριξη για το δίαυλο της παράλληλης θύρας.device lpt # PrinterΠαρέχει υποστήριξη για εκτυπωτές παράλληλης θύρας.Χρειάζεστε και τα τρία παραπάνω για να ενεργοποιήσετε την
υποστήριξη εκτυπωτή παράλληλης θύρας.device plip # TCP/IP over parallelΠρόκειται για το πρόγραμμα οδήγησης δικτύου μέσω παράλληλης θύρας.
device ppi # Parallel port interface deviceΠρόγραμμα I/O γενικής χρήσης (geek port) + IEEE1284
I/O.#device vpo # Requires scbus and dazip driveΧρησιμοποιείται για μονάδα δισκέτας Iomega Zip. Απαιτεί υποστήριξη
από τους οδηγούς scbus και da.
Η καλύτερη απόδοση επιτυγχάνεται με θύρα σε κατάσταση λειτουργίας
EPP 1.9.#device pucΕνεργοποιήστε αυτή τη συσκευή αν έχετε μια χαζή
σειριακή ή παράλληλη PCI κάρτα η οποία υποστηρίζεται από το πρόγραμμα
οδήγησης &man.puc.4; (glue driver).# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon)
device vx # 3Com 3c590, 3c595 (Vortex)Διάφορα προγράμματα οδήγησης για PCI κάρτες δικτύου. Μετατρέψτε σε
σχόλιο ή αφαιρέστε τελείως όσες δεν υπάρχουν στο σύστημα σας.# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus supportΗ υποστήριξη διαύλου MII απαιτείται για κάποιες κάρτες δικτύου
Ethernet PCI 10/100, ειδικά για αυτές που χρησιμοποιούν πομποδέκτη
συμβατό με MII ή έχουν διεπαφή ελέγχου που λειτουργεί παρόμοια με τον
MII. Προσθέτοντας device miibus στο αρχείο ρύθμισης
του πυρήνα, θα έχετε υποστήριξη για το γενικό API του miibus και για
όλους τους οδηγούς PHY, συμπεριλαμβανομένου και ενός γενικού για PHYs
που δεν υποστηρίζονται από κάποιο συγκεκριμένο οδηγό.device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nge # NatSemi DP83820 gigabit ethernet
device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC)
device vge # VIA VT612x gigabit ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Προγράμματα οδήγησης που χρησιμοποιούν τον κώδικα του διαύλου
ελέγχου MII.# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device leΠρογράμματα οδήγησης καρτών Ethernet τύπου ISA. Δείτε το αρχείο
/usr/src/sys/i386/conf/NOTES
για λεπτομέρειες σχετικά με το ποιες κάρτες υποστηρίζονται από ποιον
οδηγό.# Wireless NIC cards
device wlan # 802.11 supportΓενική υποστήριξη του 802.11. Η γραμμή αυτή απαιτείται για ασύρματη
δικτύωση.device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP supportΥποστήριξη κρυπτογράφησης για συσκευές 802.11. Οι γραμμές αυτές
χρειάζονται αν σκοπεύετε να χρησιμοποιήσετε κρυπτογράφηση και πρωτόκολλα
ασφαλείας 802.11i.device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.Υποστήριξη για διάφορες ασύρματες κάρτες.# Pseudo devices
device loop # Network loopbackΠρόκειται για τη γενική συσκευή εσωτερικού δικτύου (loopback) του
TCP/IP. Η σύνδεση μέσω telnet ή FTP στο localhost
(γνωστό επίσης και ως 127.0.0.1)
πραγματοποιείται μέσω αυτής της συσκευής. Η ύπαρξη αυτής της συσκευής
είναι υποχρεωτική.device random # Entropy deviceΚρυπτογραφικά ασφαλής γεννήτρια τυχαίων αριθμών.device ether # Ethernet supportΗ γραμμή ether απαιτείται μόνο αν έχετε κάρτα
δικτύου Ethernet. Περιέχει γενικό κώδικα για το πρωτόκολλο Ethernet.
device sl # Kernel SLIPΗ γραμμή sl παρέχει υποστήριξη SLIP. Η υποστήριξη
αυτή έχει σχεδόν ολοκληρωτικά ξεπεραστεί από το PPP, το οποίο είναι
ευκολότερο στη ρύθμιση, υποστηρίζει καλύτερα τις συνδέσεις μέσω μόντεμ,
και παρέχει καλύτερες δυνατότητες.device ppp # Kernel PPPΗ γραμμή αυτή είναι για υποστήριξη PPP μέσω του πυρήνα για
επιλογικές (dial-up) συνδέσεις. Υπάρχει επίσης μια έκδοση PPP η οποία
υλοποιείται ως εφαρμογή χρήστη (userland), χρησιμοποιεί το
tun και προσφέρει περισσότερη ευελιξία και
λειτουργίες όπως κλήση κατά απαίτηση (demand dialing).device tun # Packet tunnel.Η συσκευή αυτή χρησιμοποιείται από το πρόγραμμα PPP χρήστη
(userland). Δείτε το τμήμα PPP
αυτού του βιβλίου για περισσότερες πληροφορίες.
device pty # Pseudo-ttys (telnet etc)Πρόκειται για συσκευή ψευδό-τερματικού ή προσομοίωσης
θύρας login. Χρησιμοποιείται για εισερχόμενες συνδέσεις
telnet και rlogin, από το
xterm, και από κάποιες άλλες εφαρμογές όπως
το Emacs.device md # Memory disksΨευτό-συσκευές δίσκου με χρήση μνήμης (ramdrives).device gif # IPv6 and IPv4 tunnelingΗ συσκευή αυτή υλοποιεί IPv6 σε IPv4 tunneling, IPv4 σε IPv6
tunneling, IPv4 σε IPv4 tunneling, και IPv6 σε IPv6 tunneling. Η συσκευή
gifαυτό-κλωνοποιείται, και δημιουργεί
τα αντίστοιχα αρχεία συσκευών όπως απαιτούνται.device faith # IPv6-to-IPv4 relaying (translation)Αυτή η ψεύδο-συσκευή συλλαμβάνει πακέτα που στέλνονται προς αυτήν
και τα ανακατευθύνει προς το δαίμονα μετάφρασης του IPv4/IPv6.# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filterΠρόκειται για το φίλτρο πακέτων Berkeley. Αυτή η ψεύδο-συσκευή
επιτρέπει σε κάρτες δικτύου να λειτουργούν σε κατάσταση promiscuous
(πλήρους ακρόασης), συλλαμβάνοντας με αυτό τον τρόπο κάθε πακέτο ενός
δικτύου (π.χ. Ethernet). Τα πακέτα αυτά μπορεί να αποθηκεύονται στο
δίσκο ή να εξετάζονται με τη βοήθεια του προγράμματος &man.tcpdump.1;.
Η συσκευή &man.bpf.4; χρησιμοποιείται επίσης από το
&man.dhclient.8; για την ανάκτηση της διεύθυνσης IP της προεπιλεγμένης
πύλης κ.ο.κ. Αν χρησιμοποιείτε DHCP, αφήστε αυτή την επιλογή
ενεργοποιημένη.# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB EthernetΥποστήριξη για διάφορες συσκευές USB.# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)Υποστήριξη για διάφορες συσκευές Firewire.Για περισσότερες πληροφορίες και επιπλέον συσκευές που
υποστηρίζονται από το &os;, δείτε το αρχείο
/usr/src/sys/i386/conf/NOTES
.Λειτουργία με Μεγάλη Ποσότητα Μνήμης (PAE)
Physical Address Extensions
(PAE)large memoryΜηχανήματα με μεγάλη ποσότητα μνήμης, χρειάζονται πρόσβαση σε
μνήμη που υπερβαίνει το όριο των 4 gigabytes των Εικονικών
Διευθύνσεων Χρήστη+Πυρήνα (User+Kernel Virtual Address,
KVA). Εξαιτίας αυτού του περιορισμού, η Intel
πρόσθεσε υποστήριξη για 36bit φυσικών διευθύνσεων, από τον
επεξεργαστή &pentium; Pro και μετά.Η δυνατότητα Επέκτασης Φυσικών Διευθύνσεων, (Physical Address
Extension, PAE) των &intel; &pentium; Pro και
μεταγενέστερων CPU, επιτρέπει χρήση μνήμης ως 64 gigabytes. To &os;
παρέχει υποστήριξη για τη δυνατότητα αυτή μέσω της ρύθμισης πυρήνα
, η οποία διατίθεται για όλες τις τρέχουσες
σταθερές εκδόσεις του &os;. Λόγω περιορισμών στην αρχιτεκτονική του
συστήματος μνήμης της Intel, δεν γίνεται διάκριση για τη μνήμη που
βρίσκεται πάνω ή κάτω από τα 4 gigabytes. Η μνήμη που εκχωρείται
πάνω από τα 4 gigabytes, απλώς προστίθεται στο μέγεθος της
διαθέσιμης μνήμης.Για να ενεργοποιήσετε την υποστήριξη PAE
στον πυρήνα, απλώς προσθέστε την ακόλουθη γραμμή στο αρχείο
των ρυθμίσεων σας:options PAEΗ υποστήριξη PAE στο &os; είναι διαθέσιμη
μόνο για επεξεργαστές αρχιτεκτονικής &intel; IA-32. Θα πρέπει
επίσης να σημειώσουμε ότι η υποστήριξη PAE στο
&os; δεν έχει δοκιμαστεί εκτεταμένα, και θα πρέπει να θεωρείται
ποιότητας beta σε σχέση με τα άλλα σταθερά χαρακτηριστικά του
&os;.Η υποστήριξη PAE στο &os; υπόκειται σε
κάποιους περιορισμούς:Μια διαδικασία δεν έχει πρόσβαση σε περισσότερα από 4
gigabytes χώρου VM.Οδηγοί συσκευών που δεν χρησιμοποιούν τη διεπαφή
&man.bus.dma.9; ίσως προκαλέσουν καταστροφή δεδομένων σε ένα
PAE πυρήνα και για το λόγο αυτό δεν
συνίσταται η χρήση τους. Στο &os; παρέχεται ένα αρχείο
ρυθμίσεων PAE στο οποίο έχουν εξαιρεθεί
όλα τα προγράμματα οδήγησης που είναι γνωστό ότι δεν δουλεύουν
σε πυρήνα τύπου PAE.Κάποιες μεταβλητές συστήματος (system tunables) εξακριβώνουν
τη χρήση της μνήμης, βλέποντας το ποσό της διαθέσιμης φυσικής
μνήμης. Αυτές οι μεταβλητές μπορεί να χρησιμοποιήσουν
αδικαιολόγητα μεγάλη ποσότητα μνήμης, λόγω της φύσης του
συστήματος PAE. Ένα τέτοιο παράδειγμα είναι η
ρύθμιση sysctl η οποία ελέγχει
το μέγιστο αριθμό vnodes που επιτρέπονται στον πυρήνα. Είναι
σκόπιμο να ρυθμίσετε αυτή και άλλες παρόμοιες παραμέτρους σε
λογικές τιμές.Ίσως χρειαστεί να ρυθμίσετε τις εικονικές διευθύνσεις του
πυρήνα (KVA) ή να μειώσετε την ποσότητα
κάποιου συγκεκριμένου πόρου που έχει μεγάλη χρήση (δείτε
παραπάνω) για να αποφύγετε την εξάντληση του
KVA. Μπορείτε να αυξήσετε το μέγεθος του
KVA μέσω της επιλογής
.Για λόγους σταθερότητας και απόδοσης, σας συμβουλεύουμε να
διαβάσετε τη σελίδα manual &man.tuning.7;. Επίσης η σελίδα
&man.pae.4; περιέχει ενημερωμένες πληροφορίες σχετικά με την
υποστήριξη PAE στο &os;.Αν Κάτι Πάει ΛάθοςΥπάρχουν τέσσερις κατηγορίες προβλημάτων που μπορούν να
παρουσιαστούν όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα:Αποτυχία της εντολής config:Αν η εντολή &man.config.8; αποτυγχάνει όταν της δίνετε την
περιγραφή του πυρήνα σας, έχετε κατά πάσα πιθανότητα, κάνει
κάποιο απλό λάθος. Ευτυχώς, η &man.config.8; θα σας δείξει τον
αριθμό γραμμής στον οποίο συνάντησε το πρόβλημα, και έτσι θα
μπορέσετε εύκολα να το εντοπίσετε. Για παράδειγμα, αν δείτε:
config: line 17: syntax errorΒεβαιωθείτε ότι η λέξη-κλειδί στη γραμμή αυτή είναι σωστή,
συγκρίνοντας τη με την αντίστοιχη στο αρχείο
GENERIC ή σε άλλο αρχείο αναφοράς.Αποτυχία της εντολής make:Αν αποτυγχάνει η εντολή make, συνήθως αυτό
σημαίνει κάποιο λάθος στο αρχείο ρυθμίσεων το οποίο δεν είναι
αρκετά σοβαρό για να το καταλάβει η &man.config.8;. Κοιτάξτε ξανά
το αρχείο ρυθμίσεων σας και αν ακόμα δεν μπορείτε να εντοπίσετε το
πρόβλημα, στείλτε το μαζί με το αρχείο με mail στην
&a.questions; και θα εντοπιστεί πολύ γρήγορα.Ο πυρήνας δεν εκκινεί:Αν ο νέος σας πυρήνας δεν εκκινεί ή αποτυγχάνει να αναγνωρίσει
τις συσκευές σας, μην πανικοβάλλεστε! Ευτυχώς, το &os; έχει ένα
εξαιρετικό μηχανισμό για να επανέλθετε από μη-συμβατούς πυρήνες.
Απλώς επιλέξτε τον πυρήνα από τον οποίο θέλετε να ξεκινήσετε μέσω
του συστήματος εκκίνησης (boot loader) του &os;. Έχετε πρόσβαση
σε αυτό, την ώρα που εμφανίζεται το μενού επιλογών εκκίνησης.
Επιλέξτε Escape to a loader prompt, αριθμός έξι.
Στην προτροπή που εμφανίζεται, γράψτε την εντολή
unload kernel και έπειτα γράψτε
boot /boot/kernel.old/kernel
, ή το όνομα αρχείου ενός άλλου πυρήνα που ξεκινάει
κανονικά. Όταν φτιάχνετε ένα νέο πυρήνα, είναι πάντα καλή ιδέα
να έχετε πρόχειρο ένα πυρήνα που ξέρετε ότι δουλεύει.Αφού εκκινήσετε με ένα καλό πυρήνα, μπορείτε να ελέγξετε το
αρχείο ρυθμίσεων σας από την αρχή, και να προσπαθήσετε ξανά.
Μια χρήσιμη πηγή πληροφοριών είναι το αρχείο
/var/log/messages το οποίο μεταξύ άλλων
καταγράφει όλα τα μηνύματα του πυρήνα από κάθε επιτυχημένη
εκκίνηση. Επίσης η εντολή &man.dmesg.8; θα σας δείξει όλα τα
μηνύματα του πυρήνα της τρέχουσας εκκίνησης.Αν έχετε πρόβλημα στη δημιουργία πυρήνα, βεβαιωθείτε ότι
έχετε κρατήσει ένα πυρήνα GENERIC, ή
κάποιο άλλο που γνωρίζετε ότι λειτουργεί, χρησιμοποιώντας ένα
διαφορετικό όνομα ώστε να μη διαγραφεί στην επόμενη
μεταγλώττιση. Δεν μπορείτε να βασιστείτε στον πυρήνα
kernel.old, γιατί κάθε φορά που
εγκαθιστάτε νέο πυρήνα, το kernel.old
αντικαθίσταται με τον τελευταίο εγκατεστημένο πυρήνα, ο οποίος
μπορεί να μην λειτουργεί. Επίσης, όσο το δυνατόν πιο σύντομα,
μετακινήστε τον πυρήνα που λειτουργεί στην σωστή θέση,
/boot/kernel, διαφορετικά
εντολές όπως η &man.ps.1; ίσως να μη λειτουργούν σωστά. Για να
το κάνετε αυτό, απλώς μετονομάστε τον κατάλογο που περιέχει τον
καλό πυρήνα, π.χ:&prompt.root; mv /boot/kernel /boot/kernel.bad
&prompt.root; mv /boot/kernel.good /boot/kernelΟ νέος πυρήνας λειτουργεί, αλλά η &man.ps.1; δεν λειτουργεί
πλέον:Αν εγκαταστήσετε πυρήνα διαφορετικής έκδοσης από αυτόν με τον
οποίο έχουν φτιαχτεί τα εργαλεία συστήματος, για παράδειγμα εάν
βάλετε ένα πυρήνα της σειράς -CURRENT σε ένα σύστημα -RELEASE,
πολλές από τις εντολές που σχετίζονται με την κατάσταση του
συστήματος όπως ή &man.ps.1; και η &man.vmstat.8; δεν θα
λειτουργούν πλέον. Θα πρέπει να
μεταγλωττίσετε και να εγκαταστήσετε όλο
το βασικό σύστημα (world) χρησιμοποιώντας ίδια έκδοση του
πηγαίου κώδικα με αυτή του πυρήνα σας. Αυτός είναι και ένας λόγος
για τον οποίο δεν είναι συνήθως καλή ιδέα να χρησιμοποιείτε
διαφορετική έκδοση πυρήνα από το υπόλοιπο του λειτουργικού
συστήματος.
diff --git a/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml b/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml
index 48e89efe7d..6204bac3e5 100644
--- a/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml
+++ b/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml
@@ -1,1664 +1,1664 @@
Εγκατάσταση Εφαρμογών: Πακέτα και PortsΣύνοψηportsPackagesΤο &os; συνοδεύεται από μία πλούσια συλλογή από προγράμματα σαν
μέρος του βασικού συστήματος. Όμως, λίγα μπορεί να κάνει κάποιος πριν
βρεθεί στην ανάγκη να εγκαταστήσει μια πρόσθετη εφαρμογή για να
υλοποιήσει μια πραγματική εργασία. Το &os; παρέχει δυο συμπληρωματικές
τεχνολογίες για να εγκαταστήσετε πρόσθετες εφαρμογές στο σύστημα σας:
τη Συλλογή των Ports (Ports Collection, για εγκατάσταση από τον
πηγαίο κώδικα), και τα πακέτα (packages, για εγκατάσταση από
προ-μεταγλωττισμένα εκτελέσιμα πακέτα). Κάθε μία από τις δυο μεθόδους
μπορεί να χρησιμοποιηθεί για να εγκαταστήσετε τις νεότερες εκδόσεις από
τις αγαπημένες σας εφαρμογές, από τοπικά αποθηκευτικά μέσα ή απευθείας
από το δίκτυο.Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:Πως να εγκαθιστάτε προ-μεταγλωττισμένα πακέτα λογισμικού.Πως να μεταγλωττίζετε πρόσθετο λογισμικό από τον πηγαίο κώδικα
χρησιμοποιώντας την Συλλογή των Ports.Πως να κάνετε απεγκατάσταση εγκαταστημένων πακέτων ή
ports.Πως να αλλάζετε τις προκαθορισμένες ρυθμίσεις που χρησιμοποιεί
η Συλλογή των Ports.Πως να βρίσκετε τα κατάλληλα πακέτα λογισμικού.Πως να αναβαθμίζετε τις εφαρμογές σας.Επισκόπησή της εγκατάστασης λογισμικούΑν έχετε χρησιμοποιήσει ένα &unix; σύστημα στο παρελθόν, θα
γνωρίζετε ότι η συνηθισμένη διαδικασία για την εγκατάσταση πρόσθετου
λογισμικού είναι περίπου η παρακάτω:Κατέβασμα του λογισμικού, που μπορεί να
διανέμεται σε μορφή πηγαίου κώδικα, ή σαν εκτελέσιμο.Αποσυμπίεση του λογισμικού από την μορφή της διανομής του
(συνήθως ένα tarball συμπιεσμένο με το &man.compress.1;,
&man.gzip.1;, ή &man.bzip2.1;).Εντοπισμός της τεκμηρίωσης (πιθανώς ένα αρχείο
INSTALL ή README
ή μερικά αρχεία μέσα σε ένα υποκατάλογο doc/)
και ανάγνωσή τους για το πως θα εγκατασταθεί το λογισμικό.Αν το λογισμικό διανέμεται με τη μορφή πηγαίου κώδικα,
μεταγλώττιση του. Αυτό μπορεί να περιλαμβάνει την επεξεργασία ενός
Makefile, ή την εκτέλεση ενός
configure script, και άλλες εργασίες.Δοκιμή και εγκατάσταση του λογισμικού.Και αυτά μόνο αν όλα πάνε καλά. Αν εγκαθιστάτε ένα λογισμικό που
δεν έχει μεταφερθεί στο &os; ίσως να πρέπει να τροποποιήσετε τον πηγαίο
κώδικα για να δουλέψει σωστά.Αν το θέλετε, μπορείτε να συνεχίσετε να εγκαθιστάτε λογισμικό με
τον παραδοσιακό τρόπο στο &os;. Όμως, το &os;
παρέχει δυο τεχνολογίες που μπορούν να σας γλιτώσουν από πολύ κόπο:
τα πακέτα και τα ports. Την στιγμή που γράφτηκε αυτό το κείμενο,
διατίθονταν με αυτόν τον τρόπο πάνω από &os.numports; πρόσθετες
εφαρμογές.Για οποιαδήποτε εφαρμογή, το αντίστοιχο &os; πακέτο της
είναι ένα μοναδικό αρχείο που πρέπει εσείς να κατεβάσετε.
Το πακέτο περιέχει προ-μεταγλωττισμένα αντίγραφα από όλες τις εντολές
της εφαρμογής, όπως επίσης και αρχεία παραμετροποίησης ή τεκμηρίωσης.
Ένα τέτοιο πακέτο σε μορφή αρχείου, μπορείτε να το χειριστείτε με τις
εντολές διαχείρισής πακέτων του &os;, όπως οι &man.pkg.add.1;,
&man.pkg.delete.1;, &man.pkg.info.1;, και πάει λέγοντας.
Η εγκατάσταση μιας νέας εφαρμογής μπορεί να γίνει με μία μόνο
εντολή.Ένα &os; port για μία εφαρμογή είναι μια συλλογή από αρχεία
σχεδιασμένα για να αυτοματοποιήσουν την διαδικασία μεταγλώττισης της
εφαρμογής από τον πηγαίο κώδικα.Θυμηθείτε ότι υπάρχουν μερικά βήματα που θα πρέπει λογικά να κάνετε
αν μεταγλωττίσετε ένα πρόγραμμα μόνος σας (κατέβασμα,
αποσυμπίεση, προσαρμογή (patching), μεταγλώττιση, εγκατάσταση).
Τα αρχεία που αποτελούν ένα port περιέχουν όλες τις απαραίτητες
πληροφορίες για να επιτρέψουν στο σύστημα να κάνει όλα αυτά για εσάς.
Εσείς εκτελείτε μερικές απλές εντολές, και ο πηγαίος κώδικας για την
εφαρμογή αυτόματα κατεβαίνει, αποσυμπιέζεται,
προσαρμόζεται, μεταγλωττίζεται, και εγκαθίσταται για εσάς.Στην πραγματικότητα, το σύστημα ports μπορεί επίσης να
χρησιμοποιηθεί για να δημιουργηθούν πακέτα που μπορείτε αργότερα να
διαχειριστείτε με την pkg_add και τις άλλες εντολές
διαχείρισής πακέτων που θα αναφερθούν σε λίγο.Τόσο τα πακέτα, όσο και τα ports κατανοούν τις
εξαρτήσεις (dependencies). Ας υποθέσουμε ότι
θέλετε να εγκαταστήσετε μία εφαρμογή που εξαρτάται από μία συγκεκριμένη
βιβλιοθήκη για να λειτουργήσει. Τόσο η εφαρμογή, όσο και η βιβλιοθήκη
διατίθενται ως πακέτα και ports του &os;. Αν χρησιμοποιήσετε την εντολή
pkg_add ή το σύστημα των ports για να εγκαταστήσετε
την εφαρμογή, αμφότερα θα παρατηρήσουν ότι η βιβλιοθήκη δεν είναι
εγκατεστημένη, και αυτόματα θα την εγκαταστήσουν πριν από το
πρόγραμμα.Έχοντας αναφέρει ότι οι δύο τεχνολογίες είναι αρκετά όμοιες, ίσως να
αναρωτιέστε γιατί το &os; προσφέρει και τις δύο. Τα πακέτα και τα
ports αμφότερα έχουν τα δικά τους πλεονεκτήματα, και το τι θα
χρησιμοποιήσετε εξαρτάται από την δική σας προτίμηση.Πλεονεκτήματα των ΠακέτωνΈνα συμπιεσμένο tarball πακέτου είναι συνήθως μικρότερο από
το συμπιεσμένο tarball που περιέχει τον πηγαίο κώδικα για την
εφαρμογή.Τα πακέτα δεν χρειάζονται μεταγλώττιση. Για
μεγάλες εφαρμογές, όπως είναι ο
Mozilla, το
KDE, ή το
GNOME αυτό μπορεί να είναι σημαντικό,
ιδιαίτερα αν βρίσκεστε σε ένα αργό μηχάνημα.Τα πακέτα δεν απαιτούν να κατανοήσετε την διαδικασία
που σχετίζεται με την μεταγλώττιση λογισμικού στο &os;.Πλεονεκτήματα των PortsΤα πακέτα συνήθως είναι μεταγλωττισμένα με συντηρητικές
επιλογές, επειδή πρέπει να λειτουργούν στον μέγιστο αριθμό
συστημάτων. Με εγκατάσταση από το port, μπορείτε να ρυθμίσετε τις
επιλογές μεταγλώττισης (για παράδειγμα) να δημιουργήσουν εκτελέσιμο
κώδικα που να εκμεταλλεύεται τις ικανότητες ενός Pentium 4 ή Athlon
επεξεργαστή.Μερικές εφαρμογές έχουν επιλογές μεταγλώττισης που σχετίζονται
με το τι μπορούν να κάνουν και τι όχι. Για παράδειγμα, ο
Apache μπορεί να μεταγλωττιστεί με ένα
ευρύ φάσμα από επιλογές. Μεταγλωττίζοντας τον από το port, δεν
είναι ανάγκη να δεχτείτε τις προεπιλεγμένες επιλογές, μπορείτε να
κάνετε τις δικές σας.Σε μερικές περιπτώσεις, μπορεί να υπάρχουν πολλαπλά πακέτα
για την ίδια εφαρμογή, με διαφορετικές ρυθμίσεις. Για παράδειγμα,
το Ghostscript διατίθεται ως ένα πακέτο
ghostscript και ένα πακέτο
ghostscript-nox11, αναλόγως αν
θα εγκαταστήσετε ή όχι έναν X11 server. Αυτού του τύπου
οι ρυθμίσεις είναι δυνατές με τα πακέτα, αλλά γρήγορα
γίνονται αδύνατες αν μία εφαρμογή έχει περισσότερες από μία ή δύο
διαφορετικές ρυθμίσεις μεταγλώττισης.Οι συνθήκες των αδειών διανομής από μερικές διανομές
λογισμικού, απαγορεύουν την διανομή εκτελέσιμου κώδικα. Πρέπει να
διανεμηθούν με την μορφή πηγαίου κώδικα.Μερικά άτομα δεν εμπιστεύονται τα έτοιμα εκτελέσιμα.
Τουλάχιστον με τον πηγαίο κώδικα, μπορείτε (θεωρητικά) να τον
διαβάσετε και να ψάξετε για πιθανά προβλήματα μόνος σας.Αν έχετε τοπικά, δικά σας patches, θα χρειαστείτε τον πηγαίο
κώδικα για να τα εφαρμόσετε.Μερικά άτομα γουστάρουν να έχουν τον πηγαίο κώδικα, ώστε να τον
διαβάσουν αν βαρεθούνε, να τον αλλάξουν (hack), να δανειστούν από
αυτόν (αν βέβαια το επιτρέπει η άδεια), κ.λ.π.Για να είστε ενήμερος για τα ανανεωμένα ports, εγγραφείτε στην
&a.ports; και στην &a.ports-bugs;.Πριν εγκαταστήσετε οποιοδήποτε εφαρμογή, πρέπει να ελέγχετε το
για θέματα ασφαλείας
που σχετίζονται με την εφαρμογή σας.Μπορείτε επίσης να εγκαταστήσετε το ports-mgmt/portaudit το οποίο αυτόματα
θα ελέγχει όλες τις εγκαταστημένες εφαρμογές για γνωστά τρωτά
σημεία. Έλεγχος επίσης θα πραγματοποιείται πριν τη μεταγλώττιση
οποιουδήποτε port. Στο ενδιάμεσο, μπορείτε να χρησιμοποιείτε την
εντολή portaudit -F -a αφότου έχετε πρώτα
εγκαταστήσει μερικά πακέτα.Το υπόλοιπο αυτού του κεφαλαίου εξηγεί πως να χρησιμοποιήσετε τα
πακέτα και τα ports για να εγκαταστήσετε και να διαχειριστείτε πρόσθετο
λογισμικό στο &os;.Βρίσκοντας την Εφαρμογή σαςΠριν εγκαταστήσετε οποιαδήποτε εφαρμογή πρέπει να γνωρίζετε τι
θέλετε να κάνει, και πως ονομάζεται η εφαρμογή.Η λίστα των διαθέσιμων εφαρμογών στο &os; μεγαλώνει συνεχώς.
Ευτυχώς, υπάρχουν πολλοί τρόποι να βρείτε αυτό που θέλετε:Στη δικτυακή τοποθεσία του &os; θα βρείτε μια
λίστα από όλες τις διαθέσιμες εφαρμογές, στο http://www.FreeBSD.org/ports/.
Η λίστα αυτή ανανεώνεται συχνά, ενώ υπάρχει και δυνατότητα
αναζήτησης. Τα ports είναι χωρισμένα σε κατηγορίες, και μπορείτε
να αναζητήσετε μία εφαρμογή είτε με το όνομα (αν το ξέρετε), ή να
δείτε όλες τις εφαρμογές που είναι διαθέσιμες σε μια
κατηγορία.FreshPortsΟ Dan Langille διατηρεί το FreshPorts, στο . Το FreshPorts
καταγράφει τις αλλαγές των εφαρμογών στο δέντρο των ports καθώς
συμβαίνουν, επιτρέποντάς σας να παρακολουθείτε ένα
ή περισσότερα ports, και μπορεί να σας στείλει email όταν αυτά
ανανεώνονται.FreshMeatΑν δεν γνωρίζετε το όνομα της εφαρμογής που θέλετε,
δοκιμάστε να χρησιμοποιήσετε ένα site σαν το FreshMeat () για να βρείτε μία
εφαρμογή, και μετά μπορείτε να ελέγξετε ξανά το site του &os; για
να δείτε αν η εφαρμογή έχει γίνει port.Αν ξέρετε το ακριβές όνομα του port, και θέλετε μόνο να
βρείτε σε ποια κατηγορία είναι, μπορείτε να χρησιμοποιήσετε την
εντολή &man.whereis.1;. Απλά γράψτε
whereis αρχείο, όπου
αρχείο είναι το πρόγραμμα που θέλετε να
εγκαταστήσετε. Αν αυτό βρίσκεται στο σύστημα σας, η εντολή θα σας
πει που είναι, όπως παρακάτω:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofΑυτό μας λέει ότι το lsof (ένα εργαλείο
συστήματος) μπορεί να βρεθεί στον κατάλογο
/usr/ports/sysutils/lsof.Επιπρόσθετα, μπορείτε να χρησιμοποιήσετε μια απλή εντολή
&man.echo.1; για να εντοπίσετε την τοποθεσία κάποιου προγράμματος
μέσα στα ports. Για παράδειγμα:&prompt.root; echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsofΣημειώστε ότι το παραπάνω θα δείξει επίσης και οποιαδήποτε
αρχεία έχουν κατέβει στον κατάλογο
/usr/ports/distfiles εφόσον
ταιριάζουν στην αναζήτηση.Ακόμη ένας τρόπος να βρείτε ένα συγκεκριμένο port, είναι
χρησιμοποιώντας τον εσωτερικό μηχανισμό αναζήτησης της Συλλογής των
Ports. Γα να χρησιμοποιήσετε αυτό τον τρόπο αναζήτησης, Θα
χρειαστεί να βρίσκεστε στον κατάλογο
/usr/ports. Όταν βρεθείτε σε αυτόν τον
κατάλογο, εκτελέστε το make search
name=όνομα--προγράμματος όπου
όνομα--προγράμματος είναι το όνομα
του προγράμματος που θέλετε να βρείτε. Για παράδειγμα, αν αναζητάτε
το lsof:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
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: Το τμήμα της εξόδου που πρέπει να προσέξετε ιδιαίτερα
είναι η γραμμή Path:, αφού αυτή σας
λέει που να βρείτε το port. Οι υπόλοιπες πληροφορίες που
παρέχονται δεν χρειάζονται για να εγκατασταθεί το port, για αυτό
δεν θα αναλυθούν εδώ.Για πιο λεπτομερή αναζήτηση μπορείτε να χρησιμοποιήσετε επίσης
make search key=φράση όπου
φράση είναι κάποιο κείμενο προς
αναζήτηση. Αυτό αναζητά ονόματα port, σχόλια, περιγραφές και
εξαρτήσεις, και μπορεί να χρησιμοποιηθεί για να βρεθούν ports που
σχετίζονται με ένα συγκεκριμένο θέμα, εάν δεν γνωρίζετε το όνομα
του προγράμματος που αναζητάτε.Σε όλες τις παραπάνω περιπτώσεις, η φράση προς αναζήτηση είναι
case-insensitive (δεν λαμβάνει υπόψη τις διαφορές κεφαλαίων-μικρών).
Η αναζήτηση για το LSOF, θα δώσει τα ίδια
αποτελέσματα με την αναζήτηση για το lsof.ChernLeeΣυνεισφορά του Χρησιμοποιώντας το Σύστημα των ΠακέτωνΥπάρχουν διάφορα εργαλεία με τα οποία μπορείτε να διαχειριστείτε τα
πακέτα στο &os;:Σε ένα σύστημα που βρίσκεται ήδη σε λειτουργία, μπορείτε να
εκτελέσετε το sysinstall για να
εγκαταστήσετε, να διαγράψετε, και να δείτε τις εγκατεστημένες και
τις διαθέσιμες εφαρμογές. Για περισσότερες πληροφορίες, δείτε το
, Μετά την Εγκατάσταση.Τα διάφορα εργαλεία διαχείρισης μέσω της γραμμής εντολών, που
αποτελούν και το αντικείμενο συζήτησης αυτής της ενότητας.Εγκαθιστώντας ένα Πακέτοpackagesinstallingpkg_addΜπορείτε να χρησιμοποιήσετε το εργαλείο &man.pkg.add.1; για να
εγκαταστήσετε ένα πακέτο λογισμικού του &os; από ένα τοπικά
αποθηκευμένο αρχείο ή από έναν διακομιστή στο δίκτυο.Κατέβασμα ενός πακέτου χειροκίνητα και
εγκατάσταση του τοπικά&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzΕάν δεν έχετε μία τοπική πηγή πακέτων (όπως είναι ένα
&os; CD-ROM set) τότε ίσως είναι ευκολότερο να χρησιμοποιήσετε
την επιλογή για το &man.pkg.add.1;. Αυτή θα
κάνει το εργαλείο να καθορίσει αυτόματα τη σωστή μορφή και έκδοση
και έπειτα να ανακτήσει και να εγκαταστήσει το πακέτο από ένα FTP
site.pkg_add&prompt.root; pkg_add -r lsofΤο παραπάνω παράδειγμα θα κατεβάσει και θα
εγκαταστήσει το σωστό πακέτο χωρίς περαιτέρω επέμβαση του χρήστη.
Αν δεν θέλετε να χρησιμοποιήσετε το κύριο site διανομής πακέτων,
μπορείτε να χρησιμοποιήσετε κάποιο mirror. Για το σκοπό αυτό, θα
πρέπει να ρυθμίσετε σωστά την τιμή της PACKAGESITE,
ώστε να παρακάμψετε τις προεπιλεγμένες ρυθμίσεις. Το &man.pkg.add.1;
χρησιμοποιεί το &man.fetch.3; για να κατεβάσει τα
αρχεία, και αυτό με τη σειρά του χρησιμοποιεί διάφορες μεταβλητές
περιβάλλοντος, περιλαμβανομένων των
FTP_PASSIVE_MODE, FTP_PROXY, και
FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσετε μία ή
περισσότερες από αυτές αν βρίσκεστε πίσω από ένα firewall, ή ίσως να
χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το
&man.fetch.3; για την πλήρη λίστα των μεταβλητών. Προσέξτε ότι στο
παραπάνω παράδειγμα χρησιμοποιείται το lsof αντί
του lsof-4.56.4. Όταν γίνεται απομακρυσμένη λήψη,
πρέπει να αφαιρεθεί ο αριθμός έκδοσης του πακέτου.
Το &man.pkg.add.1; θα κατεβάσει αυτόματα την τελευταία
έκδοση της εφαρμογής.Το &man.pkg.add.1; θα κατεβάσει την τελευταία
έκδοση της εφαρμογής αν χρησιμοποιείτε &os.current; ή
&os.stable;. Αν τρέχετε μια -RELEASE έκδοση, θα
κατεβάσει την έκδοση του πακέτου που έχει
μεταγλωττιστεί με την έκδοση σας. Είναι δυνατό να το αλλάξετε
αυτό, αλλάζοντας την PACKAGESITE.
Για παράδειγμα, αν τρέχετε ένα σύστημα &os; 5.4-RELEASE,
το &man.pkg.add.1;, από προεπιλογή, θα προσπαθήσει να
κατεβάσει πακέτα από το
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/.
Αν θέλετε να αναγκάσετε το &man.pkg.add.1;
να κατεβάσει πακέτα του &os; 5-STABLE, θέστε
την PACKAGESITE ως
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/.Τα αρχεία των πακέτων διανέμονται σε μορφές
.tgz και .tbz. Μπορείτε
να τα βρείτε στο ,
ή στα CD-ROM της διανομής του &os;. Κάθε CD στο &os; 4-CD set (και
στο PowerPak, κλπ.) περιέχει πακέτα στον κατάλογο
/packages. Η κατηγοριοποίηση των πακέτων
ακολουθεί την δομή του δέντρου /usr/ports.
Κάθε κατηγορία έχει το δικό της κατάλογο, και κάθε πακέτο μπορεί να
βρεθεί στον κατάλογο All.Η δομή των καταλόγων του συστήματος πακέτων ταιριάζει με την
αντίστοιχη των ports. Τα δύο συστήματα συνεργάζονται μεταξύ τους για
να δημιουργήσουν το συνολικό σύστημα πακέτων/ports.Διαχείριση των ΠακέτωνpackagesmanagingΤο &man.pkg.info.1; είναι ένα εργαλείο που παραθέτει και
περιγράφει τα διάφορα πακέτα που είναι εγκαταστημένα.pkg_info&prompt.root; pkg_info
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
...Το &man.pkg.version.1; είναι ένα εργαλείο που συνοψίζει τις
εκδόσεις όλων των εγκαταστημένων πακέτων. Συγκρίνει την έκδοση κάθε
πακέτου, με την τρέχουσα έκδοση που βρίσκεται στο δέντρο των
ports.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Τα σύμβολα στην δεύτερη στήλη δηλώνουν την σχετική ηλικία
μεταξύ των εγκατεστημένων εκδόσεων και των εκδόσεων που είναι
διαθέσιμες στο τοπικό δέντρο των ports.ΣύμβολοΣημασία=Η έκδοση του εγκατεστημένου πακέτου ταιριάζει με αυτή
που είναι διαθέσιμη στο τοπικό δέντρο των ports.<Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που
είναι διαθέσιμη στο δέντρο των ports.>Η εγκατεστημένη έκδοση είναι νεότερη από αυτή που είναι
διαθέσιμη στο τοπικό δέντρο των ports. (Το τοπικό δέντρο των
ports είναι πιθανότατα απαρχαιωμένο.)?Το εγκατεστημένο πακέτο δεν βρίσκεται στα περιεχόμενα
των ports. (Αυτό μπορεί να συμβεί, για παράδειγμα, αν ένα
εγκατεστημένο port έχει αφαιρεθεί από την Συλλογή των Ports,
ή έχει μετονομαστεί.)*Υπάρχουν πολλαπλές εκδόσεις του πακέτου.!Το εγκατεστημένο πακέτο υπάρχει στο index, αλλά για
κάποιο λόγο το pkg_version δεν κατάφερε να
συγκρίνει την έκδοση του εγκατεστημένου πακέτου με την
αντίστοιχη καταχώρηση στο index.Αφαιρώντας ένα Πακέτοpkg_deletepackagesdeletingΓια να αφαιρέσετε ένα εγκατεστημένο πακέτο λογισμικού,
χρησιμοποιήστε το εργαλείο &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1Σημειώστε ότι το &man.pkg.delete.1; απαιτεί το πλήρες όνομα και
αριθμό έκδοσης του πακέτου. Η παραπάνω εντολή δεν θα λειτουργήσει
αν δώσετε απλώς xchat αντί για
xchat-1.7.1. Είναι ωστόσο εύκολο να
χρησιμοποιήσετε την &man.pkg.version.1; για να βρείτε την έκδοση του
εγκατεστημένου πακέτου. Αντί για αυτό, μπορείτε επίσης να
χρησιμοποιήσετε ένα μπαλαντέρ:&prompt.root; pkg_delete xchat\*Στην περίπτωση αυτή, θα διαγραφούν όλα τα πακέτα που τα ονόματα
τους αρχίζουν με xchat.ΔιάφοραΌλες οι πληροφορίες για τα πακέτα είναι αποθηκευμένες στον
κατάλογο /var/db/pkg. Στα αρχεία αυτού του
καταλόγου, θα βρείτε τη περιγραφή κάθε πακέτου, καθώς και τη λίστα
των αρχείων που εγκαθιστά.Χρησιμοποιώντας την Συλλογή των PortsΤα παρακάτω τμήματα δίνουν βασικές οδηγίες χρήσης της
Συλλογής των Ports για εγκατάσταση ή διαγραφή προγραμμάτων στο
σύστημα σας. Μπορείτε να βρείτε λεπτομερή περιγραφή των διαθέσιμων
επιλογών του make και των μεταβλητών περιβάλλοντος
στο &man.ports.7;.Ανακτώντας την Συλλογή των PortsΠριν μπορέσετε να εγκαταστήσετε προγράμματα μέσω των ports,
πρέπει πρώτα να ανακτήσετε την Συλλογή των Ports. Πρόκειται
ουσιαστικά για μια συλλογή από Makefiles,
patches, και αρχεία περιγραφής που τοποθετούνται στο
/usr/ports.Όταν εγκαταστήσατε το &os; σύστημα σας,
το sysinstall σας ρώτησε αν θέλατε
να εγκαταστήσετε την Συλλογή των Ports. Αν επιλέξατε όχι, μπορείτε να
ακολουθήσετε αυτές τις οδηγίες για να ανακτήσετε την Συλλογή των
Ports:Μέθοδος CVSupΑυτή είναι μια γρήγορη μέθοδος για να ανακτήσετε και να
διατηρήσετε ένα ανανεωμένο αντίγραφο της Συλλογής των Ports,
χρησιμοποιώντας το πρωτόκολλο CVSup.
Αν θέλετε να μάθετε περισσότερα για το
CVSup, δείτε το
Χρησιμοποιώντας το CVSup.Η υλοποίηση του CVSup που
περιλαμβάνεται σε ένα σύστημα &os;, ονομάζεται
csup. Εμφανίστηκε για πρώτη φορά στο
&os; 6.2. Οι χρήστες παλαιότερων εκδόσεων του &os;, μπορούν
να το εγκαταστήσουν μέσω του πακέτου ή port
net/csup.Σιγουρευθείτε ότι το
/usr/ports
είναι άδειο πριν εκτελέσετε το csup για
πρώτη φορά! Εάν έχετε ήδη ανακτήσει τη Συλλογή των Ports μέσω
κάποιας άλλης πηγής, το csup
δεν θα διαγράψει patches που έχουν αφαιρεθεί στο μεταξύ.Εκτελέστε το csup:&prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfileΑλλάξτε το
cvsup.FreeBSD.org με έναν
κοντινό σας διακομιστή CVSup. Δείτε
το CVSup Mirrors () για την πλήρη λίστα των mirror
sites.Αν θέλετε, μπορείτε να χρησιμοποιήσετε το δικό σας
ports-supfile, ώστε να αποφύγετε
(για παράδειγμα) να δηλώσετε τον διακομιστή
CVSup στην γραμμή εντολών.Σε αυτή την περίπτωση, ως root,
αντιγράψτε το
/usr/share/examples/cvsup/ports-supfile
σε μία νέα τοποθεσία, όπως το /root ή
τον δικό σας home κατάλογο.Τροποποιήστε το ports-supfile.Αλλάξτε το
CHANGE_THIS.FreeBSD.org
με έναν κοντινό σας διακομιστή
CVSup.Δείτε το CVSup Mirrors
() για την
πλήρη λίστα των mirror sites.Εκτελέστε τώρα το csup, με τον
ακόλουθο τρόπο:&prompt.root; csup -L 2 /root/ports-supfileΕκτελώντας την εντολή &man.csup.1; αργότερα, θα
κατεβάσει και θα εφαρμόσει όλες
τις πρόσφατες αλλαγές στην Συλλογή των Ports, εκτός από το να
επανα-μεταγλωττίσει τα ports για το σύστημα σας.Μέθοδος PortsnapΤο Portsnap είναι ένα εναλλακτικό
σύστημα για την διανομή της
Συλλογής των Ports. Διατέθηκε πρώτη φορά στο &os; 6.0.
Σε παλαιότερα συστήματα, μπορείτε να το εγκαταστήσετε από το πακέτο
ports-mgmt/portsnap:&prompt.root; pkg_add -r portsnapΠαρακαλώ ελέγξτε το
- Χρησιμοποιώντας το Portsnap
+ Χρησιμοποιώντας το Portsnap
για μία λεπτομερή περιγραφή όλων των χαρακτηριστικών της
εφαρμογής.Από την &os; 6.1-RELEΑSE και με τις νεότερες εκδόσεις
του Portsnap, μπορείτε
να αποφύγετε αυτό το βήμα με ασφάλεια. Το /usr/ports θα δημιουργηθεί
αυτόματα με την πρώτη χρήση της εντολής &man.portsnap.8;.
Με παλαιότερες εκδόσεις του Portsnap,
πρέπει να δημιουργήσετε έναν άδειο κατάλογο /usr/ports αν δεν υπάρχει:&prompt.root; mkdir /usr/portsΚατεβάστε ένα συμπιεσμένο snapshot της
Συλλογής των Ports
/var/db/portsnap.
Αν θέλετε, μπορείτε να αποσυνδεθείτε από το Διαδίκτυο μετά από
αυτό το βήμα.&prompt.root; portsnap fetchΑν εκτελείτε το Portsnap για
πρώτη φορά, κάντε εξαγωγή του snapshot μέσα στο /usr/ports:&prompt.root; portsnap extractΕάν ήδη έχετε ένα γεμάτο /usr/ports και απλώς το ανανεώνετε,
εκτελέστε την ακόλουθη εντολή:&prompt.root; portsnap updateΜέθοδος SysinstallΑυτή η μέθοδος χρησιμοποιεί το
sysinstall για την εγκατάσταση της
Συλλογής των Ports από το μέσο εγκατάστασης. Σημειώστε ότι με αυτό
τον τρόπο θα εγκαταστήσετε το παλαιό αντίγραφο της
Συλλογής των Ports, που αντιστοιχεί στην ημερομηνία της έκδοσης του
&os; που χρησιμοποιείτε. Εάν έχετε πρόσβαση στο Διαδίκτυο, πρέπει
πάντα να χρησιμοποιείτε μία από τις μεθόδους που αναφέρθηκαν πιο
πάνω.Ως root, εκτελέστε το
sysinstall
(/stand/sysinstall σε εκδόσεις του &os;
πριν την 5.2) όπως φαίνεται παρακάτω:&prompt.root; sysinstallΕπιλέξτε το Configure,
και πιέστε Enter.Επιλέξτε το Distributions, και
πιέστε Enter.Μετακινηθείτε στο ports, και πιέστε
Space.Μετακινηθείτε στο Exit, και πιέστε
Enter.Επιλέξτε το μέσο εγκατάστασης της επιθυμίας σας, όπως CDROM,
FTP, και πάει λέγοντας.Μετακινηθείτε στο Exit και πιέστε
Enter.Πιέστε X για να βγείτε από το
sysinstall.Εγκαθιστώντας PortsportsinstallingΤο πρώτο πράγμα που πρέπει να διευκρινιστεί σχετικά
με την Συλλογή των Ports είναι η έννοια του όρου
skeleton (σκελετός). Με λίγα λόγια, ένα port skeleton
είναι η ελάχιστη συλλογή αρχείων που καθοδηγούν ένα σύστημα &os; ώστε
να μεταγλωττίσει και να εγκαταστήσει σωστά ένα πρόγραμμα. Κάθε port
skeleton περιέχει:Ένα Makefile. Το
Makefile περιέχει διάφορες δηλώσεις
που ορίζουν πως πρέπει να μεταγλωττιστεί η εφαρμογή και που
πρέπει να εγκατασταθεί στο σύστημά σας.Ένα αρχείο distinfo. Αυτό το αρχείο
περιέχει πληροφορίες για τα αρχεία που πρέπει να
κατέβουν για την μεταγλώττιση του port, και τα
checksums τους (χρησιμοποιώντας τις &man.md5.1; και
&man.sha256.1;), για να επιβεβαιωθεί ότι τα αρχεία δεν έχουν
αλλοιωθεί κατά την διάρκεια της μεταφοράς τους.Έναν κατάλογο files. Αυτός ο
κατάλογος περιέχει τα patches που επιτρέπουν στο πρόγραμμα να
μεταγλωττιστεί και εγκατασταθεί στο &os; σύστημα σας. Τα patches
είναι μικρά αρχεία που ορίζουν αλλαγές σε συγκεκριμένα αρχεία.
Είναι σε μορφή κοινού κειμένου, και βασικά λένε
Αφαίρεσε την γραμμή 10 ή
Μετέτρεψε τη γραμμή 26 σε αυτό .... Τα patches
είναι επίσης γνωστά ως diffs επειδή δημιουργούνται
με το πρόγραμμα &man.diff.1;.Αυτός ο κατάλογος μπορεί να περιέχει και άλλα αρχεία που
χρησιμοποιούνται για να μεταγλωττιστεί το port.Ένα αρχείο pkg-descr. Αυτό είναι μία πιο
λεπτομερής, συχνά πολλών γραμμών, περιγραφή του
προγράμματος.Ένα αρχείο pkg-plist. Αυτό περιέχει μια
λίστα όλων των αρχείων που θα εγκατασταθούν από το port.
Επίσης καθοδηγεί το σύστημα των ports τι αρχεία να αφαιρέσει
κατά την απεγκατάσταση.Μερικά ports έχουν και άλλα αρχεία, όπως το
pkg-message. Το σύστημα των ports χρησιμοποιεί
αυτά τα αρχεία για να χειριστεί ειδικές περιστάσεις. Αν θέλετε
περισσότερες λεπτομέρειες για αυτά τα αρχεία, και τα ports
γενικότερα, δείτε το &os; Porter's
Handbook.Το port περιέχει οδηγίες για το πως να μεταγλωττιστεί ο πηγαίος
κώδικας, αλλά δεν περιέχει τον πηγαίο κώδικα. Μπορείτε να
προμηθευτείτε τον πηγαίο κώδικα από ένα CD-ROM ή από το Διαδίκτυο.
Ο πηγαίος κώδικας διανέμεται με οποιοδήποτε τρόπο επιθυμεί ο
δημιουργός του. Συχνά είναι ένα tarred και gzipped αρχείο,
αλλά μπορεί να είναι συμπιεσμένος με κάποιο άλλο εργαλείο ή να είναι
ακόμα και ασυμπίεστος. Ο πηγαίος κώδικας του προγράμματος, σε
οποιαδήποτε μορφή κι αν διατίθεται, λέγεται distfile.
Οι δύο μέθοδοι για να εγκαταστήσετε ένα &os; port περιγράφονται
παρακάτω.Πρέπει να συνδεθείτε ως root για να
εγκαταστήσετε ports.Πριν εγκαταστήσετε οποιαδήποτε port, πρέπει να σιγουρευτείτε
ότι έχετε μία ανανεωμένη Συλλογή των Ports, και πρέπει να ελέγξετε
το για θέματα
ασφαλείας σχετικά με το port που ενδιαφέρεστε.Αν θέλετε να ελέγχετε αυτόματα για τυχόν προβλήματα ασφαλείας
πριν από κάθε εγκατάσταση νέας εφαρμογής, μπορείτε να
χρησιμοποιήσετε το portaudit.
Θα βρείτε αυτό το εργαλείο στην Συλλογή των Ports
(ports-mgmt/portaudit). Είναι
καλή ιδέα να εκτελέσετε το portaudit -F πριν
εγκαταστήσετε ένα νέο port, για να ανακτήσετε την τρέχουσα βάση
δεδομένων προβλημάτων ασφαλείας. Αντίστοιχος έλεγχος και ανανέωση
της βάσης δεδομένων εκτελείται επίσης αυτόματα κατά τον καθημερινό
έλεγχο ασφαλείας του συστήματος. Για περισσότερες
πληροφορίες διαβάστε τις σελίδες manual &man.portaudit.1; και
&man.periodic.8;.Η Συλλογή των Ports προϋποθέτει ότι έχετε λειτουργική σύνδεση με
το Διαδίκτυο. Εάν δεν έχετε, θα χρειαστεί να βάλετε μόνος σας ένα
αντίγραφο του distfile μέσα στο
/usr/ports/distfiles.Αρχικά, μετακινηθείτε στον κατάλογο του port που θέλετε να
εγκαταστήσετε:&prompt.root; cd /usr/ports/sysutils/lsofΜόλις βρεθείτε στον κατάλογο lsof, θα
δείτε τον port skeleton. Το επόμενο βήμα είναι να μεταγλωττίσετε,
ή να κτίσετε (build), το port. Αυτό γίνεται απλά
πληκτρολογώντας make στην γραμμή εντολών. Όταν το
κάνετε, θα δείτε κάτι όπως αυτό:&prompt.root; make
>> 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;Προσέξτε ότι μόλις η μεταγλώττιση ολοκληρωθεί θα επιστρέψετε
στην γραμμή εντολών. Το επόμενο βήμα είναι να εγκαταστήσετε το
port. Για να το εγκαταστήσετε, χρειάζεται απλώς να προσθέσετε μια
λέξη στην εντολή make, και αυτή η λέξη είναι
install:&prompt.root; make install
===> 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;Μόλις επιστρέψετε στην γραμμή εντολών, θα πρέπει να μπορείτε
να εκτελέσετε την εφαρμογή που μόλις εγκαταστήσατε. Θα δείτε μια
προειδοποίηση ασφαλείας, επειδή το lsof είναι ένα
πρόγραμμα που τρέχει με αυξημένα προνόμια. Κατά την μεταγλώττιση
και εγκατάσταση των ports, θα πρέπει να προσέχετε οποιαδήποτε
προειδοποίηση εμφανιστεί.Μια καλή ιδέα, είναι να διαγράψετε τον υποκατάλογο
που περιέχει όλα τα προσωρινά αρχεία που χρησιμοποιήθηκαν κατά την
μεταγλώττιση. Όχι μόνο καταναλώνουν πολύτιμο χώρο, άλλα μπορεί να
προκαλέσουν προβλήματα αργότερα όταν θα θελήσετε να εγκαταστήσετε μια
νεότερη έκδοση του port.&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;Μπορείτε να γλιτώσετε δύο πρόσθετα βήματα απλώς εκτελώντας
make install clean αντί
για make,
make install και
make clean
ως τρία ξεχωριστά βήματα.Μερικά κελύφη κρατάνε μια λίστα από τις εντολές που βρίσκονται
διαθέσιμες στους καταλόγους που αναφέρονται στην μεταβλητή
περιβάλλοντος PATH, για να επιταχύνουν τις
αναζητήσεις για τα εκτελέσιμα αρχεία αυτών των εντολών.
Αν χρησιμοποιείτε ένα από αυτά τα κελύφη, θα πρέπει
να χρησιμοποιήσετε την εντολή rehash μετά
την εγκατάσταση ενός port, πριν μπορέσετε να χρησιμοποιήσετε τις
νέες εντολές. Αυτή η εντολή λειτουργεί σε κελύφη όπως το
tcsh. Χρησιμοποιήστε την εντολή
hash -r για κελύφη όπως το
sh. Δείτε την τεκμηρίωση του κελύφους σας για
περισσότερες πληροφορίες.Μερικά προϊόντα τρίτων κατασκευαστών σε DVD-ROM, όπως το &os;
Toolkit από το &os; Mall, περιέχουν
distfiles. Αυτά μπορούν να χρησιμοποιηθούν με την Συλλογή των Ports.
Προσαρτήστε το DVD-ROM στο /cdrom. Αν
χρησιμοποιείτε κάποιο διαφορετικό σημείο προσάρτησης, ρυθμίστε την
μεταβλητή CD_MOUNTPTS του make. Τα αναγκαία
distfiles θα χρησιμοποιηθούν αυτόματα αν υπάρχουν στο δισκάκι.Πρέπει να γνωρίζετε ότι οι άδειες μερικών ports δεν επιτρέπουν
την διανομή τους σε CD-ROM. Αυτό μπορεί να οφείλεται π.χ. στο ότι
πρέπει να συμπληρώσετε μια φόρμα εγγραφής πριν
κατεβάσετε την εφαρμογή, ή στο ότι δεν επιτρέπεται η
επαναδιανομή, ή σε κάποιο άλλο λόγο. Εάν θέλετε να εγκαταστήσετε
ένα port που δεν περιλαμβάνεται στο CD-ROM, θα χρειαστεί να είστε
συνδεδεμένος στο Διαδίκτυο για να το επιτύχετε.Το σύστημα των ports χρησιμοποιεί το &man.fetch.3; για να
κατεβάσει τα αρχεία. Το &man.fetch.3;
χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των
FTP_PASSIVE_MODE, FTP_PROXY, και
FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσετε μία ή
περισσότερες αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί
να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το &man.fetch.3; για
μια πλήρη λίστα των μεταβλητών αυτών.Για χρήστες που δεν μπορούν να είναι συνδεδεμένοι όλη την ώρα,
διατίθεται η επιλογή
make fetch.
Απλώς εκτελέστε την εντολή στον κατάλογο
(/usr/ports) και τα απαραίτητα αρχεία
θα κατέβουν για εσάς. Η εντολή αυτή θα λειτουργήσει
και σε υποκαταλόγους, όπως για παράδειγμα:
/usr/ports/net. Προσέξτε ότι αν ένα port
εξαρτάται από βιβλιοθήκες ή άλλα ports, η εντολή αυτή
δεν θα ανακτήσει τα distfiles τους.
Αντικαταστήστε το fetch με το
fetch-recursive
αν θέλετε μαζί με το port να ανακτήσετε και όλες τις
εξαρτήσεις του.Μπορείτε να μεταγλωττίσετε όλα τα ports σε μία κατηγορία ή
ακόμα και σε όλες, εκτελώντας το make στον αρχικό
κατάλογο, όπως με την προαναφερθείσα
make fetch μέθοδο.
Αυτό όμως είναι επικίνδυνο, γιατί μερικά ports δεν μπορούν να
συνυπάρχουν. Σε άλλες περιπτώσεις, μερικά ports μπορεί να
εγκαταστήσουν δυο διαφορετικά αρχεία με το με το ίδιο
όνομα.Σε μερικές σπάνιες περιπτώσεις, οι χρήστες μπορεί να χρειάζεται
να ανακτήσουν τα tarballs από ένα site διαφορετικό από τα
MASTER_SITES (η τοποθεσία από όπου
κατεβαίνουν τα αρχεία). Μπορείτε να αλλάξετε την
επιλογή MASTER_SITES με την ακόλουθη
εντολή:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchΣε αυτό το παράδειγμα αλλάξαμε την επιλογή
MASTER_SITES σε ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.Μερικά ports επιτρέπουν (ή απαιτούν) να δώσετε επιλογές
μεταγλώττισης που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν
τμήματα της εφαρμογής που είναι αχρείαστα, συγκεκριμένες επιλογές
ασφαλείας, και άλλες τροποποιήσεις. Κοινά παραδείγματα τέτοιων
ports είναι τα www/mozilla,
security/gpgme, και το
mail/sylpheed-claws. Όταν
υπάρχουν διαθέσιμες τέτοιες επιλογές, θα εμφανιστεί στην οθόνη
σας σχετικό μήνυμα.Παρακάμπτοντας τους Προεπιλεγμένους Καταλόγους των
PortsΜερικές φορές είναι χρήσιμο (ή επιτακτικό) να χρησιμοποιήσετε
ένα διαφορετικό κατάλογο εργασίας και εγκατάστασης. Οι μεταβλητές
WRKDIRPREFIX και PREFIX
μπορούν να παρακάμψουν τους προεπιλεγμένους καταλόγους. Για
παράδειγμα, η εντολή:&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports installθα μεταγλωττίσει το port στο
/usr/home/example/ports και θα εγκαταστήσει
τα πάντα στο /usr/local, ενώ η εντολή:&prompt.root; make PREFIX=/usr/home/example/local installθα μεταγλωττίσει το port στο /usr/ports και
θα το εγκαταστήσει στο
/usr/home/example/local.Και φυσικά η εντολή:&prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local installθα συνδυάσει και τα δυο (είναι πολύ μεγάλη για να την δείξουμε
εδώ, άλλα πρέπει να πήρατε την γενική ιδέα).Εναλλακτικά, αυτές οι μεταβλητές μπορούν να ρυθμιστούν ως μέρος
του περιβάλλοντος σας. Διαβάστε την σελίδα manual για το κέλυφος
σας, για να βρείτε τις σχετικές οδηγίες.Αντιμετωπίζοντας το imakeΜερικά ports που χρησιμοποιούν το imake
(μέρος του X Window System) δεν συνεργάζονται σωστά με το
PREFIX, και επιμένουν να εγκατασταθούν
στο /usr/X11R6. Όμοια, μερικά Perl
ports αγνοούν το PREFIX και εγκαθίστανται στο
δέντρο Perl. Το να κάνετε αυτά τα ports να σέβονται το
PREFIX είναι μία δύσκολη ή αδύνατη
δουλειά.Επαναρύθμιση Επιλογών PortsΌταν μεταγλωττίζετε κάποια ports, μπορεί να εμφανιστεί στην
οθόνη σας ένα μενού επιλογών (βασισμένο σε ncurses) το οποίο να σας
επιτρέπει να αλλάξετε διάφορες επιλογές μεταγλώττισης. Δεν είναι
σπάνιο κάποιοι χρήστες να θέλουν να επισκεφτούν ξανά αυτό το μενού,
για να προσθέσουν, να αφαιρέσουν ή να αλλάξουν κάποιες επιλογές,
μετά την μεταγλώττιση του port. Μια επιλογή είναι να μετακινηθείτε
στον κατάλογο του port και να γράψετε
make config, με το
οποίο θα εμφανιστεί ξανά το μενού με τις προηγούμενες ρυθμίσεις σας
ήδη επιλεγμένες. Μια άλλη δυνατότητα, είναι να χρησιμοποιήσετε την
εντολή make showconfig,
με την οποία θα δείτε όλες τις επιλεγμένες ρυθμίσεις του port.
Τέλος, μια ακόμα επιλογή είναι να εκτελέσετε την εντολή
make rmconfig η οποία
θα αφαιρέσει όλες τις αποθηκευμένες επιλογές και θα σας επιτρέψει να
ξεκινήσετε ξανά από την αρχή. Όλες αυτές οι επιλογές, και ακόμα
περισσότερες, εξηγούνται στη σελίδα manual του &man.ports.7;.Αφαιρώντας Εγκατεστημένα PortsportsremovingΤώρα που γνωρίσατε πως να εγκαθιστάτε ports, πιθανώς θα
αναρωτιέστε πως αφαιρούνται, στην περίπτωση που εγκαταστήσατε ένα
και αργότερα αποφασίσατε ότι εγκαταστήσατε το λάθος port.
Θα αφαιρέσουμε το προηγούμενο παράδειγμα (που ήταν το
lsof για όσους δεν το πρόσεξαν). Τα ports
αφαιρούνται όπως και τα πακέτα (το αναλύσαμε στην ενότητα Χρησιμοποιώντας το Σύστημα των
Πακέτων), χρησιμοποιώντας την
εντολή &man.pkg.delete.1;:&prompt.root; pkg_delete lsof-4.57Αναβαθμίζοντας τα PortsportsupgradingΑρχικά, δείτε τα παρωχημένα ports για τα οποία υπάρχουν
διαθέσιμες νεότερες εκδόσεις στην Συλλογή των Ports, με την εντολή
&man.pkg.version.1;:&prompt.root; pkg_version -v/usr/ports/UPDATINGΜόλις ανανεώσετε την Συλλογή των Ports, πρέπει να ελέγξετε το
αρχείο /usr/ports/UPDATING, πριν επιχειρήσετε
την αναβάθμιση ενός port. Αυτό το αρχείο περιγράφει διάφορα πιθανά
προβλήματα, καθώς και ενδεχόμενα πρόσθετα βήματα που πρέπει να
εκτελέσετε όταν ανανεώνετε ένα port. Παραδείγματα των παραπάνω,
είναι η αλλαγή μορφής κάποιων αρχείων, αλλαγή στην τοποθεσία
των αρχείων ρυθμίσεων, ή άλλες ασυμβατότητες
με παλαιότερες εκδόσεις.Αν το UPDATING αναιρεί κάτι που διαβάσατε
εδώ, θεωρήστε ότι ισχύει το UPDATING.Αναβαθμίζοντας Ports με το PortupgradeportupgradeΤο εργαλείο portupgrade είναι
σχεδιασμένο για να αναβαθμίζει εύκολα εγκατεστημένα ports.
Διατίθεται από το
ports-mgmt/portupgrade port.
Εγκαταστήστε το όπως κάθε port, χρησιμοποιώντας την εντολή
make install clean:&prompt.root; cd /usr/ports/ports-mgmt/portupgrade
&prompt.root; make install cleanΗ εντολή pkgdb -F θα διαβάσει και θα
διορθώσει όλες τις ασυνέπειες που ίσως υπάρχουν στη λίστα των
εγκατεστημένων ports. Είναι καλή ιδέα είναι να την εκτελείτε
συχνά, ενδεχομένως πριν από κάθε αναβάθμιση.Όταν εκτελείτε το portupgrade -a, το
portupgrade θα αρχίσει να αναβαθμίζει
όλα τα παρωχημένα ports που είναι εγκατεστημένα στο σύστημα σας.
Χρησιμοποιήστε την επιλογή αν θέλετε να σας
ρωτά για επιβεβαίωση για κάθε ξεχωριστή αναβάθμιση.&prompt.root; portupgrade -aiΑν θέλετε να αναβαθμίσετε μόνο μία συγκεκριμένη εφαρμογή, και
όχι όλα τα διαθέσιμα ports, χρησιμοποιήστε το
portupgrade pkgname.
Συμπεριλάβετε την επιλογή αν το
portupgrade πρέπει πρώτα να αναβαθμίσει
όλα τα ports που απαιτούνται για την συγκεκριμένη εφαρμογή.&prompt.root; portupgrade -R firefoxΓια να χρησιμοποιήσετε πακέτα αντί για ports στην εγκατάσταση,
δώστε την επιλογή . Με αυτή την επιλογή το
portupgrade αναζητά
τους τοπικούς καταλόγους που ορίζονται στο PKG_PATH,
ή ανακτά τα πακέτα από απομακρυσμένα sites εάν δεν βρεθούν τοπικά.
Αν τα πακέτα δεν μπορούν να ανακτηθούν με τους παραπάνω τρόπους, το
portupgrade θα χρησιμοποιήσει τα ports.
Για να αποφύγετε εντελώς την χρήση των ports, καθορίστε την επιλογή
.&prompt.root; portupgrade -PR gnome2Για να ανακτήσετε απλώς τα distfiles (ή τα πακέτα, αν έχετε
ορίσει την επιλογή ) χωρίς να μεταγλωττίσετε ή να
εγκαταστήσετε τίποτα, χρησιμοποιήστε το .
Για περισσότερες πληροφορίες, δείτε το &man.portupgrade.1;.Αναβαθμίζοντας Ports με το PortmanagerportmanagerΤο Portmanager είναι ένα ακόμα
εργαλείο για εύκολη αναβάθμιση εγκατεστημένων ports. Διατίθεται
από το ports-mgmt/portmanager
port:&prompt.root; cd /usr/ports/ports-mgmt/portmanager
&prompt.root; make install cleanΌλα τα εγκατεστημένα ports μπορούν να αναβαθμιστούν
χρησιμοποιώντας αυτή την απλή εντολή:&prompt.root; portmanager -uΜπορείτε να προσθέσετε την επιλογή για να
ερωτηθείτε να επιβεβαιώσετε κάθε βήμα που θα εκτελέσει το
Portmanager.
Το Portmanager μπορεί επίσης
να χρησιμοποιηθεί για να εγκαταστήσετε νέα ports στο σύστημα.
Σε αντίθεση με την εντολή
make install clean, το
Portmanager θα αναβαθμίσει όλες
τις εξαρτήσεις πριν την μεταγλώττιση και εγκατάσταση του
επιλεγμένου port.&prompt.root; portmanager x11/gnome2Αν υπάρχουν προβλήματα που σχετίζονται με τις εξαρτήσεις ενός
επιλεγμένου port, μπορείτε να χρησιμοποιήσετε το
Portmanager για να τις
επανα-μεταγλωττίσει όλες με την σωστή σειρά. Μόλις τελειώσει με
τις εξαρτήσεις, θα επανα-μεταγλωττίσει και το προβληματικό
port.&prompt.root; portmanager graphics/gimp -fΓια περισσότερες πληροφορίες δείτε τη σελίδα manual
&man.portmanager.1;.Αναβαθμίζοντας τα Ports μέσω του PortmasterportmasterΤο Portmaster είναι ένα ακόμα
εργαλείο για την αναβάθμιση των εγκατεστημένων ports. Το
Portmaster σχεδιάστηκε ώστε να
χρησιμοποιεί τα εργαλεία που παρέχει το βασικό
σύστημα (δεν εξαρτάται από άλλα ports) και χρησιμοποιεί τις
πληροφορίες του /var/db/pkg
για να καθορίσει ποια ports θα αναβαθμίσει. Είναι διαθέσιμο μέσω
του port
ports-mgmt/portmaster:&prompt.root; cd /usr/ports/ports-mgmt/portmaster
&prompt.root; make install cleanΤο Portmaster ομαδοποιεί τα ports
σε τέσσερις κατηγορίες:Root ports (δεν εξαρτώνται από άλλα, και ούτε άλλα
εξαρτώνται από αυτά)Trunk ports (δεν εξαρτώνται από άλλα, ωστόσο κάποια πακέτα
εξαρτώνται από αυτά)Branch ports (έχουν εξαρτήσεις και προς τις δύο
κατευθύνσεις)Leaf ports (εξαρτώνται από άλλα, αλλά όχι το
αντίθετο)Μπορείτε να δείτε μια λίστα όλων των εγκατεστημένων ports και
να ψάξετε για ενημερωμένες εκδόσεις, χρησιμοποιώντας την επιλογή
:&prompt.root; portmaster -L
===>>> 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Μπορείτε να αναβαθμίσετε όλα τα εγκατεστημένα ports με την
παρακάτω απλή εντολή:&prompt.root; portmaster -aΑπό προεπιλογή, το Portmaster
θα δημιουργήσει αντίγραφο ασφαλείας του εγκατεστημένου πακέτου
πριν το διαγράψει. Αν η εγκατάσταση της νέας έκδοσης είναι
επιτυχής, το Portmaster θα σβήσει το
αντίγραφο αυτό. Αν χρησιμοποιήσετε την επιλογή
, το Portmaster δεν
θα σβήσει αυτόματα το αντίγραφο. Αν χρησιμοποιήσετε την επιλογή
, θα θέσετε το
Portmaster σε διαδραστική λειτουργία,
όπου θα σας ζητάει επιβεβαίωση πριν την αναβάθμιση κάθε
port.Αν αντιμετωπίσετε λάθη κατά τη διαδικασία της αναβάθμισης,
μπορείτε να χρησιμοποιήσετε την επιλογή για
να αναβαθμίσετε και να μεταγλωττίσετε ξανά όλα τα ports:&prompt.root; portmaster -afΜπορείτε επίσης να χρησιμοποιήσετε το
Portmaster για να εγκαταστήσετε νέα
ports στο σύστημα σας, αναβαθμίζοντας και όλες τις εξαρτήσεις τους
πριν τη μεταγλώττιση και εγκατάσταση τους:&prompt.root; portmaster shells/bashΠαρακαλούμε δείτε τη σελίδα manual του &man.portmaster.8; για
περισσότερες πληροφορίες.Ports και Αποθηκευτικός Χώροςportsdisk-spaceΗ Συλλογή των Ports καταναλώνει διαθέσιμο χώρο στο δίσκο με την
πάροδο του χρόνου. Μετά την μεταγλώττιση και εγκατάσταση λογισμικού
από τα ports, πρέπει πάντα να θυμάστε να καθαρίζετε τους προσωρινούς
καταλόγους work
χρησιμοποιώντας την εντολή
make clean. Mπορείτε να
καθαρίσετε όλη την Συλλογή των Ports με την ακόλουθη εντολή:&prompt.root; portsclean -CΜε την πάροδο του χρόνου, θα συσσωρευτούν πολλά αρχεία διανομής
πηγαίου κώδικα στον κατάλογο
distfiles.
Μπορείτε να τα αφαιρέσετε χειροκίνητα, ή μπορείτε να χρησιμοποιήσετε
την ακόλουθη εντολή για να διαγράψετε όλα τα distfiles που δεν
σχετίζονται πλέον με κανένα port:&prompt.root; portsclean -DΉ για να αφαιρέσετε όλα τα distfiles που δεν σχετίζονται με
κανένα port που βρίσκεται εγκατεστημένο στο σύστημα σας:&prompt.root; portsclean -DDΤο εργαλείο portsclean εγκαθίσταται ως μέρος
του portupgrade.Μην ξεχνάτε να αφαιρείτε τα εγκατεστημένα ports όταν δεν τα
χρειάζεστε πλέον. Ένα καλό εργαλείο για να αυτοματοποιηθεί αυτή η
εργασία, είναι το port
ports-mgmt/pkg_cutleaves.Ενέργειες μετά την ΕγκατάστασηΜετά την εγκατάσταση μιας νέας εφαρμογής, λογικά θα θέλετε
να διαβάσετε ότι τεκμηρίωση υπάρχει, να τροποποιήσετε τα
αρχεία ρυθμίσεων που χρειάζεται, να βεβαιωθείτε ότι η
εφαρμογή ξεκινάει κατά την εκκίνηση (αν είναι daemon), κ.λ.π.Τα ακριβή βήματα που θα χρειαστούν για να ρυθμίσετε κάθε
εφαρμογή, θα είναι προφανώς διαφορετικά. Όμως, αν μόλις
εγκαταστήσατε μια νέα εφαρμογή και αναρωτιέστε Τώρα τι;
οι παρακάτω συμβουλές μπορεί να σας βοηθήσουν:Χρησιμοποιήστε το &man.pkg.info.1; για να δείτε τι αρχεία
εγκαταστάθηκαν, και που. Για παράδειγμα, αν μόλις εγκαταστήσατε το
FooPackage version 1.0.0, τότε η εντολή:&prompt.root; pkg_info -L foopackage-1.0.0 | lessθα σας δείξει όλα τα αρχεία που εγκαταστάθηκαν από αυτό το
πακέτο. Προσέξτε τα αρχεία στον κατάλογο
man/, που θα είναι σελίδες manual, τους
κατάλογους etc/, όπου θα είναι τα αρχεία
ρυθμίσεων, και το doc/, όπου θα βρίσκεται πιο
περιεκτική τεκμηρίωση.Αν δεν είστε σίγουρος ποια έκδοση της εφαρμογής εγκαταστήσατε,
μια εντολή όπως αυτή:&prompt.root; pkg_info | grep -i foopackageθα βρει όλα τα εγκατεστημένα πακέτα που έχουν το
foopackage στο όνομα του πακέτου.
Αντικαταστήστε το foopackage στην
γραμμή εντολών με το πακέτο που αναζητάτε.Μόλις δείτε που βρίσκονται τα manual pages της εφαρμογής, δείτε
τα με την &man.man.1;. Όμοια, δείτε τα παραδείγματα των αρχείων
ρύθμισης, και όποια άλλη πρόσθετη τεκμηρίωση διατίθεται.Αν υπάρχει web site για την εφαρμογή, ελέγξτε το για πρόσθετη
τεκμηρίωση, συχνές ερωτήσεις (FAQ), και άλλα. Αν δεν είστε
σίγουρος για την διεύθυνσή του web site, ίσως το βρείτε στην έξοδο
της εντολής:&prompt.root; pkg_info foopackage-1.0.0Αν υπάρχει γραμμή WWW:, θα πρέπει να
έχει το URL για το web site της εφαρμογής.Ports που πρέπει να ξεκινούν κατά την εκκίνηση
(όπως διακομιστές Internet) συνήθως εγκαθιστούν ένα script στο
/usr/local/etc/rc.d. Πρέπει να ελέγξετε το
script για την ορθότητα του και να το τροποποιήσετε ή να το
μετονομάσετε αν χρειάζεται. Δείτε το Εκκινώντας
Υπηρεσίες για περισσότερες πληροφορίες.Αντιμετωπίζοντας Χαλασμένα PortsΑν έρθετε αντιμέτωπος με ένα port το οποίο δεν λειτουργεί,
υπάρχουν κάποια πράγματα που μπορείτε να κάνετε:Δείτε αν εκκρεμεί κάποια διόρθωση για το port στο
Problem Report
database. Εάν ναι, μπορείτε να χρησιμοποιήσετε τη
προτεινόμενη διόρθωση.Ζητήστε βοήθεια από τον συντηρητή του port. Πληκτρολογήστε
make maintainer ή
διαβάστε το Makefile για να βρείτε την
διεύθυνση email του συντηρητή. Στο μήνυμα σας, θυμηθείτε να
συμπεριλάβετε το όνομα και την έκδοση του port (στείλτε τη γραμμή
$&os;: από το
Makefile) καθώς και την έξοδο του
σφάλματος.Μερικά ports δεν συντηρούνται από κάποιο συγκεκριμένο άτομο,
αλλά από κάποια mailing
list. Πολλές, αν όχι όλες, από αυτές τις διευθύνσεις
έχουν την μορφή
freebsd-listname@FreeBSD.org.
Παρακαλούμε να το έχετε υπόψη σας κατά τη διατύπωση των
ερωτήσεων σας.Συγκεκριμένα, τα ports που φαίνονται ότι συντηρούνται από την
freebsd-ports@FreeBSD.org, δεν
συντηρούνται από κανέναν στην πραγματικότητα. Διορθώσεις και
υποστήριξη, αν υπάρχουν, έρχονται γενικά από την κοινότητα που
συμμετέχει στην συγκεκριμένη mailing list. Χρειαζόμαστε πάντοτε
περισσότερους εθελοντές!Αν δεν λάβετε απάντηση,
μπορείτε να χρησιμοποιήσετε το &man.send-pr.1; για να στείλετε
μια αναφορά σφάλματος (δείτε το Γράφοντας
Αναφορές Σφάλματος για το &os;).Διορθώστε το! Το Porter's
Handbook περιέχει λεπτομερείς πληροφορίες για την υποδομή
των Ports ώστε να μπορείτε να διορθώσετε το
περιστασιακό προβληματικό port ή ακόμα και να δημιουργήσετε ένα
δικό σας port!Ανακτήστε το πακέτο από ένα κοντινό σας FTP site. Η
κύρια συλλογή πακέτων βρίσκεται στο ftp.FreeBSD.org, στον κατάλογο
πακέτων. Πριν τη χρησιμοποιήσετε, ελέγξτε
πρώτα το τοπικό σας mirror.
Τα πακέτα είναι πιο σίγουρο ότι θα λειτουργήσουν,
από το να προσπαθείτε να μεταγλωττίσετε τον πηγαίο κώδικα, και
η διαδικασία τελειώνει πιο γρήγορα. Χρησιμοποιήστε το πρόγραμμα
&man.pkg.add.1; για να εγκαταστήσετε το πακέτο στο
σύστημα σας.
diff --git a/el_GR.ISO8859-7/books/handbook/preface/preface.sgml b/el_GR.ISO8859-7/books/handbook/preface/preface.sgml
index 9082abc3bc..9a33a96b17 100644
--- a/el_GR.ISO8859-7/books/handbook/preface/preface.sgml
+++ b/el_GR.ISO8859-7/books/handbook/preface/preface.sgml
@@ -1,835 +1,833 @@
ΠρόλογοςΣε Ποιους Απευθύνεται
Αυτό το ΒιβλίοΤο πρώτο τμήμα αυτού του βιβλίου, οδηγεί τον νέο χρήστη στη
διαδικασία εγκατάστασης του &os;, και τον εισάγει ομαλά στη φιλοσοφία
και τον σχεδιασμό του &unix;. Αυτό το τμήμα δεν έχει ιδιαίτερες
απαιτήσεις. Αρκεί μόνο η διάθεση για εξερεύνηση ενός νέου συστήματος, και
η δυνατότητα αφομοίωσης των γνώσεων για το &os; καθώς αυτές εισάγονται
σταδιακά.Αφού διαβάσετε το πρώτο τμήμα, το δεύτερο, κατά πολύ μεγαλύτερο τμήμα,
περιλαμβάνει μια εκτενή αναφορά σε διάφορα θέματα που ενδιαφέρουν
τους διαχειριστές συστημάτων &os;. Μερικά από αυτά τα κεφάλαια είναι
ευκολότερο να τα κατανοήσετε αν έχετε ήδη μελετήσει συγκεκριμένα τμήματα
του βιβλίου. Όπου χρειάζεται κάτι τέτοιο, θα αναφέρεται στη σύνοψη του
κεφαλαίου που μόλις ξεκινήσατε να διαβάζετε.Για περισσότερες πηγές πληροφοριών, δείτε το
.Αλλαγές από την
Τρίτη ΈκδοσηΗ τρέχουσα online έκδοση του Εγχειριδίου, είναι το αποτέλεσμα της
προσπάθειας πολλών εκατοντάδων εθελοντών στο διάστημα των τελευταίων
10 χρόνων. Οι πιο σημαντικές αλλαγές σε σχέση με την τρίτη έντυπη
έκδοση του Εγχειριδίου (2004) φαίνονται παρακάτω:, το &dtrace;, είναι ένα νέο κεφάλαιο με
πληροφορίες σχετικά με αυτό το πανίσχυρο εργαλείο ανάλυσης
απόδοσης., η Υποστήριξη Συστημάτων Αρχείων,
είναι ένα νέο κεφάλαιο με πληροφορίες για συστήματα αρχείων που δεν
υποστηρίζονται εγγενώς από το &os;, όπως το ZFS από την &sun;.
+
+ ,ο Έλεγχος Συμβάντων Ασφαλείας, είναι ένα
+ νέο κεφάλαιο με πληροφορίες σχετικά με τις νέες δυνατότητες και την
+ χρήση του auditing στο &os;.
+
+
, η Εικονικοποίηση, είναι ένα νέο
κεφάλαιο με πληροφορίες σχετικά με την εγκατάσταση του &os; σε
λογισμικό εκτέλεσης εικονικών (virtual) μηχανημάτων.Αλλαγές από τη
Δεύτερη Έκδοση (2004)Η τρίτη έκδοση αυτού του βιβλίου ήταν το αποτέλεσμα της προσπάθειας
περισσότερων από δύο χρόνων από τα μέλη της Ομάδας Τεκμηρίωσης του &os;.
Η έντυπη έκδοση είχε τόσο μεγάλο μέγεθος, που κρίθηκε αναγκαίο να τυπωθεί
σε δύο χωριστούς τόμους. Παρακάτω φαίνονται οι σημαντικότερες αλλαγές σε
αυτή τη νέα έκδοση:, Το κεφάλαιο Ρύθμισης και
Βελτιστοποίησης του &os;, επεκτάθηκε με νέες πληροφορίες για τη
διαχείριση ενέργειας και πόρων του συστήματος μέσω ACPI, με
περισσότερες πληροφορίες για το σύστημα cron και
με περισσότερες επιλογές παραμετροποίησης του πυρήνα του &os;., Το κεφάλαιο Ασφάλειας, επεκτάθηκε
με νέες πληροφορίες για Δίκτυα VPN, για λίστες ελέγχου πρόσβασης
αρχείων (ACLs), και περισσότερες συμβουλές σχετικά με την ασφάλεια του
&os;., Ο Υποχρεωτικός Έλεγχος Πρόσβασης (MAC),
είναι ένα νέο κεφάλαιο σε αυτή την έκδοση. Εξηγεί τι είναι ο
μηχανισμός MAC, και πώς μπορεί να χρησιμοποιηθεί για να ενισχυθεί η
ασφάλεια ενός συστήματος &os;., Το κεφάλαιο για τα Αποθηκευτικά Μέσα,
επεκτάθηκε, με νέες πληροφορίες για συσκευές αποθήκευσης USB,
στιγμιότυπα συστήματος αρχείων (snapshots), περιορισμούς στη χρήση
των συστημάτων αρχείων (quotas), συστήματα αρχείων που βασίζονται
σε υπάρχοντα αρχεία ή στο δίκτυο, καθώς και κρυπτογραφημένες
κατατμήσεις δίσκων., Ο Διαχειριστής Τόμων Vinum, είναι
ένα νέο κεφάλαιο σε αυτή την έκδοση. Περιγράφει τον τρόπο χρήσης του
Vinum, ενός συστήματος διαχείρισης αποθηκευτικών μέσων που υλοποιεί
την οργάνωση φυσικών δίσκων του συστήματος σε διάταξη RAID-0, RAID-1
και RAID-5.Στο , προστέθηκε ένα
τμήμα σχετικό με την επίλυση προβλημάτων στις συνδέσεις PPP και
SLIP., Το κεφάλαιο για το Ηλεκτρονικό
Ταχυδρομείο, επεκτάθηκε με νέες πληροφορίες για την χρήση
εναλλακτικών MTA, πιστοποίηση ταυτότητας στο SMTP, το πρωτόκολλο
UUCP, τα εργαλεία fetchmail και
procmail, και με άλλα θέματα για
προχωρημένους., Το κεφάλαιο Εξυπηρετητών
Δικτύων, περιλαμβάνεται για πρώτη φορά σε αυτή την έκδοση. Αυτό
το κεφάλαιο περιγράφει πως να εγκαταστήσετε τον
Διακομιστή HTTP Apache, τον εξυπηρετητή
ftpd του &os;, και τον διακομιστή
Samba για επικοινωνία με πελάτες
µsoft; &windows;. Στο κεφάλαιο αυτό, έχουν μεταφερθεί κάποιες
ενότητες από το (Προχωρημένα
Θέματα Δικτύωσης), προκειμένου να βελτιωθεί η παρουσίαση τους., Το κεφάλαιο για Προχωρημένα
Θέματα Δικτύωσης, επεκτάθηκε με νέες πληροφορίες για τη χρήση
συσκευών &bluetooth; στο &os;, την εγκατάσταση ασύρματων δικτύων,
και την Μέθοδο Δικτύωσης Ασύγχρονης Μεταφοράς (ATM).Προστέθηκε ένα Λεξιλόγιο, για να συγκεντρώσει όλους τους
τεχνικούς όρους και τους διάφορους ορισμούς που περιέχονται σε
ολόκληρο το βιβλίο.Έγιναν αισθητικές βελτιώσεις στους πίνακες και στα γραφήματα σε
ολόκληρο το βιβλίο.Αλλαγές από την Πρώτη
Έκδοση (2001) Η δεύτερη έκδοση ήταν το αποτέλεσμα τουλάχιστον δύο χρόνων εργασίας
από τα μέλη της Ομάδας Τεκμηρίωσης του &os;. Οι πιο σημαντικές αλλαγές σε
αυτή την έκδοση ήταν οι παρακάτω:Προστέθηκε ένα ολοκληρωμένο Ευρετήριο.Όλα τα γραφήματα σε ASCII αντικαταστάθηκαν από γραφικά
διαγράμματα.Προστέθηκε μια τυποποιημένη σύνοψη σε κάθε κεφάλαιο, η οποία
περιέχει μια σύντομη ανακεφαλαίωση των πληροφοριών που περιέχει το
κεφάλαιο, και τι αναμένεται να γνωρίζει από πριν ο αναγνώστης.Το περιεχόμενο αναδιοργανώθηκε σε τρία λογικά μέρη:
Ξεκινώντας με το &os;,
Διαχείριση Συστήματος, και
Παραρτήματα.Το (Εγκαθιστώντας το &os;)
ξαναγράφτηκε από την αρχή με πολλές εικόνες, ώστε να διευκολύνει τους
χρήστες να κατανοήσουν το κείμενο.Το (Βασικές Έννοιες στο
&unix;) επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες
πληροφορίες για τις διεργασίες (processes), τους δαίμονες (daemons),
και τα σήματα (signals).Το (Εγκατάστασης Εφαρμογών: Πακέτα
και Ports) επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες
πληροφορίες για την διαχείριση προμεταγλωττισμένων πακέτων
(packages).Το (Το Σύστημα X Window)
ξαναγράφτηκε από την αρχή με έμφαση στην χρήση μοντέρνων τεχνολογιών,
όπως τα περιβάλλοντα εργασίας KDE και
GNOME σε &xfree86; 4.X.Το (Η Διαδικασία Εκκίνησης του
&os;) επεκτάθηκε με περισσότερες πληροφορίες.Το (Αποθηκευτικά Μέσα)
ξαναγράφτηκε με βάση τα παλαιότερα δύο κεφάλαια Δίσκοι
και Αντίγραφα Ασφαλείας. Πιστεύουμε ότι τα θέματα αυτά
είναι πιο ευκολονόητα όταν παρουσιάζονται μαζί σαν ένα κεφάλαιο.
Προστέθηκε επίσης μια ενότητα για RAID (υλοποίηση μέσω υλικού ή
λογισμικού).Το (Σειριακές
Επικοινωνίες) αναδιοργανώθηκε από την αρχή και ενημερώθηκε για
τις εκδόσεις &os; 4.X/5.X.Το (PPP και SLIP)
ενημερώθηκε σε σημαντικό βαθμό.Πολλοί νέοι τομείς προστέθηκαν στο (Προχωρημένα Θέματα
Δικτύωσης).Το (Ηλεκτρονικό Ταχυδρομείο)
επεκτάθηκε για να συμπεριλαμβάνει περισσότερες πληροφορίες για τις
ρυθμίσεις του Sendmail.Το (Συμβατότητα με Εκτελέσιμα
του &linux;) επεκτάθηκε για να συμπεριλαμβάνει πληροφορίες
για την εγκατάσταση της βάσης δεδομένων
&oracle; και του
&sap.r3;.Στην δεύτερη έκδοση καλύπτονται επίσης τα παρακάτω
νέα θέματα:Ρύθμιση και Βελτιστοποίηση
()Πολυμέσα ()Οργάνωση Αυτού του
ΒιβλίουΑυτό το βιβλίο χωρίζεται σε πέντε διακριτά λογικά τμήματα.
Το πρώτο τμήμα, Ξεκινώντας με το &os;, περιγράφει την
εγκατάσταση και την βασική χρήση του &os;. Ο προτεινόμενος τρόπος
ανάγνωσης αυτού του τμήματος είναι ένα-ένα κεφάλαιο, με τη σειρά,
προσπερνώντας κεφάλαια με γνωστά θέματα. Το δεύτερο τμήμα,
Βασικές Εργασίες, περιγράφει μερικά χαρακτηριστικά
του &os; τα οποία χρησιμοποιούνται συχνά. Μπορείτε να διαβάσετε τα
κεφάλαια σε αυτό το τμήμα (καθώς και σε όλα τα τμήματα που ακολουθούν)
με όποια σειρά θέλετε. Κάθε κεφάλαιο ξεκινά με μια σαφή και σύντομη
σύνοψη, η οποία περιγράφει τα περιεχόμενα του κεφαλαίου καθώς και τι
χρειάζεται να γνωρίζει ήδη ο αναγνώστης. Αυτό επιτρέπει στον
περιστασιακό αναγνώστη να προσπερνά γρήγορα ενότητες, για να βρει
κεφάλαια τα οποία τον ενδιαφέρουν περισσότερο. Το τρίτο τμήμα,
Διαχείριση Συστήματος, περιέχει θέματα σχετικά με τη
διαχείριση συστημάτων &os;. Το τέταρτο τμήμα, Δικτυακές
Επικοινωνίες, καλύπτει θέματα δικτύωσης και διακομιστών.
Το πέμπτο τμήμα περιέχει παραρτήματα με διάφορες πληροφορίες., ΕισαγωγήΠαρουσιάζει το &os; στο νέο χρήστη. Περιγράφει την
ιστορία του &os; Project, τους στόχους του, και το μοντέλο
ανάπτυξης του., Εγκαθιστώντας το &os;Οδηγεί τον χρήστη στην διαδικασία της πλήρης εγκατάστασης.
Επίσης συμπεριλαμβάνονται μερικά θέματα εγκατάστασης για
προχωρημένους, όπως η εγκατάσταση μέσω σειριακής κονσόλας., Βασικές Έννοιες στο &unix;Περιέχει τις βασικές εντολές και λειτουργίες του λειτουργικού
συστήματος &os;. Εάν είστε εξοικειωμένος με το &linux; ή με
άλλο λειτουργικό τύπου &unix; μπορείτε πιθανώς να προσπεράσετε
αυτό το κεφάλαιο., Εγκατάσταση Εφαρμογών: Πακέτα και PortsΠεριγράφει τον τρόπο εγκατάστασης λογισμικού τρίτων
κατασκευαστών με την καινοτόμο Συλλογή των Ports (Ports
Collection) του &os; και με τα συνήθη προμεταγλωττισμένα
πακέτα (packages)., Το Σύστημα X WindowΠεριγράφει γενικά το σύστημα X Window και ειδικότερα το
X11 του &os;. Επίσης περιγράφει ολοκληρωμένα περιβάλλοντα εργασίας
όπως το KDE και το
GNOME., Desktop ΕφαρμογέςΑναφέρει και εξηγεί μερικές από τις πιο συνήθεις εφαρμογές
για υπολογιστές γραφείου, όπως προγράμματα πλοήγησης ιστοσελίδων και
εφαρμογές γραφείου, και περιγράφει πως να τις εγκαταστήσετε στο
&os;., ΠολυμέσαΥποδεικνύει πως να εγκαταστήσετε δυνατότητες αναπαραγωγής ήχου
και βίντεο στο σύστημα σας. Επίσης περιλαμβάνει δειγματοληπτικά
κάποιες εφαρμογές ήχου και βίντεο., Ρυθμίζοντας τον Πυρήνα του &os;Εξηγεί τους λόγους για τους οποίους θα πρέπει να δημιουργήσετε
ένα νέο πυρήνα, και παρέχει λεπτομερείς οδηγίες για την ρύθμιση,
μεταγλώττιση, και εγκατάσταση του νέου σας προσαρμοσμένου
πυρήνα., ΕκτυπώσειςΠεριγράφει πως να διαχειρίζεστε εκτυπωτές στο &os;.
Συμπεριλαμβάνει πληροφορίες για σελίδες λογοτύπων, λογαριασμούς
εκτυπωτών, και αρχικές ρυθμίσεις., Συμβατότητα με Εκτελέσιμα του &linux;Περιγράφει τις δυνατότητες συμβατότητας του &os; με εφαρμογές
&linux;. Επίσης παρέχει λεπτομερείς οδηγίες εγκατάστασης για πολλές
γνωστές εφαρμογές του &linux; όπως
&oracle;,
&sap.r3;,
και &mathematica;., Ρύθμιση και ΒελτιστοποίησηΠεριγράφει τις παραμέτρους που έχουν στη διάθεση τους οι
διαχειριστές του συστήματος, ώστε να ρυθμίσουν ένα σύστημα &os; για
βέλτιστη απόδοση. Επίσης περιγράφει τα διάφορα αρχεία ρυθμίσεων
που χρησιμοποιούνται στο &os; και που να τα βρείτε., Η Διαδικασία Εκκίνησης του &os;Περιγράφει την διαδικασία εκκίνησης του &os; και εξηγεί πως
μπορούμε να την ελέγχουμε με τη βοήθεια επιλογών και
ρυθμίσεων., Χρήστες και Βασική Διαχείριση ΛογαριασμώνΠεριγράφει την δημιουργία και την διαχείριση των λογαριασμών
χρηστών. Επίσης περιγράφει τρόπους με τους οποίους μπορούν να
τεθούν περιορισμοί στους χρήστες όσο αφορά τη χρήση πόρων του
συστήματος, καθώς και άλλες λειτουργίες διαχείρισης
λογαριασμών., ΑσφάλειαΠεριγράφει διάφορα διαθέσιμα εργαλεία που θα σας βοηθήσουν να
κρατήσετε το &os; σύστημα σας ασφαλές. Συμπεριλαμβάνονται οι
υλοποιήσεις Kerberos, IPsec και OpenSSH., JailsΠεριγράφει το πλαίσιο λειτουργιών των jails, και τις βελτιώσεις
που παρέχουν σε σχέση με την παραδοσιακή chroot υποστήριξη
του &os;., Υποχρεωτικός Έλεγχος ΠρόσβασηςΕξηγεί τι είναι ο Υποχρεωτικός Έλεγχος Πρόσβασης (MAC) και
πως ο μηχανισμός αυτός μπορεί να χρησιμοποιηθεί για την ασφάλιση
ενός &os; συστήματος., Έλεγχος Συμβάντων ΑσφαλείαςΠεριγράφει τι είναι ο Έλεγχος Συμβάντων, πως μπορεί να
εγκατασταθεί, να ρυθμιστεί, και πως μπορούν να διερευνώνται και να
παρακολουθούνται τα ίχνη του ελέγχου (audit trails)., Αποθηκευτικά ΜέσαΠεριγράφει πως να διαχειρίζεστε μέσα αποθήκευσης και συστήματα
αρχείων με το &os;. Συμπεριλαμβάνονται φυσικοί δίσκοι, συστοιχίες
RAID, οπτικά και μαγνητικά μέσα, εικονικοί δίσκοι μνήμης, και
δικτυακά συστήματα αρχείων., GEOM: Διαχείριση Συστοιχιών ΔίσκωνΠεριγράφει τι είναι το πλαίσιο λειτουργιών GEOM στο &os; και
πως να ρυθμίσετε διάφορα επίπεδα RAID που υποστηρίζονται
στο &os;., Υποστήριξη Συστημάτων ΑρχείωνΕξετάζει την υποστήριξη μη-εγγενών συστημάτων αρχείων στο &os;,
όπως το Z File System της &sun;., VinumΠεριγράφει πως να χρησιμοποιήσετε το Vinum, ένα διαχειριστή
λογικών τόμων που παρέχει λογικούς δίσκους ανεξάρτητα από τη
συσκευή στην οποία είναι αποθηκευμένοι, καθώς και δυνατότητες
RAID-0, RAID-1 και RAID-5 μέσω λογισμικού., ΕικονικοποίησηΠεριγράφει τι προσφέρουν τα συστήματα εικονικοποίησης, και πως
μπορούν να χρησιμοποιηθούν με το &os;., Τοπικές Ρυθμίσεις - Χρήση και Ρύθμιση I18N/L10NΠεριγράφει πως να χρησιμοποιήσετε το &os; σε γλώσσες εκτός της
Αγγλικής. Καλύπτει την δυνατότητα τοπικών ρυθμίσεων τόσο σε
επίπεδο συστήματος, όσο και σε επίπεδο εφαρμογών.
- , Στην Κόψη του Ξυραφιού
+ , Ενημέρωση και Αναβάθμιση του &os;Εξηγεί τις διαφορές μεταξύ των εκδόσεων &os.stable;,
&os.current;, και των επίσημων (RELEASE) εκδόσεων του &os;.
Περιγράφει ποιοι χρήστες ωφελούνται όταν ακολουθούν ένα σύστημα
- ανάπτυξης καθώς και τα απαιτούμενα για αυτό το σκοπό βήματα.
+ ανάπτυξης καθώς και τα απαιτούμενα για αυτό το σκοπό βήματα.
+ Καλύπτει τις μεθόδους που μπορούν να χρησιμοποιήσουν οι χρήστες
+ για να ενημερώσουν το σύστημα τους με τις τελευταίες διορθώσεις
+ ασφαλείας.
, &dtrace;Περιγράφει την ρύθμιση και χρήση του εργαλείου &dtrace; της
&sun; στο &os;. Το δυναμικό tracing μπορεί να βοηθήσει στον
εντοπισμό προβλημάτων απόδοσης, παρέχοντας ανάλυση του συστήματος
σε πραγματικό χρόνο.
-
- , Ενημερώνοντας το &os;
-
-
- Περιγράφει τα τελευταίας γενιάς εργαλεία που μπορείτε να
- χρησιμοποιήσετε για την ενημέρωση ενός &os; συστήματος. Τα
- εργαλεία αυτά είναι το &man.freebsd-update.8; για το βασικό σύστημα
- και το &man.portsnap.8; για την Συλλογή των Ports.
-
-
-
, Σειριακές ΕπικοινωνίεςΕξηγεί πως να συνδέσετε τερματικά και μόντεμ στο &os; σύστημα
σας, για χρήση τόσο σε εισερχόμενες όσο και σε εξερχόμενες
συνδέσεις., PPP και SLIPΠεριγράφει πως να χρησιμοποιήσετε τις τεχνολογίες PPP, SLIP, ή
PPP μέσω Ethernet για να συνδεθείτε σε απομακρυσμένα συστήματα με το
&os;., Ηλεκτρονικό ΤαχυδρομείοΕξηγεί τα διαφορετικά στοιχεία ενός διακομιστή ηλεκτρονικής
αλληλογραφίας και εμβαθύνει σε θέματα απλών ρυθμίσεων για το πλέον
δημοφιλές λογισμικό διακομιστή ηλεκτρονικής αλληλογραφίας: το
sendmail., Εξυπηρετητές ΔικτύουΠαρέχει λεπτομερείς οδηγίες και παραδείγματα αρχείων ρύθμισης
για να ρυθμίσετε το &os; να ενεργεί ως δικτυακός εξυπηρετητής
αρχείων, εξυπηρετητής ονομάτων τομέα (DNS), εξυπηρετητής δικτυακών
πληροφοριών (NIS), η εξυπηρετητής συγχρονισμού ώρας (NTP)., FirewallsΕξηγεί την φιλοσοφία που κρύβεται πίσω από τα firewalls (τείχη
προστασίας) που βασίζονται σε λογισμικό, και παρέχει λεπτομερείς
πληροφορίες για τις ρυθμίσεις των διαφόρων firewalls που διατίθενται
για το &os;., Προχωρημένα Θέματα ΔικτύωσηςΠεριγράφει πολλά προχωρημένα θέματα δικτύωσης,
συμπεριλαμβανομένου του διαμοιρασμού μιας σύνδεσης Internet με
άλλους υπολογιστές στο τοπικό σας δίκτυο (LAN), θέματα δρομολόγησης
για προχωρημένους, ασύρματη δικτύωση, &bluetooth;, ATM, IPv6, και
πολλά ακόμη., Που θα Βρείτε το &os;Περιέχει λίστα με διάφορες πηγές για να αποκτήσετε το &os; σε
CD-ROM ή DVD, όπως επίσης και διάφορες τοποθεσίες στο Internet από
όπου μπορείτε να κατεβάσετε και να εγκαταστήσετε το &os;., Βιβλιογραφία Αυτό το βιβλίο αγγίζει πολλά διαφορετικά θέματα που μπορεί να
σας κεντρίσουν το ενδιαφέρον για μια πιο λεπτομερή εξερεύνηση. Η
βιβλιογραφία ταξινομεί σε κατηγορίες πολλά εξαιρετικά βιβλία τα
οποία αναφέρονται στο κείμενο., Πηγές Πληροφόρησης στο ΔιαδίκτυοΠεριγράφει πολλά φόρουμ που διατίθενται στους χρήστες του &os;,
ώστε να θέτουν ερωτήματα και να συμμετέχουν σε τεχνικές συζητήσεις
για το &os;., Κλειδιά PGPΚαταγράφει τα δακτυλικά αποτυπώματα των κλειδιών PGP αρκετών
μελών της Ομάδας Ανάπτυξης του &os;.Συμβάσεις που
χρησιμοποιούνται σε αυτό το βιβλίοΣε ολόκληρο το βιβλίο, χρησιμοποιούνται κάποιες τυπογραφικές
συμβάσεις ώστε η μορφοποίηση του να είναι συνεπής και να είναι πιο
ευανάγνωστο:Τυπογραφικές
ΣυμβάσειςΠλάγια γραφή Η πλάγια γραμματοσειρά χρησιμοποιείται
για ονόματα αρχείων, URLs, κείμενο με έμφαση, και για χρήση
πρωτοεμφανιζόμενων τεχνικών όρων.Γραφή σταθερού πλάτους Η σταθερού πλάτους γραμματοσειρά
χρησιμοποιείται για μηνύματα λάθους, εντολές, μεταβλητές
περιβάλλοντος, ονομασίες των ports, ονόματα κεντρικών
υπολογιστών, ονόματα χρηστών, ονόματα ομάδων, ονόματα συσκευών,
μεταβλητές, και αποσπάσματα κώδικα.Έντονη γραφήΗ έντονη γραμματοσειρά
χρησιμοποιείται για εφαρμογές, εντολές, και πλήκτρα.Είσοδος Δεδομένων
από το ΧρήστηΗ πληκτρολόγηση σημειώνεται με έντονη γραφή ώστε να
ξεχωρίζει από το υπόλοιπο κείμενο. Συνδυασμοί πλήκτρων που πρέπει να
πιεσθούν ταυτόχρονα σημειώνονται με `+' μεταξύ των
πλήκτρων, όπως:CtrlAltDelΤο οποίο σημαίνει πως ο χρήστης θα πρέπει να πιέσει τα πλήκτρα
Ctrl, Alt, και το πλήκτρο
Del ταυτόχρονα.Σε περίπτωση που κάποια πλήκτρα πρέπει να πιεσθούν με συγκεκριμένη
σειρά, θα εμφανίζονται χωρισμένα με κόμματα:CtrlX,
CtrlSΤο οποίο σημαίνει πως ο χρήστης αναμένεται να πιέσει τα
πλήκτρα Ctrl και X ταυτόχρονα
και έπειτα να πιέσει τα πλήκτρα Ctrl και
S ταυτόχρονα.ΠαραδείγματαΤα παραδείγματα που ξεκινούν με E:\>
υποδηλώνουν μια εντολή &ms-dos;. Αυτές οι εντολές μπορούν να εκτελούνται
από το παράθυρο Γραμμής Εντολών σε σύγχρονο περιβάλλον
µsoft.windows;, εκτός αν αναφέρεται κάτι διαφορετικό.E:\>tools\fdimage floppies\kern.flp A:Τα παραδείγματα που ξεκινούν με &prompt.root; υποδηλώνουν μια εντολή
που θα πρέπει να εκτελεστεί από τον υπερχρήστη (superuser) ενός
συστήματος &os;. Μπορείτε να συνδεθείτε σαν χρήστης
root για να πληκτρολογήσετε την εντολή, ή
να συνδεθείτε σαν κανονικός χρήστης και να χρησιμοποιήσετε την εντολή
&man.su.1; ώστε να αποκτήσετε προνόμια υπερχρήστη.&prompt.root; dd if=kern.flp of=/dev/fd0Τα παραδείγματα που ξεκινούν με &prompt.user; υποδηλώνουν μια εντολή
που πρέπει να εκτελεστεί από ένα κανονικό χρήστη. Χρησιμοποιείται η
σύνταξη C-shell για να θέσουμε μεταβλητές περιβάλλοντος και άλλες εντολές
κελύφους, εκτός αν αναφέρεται κάτι διαφορετικό.&prompt.user; topΕυχαριστίεςΤο βιβλίο που κρατάτε, παρουσιάζει τις προσπάθειες πολλών εκατοντάδων
ανθρώπων από όλο τον κόσμο. Είτε μας ενημέρωσαν για τυπογραφικά λάθη,
είτε μας έστειλαν ολόκληρα κεφάλαια, η συμβολή όλων ήταν χρήσιμη.Μερικές εταιρείες υποστήριξαν την ανάπτυξη αυτού του εγγράφου
μισθώνοντας συντάκτες να εργάζονται σε πλήρη απασχόληση, πληρώνοντας για
την έκδοση, κτλ. Ειδικότερα, η BSDi (η οποία αργότερα αποκτήθηκε από την
Wind River Systems)
μίσθωσε μέλη του &os; Documentation Project να εργάζονται σε πλήρη
απασχόληση για την βελτίωση του βιβλίου, οδηγώντας στην πρώτη έντυπη
έκδοση στα αγγλικά τον Μάρτιο του 2000 (ISBN 1-57176-241-8). Η εταιρεία
Wind River Systems μίσθωσε τότε μερικούς επιπρόσθετους συντάκτες ώστε
να κάνει βελτιώσεις στην δομή της έντυπης έκδοσης και να προσθέσει κάποια
νέα κεφάλαια. Η αποκορύφωση αυτής της εργασίας ήταν η παρουσίαση
της δεύτερης έντυπης έκδοσης, τον Νοέμβριο του 2001 (ISBN 1-57176-303-1).
1-57176-303-1). Το 2003-2004, η FreeBSD Mall, Inc, μίσθωσε
αρκετούς συνεργάτες να βελτιώσουν το Εγχειρίδιο Χρήσης προς ετοιμασία
της τρίτης έντυπης έκδοσης.
diff --git a/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml b/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml
index 4e116644c8..62c7750b4b 100644
--- a/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml
+++ b/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml
@@ -1,3109 +1,3109 @@
Σειριακές ΕπικοινωνίεςΣύνοψησειριακές επικοινωνίεςΤο &unix; πάντοτε υποστήριζε σειριακές επικοινωνίες. Για την
ακρίβεια, τα πρώτα &unix; μηχανήματα βασίζονταν σε σειριακές γραμμές
για την είσοδο και έξοδο στο χρήστη. Τα πράγματα ωστόσο έχουν αλλάξει
πολύ από τις μέρες που το συνηθισμένο τερματικό
αποτελούνταν από ένα σειριακό εκτυπωτή 10 χαρακτήρων το δευτερόλεπτο
και ένα πληκτρολόγιο. Το κεφάλαιο αυτό θα καλύψει κάποιους από τους
τρόπους σειριακής επικοινωνίας που χρησιμοποιούνται από το &os;.Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:Πως να συνδέσετε τερματικά στο &os; σύστημα σας.Πως να χρησιμοποιήσετε ένα modem για να συνδεθείτε
σε απομακρυσμένα συστήματα.Πως να επιτρέψετε σε απομακρυσμένους χρήστες να
συνδεθούν στο σύστημα σας μέσω modem.Πως να εκκινήσετε το σύστημα σας μέσω σειριακής
κονσόλας.Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:Να ξέρετε πως θα ρυθμίσετε και θα εγκαταστήσετε
ένα νέο πυρήνα ().Να κατανοείτε τις άδειες και διεργασίες του
&unix; ().Να έχετε πρόσβαση στο τεχνικό εγχειρίδιο του υλικού
σας (modem ή κάρτα πολλαπλών σειριακών θυρών) που θέλετε να
χρησιμοποιήσετε στο &os;.ΕισαγωγήΟρολογίαbits-per-secondbpsBits Ανά Δευτερόλεπτο — ο ρυθμός μετάδοσης των
δεδομένωνDTEDTEData Terminal Equipment, Τερματικός Εξοπλισμός Δεδομένων
— για παράδειγμα, ο υπολογιστής σαςDCEDCEData Communications Equipment, Εξοπλισμός Επικοινωνίας
Δεδομένων — το modem σαςRS-232RS-232C cablesΠρότυπο της EIA για το υλικό που χρησιμοποιείται στις
σειριακές επικοινωνίεςΌταν αναφερόμαστε στο ρυθμό μετάδοσης δεδομένων επικοινωνίας,
δεν χρησιμοποιούμε πάντοτε τον όρο baud. Το baud
αναφέρεται στον αριθμό των μεταβάσεων του ηλεκτρικού σήματος στη
μονάδα του χρόνου, ενώ κανονικά πρέπει να χρησιμοποιείται το
bps (bits ανά δευτερόλεπτο) που είναι ο
σωστός όρος (η τουλάχιστον δεν φαίνεται να
ενοχλεί πολύ τους σχολαστικούς).Θύρες και ΚαλώδιαΓια να συνδέσετε ένα modem ή τερματικό στο &os; σύστημα σας, θα
χρειαστείτε μια σειριακή θύρα στον υπολογιστή σας, και το κατάλληλο
καλώδιο για να συνδέσετε τη σειριακή συσκευή σας. Αν είστε ήδη
εξοικειωμένος με το υλικό σας και το καλώδιο που απαιτείται, μπορείτε
με ασφάλεια να παραλείψετε αυτή την ενότητα.ΚαλώδιαΥπάρχουν αρκετοί διαφορετικοί τύποι σειριακών καλωδίων. Οι δύο
πιο κοινοί τύποι για τους σκοπούς μας, είναι τα καλώδια τύπου
null-modem και τα τυποποιημένα καλώδια RS-232 (γνωστά και ως
ευθείες). Η τεκμηρίωση του υλικού σας θα πρέπει
να περιγράφει τον τύπο του καλωδίου που απαιτείται.Καλώδια Τύπου Null-modemnull-modem cableΈνα καλώδιο τύπου null-modem, μεταφέρει απευθείας κάποια
σήματα όπως η Γείωση Σήματος (SG), αλλά
αντιστρέφει τις συνδέσεις σε κάποια άλλα. Για παράδειγμα, ο
ακροδέκτης Μετάδοσης Δεδομένων (γνωστός και ως
TD) της μιας πλευράς,
συνδέεται με τον ακροδέκτη Λήψης Δεδομένων (γνωστός
και ως RD) της
άλλης.Μπορείτε επίσης να φτιάξετε το δικό σας καλώδιο τύπου
null-modem (π.χ. για λόγους ποιότητας) για χρήση με τερματικά.
Ο παρακάτω πίνακας δείχνει τα
σήματα του RS-232
και τους αριθμούς των ακροδεκτών σε ένα συνδέτη DB-25. Σημειώστε
επίσης ότι το πρότυπο ορίζει απευθείας σύνδεση των ακροδεκτών 1
της κάθε άκρης. Πρόκειται για τον ακροδέκτη της
Προστατευτικής Γείωσης, αλλά συχνά η σύνδεση
του παραλείπεται. Μερικά τερματικά λειτουργούν κανονικά
χρησιμοποιώντας μόνο τους ακροδέκτες 2, 3 και 7, ενώ κάποιοι άλλα
απαιτούν διαφορετικές ρυθμίσεις σε σχέση με τα παραδείγματα που
φαίνονται παρακάτω.
Όταν ένας ακροδέκτης σε μια άκρη χρειάζεται να συνδεθεί με
δύο ακροδέκτες στην άλλη, συνήθως ενώνουμε τους ακροδέκτες
μεταξύ τους στη μια άκρη με ένα μικρό καλώδιο, και
χρησιμοποιούμε ένα μακρύτερο καλώδιο για την ένωση με την άλλη
άκρη.Η παραπάνω διάταξη φαίνεται να είναι η πιο διαδεδομένη. Σε
μια παραλλαγή (που εξηγείται στο βιβλίο Το RS-232 με
Απλά Βήματα), το SG συνδέεται στο SG, το TD συνδέεται
στο RD, τα RTS και CTS συνδέονται στο DCD, το DTR συνδέεται στο
DSR, και αντίστροφα.Τυποποιημένα Καλώδια RS-232CRS-232C cablesΈνα τυποποιημένο σειριακό καλώδιο RS-232C, μεταφέρει όλα
τα σήματα απευθείας από τη μια άκρη στην άλλη, χωρίς καμιά αλλαγή
στους ακροδέκτες. Αυτό απλά σημαίνει ότι ο ακροδέκτης
Μετάδοσης Δεδομένων (TD) της μιας άκρης, συνδέεται
στον ακροδέκτη Μετάδοσης Δεδομένων (TD) της άλλης
άκρης. Αυτό είναι και το είδος του καλωδίου που θα
χρησιμοποιήσετε για να συνδέσετε ένα modem στο &os; σύστημα σας,
και είναι επίσης κατάλληλο για ορισμένα τερματικά.ΘύρεςΟι σειριακές θύρες είναι οι συσκευές που μεταφέρουν τα δεδομένα
μεταξύ του &os; συστήματος και του τερματικού. Η ενότητα αυτή
περιγράφει τα είδη των θυρών που υπάρχουν, και πως τα χειρίζεται το
&os;.Είδη ΘυρώνΥπάρχουν διάφορα είδη σειριακών θυρών. Πριν αγοράσετε ή
κατασκευάσετε κάποιο καλώδιο, θα πρέπει να βεβαιωθείτε ότι
ταιριάζει με τη θύρα του τερματικού και του &os; συστήματος
σας.Τα περισσότερα τερματικά διαθέτουν θύρες DB-25. Οι προσωπικοί
υπολογιστές, συμπεριλαμβανομένων και αυτών που εκτελούν &os;,
μπορεί να έχουν θύρες τύπου DB-25 ή DB-9. Αν διαθέτετε κάρτα
πολλαπλών σειριακών θυρών στον υπολογιστή σας, μπορεί να διαθέτει
θύρες τύπου RJ-12 ή RJ-45.Δείτε την τεκμηρίωση που συνοδεύει το υλικό σας, για τις
τεχνικές προδιαγραφές της θύρας που χρησιμοποιεί. Συνήθως
μπορείτε να βγάλετε συμπέρασμα αν απλώς κοιτάξετε την
υποδοχή.Ονόματα ΘυρώνΣτο &os;, έχετε πρόσβαση σε κάθε σειριακή θύρα μέσω μιας
καταχώρισης στον κατάλογο /dev. Υπάρχουν
δύο διαφορετικά είδη καταχωρίσεων:Οι θύρες που μπορούν να χρησιμοποιηθούν για είσοδο στο
σύστημα, ονομάζονται
/dev/ttydN
όπου το N είναι ο αριθμός της
θύρας (η αρίθμηση ξεκινάει από το μηδέν). Γενικά, οι θύρες
αυτές προορίζονται για σύνδεση με τερματικά. Οι θύρες εισόδου
απαιτούν να είναι ενεργό το σήμα ανίχνευσης φέροντος
(DCD) στη σειριακή γραμμή, προκειμένου να λειτουργήσουν
σωστά.Οι θύρες κλήσης ή εξόδου, ονομάζονται
/dev/cuadN.
Οι θύρες αυτές δεν χρησιμοποιούνται συνήθως για τερματικά,
αλλά για modems. Μπορείτε να χρησιμοποιήσετε αυτή τη θύρα
για κάποιο τερματικό που δεν υποστηρίζει το σήμα ανίχνευσης
φέροντος.Αν έχετε συνδέσει ένα τερματικό στην πρώτη σειριακή θύρα
(που στο &ms-dos; αναφέρεται ως COM1),
θα πρέπει να χρησιμοποιήσετε την συσκευή
/dev/ttyd0 για να αναφερθείτε στο τερματικό.
Αν το τερματικό είναι στη δεύτερη σειριακή θύρα (που είναι επίσης
γνωστή ως COM2) χρησιμοποιήστε τη
συσκευή /dev/ttyd1, κ.ο.κ.Ρύθμιση του ΠυρήναΤο &os; από προεπιλογή υποστηρίζει τέσσερις σειριακές θύρες.
Στον κόσμο του &ms-dos; οι θύρες αυτές είναι γνωστές ως:
COM1,
COM2,
COM3, και
COM4. Το &os; αυτή τη στιγμή υποστηρίζει
κουτές σειριακές κάρτες πολλαπλών θυρών, όπως τις
BocaBoard 1008 και 2016, όπως και πιο ευφυής κάρτες, όπως αυτές που
κατασκευάζονται από την Digiboard και την Stallion Technologies.
Ο προεπιλεγμένος πυρήνας ωστόσο, εκτελεί ανίχνευση μόνο για τις
τυπικές σειριακές (COM) θύρες.Για να δείτε αν ο πυρήνας σας αναγνωρίζει οποιαδήποτε από τις
σειριακές θύρες, παρατηρήστε τα μηνύματα κατά τη διάρκεια εκκίνησης
του συστήματος, ή χρησιμοποιήστε την εντολή
/sbin/dmesg για να ξαναδείτε τα μηνύματα του
πυρήνα κατά τη διάρκεια της εκκίνησης. Πιο συγκεκριμένα, αναζητήστε
τα μηνύματα που ξεκινούν με τους χαρακτήρες
sio.Για να δείτε μόνο τα μηνύματα που περιέχουν τη λέξη
sio, χρησιμοποιήστε την εντολή:&prompt.root; /sbin/dmesg | grep 'sio'Για παράδειγμα, σε ένα σύστημα με τέσσερις σειριακές θύρες, τα
μηνύματα του πυρήνα που σχετίζονται με αυτές φαίνονται
παρακάτω:sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550AΑν ο πυρήνας σας δεν αναγνωρίζει όλες τις σειριακές σας θύρες,
πιθανόν να χρειαστεί να τον ρυθμίσετε χρησιμοποιώντας το αρχείο
/boot/device.hints. Μπορείτε επίσης να
μετατρέψετε σε σχόλιο (ή και να διαγράψετε τελείως) γραμμές που
αναφέρονται σε συσκευές που δεν υπάρχουν στο σύστημα σας.Παρακαλούμε ανατρέξτε στη σελίδα manual του &man.sio.4; για
περισσότερες πληροφορίες σχετικά με τις σειριακές θύρες και τις
ρυθμίσεις των καρτών πολλαπλών σειριακών θυρών. Αν χρησιμοποιείτε
αρχείο ρυθμίσεων που προέρχεται από κάποια παλαιότερη έκδοση του
&os;, θα πρέπει να είστε ιδιαίτερα προσεκτικοί, καθώς κάποιες από
τις επιλογές των συσκευών και η σύνταξη τους έχουν αλλάξει στις
νεότερες εκδόσεις.Το port IO_COM1 υποκαθιστά το
port 0x3f8, IO_COM2 είναι το
0x2f8, IO_COM3 είναι το
0x3e8, και το IO_COM4 είναι
το 0x2e8. Αυτές είναι και οι πιο κοινές
ρυθμίσεις για τις παραπάνω θύρες. Οι γραμμές interrupt 4, 3, 5 και
9 είναι οι πλέον συνηθισμένες στις σειριακές θύρες. Σημειώστε
επίσης ότι οι συνηθισμένες σειριακές θύρες δεν
μπορούν να μοιράζονται το ίδιο interrupt με κάποια άλλη συσκευή
σε υπολογιστές που διαθέτουν δίαυλο τύπου ISA (οι κάρτες πολλαπλών
θυρών διαθέτουν ειδικά κυκλώματα που επιτρέπουν σε όλα τα
16550Α που χρησιμοποιεί η κάρτα να λειτουργούν χρησιμοποιώντας
μόνο μία ή δύο γραμμές interrupt).Ειδικά Αρχεία ΣυσκευώνΗ πρόσβαση στις περισσότερες συσκευές του πυρήνα, επιτυγχάνεται
μέσω ειδικών αρχείων συσκευών, τα οποία βρίσκονται
στον κατάλογο /dev/. Στις συσκευές
sio η πρόσβαση επιτυγχάνεται μέσω των
αρχείων
/dev/ttydN (για
συσκευές εισόδου, dial-in) και
/dev/cuadN (για
συσκευές εξόδου, call-out). Το &os; παρέχει επίσης συσκευές
αρχικοποίησης
(/dev/ttydN.init και
/dev/cuadN.init)
και συσκευές κλειδώματος
(/dev/ttydN.lock και
/dev/cuadN.lock).
Οι συσκευές αρχικοποίησης χρησιμοποιούνται για την ρύθμιση των
αρχικών παραμέτρων επικοινωνίας στη θύρα, κάθε φορά που
ανοίγει. Τέτοιες παράμετροι είναι π.χ. το
crtscts για τα modems που χρησιμοποιούν
σηματοδοσία RTS/CTS για έλεγχο ροής. Οι συσκευές
κλειδώματος χρησιμοποιούνται για να κλειδώνουν κάποιες ρυθμίσεις στις
θύρες, ώστε να μην μπορούν να αλλαχθούν από άλλους χρήστες ή
προγράμματα. Για πληροφορίες σχετικές με τις ρυθμίσεις τερματικών,
την αρχικοποίηση και τα κλειδώματα συσκευών, και τη ρύθμιση
παραμέτρων στα τερματικά, δείτε αντίστοιχα τις σελίδες manual
&man.termios.4;, &man.sio.4;, και &man.stty.1;.Ρυθμίσεις Σειριακών ΘυρώνttydcuadΗ συσκευή
ttydN (ή
cuadN) είναι η
κανονική συσκευή που μπορείτε να χρησιμοποιήσετε στις εφαρμογές σας.
Όταν μια διαδικασία ανοίγει μια συσκευή, χρησιμοποιούνται κάποιες
προεπιλεγμένες ρυθμίσεις I/O για το τερματικό. Μπορείτε να
δείτε αυτές τις ρυθμίσεις με την εντολή:&prompt.root; stty -a -f /dev/ttyd1Αν αλλάξετε τις ρυθμίσεις σε αυτή τη συσκευή, αυτές θα
παραμείνουν μέχρι το κλείσιμο της συσκευής. Όταν ανοιχθεί ξανά, θα
έχει επανέλθει στις προεπιλεγμένες ρυθμίσεις. Για να αλλάξετε τις
προεπιλεγμένες ρυθμίσεις, μπορείτε να ανοίξετε και να αλλάξετε τις
ρυθμίσεις της συσκευής αρχικής κατάστασης. Για
παράδειγμα, για να ενεργοποιήσετε τη λειτουργία
, να ορίσετε επικοινωνία 8bit και έλεγχο ροής
μέσω για τη συσκευή
ttyd5, γράψτε:&prompt.root; stty -f /dev/ttyd5.init clocal cs8 ixon ixoffrc filesrc.serialΗ αρχικοποίηση των σειριακών συσκευών για όλο το σύστημα,
ελέγχεται από το αρχείο /etc/rc.d/serial. Το
αρχείο αυτό επηρεάζει τις προεπιλεγμένες ρυθμίσεις των σειριακών
συσκευών.Για να αποτρέψετε την αλλαγή συγκεκριμένων ρυθμίσεων από κάποια
εφαρμογή, αλλάξτε τις ρυθμίσεις της συσκευής
κλειδώματος. Για παράδειγμα, για να κλειδώσετε την
ταχύτητα της συσκευής ttyd5 στα
57600 bps, γράψτε:&prompt.root; stty -f /dev/ttyd5.lock 57600Τώρα, μια εφαρμογή που ανοίγει τη θύρα
ttyd5 και επιχειρεί να αλλάξει την ταχύτητα
της θύρας, θα αναγκαστεί να παραμείνει στα 57600 bps.Φυσικά, θα πρέπει να ρυθμίσετε τις συσκευές αρχικοποίησης και
κλειδώματος, ώστε να είναι εγγράψιμες μόνο από τον λογαριασμό του
root.SeanKellyΣυνεισφορά του ΤερματικάterminalsΤα τερματικά παρέχουν μια βολική και χαμηλού κόστους μέθοδο
πρόσβασης στο &os; σύστημα σας, όταν δεν βρίσκεστε μπροστά στην κονσόλα
ή σε κάποιο συνδεμένο δίκτυο. Η ενότητα αυτή περιγράφει πως να
χρησιμοποιήσετε τερματικά στο &os;.Χρήσεις και Είδη ΤερματικώνΤα αρχικά συστήματα &unix; δεν είχαν κονσόλες. Αντίθετα, οι
χρήστες εισέρχονταν στο σύστημα και εκτελούσαν τα προγράμματα τους
μέσω τερματικών που συνδέονταν στις σειριακές θύρες του υπολογιστή.
Αυτό μοιάζει αρκετά με τη χρήση modem και λογισμικού εξομοίωσης
τερματικού για σύνδεση σε ένα απομακρυσμένο σύστημα. Με τον τρόπο
αυτό μπορείτε βέβαια να εκτελέσετε εργασίες μόνο σε περιβάλλον
κειμένου.Τα σημερινά PC διαθέτουν κονσόλες ικανές να απεικονίσουν γραφικά
πολύ υψηλής ποιότητας, αλλά η ικανότητα σύνδεσης στο μηχάνημα μέσω
σειριακής θύρας, υπάρχει ακόμα σχεδόν σε όλα τα σημερινά συστήματα
τύπου &unix;. Το &os; δεν αποτελεί εξαίρεση. Συνδέοντας ένα
τερματικό σε μια αχρησιμοποίητη σειριακή θύρα, μπορείτε να εισέλθετε
στο σύστημα και να εκτελέσετε οποιοδήποτε πρόγραμμα κειμένου το οποίο
θα μπορούσατε φυσιολογικά να εκτελέσετε στην κονσόλα ή σε ένα
παράθυρο xterm του συστήματος X Window.Για χρήση σε επιχειρήσεις, είναι δυνατόν να συνδέσετε πολλά
τερματικά σε ένα &os; σύστημα και να τα τοποθετήσετε στις θέσεις
εργασίας των υπαλλήλων. Ένας οικιακός χρήστης μπορεί να
χρησιμοποιήσει κάποιο παλιό υπολογιστή (π.χ. ένα παλιό IBM PC ή
&macintosh;) ως τερματικό ενός πολύ ισχυρότερου υπολογιστή που εκτελεί
&os;. Με τον τρόπο αυτό, μπορείτε να μετατρέψετε αυτό που κανονικά
θα ήταν σύστημα ενός χρήστη, σε ένα πανίσχυρο σύστημα πολλαπλών
χρηστών.Στο &os; υπάρχουν τρία είδη τερματικών:Κουτά ΤερματικάPC που λειτουργούν ως τερματικάΤερματικά XΟι παρακάτω υποενότητες περιγράφουν καθένα από αυτούς τους
τύπους.Κουτά ΤερματικάΤα κουτά τερματικά είναι εξειδικευμένες συσκευές που επιτρέπουν
τη σύνδεση σε υπολογιστές μέσω σειριακών γραμμών. Αποκαλούνται
κουτά ακριβώς επειδή η μόνη υπολογιστική ισχύ που
έχουν είναι για απεικόνιση, αποστολή, και λήψη κειμένου. Δεν
μπορείτε να εκτελέσετε προγράμματα σε αυτά. Όλη η ισχύς τους
προέρχεται από τον υπολογιστή που θα τα συνδέσετε, και μέσω αυτού
μπορείτε να εκτελέσετε συντάκτες κειμένου, μεταγλωττιστές,
προγράμματα email, παιχνίδια κ.ο.κ.Υπάρχουν εκατοντάδες είδη κουτών τερματικών
από αρκετούς κατασκευαστές, όπως το VT-100 της Digital Equipment
Corporation και το WY-75 της Wyse. Σχεδόν οποιοσδήποτε τύπος μπορεί
να λειτουργήσει με το &os;. Μερικά τερματικά υψηλού κόστους μπορούν
επίσης να απεικονίσουν και γραφικά, αλλά αυτή τη δυνατότητα μπορούν
να την εκμεταλλευθούν σχετικά λίγα πακέτα λογισμικού.Τα κουτά τερματικά είναι δημοφιλή σε περιβάλλοντα εργασίας όπου
οι εργαζόμενοι δεν χρειάζονται πρόσβαση σε γραφικές εφαρμογές, όπως
αυτές που παρέχονται από το σύστημα X Window.PC που Λειτουργούν ως ΤερματικάΑν ένα κουτό τερματικό έχει
ακριβώς την ισχύ που χρειάζεται για να δείχνει, να στέλνει, και να
λαμβάνει κείμενο, τότε και κάθε υπολογιστής που σας περισσεύει
μπορεί να λειτουργήσει σαν κουτό τερματικό. Το μόνο που χρειάζεστε
είναι το σωστό καλώδιο και κάποιο πρόγραμμα
εξομοίωσης τερματικού το οποίο θα εκτελείτε
στον υπολογιστή αυτό.Η παραπάνω διάταξη είναι δημοφιλής για οικιακή χρήση. Αν για
παράδειγμα κάποιος δουλεύει στην κονσόλα του συστήματος σας,
μπορείτε να εκτελέσετε την εργασία σας (με την προϋπόθεσή ότι είναι
μόνο κείμενο) την ίδια στιγμή, χρησιμοποιώντας ένα λιγότερο ισχυρό
σύστημα το οποίο συνδέεται στο &os; σας ως τερματικό.Υπάρχουν δύο τουλάχιστον βοηθητικά προγράμματα στο βασικό
σύστημα του &os; που μπορούν να χρησιμοποιηθούν για να δουλέψετε
μέσω σειριακής σύνδεσης: το &man.cu.1; και το &man.tip.1;.Για να συνδεθείτε από ένα άλλο μηχάνημα που εκτελεί &os; στη
σειριακή σύνδεση ενός άλλου συστήματος, μπορείτε να χρησιμοποιήσετε
την παρακάτω εντολή:&prompt.root; cu -l serial-port-deviceΌπου το serial-port-device είναι το όνομα του
αρχείου συσκευής που αντιπροσωπεύει μια σειριακή θύρα στο σύστημα
σας. Αυτά τα αρχεία συσκευών καλούνται
/dev/cuadN.Το N στο όνομα της συσκευής, αντιπροσωπεύει τον
αριθμό της σειριακής θύρας.Σημειώστε ότι η αρίθμηση των συσκευών στο &os; ξεκινά από το
μηδέν, και όχι από το ένα (όπως συμβαίνει για παράδειγμα στα
συστήματα που σχετίζονται με το &ms-dos;). Αυτό πρακτικά σημαίνει
ότι η θύρα που στο &ms-dos; καλείται
COM1 θα είναι συνήθως η
/dev/cuad0 στο &os;.Κάποιοι χρήστες προτιμούν να χρησιμοποιούν άλλα προγράμματα
που διατίθενται μέσω της Συλλογής των Ports. Τα Ports
περιλαμβάνουν αρκετά βοηθητικά προγράμματα με λειτουργίες
παρόμοιες με το &man.cu.1; και το &man.tip.1;, για παράδειγμα το
comms/minicom.Τερματικά XΤα τερματικά X είναι τα πιο εξελιγμένα είδη τερματικών που
υπάρχουν. Αντί να συνδέονται σε σειριακή θύρα, συνήθως συνδέονται
μέσω δικτύου, π.χ. Ethernet. Αντί να περιορίζονται μόνο σε
εφαρμογές κειμένου, μπορούν να απεικονίσουν οποιαδήποτε εφαρμογή
των X.Αναφέραμε τα τερματικά X μόνο για λόγους πληρότητας αυτής της
ενότητας. Στο κεφάλαιο αυτό ωστόσο, δεν
καλύπτεται η εγκατάσταση, ρύθμιση, και χρήση των
τερματικών X.ΡύθμισηΗ ενότητα αυτή περιγράφει τι χρειάζεται να ρυθμίσετε στο &os;
σύστημα σας για να είναι δυνατή η είσοδος σε αυτό μέσω τερματικού.
Προϋποθέτει ότι έχετε ήδη ρυθμίσει τον πυρήνα σας να υποστηρίζει τη
σειριακή θύρα στην οποία είναι συνδεμένη το τερματικό—και ότι το
έχετε ήδη συνδέσει.Στο είδαμε ότι η διεργασία
init είναι υπεύθυνη για τον έλεγχο των άλλων
διεργασιών, και για την αρχικοποίηση κατά την εκκίνηση του συστήματος.
Μια από τις εργασίες που εκτελεί η init είναι να
διαβάζει το αρχείο /etc/ttys και να ξεκινά μια
διεργασία getty σε κάθε διαθέσιμο τερματικό.
Η διεργασία getty αναλαμβάνει να διαβάσει το
όνομα χρήστη και να ξεκινήσει το πρόγραμμα
login.Για να ρυθμιστούν τα τερματικά στο &os; σύστημα σας, θα πρέπει
να εκτελέσετε τα ακόλουθα βήματα ως root:Προσθέστε μια γραμμή στο /etc/ttys με το
όνομα της συσκευής όπως φαίνεται στον κατάλογο
/dev, αν δεν υπάρχει ήδη.Καθορίστε ότι θα εκτελείται η
/usr/libexec/getty στην θύρα, και επιλέξτε τον
κατάλληλο τύπο getty από το αρχείο
/etc/gettytab.Καθορίστε τον προεπιλεγμένο τύπο τερματικού.Ενεργοποιήστε τη θύρα θέτοντας την αντίστοιχη επιλογή στο
on.Επιλέξτε αν η θύρα θα είναι ασφαλής με την επιλογή
secure.Εξαναγκάστε την init να διαβάσει ξανά το
αρχείο /etc/ttys.Ως προαιρετικό βήμα, μπορείτε να δημιουργήσετε ένα προσαρμοσμένο
τύπο getty για να τον χρησιμοποιήσετε στο
βήμα 2, στην καταχώριση του /etc/gettytab. Στο
κεφάλαιο αυτό δεν θα σας εξηγήσουμε πως γίνεται αυτό. Σας προτρέπουμε
να διαβάσετε τις σελίδες manual του &man.gettytab.5; και
&man.getty.8; για περισσότερες πληροφορίες.Προσθέτοντας μια Καταχώριση στο
/etc/ttysΤο αρχείο /etc/ttys περιέχει μια λίστα όλων
των θυρών του &os; συστήματος σας στις οποίες θέλετε να επιτρέπεται
η είσοδος στο σύστημα. Για παράδειγμα, υπάρχει μια καταχώριση σε
αυτό το αρχείο για την πρώτη εικονική κονσόλα
ttyv0. Μέσω αυτής της καταχώρισης,
μπορείτε να εισέλθετε στο σύστημα από την κονσόλα. Το αρχείο αυτό
περιέχει επίσης καταχωρίσεις για άλλες εικονικές κονσόλες, σειριακές
θύρες και ψευδό-τερματικά. Για κάποιο τερματικό που είναι συνδεμένο
απευθείας σε μια σειριακή θύρα, γράψτε απλώς την καταχώριση της
σειριακής συσκευής όπως φαίνεται στον κατάλογο
/dev, χωρίς να γράψετε και τον κατάλογο
/dev (για παράδειγμα, η συσκευή
/dev/ttyv0 θα καταχωρισθεί ως
ttyv0).Η προεπιλεγμένη εγκατάσταση του &os; περιέχει ένα αρχείο
/etc/ttys το οποίο υποστηρίζει τις πρώτες
τέσσερις σειριακές θύρες: ttyd0 ως και
ttyd3. Αν συνδέσετε τερματικό σε κάποια
από αυτές τις θύρες, δεν χρειάζεται να προσθέσετε άλλη
καταχώριση.Προσθήκη Καταχωρίσεων για τα Τερματικά στο
/etc/ttysΑς υποθέσουμε ότι θέλουμε να συνδέσουμε δύο τερματικά στο
σύστημα: ένα Wyse-50 και ένα παλιό IBM PC 286 στο οποίο εκτελούμε
την εφαρμογή Procomm με την οποία
εξομοιώνεται ένα τερματικό τύπου VT-100. Συνδέουμε το Wyse στη
δεύτερη σειριακή θύρα και το 286 στην έκτη σειριακή θύρα (η οποία
βρίσκεται σε μια κάρτα πολλαπλών θυρών). Οι αντίστοιχες
καταχωρίσεις στο αρχείο /etc/ttys θα μοιάζουν
με τις παρακάτω:ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Το πρώτο πεδίο, είναι συνήθως το όνομα του ειδικού αρχείου
τερματικού όπως φαίνεται στον κατάλογο
/dev.Το δεύτερο πεδίο, είναι η εντολή που θα εκτελεστεί για
αυτή τη γραμμή, η οποία είναι συνήθως η &man.getty.8;.
Η getty αρχικοποιεί και ανοίγει τη γραμμή,
ρυθμίζει την ταχύτητα, εμφανίζει την προτροπή για εισαγωγή
ονόματος χρήστη, και εκτελεί το πρόγραμμα
&man.login.1;.Το πρόγραμμα getty δέχεται μια
(προαιρετική) παράμετρο στη γραμμή εντολής του, τον τύπο του
getty. Ο τύπος του
getty καθορίζει τα χαρακτηριστικά
της γραμμής του τερματικού, όπως π.χ. το ρυθμό μετάδοσης σε
bps και την ισοτιμία (parity). Το πρόγραμμα
getty διαβάζει αυτά τα χαρακτηριστικά από
το αρχείο /etc/gettytab.Το αρχείο /etc/gettytab
περιέχει πολλές καταχωρίσεις για γραμμές τερματικών, τόσο
παλιές όσο και καινούριες. Στις περισσότερες από αυτές τις
περιπτώσεις, οι καταχωρίσεις που ξεκινούν με το κείμενο
std, θα λειτουργήσουν για απευθείας
συνδεδεμένα τερματικά. Αυτές οι καταχωρίσεις αγνοούν την
ισοτιμία. Υπάρχει μια καταχώριση std για
κάθε ρυθμό μετάδοσης, από 110 ως 115200. Φυσικά, μπορείτε
να προσθέσετε τις δικές σας καταχωρίσεις σε αυτό το αρχείο.
Η σελίδα manual του &man.gettytab.5; περιέχει περισσότερες
πληροφορίες.Όταν ρυθμίζετε τον τύπο της
getty στο αρχείο
/etc/ttys, βεβαιωθείτε ότι ταιριάζουν
οι αντίστοιχες ρυθμίσεις επικοινωνιών στο τερματικό
σας.Στο παράδειγμα μας, το Wyse-50 δεν χρησιμοποιεί ισοτιμία
και συνδέεται στα 38400 bps. Το 286 PC δεν
χρησιμοποιεί ισοτιμία, και συνδέεται στα
19200 bps.Το τρίτο πεδίο είναι ο τύπος του τερματικού που
συνδέεται συνήθως σε αυτή τη γραμμή tty. Για θύρες επιλογικών
συνδέσεων (dial-up), η τιμή αυτού του πεδίου συχνά θα είναι
unknown ή dialup, καθώς
οι χρήστες θα μπορούν να πραγματοποιήσουν σύνδεση με
οποιοδήποτε λογισμικό ή τερματικό. Για άμεσα συνδεμένα
τερματικά, ο τύπος τερματικού δεν αλλάζει, έτσι μπορείτε να
βάλετε ένα πραγματικό τύπο τερματικού σε αυτό το πεδίο, τον
οποίο θα βρείτε στη βάση δεδομένων του &man.termcap.5;.Για παράδειγμα, το Wyse-50 χρησιμοποιεί τον πραγματικό
τύπο τερματικού του, ενώ το 286 PC που εκτελεί το
Procomm, έχει ρυθμιστεί να
εξομοιώνει τερματικό τύπου VT-100.Το τέταρτο πεδίο καθορίζει αν η θύρα θα είναι ενεργή.
Τοποθετώντας εδώ τη λέξη on,
η init θα ξεκινήσει το πρόγραμμα που
αναφέρεται στο δεύτερο πεδίο, την getty.
Αν βάλετε off σε αυτό το πεδίο, δεν θα
εκτελεστεί η getty, και έτσι δεν θα μπορεί
να γίνει είσοδος στο σύστημα από τη συγκεκριμένη θύρα.Το τελευταίο πεδίο χρησιμοποιείται για να καθορίσει αν
η θύρα είναι ασφαλής. Αν χαρακτηρίσετε μια θύρα ως ασφαλή,
σημαίνει ότι την εμπιστεύεστε αρκετά ώστε να επιτρέπετε την
είσοδο του root μέσω αυτής
(ή οποιουδήποτε λογαριασμού με ID 0). Δεν επιτρέπεται η
είσοδος του root σε μια θύρα που έχει
χαρακτηριστεί μη-ασφαλής. Σε μη-ασφαλείς θύρες, οι χρήστες
πρέπει να εισέρχονται χρησιμοποιώντας ένα συνηθισμένο
λογαριασμό χρήστη, και να χρησιμοποιούν την εντολή &man.su.1;
ή άλλο αντίστοιχο μηχανισμό για να αποκτήσουν προνόμια
υπερχρήστη.Σας συνιστούμε ανεπιφύλακτα να χρησιμοποιήσετε τη ρύθμιση
insecure, ακόμα και για τερματικά που
βρίσκονται σε κλειδωμένα δωμάτια. Είναι αρκετά εύκολο να
εισέλθετε ως κανονικός χρήστης και να χρησιμοποιήσετε την
εντολή su αν χρειάζεστε προνόμια
υπερχρήστη.Εξαναγκάστε την init να Ξαναδιαβάσει το
/etc/ttysΈχοντας κάνει τις απαραίτητες αλλαγές στο αρχείο
/etc/ttys, θα πρέπει να στείλετε σήμα SIGHUP
(hangup) στην διεργασία init για να την
αναγκάσετε να διαβάσει ξανά το αρχείο ρυθμίσεων της. Για
παράδειγμα:&prompt.root; kill -HUP 1Η init είναι πάντοτε η πρώτη διεργασία που
εκτελείται σε ένα σύστημα, και έτσι θα έχει πάντοτε τον
αριθμό διεργασίας (PID) 1.Αν όλες οι ρυθμίσεις είναι σωστές, τα καλώδια είναι στη θέση
τους, και τα τερματικά είναι ενεργά, θα εκτελεστεί η
getty σε κάθε τερματικό, και στο σημείο αυτό
θα δείτε την προτροπή εισόδου (login) στις οθόνες των τερματικών
σας.Αντιμετώπιση Προβλημάτων ΣύνδεσηςΑκόμα και αν δώσετε μεγάλη προσοχή στις λεπτομέρειες, πάντα
μπορεί να πάει κάτι στραβά όταν ρυθμίζετε ένα τερματικό. Εδώ θα
βρείτε μια λίστα από συμπτώματα και συνιστώμενες διορθώσεις.Δεν Εμφανίζεται Προτροπή Εισόδου (login)Βεβαιωθείτε ότι το τερματικό είναι συνδεμένο στο ηλεκτρικό
δίκτυο και ενεργοποιημένο. Αν είναι προσωπικός υπολογιστής που
ενεργεί ως τερματικό, βεβαιωθείτε ότι εκτελεί λογισμικό εξομοίωσης
τερματικού στην σωστή σειριακή θύρα.Βεβαιωθείτε ότι το καλώδιο είναι καλά συνδεμένο τόσο στο
τερματικό, όσο και στον υπολογιστή που εκτελεί &os;. Βεβαιωθείτε
ότι είναι το σωστό είδος καλωδίου.Βεβαιωθείτε ότι το τερματικό και το &os; συμφωνούν όσο αφορά
τις ρυθμίσεις της ταχύτητας μετάδοσης και ισοτιμίας. Ελέγξτε
τη φωτεινότητα και την αντίθεση της οθόνης του τερματικού, και
αυξήστε τις αν χρειάζεται. Αν πρόκειται για τερματικό με εκτυπωτή
(χωρίς οθόνη), βεβαιωθείτε ότι διαθέτει επάρκεια χαρτιού και
μελανιού.Βεβαιωθείτε ότι εκτελείται η διαδικασία getty
που εξυπηρετεί το τερματικό. Για να δείτε μια λίστα
με τις ενεργές διαδικασίες getty, χρησιμοποιήστε
την εντολή ps:&prompt.root; ps -axww|grep gettyΘα πρέπει να δείτε μια καταχώριση για το τερματικό σας. Για
παράδειγμα, η ακόλουθη οθόνη δείχνει ότι η διεργασία
getty εκτελείτε στη δεύτερη σειριακή θύρα
ttyd1 και χρησιμοποιεί την καταχώριση
std.38400 στο αρχείο
/etc/gettytab:22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1Αν δεν εκτελείται καμιά διεργασία getty,
βεβαιωθείτε ότι έχετε ενεργοποιήσει τη θύρα στο
/etc/ttys. Επίσης θυμηθείτε να εκτελέσετε
την εντολή kill -HUP 1 μετά την τροποποίηση
του αρχείου ttys.Αν εκτελείται η διεργασία getty αλλά το
τερματικό εξακολουθεί να μη δείχνει προτροπή εισόδου, ή αν δείχνει
προτροπή αλλά δεν σας επιτρέπει να γράψετε, ίσως το τερματικό σας
ή το καλώδιο να μην επιτρέπουν συνεννόηση μέσω υλικού (hardware
handshake). Δοκιμάστε να αλλάξετε την καταχώριση στο αρχείο
/etc/ttys από
std.38400 σε
3wire.38400 (θυμηθείτε να εκτελέσετε την εντολή
kill -HUP 1 μετά την τροποποίηση του
/etc/ttys). Η καταχώριση
3wire είναι αντίστοιχη με την
std, αλλά αγνοεί το hardware
handshaking. Μπορεί επίσης να χρειαστεί να μειώσετε το ρυθμό
σηματοδοσίας (baud) και να ενεργοποιήσετε τον έλεγχο ροής μέσω
λογισμικού όταν χρησιμοποιείτε το 3wire,
προκειμένου να αποφύγετε υπερχείλιση της προσωρινής μνήμης (buffer
overflow).Αν Βλέπετε Σκουπίδια Αντί για Προτροπή ΕισόδουΒεβαιωθείτε ότι το τερματικό και το &os; συμφωνούν στο ρυθμό
bps και στις ρυθμίσεις ισοτιμίας. Ελέγξτε τις διεργασίες
getty για να βεβαιωθείτε ότι εκτελείτε το σωστό
τύπο getty. Αν αυτό δεν συμβαίνει,
επεξεργαστείτε το αρχείο /etc/ttys και
εκτελέστε την εντολή kill -HUP 1.Οι Χαρακτήρες Εμφανίζονται Διπλοί, το Password Εμφανίζεται
κατά την ΠληκτρολόγησηΑλλάξτε τη ρύθμιση του τερματικού (ή του προγράμματος εξομοίωσης
τερματικού) από half duplex ή
local echo σε full duplex.GuyHelmerΣυνεισφορά του SeanKellyΠροσθήκες από τον Υπηρεσία Εισόδου μέσω Επιλογικής Σύνδεσης (dial-in)dial-in serviceΗ ρύθμιση του &os; συστήματος σας για είσοδο μέσω επιλογικής
σύνδεσης, είναι αρκετά όμοια με τη σύνδεση τερματικών, εκτός από το
γεγονός ότι χρησιμοποιούνται modems αντί για τερματικά.Εξωτερικά και Εσωτερικά ModemsΤα εξωτερικά modems είναι μάλλον πιο βολικά για επιλογικές
κλήσεις, καθώς οι περισσότερες ρυθμίσεις τους μπορούν να
αποθηκευθούν μόνιμα στη μή-πτητική μνήμη RAM που διαθέτουν.
Τα εξωτερικά modems διαθέτουν συνήθως φωτεινές ενδείξεις που
δείχνουν την κατάσταση σημαντικών σημάτων του RS-232. Ίσως τα
φωτάκια που αναβοσβήνουν να εντυπωσιάζουν τους επισκέπτες, αλλά
είναι επίσης χρήσιμα για να φαίνεται πότε το modem λειτουργεί
σωστά.Τα εσωτερικά modems συνήθως δεν διαθέτουν αυτή τη μνήμη RAM,
και έτσι οι ρυθμίσεις τους περιορίζονται μόνο στην αλλαγή θέσης
σε κάποιους διακόπτες ρυθμίσεων (DIP switches). Αν το εσωτερικό σας
modem διαθέτει φωτεινές ενδείξεις, μάλλον θα είναι δύσκολο να τις
δείτε όταν το κάλυμμα του συστήματος σας είναι στη θέση του.Modems και ΚαλώδιαmodemΑν χρησιμοποιείτε εξωτερικό modem, θα χρειαστείτε φυσικά το
σωστό καλώδιο. Συνήθως επαρκεί το τυποποιημένο καλώδιο RS-232C,
εφόσον διαθέτει συνδέσεις για όλα τα συνηθισμένα
σήματα:
Ονομασίες ΣημάτωνΑκρωνύμιαΟνόματαRDΛήψη Δεδομένων (Received Data)TDΑποστολή Δεδομένων (Transmitted Data)DTRΤερματικό Δεδομένων σε Ετοιμότητα (Data Terminal
Ready)DSRΣύνολο Δεδομένων σε Ετοιμότητα (Data Set
Ready)DCDΑνίχνευση Φέροντος Σήματος (Data Carrier Detect).
Ανίχνευση σύνδεσης της γραμμής RS-232CSGΓείωση Σήματος (Signal Ground)RTSΑίτηση Αποστολής (Request to Send)CTSΕτοιμότητα για Αποστολή (Clear to Send)
Το &os; χρειάζεται τα σήματα RTS και
CTS για έλεγχο ροής σε ταχύτητες πάνω από
2400 bps, το σήμα CD για να ανιχνεύει πότε
έχει απαντηθεί μια κλήση ή πότε η γραμμή έχει κλείσει, και το σήμα
DTR για να επαναφέρει το modem στην αρχική του
κατάσταση μετά τη λήξη μιας σύνδεσης. Μερικά καλώδια δεν διαθέτουν
όλα τα απαραίτητα σήματα, έτσι αν έχετε προβλήματα με τον
τερματισμό της συνεδρίας εισόδου με το κλείσιμο της γραμμής, πιθανόν
να ευθύνεται το καλώδιο που χρησιμοποιείτε.Όπως και άλλα λειτουργικά συστήματα τύπου &unix;, το &os;
χρησιμοποιεί τα σήματα του υλικού για να αντιληφθεί πότε έχει
απαντηθεί μια κλήση, καθώς και για τον τερματισμό της και την
επαναφορά του modem στην αρχική του κατάσταση μετά το τέλος της.
Το &os; αποφεύγει να στέλνει εντολές στο modem ή να παρακολουθεί
αναφορές κατάστασης από αυτό. Αν είστε εξοικειωμένος με συνδέσεις
modems σε BBS (Bulletin Board Systems) που βασίζονται σε PC, αυτό
μπορεί να σας φανεί άβολο.Κυκλώματα Σειριακής ΔιασύνδεσηςΤο &os; υποστηρίζει τα κυκλώματα επικοινωνιών που βασίζονται
στα NS8250, NS16450, NS16550, και NS16550A και EIA RS-232C
(CCITT V.24). Οι συσκευές 8250 και 16450 έχουν ενδιάμεση μνήμη
(buffer) μεγέθους ενός χαρακτήρα. Η συσκευή 16550 διαθέτει
ενδιάμεση μνήμη 16 χαρακτήρων, η οποία επιτρέπει την καλύτερη
απόδοση της. (Λόγω προβλημάτων στη σχεδίαση του 16550, δεν είναι
δυνατή η χρήση αυτής της μνήμης, αν είναι δυνατόν χρησιμοποιήστε
τα 16550Α). Καθώς οι συσκευές που διαθέτουν ενδιάμεση μνήμη ενός
χαρακτήρα απαιτούν περισσότερη εργασία από το λειτουργικό σύστημα
σε σχέση με αυτές που διαθέτουν 16 χαρακτήρες, συνίστανται ιδιαίτερα
οι συσκευές που βασίζονται στο 16550Α. Αν το σύστημα σας έχει πολλές
ενεργές σειριακές πόρτες, ή πρόκειται να λειτουργήσει κάτω από
βαρύ φόρτο, οι κάρτες που βασίζονται στο 16550A είναι καλύτερες,
καθώς παρέχουν επικοινωνία με μικρότερο ρυθμό σφαλμάτων.Γρήγορη ΕπισκόπησηgettyΌπως και με τα τερματικά, η init εκτελεί μια
διεργασία getty για κάθε σειριακή θύρα που έχει
ρυθμιστεί για εισερχόμενες επιλογικές συνδέσεις. Για παράδειγμα, αν
έχετε συνδέσει ένα modem στη θύρα /etc/ttyd0,
η εντολή ps ax θα δείξει κάτι σαν το
παρακάτω: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0Όταν κάποιος χρήστης καλέσει στη γραμμή αυτή και το modem
συνδεθεί, ενεργοποιείται από το modem η γραμμή CD.
Ο πυρήνας παρατηρεί ότι έχει ανιχνευθεί φέρον σήμα, και ολοκληρώνει
τη διαδικασία ανοίγματος της θύρας από το modem.
To getty στέλνει μια προτροπή
login: στην από πριν καθορισμένη αρχική ταχύτητα της
θύρας. Το getty παρακολουθεί για να δει αν
λαμβάνονται έγκυροι χαρακτήρες, και στην τυπική ρύθμιση, αν ανακαλύψει
ότι λαμβάνει σκουπίδια (πιθανώς λόγω διαφοράς στην ταχύτητα σύνδεσης
του modem σε σχέση με την ταχύτητα του getty),
προσπαθεί να ρυθμίσει την ταχύτητα της γραμμής μέχρι να λάβει
φυσιολογικούς χαρακτήρες./usr/bin/loginΑφού ο χρήστης εισάγει τον κωδικό του, το getty
εκτελεί το /usr/bin/login, το οποίο και
ολοκληρώνει τη διαδικασία εισόδου, ζητώντας από τον χρήστη τον κωδικό
του, και ξεκινώντας έπειτα το κέλυφος του.Αρχεία ΡυθμίσεωνΥπάρχουν τρία αρχεία ρυθμίσεων συστήματος στον κατάλογο
/etc, τα οποία πιθανώς θα χρειαστεί να
επεξεργαστείτε για να επιτρέψετε την είσοδο μέσω επιλογικής σύνδεσης
στο &os; σύστημα σας. Το πρώτο αρχείο είναι το
/etc/gettytab, το οποίο περιέχει πληροφορίες
ρύθμισης για τον δαίμονα /usr/libexec/getty
Το δεύτερο αρχείο είναι το /etc/ttys το οποίο
περιέχει πληροφορίες που γνωστοποιούν στην
/sbin/init σε ποιες συσκευές
tty θα πρέπει να εκτελούνται διεργασίες
getty. Τέλος, μπορείτε να βάλετε εντολές
αρχικοποίησης της θύρας στο script
/etc/rc.d/serial.Υπάρχουν δύο σχολές όσο αφορά τη χρήση modems για
είσοδο σε ένα σύστημα &unix;. Η πρώτη, προτιμά να ρυθμίζει τα modems
και τα συστήματα με τέτοιο τρόπο, ώστε άσχετα με τι ταχύτητα
συνδέεται ο απομακρυσμένος χρήστης, η τοπική σύνδεση υπολογιστή
— modem μέσω του RS-232C να έχει πάντα την ίδια κλειδωμένη
ταχύτητα. Το όφελος μιας τέτοιας ρύθμισης είναι ότι ο απομακρυσμένος
χρήστης βλέπει πάντα άμεσα την προτροπή εισόδου. Το μειονέκτημα,
είναι ότι το σύστημα δεν γνωρίζει την πραγματική ταχύτητα σύνδεσης
του χρήστη, και έτσι προγράμματα πλήρους οθόνης όπως το
Emacs, δεν γνωρίζουν πως να ρυθμίσουν την
ταχύτητα ανανέωσης της οθόνης τους ώστε να αντιμετωπίσουν καλύτερα
τις αργές συνδέσεις.Η άλλη σχολή ρυθμίζει τη διεπαφή RS-232 του modem να αλλάζει
ταχύτητα, ώστε να ακολουθεί την ταχύτητα σύνδεσης του απομακρυσμένου
χρήστη. Για παράδειγμα, συνδέσεις τύπου V.32bis (14.4 Kbps) στο
modem, μπορεί να το κάνουν να μεταβάλλει την ταχύτητα σύνδεσης στο
RS-232 σε 19.2 Kbps, ενώ συνδέσεις ταχύτητας 2400 bps θα
μεταβάλλουν αντίστοιχα την ταχύτητα της διεπαφής σε 2400 bps.
Επειδή η getty δεν αναγνωρίζει με κάποιο τρόπο
την ταχύτητα σύνδεσης που αναφέρει το modem, δίνει την πρώτη προτροπή
login: στην αρχικά ρυθμισμένη ταχύτητα, και εξετάζει
τους χαρακτήρες που λαμβάνει ως απάντηση. Αν ο χρήστης δει σκουπίδια,
θεωρείται ότι γνωρίζει ότι πρέπει να πιέσει το Enter
μέχρι να πάρει μια προτροπή που μπορεί να αναγνωρίσει. Αν οι ρυθμοί
δεδομένων δεν ταιριάζουν, η getty βλέπει οτιδήποτε
γράφει ο χρήστης ως σκουπίδια, και έτσι δοκιμάζει την
επόμενη ταχύτητα και στέλνει ξανά την προτροπή
login:. Η διαδικασία μπορεί να επαναληφθεί όσες
φορές χρειάζεται, αλλά συνήθως χρειάζονται μόνο μια-δυο προσπάθειες
μέχρι ο χρήστης να λάβει κανονική προτροπή. Προφανώς αυτή η ακολουθία
εισόδου δεν είναι τόσο καθαρή όπως η προηγούμενη μέθοδος
κλειδωμένης ταχύτητας, αλλά κάποιος χρήστης που
βρίσκεται σε γραμμή χαμηλής ταχύτητας, μάλλον θα λάβει καλύτερη
απόκριση σε εφαρμογές πλήρους οθόνης.Σε αυτή την ενότητα θα προσπαθήσουμε να σας δώσουμε πληροφορίες
και για τους δύο τύπους ρυθμίσεων, αλλά θεωρούμε καλύτερο το είδος
σύνδεσης όπου η ταχύτητα υπολογιστή — modem ακολουθεί την
ταχύτητα της σύνδεσης./etc/gettytab/etc/gettytabΤο /etc/gettytab είναι ένα αρχείο τύπου
&man.termcap.5; με πληροφορίες ρύθμισης για την &man.getty.8;.
Παρακαλούμε δείτε τη σελίδα manual &man.gettytab.5; για πιο πλήρεις
πληροφορίες σχετικά με τη μορφή του αρχείου και την λίστα με τις
δυνατότητες του.Ρύθμιση για Κλειδωμένη ΤαχύτηταΑν πρόκειται να κλειδώσετε την επικοινωνία του modem
σας σε μια συγκεκριμένη ταχύτητα, κατά πάσα πιθανότητα δεν θα
χρειαστεί να κάνετε αλλαγές στο
/etc/gettytab.Ρύθμιση για Μεταβλητή Ταχύτηταθα χρειαστεί να προσθέσετε μια καταχώριση στο
/etc/gettytab για να δώσετε πληροφορίες στην
getty σχετικά με τις ταχύτητες που επιθυμείτε
να χρησιμοποιήσετε στο modem σας. Αν έχετε ένα modem
2400 bps, μπορείτε πιθανόν να χρησιμοποιήσετε
την καταχώριση D2400.#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:Αν έχετε modem υψηλότερης ταχύτητας, πιθανόν να χρειαστεί να
προσθέσετε μια καταχώριση στο /etc/gettytab.
Παρακάτω φαίνεται μια καταχώριση που μπορεί να χρησιμοποιηθεί για
modem 14.4 Kbps με μέγιστη ταχύτητα σειριακής θύρας
19.2 Kbps:#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:Αυτό θα έχει ως αποτέλεσμα συνδέσεις 8bit χωρίς
ισοτιμία.Το παραπάνω παράδειγμα, ξεκινά το ρυθμό επικοινωνίας στα
19.2 Kbps (για μια σύνδεση V.32bis), και έπειτα δοκιμάζει
κυκλικά στα 9600 bps (για V.32), 2400 bps,
1200 bps, 300 bps, και πίσω στα 19.2 Kbps.
Αυτή η κυκλική εναλλαγή ρυθμού επιτυγχάνεται με την ικανότητα
nx= (next table). Κάθε μια
από τις γραμμές χρησιμοποιεί μια καταχώριση
tc= (table continuation)
για να βρει τις υπόλοιπες τυποποιημένες ρυθμίσεις
για κάποιο συγκεκριμένο ρυθμό μετάδοσης δεδομένων.Αν έχετε modem 28.8 Kbps ή/και θέλετε να επωφεληθείτε
από την συμπίεση ενός modem 14.4 Kbps, θα πρέπει να
χρησιμοποιήσετε ρυθμό επικοινωνίας μεγαλύτερο από 19.2 Kbps.
Παρακάτω φαίνεται ένα παράδειγμα μια καταχώρισης στο
gettytab που ξεκινάει από τα
57.6 Kbps:#
# Additions for a V.32bis or V.34 Modem
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:Αν έχετε αργό επεξεργαστή ή μεγάλο φορτίο, και το σύστημα
σας δεν διαθέτει σειριακές θύρες που να βασίζονται στο 16550Α,
ίσως λάβετε λάθη siosilo στα 57.6 Kbps./etc/ttys/etc/ttysΈχουμε ήδη καλύψει τη ρύθμιση του αρχείου
/etc/ttys στο .
Η ρύθμιση για modems είναι παρόμοια, αλλά πρέπει να δώσουμε
διαφορετικό όρισμα στην getty και να καθορίσουμε
διαφορετικό τύπο τερματικού. Η γενική μορφή τόσο για κλειδωμένη
όσο και για μεταβλητή ταχύτητα είναι η παρακάτω:ttyd0 "/usr/libexec/getty xxx" dialup onΤο πρώτο πεδίο στην παραπάνω γραμμή είναι το ειδικό αρχείο
συσκευής για αυτή την καταχώριση — το
ttyd0 αντιστοιχεί στο αρχείο
/dev/ttyd0 το οποίο και θα παρακολουθεί η
getty. Το δεύτερο πεδίο,
"/usr/libexec/getty
xxx"
(το xxx θα έχει την αρχική τιμή
ικανότητας του gettytab), είναι η διεργασία που
θα εκτελέσει η init στη συσκευή. Το τρίτο πεδίο,
dialup, είναι ο προεπιλεγμένος τύπος τερματικού.
Η τέταρτη παράμετρος, on, δείχνει στην
init ότι η γραμμή είναι σε λειτουργική
κατάσταση. Μπορεί να υπάρχει και μια πέμπτη παράμετρος, η
secure, αλλά θα πρέπει να χρησιμοποιείται μόνο
για τερματικά στα οποία η φυσική πρόσβαση είναι ασφαλής (όπως είναι
η κονσόλα του συστήματος).Ο προεπιλεγμένος τύπος τερματικού (dialup στο
παραπάνω παράδειγμα) μπορεί να αλλάξει ανάλογα με τις προτιμήσεις
σας. Το dialup είναι ο παραδοσιακός τύπος
τερματικού για επιλογικές γραμμές. Οι χρήστες μπορούν έτσι να
προσαρμόζουν τα scripts σύνδεσης τους ώστε να αναγνωρίζουν το
dialup και να ρυθμίζουν αυτόματα τον τύπο
τερματικού. Ωστόσο, είναι μάλλον ευκολότερο να καθορίσετε το
vt102 ως τον προεπιλεγμένο τύπο τερματικού,
καθώς οι χρήστες χρησιμοποιούν συνήθως εξομοίωση VT102 στα
απομακρυσμένα τους συστήματα.Αφού κάνετε τις αλλαγές στο /etc/ttys,
μπορείτε να στείλετε στη διεργασία init ένα σήμα
HUP για να ξαναδιαβάσει το αρχείο. Μπορείτε να
χρησιμοποιήσετε την παρακάτω εντολή για αυτό το σκοπό:
&prompt.root; kill -HUP 1
Αν αυτή είναι η πρώτη φορά που ρυθμίζετε το σύστημα σας, ίσως
θέλετε να περιμένετε μέχρι να ολοκληρώσετε πλήρως τη σύνδεση και
ρύθμιση του modem σας πριν στείλετε σήμα στην
init.Ρύθμιση για Κλειδωμένη ΤαχύτηταΓια λειτουργία σε κλειδωμένη ταχύτητα, θα πρέπει η καταχώριση
σας στο ttys να παρέχει στην
getty μια καταχώριση σταθερής ταχύτητας. Για
ένα modem με ταχύτητα θύρας κλειδωμένη στα 19.2 Kbps,
η καταχώριση ttys θα μοιάζει με την
παρακάτω:ttyd0 "/usr/libexec/getty std.19200" dialup onΑν το modem σας είναι κλειδωμένο σε διαφορετικό ρυθμό
δεδομένων, αντικαταστήστε με την κατάλληλη τιμή το
std.19200 στην καταχώριση
std.speed.
Βεβαιωθείτε ότι χρησιμοποιείτε ένα έγκυρο τύπο, όπως ορίζεται στο
/etc/gettytab.Ρύθμιση για Μεταβλητή ΤαχύτηταΣε μια τέτοια ρύθμιση, η καταχώριση σας για το
ttys θα πρέπει να αναφέρεται στην αρχική
auto-baud (sic) καταχώριση του
/etc/gettytab. Για παράδειγμα, αν προσθέσατε
την παραπάνω συνιστώμενη καταχώριση για modem με μεταβλητή
ταχύτητας σειριακής, και με αρχική ταχύτητα τα 19.2 Kbps
(την καταχώριση gettytab που περιέχει ως
σημείο εκκίνησης το V19200), η καταχώριση σας
στο ttys θα μοιάζει με την παρακάτω:ttyd0 "/usr/libexec/getty V19200" dialup on/etc/rc.d/serialrc filesrc.serialΤα modems υψηλής ταχύτητας, όπως τα V.32, V.32bis και V.34,
απαιτούν έλεγχο ροής μέσω υλικού (RTS/CTS).
Μπορείτε να προσθέσετε εντολές stty στο
/etc/rc.d/serial για να θέσετε στον πυρήνα του
&os; την κατάλληλη παράμετρο έλεγχου ροής μέσω υλικού των θυρών
modem.Για παράδειγμα, για να θέσετε την επιλογή
termios στην τιμή crtscts
στις συσκευές αρχικοποίησης της δεύτερης σειριακής θύρας
(COM2) για επιλογικές κλήσεις εισόδου και
εξόδου, θα πρέπει να προσθέσετε τις παρακάτω γραμμές στο αρχείο
/etc/rc.d/serial:# Serial port initial configuration
stty -f /dev/ttyd1.init crtscts
stty -f /dev/cuad1.init crtsctsΡυθμίσεις ΜνήμηςΑν έχετε ένα modem στο οποίο μπορείτε να αποθηκεύσετε τις
παραμέτρους μόνιμα στην μη-πτητική RAM που διαθέτει, θα πρέπει να
χρησιμοποιήσετε ένα πρόγραμμα τερματικού (όπως το
Telix μέσω του &ms-dos; ή του
tip στο &os;) για να ρυθμίσετε τις παραμέτρους.
Συνδεθείτε στο modem χρησιμοποιώντας την ίδια αρχική ταχύτητα
επικοινωνίας με αυτή που έχετε δηλώσει ως αρχική ταχύτητα στην
getty, και ρυθμίστε τις παραμέτρους στη μνήμη του
ώστε να ταιριάζουν με τις παρακάτω απαιτήσεις:Το σήμα CD θα είναι ενεργό όταν το modem
είναι συνδεμένοΤο σήμα DTR θα είναι ενεργό κατά τη
λειτουργία. Απενεργοποίηση του DTR κλείνει τη γραμμή και
επαναφέρει το modem στην αρχική του κατάσταση.Το CTS θα χρησιμοποιείται για έλεγχο
ροής μεταδιδόμενων δεδομένωνΟ έλεγχος ροής XON/XOFF θα είναι
ανενεργόςΤο RTS θα χρησιμοποιείται για έλεγχο ροής
ληφθέντων δεδομένωνΉσυχη λειτουργία (Quiet mode, χωρίς αποστολή κωδικών
αποτελεσμάτων)Δεν θα γίνεται echo των εντολώνΘα πρέπει να διαβάσετε την τεκμηρίωση του modem σας για να βρείτε
τις εντολές που πρέπει να αποστείλετε. Ίσως επίσης χρειαστεί να
αλλάξετε τη θέση κάποιων ρυθμιστικών διακοπτών (dip switches).Για παράδειγμα, για να ρυθμίσετε τις παραπάνω παραμέτρους
σε ένα εξωτερικό modem &usrobotics; &sportster; 14,400, θα έπρεπε να
στείλετε τις παρακάτω εντολές στο modem:ATZ
AT&C1&D2&H1&I0&R2&WΜπορείτε με την ευκαιρία να ρυθμίσετε και άλλους παραμέτρους του
modem, όπως για το αν θα χρησιμοποιείται το πρωτόκολλο V.42bis ή
συμπίεση MNP5.Το εξωτερικό modem &usrobotics; &sportster; 14,400 διαθέτει επίσης
και κάποιους ρυθμιστικούς διακόπτες που πρέπει να ρυθμιστούν. Για
άλλα modem, ίσως μπορείτε να χρησιμοποιήσετε αυτές τις ρυθμίσεις
ως αναφορά:Διακόπτης 1: Άνω Θέση — Κανονική λειτουργία DTR Διακόπτης 2: N/A (Κωδικός Αποτελέσματος ως Κείμενο/Κωδικός
Αποτελέσματος ως Αριθμός)Διακόπτης 3: Άνω θέση — Χωρίς Κωδικό
ΑποτελέσματοςΔιακόπτης 4: Κάτω θέση — Χωρίς echo και offline
εντολέςΔιακόπτης 5: Άνω θέση — Αυτόματη ΑπάντησηΔιακόπτης 6: Άνω θέση — Φυσιολογική Ανίχνευση Φέροντος
ΣήματοςΔιακόπτης 7: Άνω θέση — Φόρτωση Προεπιλογών από
NVRAM (μη-πτητική μνήμη)Διακόπτης 8: N/A (Έξυπνος/Κουτός Τρόπος Λειτουργίας)Θα πρέπει να απενεργοποιήσετε ή να απομονώσετε τους κωδικούς
αποτελεσμάτων στο modem, για να αποφύγετε προβλήματα που μπορούν να
δημιουργηθούν αν η getty από λάθος στείλει
προτροπή login: στο modem ενώ αυτό βρίσκεται σε
κατάσταση εντολών. Στην περίπτωση αυτή, το modem μπορεί να αναπαράγει
ξανά την εντολή (echo) ή να στείλει κάποιο κωδικό αποτελέσματος.
Αυτό μπορεί να έχει ως αποτέλεσμα μια μακρόχρονη και χαζή συνομιλία
μεταξύ του modem και της getty.Ρυθμίσεις για Κλειδωμένη ΤαχύτηταΓια λειτουργία σε κλειδωμένη ταχύτητα, θα χρειαστεί να
ρυθμίσετε το modem να διατηρεί σταθερή ταχύτητα υπολογιστή —
modem, άσχετα με την ταχύτητα επικοινωνίας της επιλογικής σύνδεσης.
Σε ένα εξωτερικό modem &usrobotics; &sportster; 14,400, οι εντολές
αυτές θα κλειδώσουν την επικοινωνία υπολογιστή — modem στην
ίδια ταχύτητα που έγινε η λήψη των εντολών:ATZ
AT&B1&WΡυθμίσεις για Μεταβλητή ΤαχύτηταΓια λειτουργία σε μεταβλητή ταχύτητα, θα χρειαστεί να
ρυθμίσετε το modem σας να προσαρμόζει την ταχύτητα της σειριακής
θύρας του ώστε να ταιριάζει με αυτή της εισερχόμενης κλήσης. Σε
ένα εξωτερικό modem &usrobotics; &sportster; 14,400, οι εντολές
αυτές θα κλειδώσουν την ταχύτητα μεταφοράς δεδομένων με διόρθωση
λαθών του modem στην ταχύτητα που χρησιμοποιήθηκε για την αποστολή
των εντολών, αλλά θα επιτρέψουν στην ταχύτητα της σειριακής θύρας
να μεταβάλλεται για συνδέσεις που δεν έχουν διόρθωση λαθών:ATZ
AT&B2&WΈλεγχος των Ρυθμίσεων του ModemΤα περισσότερα modem υψηλής ταχύτητας, παρέχουν εντολές με τις
οποίες μπορείτε να παρακολουθήσετε τις τρέχουσες παραμέτρους
λειτουργίας τους με σχετικά κατανοητό τρόπο. Στο εξωτερικό modem
&usrobotics; &sportster; 14,400, η εντολή ATI5
δείχνει τις ρυθμίσεις που είναι αποθηκευμένες στη μη-πτητική RAM
του modem. Για να δείτε τις πραγματικές παραμέτρους λειτουργίας
του modem (όπως αυτές επηρεάζονται από τις θέσεις των ρυθμιστικών
διακοπτών του), χρησιμοποιήστε τις εντολές ATZ
και μετά ATI4.Αν διαθέτετε modem άλλης εταιρίας, ελέγξτε τις οδηγίες χρήσης
του για να δείτε πως μπορείτε να ελέγξετε με σιγουριά τις
παραμέτρους ρύθμισης του.Αντιμετώπιση ΠροβλημάτωνΠαρακάτω θα βρείτε μερικά βήματα που μπορείτε να ακολουθήσετε για
να ελέγξετε τη λειτουργία του modem στο σύστημα σας.Ελέγχοντας το Σύστημα σαςΣυνδέστε το modem στο &os; σύστημα σας, εκκινήστε το, και
αν το modem σας διαθέτει φωτεινές ενδείξεις κατάστασης,
παρακολουθήστε τις για να δείτε αν ενεργοποιείται η ένδειξη
DTR όταν εμφανίζεται η προτροπή
login: στην κονσόλα του συστήματος. Αν η ένδειξη
αυτή είναι ενεργή, σημαίνει ότι το &os; έχει ξεκινήσει μια
διεργασία getty στην αντίστοιχη θύρα
επικοινωνιών και αναμένει το modem να απαντήσει μια κλήση.Αν δεν ενεργοποιείται η ένδειξη DTR,
εισέλθετε στο σύστημα μέσω της κονσόλας, και δώστε την εντολή
ps ax για να δείτε αν το &os; προσπαθεί να
εκτελέσει διεργασία getty στη σωστή θύρα.
Ανάμεσα στις διεργασίες, θα δείτε γραμμές όπως τις παρακάτω: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1Αν δείτε κάτι διαφορετικό, όπως το παρακάτω: 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0και το modem δεν έχει απαντήσει ακόμα καμία κλήση, σημαίνει ότι
η getty έχει ολοκληρώσει το άνοιγμα της
σειριακής θύρας. Αυτό πιθανόν σημαίνει ότι υπάρχει πρόβλημα με
την καλωδίωση, ή ότι το modem δεν είναι σωστά ρυθμισμένο, καθώς η
getty δεν θα πρέπει να μπορεί να ανοίξει τη θύρα
πριν ενεργοποιηθεί το σήμα CD (carrier detect,
ανίχνευσης φέροντος) από το modem.Αν δεν βλέπετε κάποιες διεργασίες getty να
περιμένουν να ανοίξουν την επιθυμητή θύρα
ttydN, ελέγξτε
ξανά τις καταχωρίσεις σας στο /etc/ttys για
τυχόν λάθη. Ελέγξτε επίσης το αρχείο καταγραφής
/var/log/messages για να δείτε αν υπάρχουν
κάποια μηνύματα από την init ή την
getty σχετικά με τα προβλήματα. Αν υπάρχουν
μηνύματα, ελέγξτε ξανά τα αρχεία ρυθμίσεων
/etc/ttys και
/etc/gettytab, όπως και τα ειδικά αρχεία
συσκευών /dev/ttydN για πιθανά λάθη,
ελλιπείς καταχωρίσεις, ή μη-ύπαρξη των ειδικών αρχείων
συσκευών.Προσπαθήστε να Εκτελέσετε Σύνδεση ΕισόδουΔοκιμάστε να εισέλθετε στο σύστημα σας μέσω απομακρυσμένης
σύνδεσης. Βεβαιωθείτε ότι χρησιμοποιείτε 8 bits, 1 stop bit και
επικοινωνία χωρίς ισοτιμία στο απομακρυσμένο σύστημα. Αν δε λάβετε
άμεσα την προτροπή εισόδου, ή αν λαμβάνετε σκουπίδια, δοκιμάστε να
πιέζετε Enter με ρυθμό περίπου μια φορά το
δευτερόλεπτο. Αν ακόμα δεν λαμβάνετε την προτροπή
login:, δοκιμάστε μετά από λίγο να στείλετε ένα
BREAK. Αν κάνετε κλήση από ένα modem υψηλής
ταχύτητας, δοκιμάστε ξανά, αφού κλειδώσετε την ταχύτητα
επικοινωνίας υπολογιστή — modem από το οποίο καλείτε (μέσω
π.χ. της AT&B1 σε ένα &usrobotics;
&sportster; modem).Αν δεν μπορείτε ακόμα να λάβετε προτροπή
login:, ελέγξτε ξανά και ξανά το αρχείο
/etc/gettytab.Το όνομα της αρχικής ικανότητας που καθορίζεται στο αρχείο
/etc/ttys για τη γραμμή πρέπει να
ταιριάζει με το όνομα της ικανότητας στο
/etc/gettytabΚάθε καταχώριση nx= ταιριάζει με το
όνομα μιας αντίστοιχης ικανότητας στο
gettytabΚάθε καταχώριση tc= ταιριάζει με το
όνομα μιας αντίστοιχης ικανότητας στο
gettytabΑν κάνετε κλήση αλλά το modem στο &os; σύστημα δεν απαντάει,
βεβαιωθείτε ότι το modem είναι ρυθμισμένο να απαντάει την
τηλεφωνική γραμμή όταν ενεργοποιείται το σήμα
DTR. Αν το modem φαίνεται να είναι ρυθμισμένο
σωστά, επαληθεύστε ότι η γραμμή DTR είναι ενεργή
ελέγχοντας τις φωτεινές ενδείξεις του modem (αν υπάρχουν).Αν έχετε ελέγξει τα πάντα πολλές φορές, και ακόμα δεν φαίνεται
να βρίσκετε τη λύση, κάντε ένα διάλειμμα και προσπαθήστε ξανά
αργότερα. Αν ακόμα δεν λειτουργεί, ίσως είναι καλή ιδέα να στείλετε
ένα μήνυμα στην &a.questions; περιγράφοντας το πρόβλημα σας και
το modem σας, και οι καλοί άνθρωποι που παρακολουθούν την λίστα θα
προσπαθήσουν να σας βοηθήσουν.Υπηρεσία Επιλογικής Σύνδεσηςdial-out serviceΠαρακάτω θα βρείτε κάποιες συμβουλές για να μπορέσετε να συνδέσετε
τον υπολογιστή σας μέσω modem σε κάποιο άλλο υπολογιστή. Με τον τρόπο
αυτό, μπορείτε να δημιουργήσετε σύνδεση τερματικού προς ένα
απομακρυσμένο υπολογιστή.Η υπηρεσία αυτή χρησιμεύει επίσης για να συνδεθείτε σε μια
BBS.Αυτό το είδος σύνδεσης μπορεί να φανεί εξαιρετικά χρήσιμο για να
πάρετε κάποιο αρχείο από το Internet αν έχετε πρόβλημα σύνδεσης μέσω
PPP. Αν θέλετε να πάρετε κάτι μέσω FTP και δεν μπορείτε να συνδεθείτε
μέσω PPP, συνδεθείτε μέσω τερματικού σε ένα άλλο υπολογιστή, και
κατεβάστε σε αυτόν το αρχείο μέσω FTP. Έπειτα, χρησιμοποιήστε το
πρωτόκολλο zmodem για να το μεταφέρετε στον υπολογιστή σας.Το τύπου Hayes Modem μου δεν Υποστηρίζεται, Τι Μπορώ να
Κάνω;Στην πραγματικότητα, η σελίδα manual της tip
δεν είναι ενημερωμένη. Υπάρχει ήδη κατάλληλο γενικό πρόγραμμα κλήσης
για modems της Hayes. Απλώς χρησιμοποιήστε την καταχώριση
at=hayes στο αρχείο
/etc/remote.Το πρόγραμμα οδήγησης Hayes δεν είναι αρκετά έξυπνο ώστε να
αναγνωρίζει κάποια από τα προχωρημένα χαρακτηριστικά των νεώτερων
modems. Μπορεί να μπερδευτεί από μηνύματα όπως τα
BUSY, NO DIALTONE,
ή CONNECT 115200. Θα πρέπει να απενεργοποιήσετε
αυτά τα μηνύματα όταν χρησιμοποιείται την tip
(στέλνοντας την εντολή ATX0&W).Επίσης, το μέγιστο χρονικό διάστημα το οποίο περιμένει η
tip είναι 60 δευτερόλεπτα. Το modem σας θα πρέπει
να έχει μικρότερο χρονικό περιθώριο, αλλιώς η tip θα νομίζει ότι
υπάρχει πρόβλημα επικοινωνίας. Δοκιμάστε την εντολή
ATS7=45&W.Πως Υποτίθεται Ότι θα Στείλω Αυτές τις ΑΤ Εντολές;/etc/remoteΔημιουργήστε αυτό που ονομάζεται απευθείας
καταχώριση στο αρχείο /etc/remote. Για
παράδειγμα, αν το modem σας είναι συνδεμένο στην πρώτη σειριακή θύρα,
/dev/cuad0, προσθέστε την ακόλουθη γραμμή:cuad0:dv=/dev/cuad0:br#19200:pa=noneΣτην ικανότητα br, χρησιμοποιήστε τον υψηλότερο ρυθμό bps που
υποστηρίζει το modem σας. Έπειτα, πληκτρολογήστε
tip cuad0 και θα συνδεθείτε με το modem σαςΉ χρησιμοποιήστε την cu ως
root, δίνοντας την ακόλουθη εντολή:&prompt.root; cu -lline -sspeedΤο line είναι η σειριακή θύρα
(π.χ. /dev/cuad0) και το
speed είναι η ταχύτητα
(π.χ. 57600). Όταν τελειώσετε με τις εντολές ΑΤ,
γράψτε ~. για να τερματίσετε τη σύνδεση.Το Σύμβολο @ της Ικανότητας pn Δεν
Λειτουργεί!Το σύμβολο @ της ικανότητας τηλεφωνικού
αριθμού (pn, phone number) οδηγεί την tip να διαβάσει το αρχείο
/etc/phones για ένα τηλεφωνικό αριθμό. Αλλά το
σύμβολο @ είναι επίσης ένας ειδικός χαρακτήρας σε
αρχεία ικανοτήτων όπως το /etc/remote. Θα πρέπει
να χρησιμοποιήσετε την ανάποδη κάθετο για να δηλώσετε ότι δεν
επιθυμείτε να έχει επίδραση ειδικού χαρακτήρα:pn=\@Πως Μπορώ να Καλέσω Ένα Τηλεφωνικό Αριθμό Από την Γραμμή
Εντολών;Βάλτε μια γενική καταχώριση στο αρχείο
/etc/remote. Για παράδειγμα:tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuad0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:Έπειτα μπορείτε να δίνετε εντολές όπως:&prompt.root; tip -115200 5551234Αν προτιμάτε την cu αντί για την
tip, χρησιμοποιήστε μια γενική καταχώριση για την
cu:cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:και πληκτρολογήστε:&prompt.root; cu 5551234 -s 115200Πρέπει να Πληκτρολογώ το Ρυθμό bps Κάθε Φορά που το Κάνω
Αυτό;Θα πρέπει να προσθέσετε μια καταχώριση
tip1200 ή cu1200, αλλά
μπορείτε να βάλετε την δική σας επιθυμητή τιμή στην ικανότητα br.
Η εντολή tip θεωρεί ότι τα 1200 bps είναι
μια καλή προεπιλογή, και για το λόγο αυτό ψάχνει να βρει μια
καταχώριση tip1200. Δεν χρειάζεται ωστόσο να
χρησιμοποιήσετε ταχύτητα 1200 bps.Έχω Πρόσβαση σε Ένα Αριθμό Υπολογιστών Μέσω Ενός Εξυπηρετητή
ΤερματικώνΑντί να περιμένετε μέχρι να συνδεθείτε και να πληκτρολογείτε
CONNECT host κάθε φορά,
χρησιμοποιήστε την ικανότητα cm του tip. Για
παράδειγμα, δείτε τις παρακάτω καταχωρίσεις στο
/etc/remote:pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:Το παραπάνω, θα σας επιτρέψει να γράφετε
tip pain ή tip muffin για να
συνδέεστε στους υπολογιστές pain ή
muffin, και tip deep13 για να
συνδέεστε στον εξυπηρετητή τερματικών.Μπορεί η Tip να Δοκιμάσει Περισσότερες Από Μια Γραμμές για κάθε
Σύνδεση;Αυτό το πρόβλημα συνήθως εμφανίζεται σε ένα πανεπιστήμιο που έχει
αρκετές γραμμές για modem, αλλά και χιλιάδες φοιτητές που προσπαθούν
να τις χρησιμοποιήσουν.Δημιουργήστε μια καταχώριση για το πανεπιστήμιο σας στο
/etc/remote και χρησιμοποιήστε το
@ στην ικανότητα pn:big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuad3:br#9600:at=courier:du:pa=none:Έπειτα, δημιουργήστε μια λίστα με τους αριθμούς τηλεφώνων του
πανεπιστημίου στο /etc/phones:big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114Η tip θα δοκιμάσει κάθε μία, με τη σειρά που
εμφανίζονται, και θα σταματήσει. Αν θέλετε να συνεχίζει την
προσπάθεια, εκτελέστε την tip μέσα σε ένα βρόγχο
while.Γιατί Πρέπει να Πιέσω
CtrlP
Δύο Φορές για να Στείλω το Συνδυασμό
CtrlP
Μια Φορά;Ο συνδυασμός πλήκτρων
CtrlP
αποτελεί τον προεπιλεγμένο χαρακτήρα εξαναγκασμού
(force), και χρησιμοποιείται για να καταλάβει η
tip ότι ο επόμενος χαρακτήρας θα πρέπει να
χρησιμοποιηθεί όπως είναι. Μπορείτε να θέσετε τον χαρακτήρα
εξαναγκασμού σε οποιοδήποτε άλλο χαρακτήρα, χρησιμοποιώντας την
ακολουθία διαφυγής ~s, η οποία σημαίνει
ρύθμισε μια μεταβλητή.Πληκτρολογήστε
~sforce=single-char
και συνεχίστε με ένα χαρακτήρα νέας γραμμής. Το
single-char είναι οποιοσδήποτε μονός
χαρακτήρας. Αν αφήσετε κενό το
single-char, ο χαρακτήρας εξαναγκασμού θα
είναι ο nul, τον οποίο μπορείτε να πληκτρολογήσετε χρησιμοποιώντας το
συνδυασμό πλήκτρων
Ctrl2
ή
CtrlSpace.
Μια αρκετά καλή τιμή για το single-char
είναι το
ShiftCtrl6, που χρησιμοποιείται μόνο σε κάποιους εξυπηρετητές
τερματικών.Μπορείτε να ορίσετε το χαρακτήρα εξαναγκασμού σε όποιον εσείς
επιθυμείτε, με την ακόλουθη καταχώριση στο αρχείο
$HOME/.tiprc:force=single-charΞαφνικά Ότι Γράφω Εμφανίζεται με Κεφαλαία Γράμματα!!Μάλλον έχετε πιέσει
CtrlA, που είναι ο χαρακτήρας ανύψωσης της
tip, και είναι σχεδιασμένος ειδικά για όσους
έχουν πρόβλημα με το πλήκτρο CAPS LOCK.
Χρησιμοποιήστε την εντολή ~s που δείξαμε παραπάνω,
για να θέσετε μια λογική τιμή στη μεταβλητή
raisechar. Στην πραγματικότητα, μπορείτε να
θέσετε την ίδια τιμή με τον χαρακτήρα εξαναγκασμού, αν δεν σκοπεύετε
ποτέ να χρησιμοποιήσετε κάποια από αυτές τις δυνατότητες.Παρακάτω φαίνεται ένα υπόδειγμα αρχείου
.tiprc, το οποίο είναι τέλειο για χρήστες του
Emacs που χρειάζεται να πληκτρολογούν συχνά
Ctrl2
και
CtrlA:force=^^
raisechar=^^Ο χαρακτήρας ^^ είναι ο
ShiftCtrl6.Πως Μπορώ να Μεταφέρω Αρχεία με την
tip;Αν επικοινωνείτε με άλλο &unix; σύστημα, μπορείτε να στείλετε και
να λάβετε αρχεία με τις εντολές ~p (put) και
~t (take). Οι εντολές αυτές εκτελούν τις
cat και echo στο απομακρυσμένο
σύστημα για να λαμβάνουν και να στέλνουν αρχεία. Η σύνταξη τους
είναι:~pτοπικό-αρχείοαπομακρυσμένο-αρχείο~tαπομακρυσμένο-αρχείοτοπικό-αρχείοΟι παραπάνω εντολές δεν διαθέτουν έλεγχο λαθών. Θα είναι καλύτερο
να χρησιμοποιήσετε κάποιο άλλο πρωτόκολλο, όπως το zmodem.Πως Μπορώ να Εκτελέσω το zmodem με την
tip;Για να λάβετε αρχεία, ξεκινήστε το πρόγραμμα αποστολής στον
απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε
~C rz για να ξεκινήσετε την τοπική λήψη.Για να στείλετε αρχεία, ξεκινήστε το πρόγραμμα λήψης στον
απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε
~C sz files
για να στείλετε τα αρχεία στο απομακρυσμένο σύστημα.KazutakaYOKOTAΣυνεισφορά του BillPaulΒασισμένο σε ένα κείμενο του Ρύθμιση της Σειριακής Κονσόλαςserial consoleΕισαγωγήΤο &os; έχει την ικανότητα να εκκινήσει σε ένα σύστημα το οποίο
ως κονσόλα διαθέτει ένα κουτό τερματικό συνδεμένο σε
μια σειριακή θύρα. Αυτή η ρύθμιση είναι χρήσιμη σε δύο κατηγορίες
ανθρώπων: διαχειριστές συστημάτων που επιθυμούν να εγκαταστήσουν
&os; σε μηχανήματα τα οποία δεν διαθέτουν πληκτρολόγιο ή οθόνη, και
προγραμματιστές που επιθυμούν να εκσφαλματώνουν τον πυρήνα ή οδηγούς
συσκευών.Όπως περιγράφεται στο , το &os; χρησιμοποιεί
σύστημα εκκίνησης τριών σταδίων. Τα πρώτα δύο στάδια είναι στον
κώδικα του boot block, ο οποίος αποθηκεύεται στην αρχή της κατάτμησης
(slice) του δίσκου εκκίνησης του &os;. Το boot block κατόπιν
φορτώνει και εκτελεί τον φορτωτή εκκίνησης
(/boot/loader) ως κώδικα του τρίτου
σταδίου.Για να ενεργοποιήσετε την σειριακή κονσόλα, θα πρέπει να ρυθμίσετε
τον κώδικα του boot block, το φορτωτή εκκίνησης, και τον
πυρήνα.Ρύθμιση Σειριακής Κονσόλας (Σύντομη Έκδοση)Η ενότητα αυτή υποθέτει ότι σκοπεύετε να χρησιμοποιήσετε τις
προεπιλεγμένες ρυθμίσεις, και θέλετε απλώς μια γρήγορη επισκόπηση της
διαδικασίας ρύθμισης της σειριακής κονσόλας.Συνδέστε το σειριακό καλώδιο στην
COM1 και στο τερματικό.Για να δείτε όλα τα μηνύματα εκκίνησης στην σειριακή κονσόλα,
δώστε την παρακάτω εντολή ως υπερχρήστης:&prompt.root; echo 'console="comconsole"' >> /boot/loader.confΕπεξεργαστείτε το /etc/ttys και αλλάξτε
το off σε on και το
dialup σε vt100 για την
καταχώριση ttyd0. Διαφορετικά, δεν θα
χρειάζεται κωδικός πρόσβασης για τη σύνδεση μέσω της σειριακής
κονσόλας, το οποίο αποτελεί πιθανό κενό ασφαλείας.Επανεκκινήστε το σύστημα για να δείτε αν ίσχυσαν οι
αλλαγές.Αν χρειάζεστε διαφορετικές ρυθμίσεις, θα βρείτε λεπτομέρειες για
την ρύθμιση στο .Ρύθμιση Σειριακής ΚονσόλαςΠροετοιμάστε ένα σειριακό καλώδιο.null-modem cableΘα χρειαστείτε είτε ένα καλώδιο τύπου null-modem, είτε ένα
τυποποιημένο σειριακό καλώδιο και ένα προσαρμογέα null-modem.
Δείτε το για λεπτομέρειες
σχετικά με τα είδη των σειριακών καλωδίων.Αποσυνδέστε το πληκτρολόγιο σας.Τα περισσότερα PC ψάχνουν για το πληκτρολόγιο κατά την
διάρκεια των διαγνωστικών εκκίνησης (POST, Power On Self Test),
και θα αναφέρουν σφάλμα αν το πληκτρολόγιο δεν είναι συνδεμένο.
Μερικά μηχανήματα παραπονιούνται ηχηρά για την έλλειψη
πληκτρολογίου, και δεν συνεχίζουν την εκκίνηση μέχρι να το
συνδέσετε.Αν ο υπολογιστής σας παραπονιέται για το λάθος, αλλά ξεκινά
έτσι και αλλιώς, δεν χρειάζεται να κάνετε τίποτα ιδιαίτερο για
αυτό. (Μερικά μηχανήματα με BIOS της Phoenix, λένε απλώς
Keyboard Failed και συνεχίζουν την εκκίνηση
κανονικά.)Αν ο υπολογιστής σας αρνείται να εκκινήσει χωρίς πληκτρολόγιο,
θα πρέπει να ρυθμίσετε το BIOS ώστε να αγνοεί το λάθος (αν
γίνεται). Συμβουλευτείτε το εγχειρίδιο της μητρικής σας για
λεπτομέρειες σχετικά με αυτή τη διαδικασία.Ρυθμίστε το πληκτρολόγιο σε Not installed
στο BIOS. Η ρύθμιση αυτή απλώς αποτρέπει το BIOS από το να
ανιχνεύει το πληκτρολόγιο στην εκκίνηση, και δεν πρόκειται να
σας εμποδίσει να το χρησιμοποιήσετε κανονικά. Μπορείτε να
αφήσετε το πληκτρολόγιο συνδεμένο ακόμα και όταν
έχετε ενεργοποιήσει τη ρύθμιση Not installed.
Αν δεν υπάρχει η παραπάνω ρύθμιση στο BIOS, ψάξτε για την
επιλογή Halt on Error. Αλλάξτε τη σε
All but Keyboard ή ακόμα και σε
No Errors, και θα έχετε το ίδιο
αποτέλεσμα.Αν το σύστημα σας διαθέτει ποντίκι τύπου &ps2;,
πιθανόν να πρέπει να το αποσυνδέσετε και αυτό.
Τα ποντίκια τύπου &ps2; έχουν κάποια κυκλώματα κοινά με το
πληκτρολόγιο, γεγονός που μπορεί να προκαλέσει σύγχυση στο
πρόγραμμα ανίχνευσης του πληκτρολογίου. Κάποια συστήματα, όπως
το Gateway 2000 Pentium 90 MHz με AMI BIOS,
συμπεριφέρονται με αυτό τον τρόπο. Σε γενικές γραμμές, αυτό
δεν είναι πρόβλημα καθώς το ποντίκι έτσι και αλλιώς δεν είναι
χρήσιμο χωρίς το πληκτρολόγιο.Συνδέστε ένα κουτό τερματικό στην
COM1
(sio0).Αν δεν έχετε κουτό τερματικό, μπορείτε να συνδέσετε ένα παλιό
PC/XT με ένα πρόγραμμα για modem, ή να χρησιμοποιήσετε τη σειριακή
θύρα σε ένα άλλο μηχάνημα &unix;. Αν δεν έχετε
σειριακή θύρα COM1
(sio0), αγοράστε μια. Τη δεδομένη στιγμή
δεν υπάρχει τρόπος να επιλέξετε άλλη θύρα εκτός από την
COM1, χωρίς να επαναμεταγλωττίσετε τα
boot blocks. Αν χρησιμοποιείτε ήδη την
COM1 για κάποια άλλη συσκευή, θα πρέπει
να την αφαιρέσετε προσωρινά, και να εγκαταστήσετε νέο boot
block και πυρήνα, μόλις συνδεθείτε στο &os;. (Υποθέτουμε ότι η
COM1 θα είναι έτσι και αλλιώς διαθέσιμη
σε ένα εξυπηρετητή αρχείων/υπολογισμών/τερματικών. Αν
πραγματικά χρειάζεστε την COM1 για κάτι
άλλο (και δεν μπορείτε αυτό το κάτι άλλο να το μετακινήσετε στην
COM2 (sio1)),
μάλλον δεν θα έπρεπε να ασχοληθείτε καθόλου με όλο αυτό το
θέμα).Βεβαιωθείτε ότι το αρχείο ρυθμίσεων του πυρήνα σας έχει τις
κατάλληλες επιλογές (flags) για την COM1
(sio0).Οι σχετικές επιλογές είναι:0x10Ενεργοποιεί την υποστήριξη κονσόλας για αυτή τη θύρα.
Αν δεν τεθεί αυτή η επιλογή, τα υπόλοιπα flags για την
κονσόλα δεν λαμβάνονται υπόψιν. Τη δεδομένη στιγμή, η
υποστήριξη κονσόλας μπορεί να είναι ενεργοποιημένη μόνο σε
μια θύρα. Η πρώτη που καθορίζεται στο αρχείο ρυθμίσεων,
είναι και αυτή που θα προτιμηθεί. Από μόνη της, η επιλογή
αυτή δεν θα ενεργοποιήσει την κονσόλα στη συγκεκριμένη
σειριακή θύρα. Θα πρέπει να θέσετε το παρακάτω flag ή να
χρησιμοποιήσετε την επιλογή που
περιγράφεται παρακάτω, μαζί με αυτό το flag.0x20Εξαναγκάζει τη συγκεκριμένη θύρα να γίνει η κονσόλα
(εκτός αν υπάρχει άλλη κονσόλα υψηλότερης προτεραιότητας)
άσχετα με την επιλογή που περιγράφεται
παρακάτω. Θα πρέπει να χρησιμοποιήσετε το flag
0x20 μαζί με το flag
.0x40Παρακρατεί τη συγκεκριμένη θύρα (σε συνδυασμό με την
0x10) κάνοντας την μη διαθέσιμη για
κανονική πρόσβαση. Δεν θα πρέπει να θέσετε αυτή την
επιλογή στη σειριακή θύρα που σκοπεύετε να χρησιμοποιήσετε
ως σειριακή κονσόλα. Η μόνη χρήση αυτού του flag, είναι να
καθορίσετε ότι η θύρα θα χρησιμοποιηθεί για απομακρυσμένη
εκσφαλμάτωση του πυρήνα (kernel debugging). Δείτε
Το
Βιβλίο του Προγραμματιστή για περισσότερες
λεπτομέρειες σχετικά με την απομακρυσμένη
εκσφαλμάτωση.Παράδειγμα:device sio0 at isa? port IO_COM1 flags 0x10 irq 4Δείτε τη σελίδα manual &man.sio.4; για περισσότερες
λεπτομέρειες.Αν δεν έχουν καθοριστεί flags, θα πρέπει να εκτελέσετε το
UserConfig (σε διαφορετική κονσόλα) ή να επαναμεταγλωττίσετε τον
πυρήνα.Δημιουργήστε το αρχείο boot.config στον
ριζικό κατάλογο της κατάτμησης a του δίσκου
εκκίνησης.Το αρχείο αυτό θα κατευθύνει τον κώδικα του boot block σχετικά
με το πως θέλετε να εκκινήσει το σύστημα. Για να ενεργοποιήσετε
την σειριακή κονσόλα, θα χρειαστείτε μία ή περισσότερες από τις
παρακάτω επιλογές—αν θέλετε να προσδιορίσετε πολλαπλές
επιλογές, θα πρέπει να τις περιλάβετε όλες στην ίδια
γραμμή.Εναλλάσσει μεταξύ της εσωτερικής και της σειριακής
κονσόλας. Για παράδειγμα, αν ξεκινήσετε από την εσωτερική
κονσόλα (οθόνη), μπορείτε να χρησιμοποιήσετε την επιλογή
για να κατευθύνετε το φορτωτή εκκίνησης
και τον πυρήνα να χρησιμοποιήσουν τη σειριακή θύρα ως
συσκευή κονσόλας. Εναλλακτικά, αν εκκινήσετε μέσω της
σειριακής θύρας, μπορείτε να χρησιμοποιήσετε την επιλογή
για να κατευθύνετε το φορτωτή εκκίνησης
και τον πυρήνα να χρησιμοποιήσουν την κανονική κονσόλα αντί
για τη σειριακή.Εναλλάσσει μεταξύ της απλής και της διπλής κονσόλας.
Στην ρύθμιση απλής κονσόλας, θα χρησιμοποιηθεί είτε η
εσωτερική κονσόλα (απεικόνιση σε οθόνη) είτε η σειριακή
θύρα, ανάλογα με το πως έχει τεθεί η επιλογή
που εξετάσαμε παραπάνω. Σε περίπτωση
διπλής κονσόλας, θα ενεργοποιηθούν ταυτόχρονα τόσο η
εσωτερική όσο και η σειριακή κονσόλα, άσχετα από τη
ρύθμιση της επιλογής . Σημειώστε ωστόσο
ότι η ρύθμιση διπλής κονσόλας μπορεί να ενεργοποιηθεί μόνο
κατά την εκκίνηση, όσο εκτελείται το boot block. Μόλις
δοθεί ο έλεγχος στο φορτωτή εκκίνησης, η μοναδική κονσόλα
που παραμένει είναι αυτή που καθορίζεται από την επιλογή
.Ενεργοποιεί την ανίχνευση πληκτρολογίου του boot block.
Αν δεν βρεθεί πληκτρολόγιο, ενεργοποιούνται αυτόματα οι
επιλογές και .Λόγω περιορισμών χώρου στην τρέχουσα έκδοση των boot
blocks, η επιλογή μπορεί να
ανιχνεύσει μόνο εκτεταμένα (extended) πληκτρολόγια.
Πληκτρολόγια με λιγότερα από 101 πλήκτρα (και χωρίς τα
πλήκτρα F11 και F12)
ίσως να μην ανιχνευθούν. Εξαιτίας αυτού του περιορισμού,
είναι πιθανό να μην ανιχνευθούν και κάποια πληκτρολόγια
φορητών υπολογιστών. Αν συμβαίνει αυτό στο σύστημα σας,
θα πρέπει να σταματήσετε να χρησιμοποιείτε την επιλογή
. Δυστυχώς, δεν υπάρχει κάποιος τρόπος
να παρακάμψετε αυτό το πρόβλημα.Χρησιμοποιήστε είτε την επιλογή για να
επιλέξετε την κονσόλα αυτόματα, ή την επιλογή
για να ενεργοποιήσετε τη σειριακή κονσόλα.Μπορείτε επίσης να περιλάβετε και άλλες επιλογές που
περιγράφονται στη σελίδα manual του &man.boot.8;.Όλες οι επιλογές εκκίνησης, εκτός της ,
θα περάσουν στο φορτωτή εκκίνησης
(/boot/loader). Ο φορτωτής εκκίνησης θα
καθορίσει αν η κονσόλα θα δημιουργηθεί στην οθόνη ή στη σειριακή
θύρα, αφού εξετάσει μόνο την επιλογή . Αυτό
σημαίνει ότι αν καθορίσετε την επιλογή αλλά
όχι την επιλογή στο
/boot.config, θα μπορείτε να χρησιμοποιήσετε
την σειριακή θύρα ως κονσόλα μόνο κατά την εκτέλεση του boot
block. Ο φορτωτής εκκίνησης όμως θα χρησιμοποιήσει την εσωτερική
κονσόλα (οθόνη).Εκκινήστε το μηχάνημα.Όταν ξεκινήσετε το &os; μηχάνημα, τα boot blocks θα δείξουν
τα περιεχόμενα του /boot.config στην κονσόλα.
Για παράδειγμα:/boot.config: -P
Keyboard: noΗ δεύτερη γραμμή θα εμφανιστεί μόνο αν βάλετε την επιλογή
στο /boot.config, και
δείχνει αν υπάρχει ή όχι συνδεμένο πληκτρολόγιο. Τα μηνύματα
αυτά κατευθύνονται στην σειριακή ή στην εσωτερική κονσόλα, ή ακόμα
και στις δύο, ανάλογα με την επιλογή που έχει γίνει στο
/boot.config.ΕπιλογέςΤο μήνυμα εμφανίζεται στηνκαμίαεσωτερική κονσόλασειριακή κονσόλαεσωτερική και σειριακή κονσόλασειριακή και εσωτερική κονσόλα, πληκτρολόγιο συνδεμένοεσωτερική κονσόλα, χωρίς πληκτρολόγιοσειριακή κονσόλαΜετά τα παραπάνω μηνύματα, θα υπάρξει μια μικρή παύση πριν
τα boot blocks συνεχίσουν φορτώνοντας το φορτωτή εκκίνησης, και
πριν εμφανιστούν περισσότερα μηνύματα στην κονσόλα. Υπό κανονικές
συνθήκες, δεν χρειάζεται να διακόψετε τα boot blocks, αλλά ίσως
θέλετε να το κάνετε αυτό για να βεβαιωθείτε ότι όλα είναι
ρυθμισμένα σωστά.Πιέστε οποιοδήποτε πλήκτρο εκτός από το Enter
στην κονσόλα για να διακόψετε τη διαδικασία εκκίνησης. Τα boot
blocks θα σας ρωτήσουν για περισσότερες πληροφορίες. Θα πρέπει
να δείτε κάτι όπως το παρακάτω:>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Επαληθεύστε ότι το παραπάνω μήνυμα εμφανίζεται είτε στη
σειριακή κονσόλα, ή στην εσωτερική κονσόλα ή και στις δύο, ανάλογα
με τις επιλογές που έχετε βάλει στο αρχείο
/boot.config. Αν το μήνυμα εμφανίζεται στην
σωστή κονσόλα, πιέστε Enter για να συνεχίσετε
με τη διαδικασία εκκίνησης.Αν επιθυμείτε σειριακή κονσόλα, αλλά δεν βλέπετε την προτροπή
σε αυτήν, υπάρχει κάποιο λάθος στις ρυθμίσεις. Στο μεταξύ, γράψτε
και πιέστε Enter ή
Return (αν γίνεται) για να πείτε στο boot block
(και έπειτα στο φορτωτή εκκίνησης και τον πυρήνα) να επιλέξει
τη σειριακή θύρα για την κονσόλα. Μόλις το σύστημα ξεκινήσει,
κοιτάξτε ξανά τις ρυθμίσεις για να βρείτε που είναι το
λάθος.Μετά τη φόρτωση του φορτωτή εκκίνησης, βρίσκεστε στο τρίτο στάδιο
της διαδικασίας εκκίνησης και έχετε ακόμα τη δυνατότητα να επιλέξετε
μεταξύ της εσωτερικής και σειριακής κονσόλας, θέτοντας τις κατάλληλες
μεταβλητές περιβάλλοντος στο φορτωτή εκκίνησης. Δείτε το
.ΠερίληψηΕδώ θα βρείτε μια περίληψη των διάφορων επιλογών που
παρουσιάστηκαν σε αυτή την ενότητα, και την κονσόλα που επιλέχθηκε
τελικά.1η Περίπτωση: Έχετε Θέσει το Flag 0x10 για τη Θύρα
sio0device sio0 at isa? port IO_COM1 flags 0x10 irq 4Επιλογές στο /boot.configΚονσόλα κατά τη διάρκεια των boot
blocksΚονσόλα κατά τη διάρκεια του φορτωτή
εκκίνησηςΚονσόλα στον πυρήνακαμίαεσωτερικήεσωτερικήεσωτερικήσειριακήσειριακήσειριακήσειριακή και εσωτερικήεσωτερικήεσωτερικήσειριακή και εσωτερικήσειριακήσειριακή, πληκτρολόγιο συνδεμένοεσωτερικήεσωτερικήεσωτερική, χωρίς πληκτρολόγιοσειριακή και εσωτερικήσειριακήσειριακή2η Περίπτωση: Έχετε Θέσει το Flag 0x30 για την Θύρα
sio0device sio0 at isa? port IO_COM1 flags 0x30 irq 4Επιλογές στο /boot.configΚονσόλα κατά τη διάρκεια των boot
blocksΚονσόλα κατά τη διάρκεια του φορτωτή
εκκίνησηςΚονσόλα στον πυρήνακαμίαεσωτερικήεσωτερικήσειριακήσειριακήσειριακήσειριακήσειριακή και εσωτερικήεσωτερικήσειριακήσειριακή και εσωτερικήσειριακήσειριακή, πληκτρολόγιο συνδεμένοεσωτερικήεσωτερικήσειριακή, χωρίς πληκτρολόγιοσειριακή και εσωτερικήσειριακήσειριακήΣυμβουλές για την Σειριακή ΚονσόλαΡύθμιση Μεγαλύτερης Ταχύτητας για τη Σειριακή ΘύραΟι προεπιλεγμένες ρυθμίσεις της σειριακής θύρας είναι: 9600
baud, 8 bits, χωρίς ισοτιμία (parity), 1 stop bit. Αν θέλετε να
αλλάξετε την προεπιλεγμένη ταχύτητα της κονσόλας, έχετε τις παρακάτω
επιλογές:Επαναμεταγλωττίστε τα boot blocks θέτοντας τη μεταβλητή
BOOT_COMCONSOLE_SPEED για να ορίσετε την νέα
ταχύτητα κονσόλας. Δείτε το για λεπτομερείς οδηγίες σχετικά
με τη μεταγλώττιση και εγκατάσταση νέων boot blocks.Αν η ενεργοποίηση της σειριακής κονσόλας δεν γίνεται μέσω
της επιλογής , ή αν
η σειριακή κονσόλα που χρησιμοποιείται από τον πυρήνα είναι
διαφορετική από αυτή που χρησιμοποιείται από τα boot blocks, θα
πρέπει επίσης να προσθέσετε την παρακάτω επιλογή στο αρχείο
ρυθμίσεων του πυρήνα, και να μεταγλωττίσετε ένα νέο
πυρήνα:options CONSPEED=19200Στις επιλογές εκκίνησης του πυρήνα, χρησιμοποιήστε το
. Μπορείτε επίσης να προσθέσετε την επιλογή
στο /boot.config.
Η σελίδα manual &man.boot.8; περιέχει μια λίστα των
υποστηριζόμενων επιλογών, και περιγράφει πως να τις προσθέσετε
στο αρχείο /boot.config.Ενεργοποιήστε την επιλογή
comconsole_speed στο αρχείο
/boot/loader.conf.Για να λειτουργήσει αυτή η επιλογή, θα πρέπει επίσης να
θέσετε τιμές για τις επιλογές console,
boot_serial, και
boot_multicons στο ίδιο αρχείο, το
/boot/loader.conf. Παρακάτω φαίνεται ένα
παράδειγμα χρήσης του comconsole_speed για
αλλαγή ταχύτητα της σειριακής κονσόλας:boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"Χρησιμοποιώντας Σειριακή Θύρα Εκτός της
sio0 για την Κονσόλα.Θα πρέπει να επαναμεταγλωττίσετε κάποια προγράμματα για να
χρησιμοποιήσετε ως κονσόλα μια σειριακή θύρα εκτός της
sio0. Αν για οποιοδήποτε λόγο
θέλετε να χρησιμοποιήσετε άλλη σειριακή θύρα, θα πρέπει να
επαναμεταγλωττίσετε τα boot blocks, το φορτωτή εκκίνησης και τον
πυρήνα, με τον τρόπο που φαίνεται παρακάτω.Ανακτήστε τον πηγαίο κώδικα του πυρήνα. (Δείτε το )
+ linkend="updating-upgrading">)
Επεξεργαστείτε το αρχείο /etc/make.conf
και θέστε την επιλογή BOOT_COMCONSOLE_PORT
στη διεύθυνση της θύρας που θέλετε να χρησιμοποιήσετε (0x3F8,
0x2F8, 0x3E8 or 0x2E8). Μπορείτε να χρησιμοποιήσετε μόνο τις
θύρες sio0 ως
sio3 (COM1
ως COM4). Κάρτες πολλαπλών θυρών, δεν
πρόκειται να λειτουργήσουν. Δεν χρειάζεται να ρυθμίσετε την
τιμή του interrupt.Δημιουργήστε ένα αρχείο ρύθμισης προσαρμοσμένου πυρήνα, και
προσθέστε τα κατάλληλα flags για τη σειριακή θύρα που επιθυμείτε
να χρησιμοποιήσετε. Για παράδειγμα, αν θέλετε η
sio1 (COM2)
να γίνει η κονσόλα:device sio1 at isa? port IO_COM2 flags 0x10 irq 3ήdevice sio1 at isa? port IO_COM2 flags 0x30 irq 3Δεν θα πρέπει να θέσετε flags κονσόλας για τις άλλες
σειριακές θύρες.Μεταγλωττίστε και εγκαταστήστε ξανά τα boot blocks και τον
φορτωτή εκκίνησης:&prompt.root; cd /sys/boot
&prompt.root; make clean
&prompt.root; make
&prompt.root; make installΕπαναμεταγλωττίστε και εγκαταστήστε τον πυρήνα.Γράψτε τα boot blocks στον δίσκο εκκίνησης χρησιμοποιώντας
την &man.bsdlabel.8; και εκκινήστε με το νέο πυρήνα.Είσοδος στον DDB Debugger Μέσω της Σειριακής ΓραμμήςΑν θέλετε να εισέλθετε στον debugger του πυρήνα από την σειριακή
κονσόλα (κάτι που είναι χρήσιμο για να εκτελέσετε διαγνωστικά από
απομακρυσμένη τοποθεσία, αλλά επίσης και επικίνδυνο αν στείλετε κατά
λάθος BREAK μέσω της σειριακής θύρας!) θα πρέπει να περιλάβετε την
παρακάτω επιλογή στον πυρήνα σας:options BREAK_TO_DEBUGGER
options DDBΠροτροπή Εισόδου στην Σειριακή ΚονσόλαΑν και αυτό δεν είναι απαραίτητο, ίσως να θέλετε να έχετε
προτροπή εισόδου (login) μέσω της σειριακής
γραμμής, τώρα που μπορείτε πλέον να δείτε τα μηνύματα εκκίνησης και
να εισέλθετε στο debugger του πυρήνα μέσω της σειριακής κονσόλας.
Η διαδικασία περιγράφεται παρακάτω.Με κάποιο συντάκτη κειμένου, ανοίξτε το αρχείο
/etc/ttys και βρείτε τις γραμμές:ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off secureΟι καταχωρίσεις από ttyd0 ως
ttyd3 αντιστοιχούν στις
COM1 ως COM4.
Αλλάξτε το off σε on για την
θύρα που επιθυμείτε. Αν έχετε αλλάξει την ταχύτητα της σειριακής
θύρας, θα χρειαστεί να αλλάξετε το std.9600 ώστε
να ταιριάζει με την τρέχουσα ρύθμιση, π.χ.
std.19200.Μάλλον θα θέλετε να αλλάξετε και τον τύπο του τερματικού, από
unknown στον πραγματικό τύπου του σειριακού σας
τερματικού.Αφού αλλάξετε τις ρυθμίσεις, θα πρέπει να εκτελέσετε την εντολή
kill -HUP 1 ώστε να ενεργοποιηθούν.Αλλαγή Κονσόλας μέσω του Φορτωτή ΕκκίνησηςΣε προηγούμενες ενότητες, περιγράψαμε πως να ρυθμίσετε την
σειριακή κονσόλα αλλάζοντας τις ρυθμίσεις του boot block. Στην
ενότητα αυτή, δείχνουμε πως μπορείτε να καθορίσετε την κονσόλα
δίνοντας κάποιες εντολές και μεταβλητές περιβάλλοντος στον φορτωτή
εκκίνησης. Καθώς ο φορτωτής εκκίνησης καλείται από το τρίτο στάδιο
της διαδικασίας εκκίνησης, και μετά το boot block, οι ρυθμίσεις του
φορτωτή εκκίνησης υπερισχύουν σε σχέση με αυτές του boot block.Ρύθμιση της Σειριακής ΚονσόλαςΜπορείτε εύκολα να καθορίσετε ότι θα χρησιμοποιηθεί η
σειριακή κονσόλα στον φορτωτή εκκίνησης και στον πυρήνα που θα
φορτωθεί, γράφοντας απλώς μια γραμμή στο
/boot/loader.conf:set console="comconsole"Η ρύθμιση αυτή θα ενεργοποιηθεί, άσχετα με το boot block που
συζητήσαμε στην προηγούμενη ενότητα.Είναι καλύτερα η γραμμή αυτή να είναι η πρώτη στο αρχείο
/boot/loader.conf, ώστε να βλέπετε τα αρχικά
μηνύματα εκκίνησης στη σειριακή κονσόλα.Με τον ίδιο τρόπο, μπορείτε να καθορίσετε την εσωτερική κονσόλα
ως:set console="vidconsole"Αν δεν καθορίσετε τη μεταβλητή περιβάλλοντος
console, ο φορτωτής εκκίνησης (και έπειτα ο πυρήνας)
θα χρησιμοποιήσουν οποιαδήποτε κονσόλα έχετε καθορίσει στο boot
block με την επιλογή .Μπορείτε να καθορίσετε την κονσόλα στο
/boot/loader.conf.local ή στο
/boot/loader.conf.Δείτε το &man.loader.conf.5; για περισσότερες
πληροφορίες.Τη δεδομένη στιγμή, ο φορτωτής εκκίνησης δεν έχει επιλογή
αντίστοιχη με την του boot block, και δεν
υπάρχει κάποιος τρόπος να γίνει αυτόματη επιλογή μεταξύ
εσωτερικής και σειριακής κονσόλας ανάλογα με την παρουσία
πληκτρολογίου.Χρήση Σειριακής Θύρας Εκτός της sio0
για την ΚονσόλαΘα πρέπει να επαναμεταγλωττίσετε το φορτωτή εκκίνησης ώστε να
χρησιμοποιήσει μια σειριακή θύρα διαφορετική από την
sio0 για τη σειριακή κονσόλα. Ακολουθήστε
τη διαδικασία που περιγράφεται στο .Πιθανές ΠαγίδεςΗ γενική ιδέα είναι να επιτρέπεται σε όσους το επιθυμούν, να
δημιουργήσουν εξειδικευμένους εξυπηρετητές που δεν απαιτούν κάρτες
γραφικών και πληκτρολόγια. Δυστυχώς, αν και τα περισσότερα συστήματα
θα σας επιτρέψουν να εκκινήσετε χωρίς πληκτρολόγιο, σε πολύ λίγα θα
μπορέσετε να εκκινήσετε χωρίς κάρτα γραφικών. Τα μηχανήματα με BIOS
της AMI μπορούν να ρυθμιστούν με αυτό τον τρόπο, απλώς αλλάζοντας την
επιλογή graphics adapter στις ρυθμίσεις του CMOS σε
Not installed.Τα περισσότερα μηχανήματα ωστόσο δεν υποστηρίζουν αυτή την
επιλογή, και θα αρνηθούν να εκκινήσουν αν δεν βάλετε μια κάρτα
γραφικών. Στα μηχανήματα αυτά θα πρέπει να αφήσετε μια
στοιχειώδη (ακόμα και μονόχρωμη) κάρτα γραφικών, αν και δεν είναι
απαραίτητο να συνδέσετε και οθόνη. Μπορείτε επίσης να δοκιμάσετε να
εγκαταστήσετε BIOS της AMI.