Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
This commit is contained in:
parent
0cff342f42
commit
989d921f5d
14375 changed files with 1277937 additions and 3448703 deletions
7
documentation/content/el/articles/_index.adoc
Normal file
7
documentation/content/el/articles/_index.adoc
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: Articles
|
||||
---
|
||||
|
||||
= Articles
|
||||
|
||||
{{< list-articles-directories >}}
|
||||
194
documentation/content/el/articles/bsdl-gpl/_index.adoc
Normal file
194
documentation/content/el/articles/bsdl-gpl/_index.adoc
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
---
|
||||
title: Γιατί να χρησιμοποιήσετε την άδεια BSD για το λογισμικό σας
|
||||
authors:
|
||||
- author: Bruce Montague
|
||||
email: brucem@alumni.cse.ucsc.edu
|
||||
- author: Γιώργος Κεραμίδας
|
||||
email: keramida@FreeBSD.org
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "cvsup", "intel", "xfree86", "general"]
|
||||
---
|
||||
|
||||
= Γιατί να χρησιμοποιήσετε την άδεια BSD για το λογισμικό σας
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[intro]]
|
||||
== Εισαγωγή
|
||||
|
||||
Αυτό το άρθρο παρουσιάζει τα πλεονεκτήματα της άδειας BSD για λογισμικό και δεδομένα. Πιο συγκεκριμένα, αναφέρεται στα πλεονεκτήματα της άδειας BSD σε σχέση με την GPL. Ουσιαστικά είναι μια σύγκριση της άδειας BSD και της άδειας GPL, και μια εισαγωγή στις διαφορές τους.
|
||||
|
||||
[[history]]
|
||||
== Σύντομη Ιστορία του Ανοικτού Λογισμικού
|
||||
|
||||
Πολύ πριν χρησιμοποιηθεί για πρώτη φορά ο όρος "Open Source", οι προγραμματιστές είχαν αρχίσει να αναπτύσσουν το λογισμικό των υπολογιστών σε ομάδες και να ανταλλάσουν τα προγράμματα που έφτιαχναν εντελώς ελεύθερα. Στις αρχές της δεκαετίας του 1950 οι οργανισμοί όπως το http://www.share.org[SHARE] και το http://www.decus.org[DECUS] έφτιαχναν ένα μεγάλο ποσοστό από το λογισμικό το οποίο προσέφεραν οι εταιρείες λογισμικού μαζί με το υλικό των υπολογιστών τους. Η κυριότερη πηγή εσόδων των εταιρειών ήταν το υλικό των υπολογιστών τους. Οτιδήποτε μείωνε το κόστος ανάπτυξης του λογισμικού ήταν παράγοντας που βελτίωνε τις πωλήσεις του υλικού κι έκανε τις εταιρείες αυτές πιο ανταγωνιστικές.
|
||||
|
||||
Αυτό όμως άλλαξε τη δεκαετία του 1960. Το 1965 η ADR ανέπτυξε το πρώτο εμπορικό προϊόν λογισμικού, το οποίο διένειμε ανεξάρτητα από μια εταιρεία υλικού. Η ADR συναγωνιζόταν ένα δωρεάν πακέτο λογισμικού της IBM, το οποίο είχαν φτιάξει αρχικά οι πελάτες της IBM. Η ADR πατεντάρισε το λογισμικό της το 1968. Για να εμποδίσουν την ελεύθερη διανομή του προγράμματός τους, το έδιναν με μια μορφή leasing. Οι πελάτες τους πλήρωναν μόνιμα για την χρήση του προγράμματος της ADR. Η ADR ήταν ο ιδιοκτήτης του προγράμματος, κι έλεγχε έτσι τη μεταπώληση και χρήση του προγράμματος.
|
||||
|
||||
Το 1969 το Υπουργείο Δικαιοσύνης των ΗΠΑ κατηγόρησε την IBM ότι καταστρέφει τις επιχειρήσεις διανέμοντας δωρεάν λογισμικό με το υλικό της IBM. Το αποτέλεσμα ήταν να σταματήσει τη διανομή λογισμικού με τους υπολογιστές της η IBM. Έτσι το λογισμικό έγινε ένα ξεχωριστό, ανεξάρτητο προϊόν από το υλικό.
|
||||
|
||||
Το 1968 η εταιρεία Informatics διέδωσε το πρώτο "killer application", συνεισφέροντας έτσι στην αποκρυστάλλωση της ιδέας του λογισμικού ως προϊόντος, της έννοιας της εταιρείας λογισμικού, και των πολύ ακριβών τιμών πώλησης του λογισμικού. Η Informatics έκανε γνωστή την ιδέα της άδειας λογισμικού, η οποία είναι πλέον εγγενές μέρος της βιομηχανίας λογισμικού, σύμφωνα με την οποία η ιδιοκτησία του λογισμικού δε μεταφέρεται ποτέ στον πελάτη.
|
||||
|
||||
[[unix-license]]
|
||||
== Το Unix από την σκοπιά της άδειας BSD
|
||||
|
||||
Η αρχική υλοποίηση του Unix ανήκε στην εταιρεία AT&T. Η AT&T, λόγω των περιορισμών που είχε ως κρατικά ελεγχόμενο μονοπώλιο, δε μπορούσε να πουλήσει προϊόντα λογισμικού. Μπορούσε όμως να παρέχει λογισμικό σε ακαδημαϊκά ιδρύματα, στο κόστος του αποθηκευτικού μέσου.
|
||||
|
||||
Μετά από ένα συνέδριο για λειτουργικά συστήματα, στο οποίο παρουσιάστηκε το Unix, τα πανεπιστήμια υιοθέτησαν το Unix πολύ γρήγορα. Οι βασικοί λόγοι για τη δημοτικότητα του Unix ήταν ότι έτρεχε σε PDP-11, ένα πολύ φτηνό υπολογιστή 16-bit, και ότι ήταν γραμμένο σε μια γλώσσα υψηλού επιπέδου, η οποία ήταν εμφανώς καλή για προγραμματισμό συστημάτων. Οι υπολογιστές PDP-11 της DEC είχαν, ουσιαστικά, ένα ανοιχτό interface υλικού, σχεδιασμένο ακριβώς για να μπορούν οι πελάτες να γράψουν το δικό τους λειτουργικό σύστημα. Πολλοί λοιπόν έκαναν ακριβώς αυτό. Όπως έχει πει ο Ken Olsen, ιδρυτής της DEC: "Το λογισμικό έρχεται από τους ουρανούς, αν έχεις καλό υλικό".
|
||||
|
||||
Ο δημιουργός του UNIX, ο Ken Thompson, επέστρεψε στο πανεπιστήμιο του Μπέρκλεϋ στην Καλιφόρνια (University of California, Berkeley; UCB) το 1975, για να διδάξει γραμμή προς γραμμή πως δούλευε το Unix. Αυτό είχε ως αποτέλεσμα τη μετεξέλιξη του Unix στο σύστημα το οποίο έγινε γνωστό ως BSD (Berkeley Software Distribution). Το UCB μετέφερε το Unix σε 32-bit υπολογιστές, πρόσθεσε ένα υποσύστημα εικονικής μνήμης, και υλοποίησε την έκδοση του TCP/IP πάνω στην οποία βασίστηκε, πρακτικά, όλο το Internet. Το UCB παρείχε το BSD στο κόστος που χρειαζόταν το αποθηκευτικό μέσο για να μεταφερθεί, με μια άδεια που έγινε γνωστή ως "άδεια BSD". Όποιος ήθελε το BSD, αγόραζε μια άδεια για το Unix από την AT&T κι ύστερα παράγγελνε μια κασέτα με το BSD από το UCB.
|
||||
|
||||
Στα μέσα της δεκαετίας του 1980, μια αντικοινοπρακτική μήνυση της κυβέρνησης των ΗΠΑ εναντίον της AT&T, ανάγκασε την AT&T να αναδιοργανωθεί σε μικρότερες εταιρείες. Η AT&T είχε ακόμα την ιδιοκτησία του Unix, αλλά τώρα μπορούσε πλέον να το πουλήσει ως προϊόν. Οπότε, ξεκίνησε από την AT&T μια έντονη προσπάθεια για απαίτηση άδειας για το Unix, και οι περισσότερες εμπορικές εκδόσεις του Unix έγιναν "παράγωγα" του AT&T Unix.
|
||||
|
||||
Στις αρχές της δεκαετίας του 1990 η AT&T μήνυσε το UCB για παραβίαση της άδειας του Unix. Το UCB βρήκε ότι η AT&T είχε ενσωματώσει στα προϊόντα της, χωρίς να τις αγοράσει και χωρίς να αναφέρει την πηγή τους, πολλές από τις βελτιώσεις του BSD. Μια δικαστική διαμάχη μεταξύ της AT&T και του UCB ξεκίνησε, και κράτησε πολύ καιρό. Όσο ακόμη συνεχιζόταν η διαμάχη, ορισμένοι προγραμματιστές του UCB ξεκίνησαν την προσπάθεια να ξαναγράψουν από την αρχή οποιοδήποτε κομμάτι του AT&T Unix ήταν μέρος του BSD. Το αποτέλεσμα αυτής της προσπάθειας ήταν ένα σύστημα που λέγεται BSD 4.4-Lite. Ο χαρακτηρισμός "Lite" σημαίνει ότι δεν ήταν ένα ολοκληρωμένο σύστημα (έλειπαν 6 σημαντικά αρχεία της AT&T).
|
||||
|
||||
Λίγο αργότερα, στο περιοδικό Dr. Dobbs εμφανίστηκε μια μεγάλη σειρά από άρθρα για ένα παράγωγο του BSD προσαρμοσμένο σε συστήματα 386. Αυτή η έκδοση του Unix για PC περιείχε νέες εκδόσεις των 6 αρχείων που έλειπαν από το 4.4 BSD-Lite. Οι νέες εκδόσεις των 6 αρχείων είχαν άδεια BSD. Αυτό το σύστημα, το οποίο λεγόταν 386BSD, είχε φτιαχτεί από έναν πρώην προγραμματιστή του UCB: τον Ουίλιαμ Τζόλιτζ (William Jolitz). Στην αρχή, το 386BSD αποτέλεσε τη βάση όλων των σημερινών συστημάτων PC BSD.
|
||||
|
||||
Στα μέσα της δεκαετίας του 1990, η Novell αγόρασε τα δικαιώματα του Unix από την AT&T και έκανε μια (τότε μυστική ακόμα) συμφωνία να σταματήσει τη δικαστική διαμάχη. Λίγο μετά το UCB σταμάτησε να υποστηρίζει επίσημα το BSD.
|
||||
|
||||
[[current-bsdl]]
|
||||
== Η Σημερινή Κατάσταση της Άδειας του FreeBSD και των Αδειών BSD
|
||||
|
||||
Η http://www.opensource.org/licenses/bsd-license.php[νέα άδεια τύπου BSD], με την οποία διανέμεται το FreeBSD τα τελευταία χρόνια, είναι ουσιαστικά μια δήλωση ότι μπορείτε να κάνετε ότι θέλετε με τον πηγαίο κώδικα του FreeBSD, αλλά δεν παρέχεται καμία εγγύηση γι' αυτόν και δε φέρει ευθύνη για προβλήματα με τον πηγαίο κώδικα κανείς από τους συγγραφείς του (βασικά, δε μπορείτε να κάνετε μήνυση σε κάποιον). Αυτή η νέα άδεια BSD έχει ως σκοπό να ενθαρρύνει την εμπορευματοποίηση του πηγαίου κώδικα. Οποιοδήποτε κομμάτι BSD κώδικα μπορεί να πωληθεί ή να ενσωματωθεί σε εμπορικά προϊόντα, χωρίς κανένα περιορισμό ή απαίτηση για διαθεσιμότητα του κώδικα ή κάποια άλλη προϋπόθεση σχετικά με τη μελλοντική συμπεριφορά σας.
|
||||
|
||||
Είναι σημαντικό να μη μπερδεύουμε την άδεια BSD με τις άδειες "public domain". Παρόλο που ένα αντικείμενο μα άδεια public domain είναι κι αυτό διαθέσιμο για οποιαδήποτε χρήση, τα αντικείμενα public domain δεν έχουν συγκεκριμένο ιδιοκτήτη.
|
||||
|
||||
[[origins-gpl]]
|
||||
== Οι Απαρχές της Άδειας GPL
|
||||
|
||||
Τα τέλη της δεκαετίας του 1980 ήταν λίγο περίεργη περίοδος για το μέλλον του UNIX. Παρόλ' αυτά από τα μέσα της δεκαετίας του 1980 και τις αρχές της επόμενης δεκαετίας, του 1990, άρχισε να φέρνει αποτελέσματα η GPL - ένα άλλο έργο με σημαντικές επιπτώσεις στο θέμα των αδειών λογισμικού.
|
||||
|
||||
Ο Richard Stallman, ο προγραμματιστής που έφτιαξε το Emacs, ήταν μέλος της ομάδας του MIT όταν το εργαστήριο στο οποίο δούλευε άλλαξε, από συστήματα που είχαν αναπτυχθεί εσωτερικά στο ίδιο το εργαστήριο σε εμπορικά συστήματα. Ο Stallman ενοχλήθηκε όταν ανακάλυψε ότι δε μπορούσε να προσθέσει χαρακτηριστικά σε ένα εμπορικό σύστημα ή να βελτιώσει τα υπάρχοντα χαρακτηριστικά με νόμιμο τρόπο. (Πολλοί από τους παλιούς συνεργάτες του Stallman είχαν φύγει για να ιδρύσουν δύο εταιρείες βασισμένες σε λογισμικό το οποίο είχε αναπτυχθεί στο MIT και ήταν διαθέσιμο με άδεια από το MIT. Δεν είναι ξεκάθαρο όμως ποιός είχε πρόσβαση στον πηγαίο κώδικα του λογισμικού.) Με αφορμή αυτές τις εξελίξεις, ο Stallman εφηύρε μια άδεια λογισμικού ως εναλλακτική των εμπορικών αδειών: την άδεια GPL ή "GNU Public License". Ίδρυσε επίσης και ένα μη κερδοσκοπικό οργανισμό, τη http://www.fsf.org[Free Software Foundation] (FSF), με σκοπό την ανάπτυξη ενός ολοκληρωμένου λειτουργικού συστήματος και όλου του σχετικού λογισμικού· ενός συστήματος που δε θα είχε κανέναν από τους περιορισμούς των εμπορικών αδειών λογισμικού. Αυτό το σύστημα λεγόταν GNU, ένα όνομα που σήμαινε "GNU is Not Unix".
|
||||
|
||||
Η άδεια GPL είχε σχεδιασθεί με σκοπό να είναι ο αντίποδας των συνηθισμένων εμπορικών αδειών λογισμικού. Έτσι απαιτούσε να διανέμονται με την ίδια άδεια, τη GPL, όλες οι αλλαγές ενός προγράμματος που ήδη διανέμεται με άδεια GPL (απαιτώντας να είναι διαθέσιμος ο πηγαίος κώδικας σε κάθε χρήστη). Επίσης απαιτούσε να διανέμεται με άδεια GPL κάθε πρόγραμμα που συνδεόταν με κώδικα GPL. Ο βασικός στόχος της GPL ήταν να εμποδίσει με κάθε τρόπο την εμπορευματοποίηση του πηγαίου κώδικα ενός προγράμματος. Όπως λέει και η τελευταία παράγραφος της GPL:
|
||||
|
||||
"Αυτή η Γενική Δημόσια Άδεια δεν επιτρέπει την ενσωμάτωση του προγράμματός σας σε εμπορικά προγράμματα."[1]
|
||||
|
||||
Η άδεια http://www.opensource.org/licenses/gpl-license.php[GPL] είναι μια ιδιαίτερα πολύπλοκη άδεια, οπότε ορισμένοι απλοί κανόνες που μπορεί να σας βοηθήσουν όταν έχετε να κάνετε με GPL κώδικα είναι οι εξής:
|
||||
|
||||
* Μπορείτε να χρεώσετε όσο θέλετε για τη διανομή, την υποστήριξη, ή την τεκμηρίωση του λογισμικού, αλλά δε μπορείτε να πουλήσετε το ίδιο το πρόγραμμα.
|
||||
* Ένας απλός κανόνας είναι: αν χρειάζεται πηγαίος κώδικας με άδεια GPL για να μεταγλωττιστεί ένα πρόγραμμα, το πρόγραμμα πρέπει να διανέμεται με άδεια GPL. Η σύνδεση (linking) με μια στατική βιβλιοθήκη άδειας GPL απαιτεί και το υπόλοιπο πρόγραμμα να διανέμεται με άδεια GPL.
|
||||
* Αν υπάρχουν πατέντες που σχετίζονται με ένα πρόγραμμα άδειας GPL, τότε η άδεια GPL απαιτεί αυτές οι πατέντες να είναι διαθέσιμες για ελεύθεση χρήση από όλους.
|
||||
* Η απλή παράθεση προγραμμάτων στο ίδιο αποθηκευτικό μέσο, π.χ. η αποθήκευση στον ίδιο δίσκο, δεν επηρεάζεται από την άδεια GPL: στον ίδιο αποθηκευτικό δίσκο μπορεί να αποθηκεύονται προγράμματα με άδεια GPL και προγράμματα με άλλες άδειες λογισμικού.
|
||||
* Η έξοδος ενός προγράμματος δεν θεωρείται παράγωγο έργο. Για παράδειγμα, η έξοδος του μεταγλωττιστή gcc μπορεί να χρησιμοποιηθεί σε εμπορικά περιβάλλοντα, χωρίς κανένα νομικό πρόβλημα.
|
||||
* Αφού ο πυρήνας του Linux διανέμεται με άδεια GPL, οποιοσδήποτε κώδικας συνδέεται με στατικό τρόπο με τον πυρήνα του Linux πρέπει να διανέμεται κι αυτός με την ίδια άδεια. Αυτός ο περιορισμός μπορεί να αρθεί με δυναμική σύνδεση με τον πυρήνα του Linux (loadable kernel modules). Αυτό επιτρέπει σε εταιρείες να διανέμουν οδηγούς συσκευών σε εκτελέσιμη μορφή, αλλά έχει συχνά το μειονέκτημα ότι μπορεί να λειτουργήσει σωστά μόνο με συγκεκριμένες εκδόσεις του πυρήνα.
|
||||
|
||||
Λόγω της μεγάλης πολυπλοκότητας της άδειας GPL, σε πολλά μέρη του κόσμου αγνοεί ο κόσμος τις νομικές πολυπλοκότητες της GPL σε σχέση με το Linux και άλλα προϊόντα λογισμικού. Οι μακροχρόνιες επιδράσεις τις οποίες μπορεί να έχει αυτό δεν είναι πολύ ξεκάθαρες.
|
||||
|
||||
[[origins-lgpl]]
|
||||
== Οι Απαρχές του Linux και της LGPL
|
||||
|
||||
Όσο μαινόταν ο πόλεμος μεταξύ των εμπορικών Unix, άρχισε να αναπτύσσεται ο πυρήνας του Linux ως κλώνος του Unix για PC. Ο Linus Torvalds αποδίδει την ύπαρξη του Linux στη διαθεσιμότητα του GNU C compiler και των σχετικών GNU εργαλείων ανάπτυξης. Γι' αυτό διανέμει τον πυρήνα του Linux με άδεια GPL.
|
||||
|
||||
Θυμηθείτε ότι η GPL απαιτεί να διανέμεται με άδεια GPL κάθε πρόγραμμα που συνδέεται στατικά (static linking) με ένα πρόγραμμα που έχει ήδη άδεια GPL. Ο πηγαίος κώδικας για κάθε πρόγραμμα με άδεια GPL πρέπει να είναι διαθέσιμος σε κάθε χρήστη του προγράμματος. Αντίθετα, η δυναμική σύνδεση με κώδικα που έχει άδεια GPL δε θεωρείται παραβίαση της GPL. Η πίεση να διανέμονται ακόμα και εμπορικά προγράμματα με άδεια GPL άρχισε να αυξάνεται· ειδικά για προγράμματα που έπρεπε να συνδέονται με βιβλιοθήκες του συστήματος. Αυτό οδήγησε στη δημιουργία μιας διαφορετικής έκδοσης της άδειας GPL, με όνομα http://www.opensource.org/licenses/lgpl-license.php[LGPL] ("Library GPL", η οποία πλέον λέγεται "Lesser GPL"). Η LGPL επιτρέπει τη σύνδεση εμπορικού κώδικα με τη GNU C library, τη glibc. Δε χρειάζεται να διαθέσετε τον πηγαίο κώδικα ενός προγράμματος αν αυτό συνδέεται δυναμικά με μια βιβλιοθήκη άδειας LGPL.
|
||||
|
||||
Αν ένα πρόγραμμα συνδέεται στατικά (static linking) με τη glibc, για παράδειγμα όπως γίνεται συχνά σε embedded συστήματα, δε γίνεται να κρατήσετε τον κώδικα της εφαρμογής με εμπορική άδεια· πρέπει ο πηγαίος κώδικας να διανέμεται κι αυτός με άδεια GPL. Για προγράμματα με στατική σύνδεση με GPL κώδικα, τόσο η GPL όσο και η LGPL απαιτούν ο κώδικας του προγράμματος να διανέμεται με την ίδια άδεια.
|
||||
|
||||
[[orphaning]]
|
||||
== Οι Άδειες Ανοιχτού Λογισμικού και το Πρόβλημα του Ορφανού Κώδικα
|
||||
|
||||
Ένα από τα πιο σοβαρά προβλήματα του εμπορικού λογισμικού είναι το πρόβλημα του "ορφανού κώδικα". Αυτό εμφανίζεται όταν μια συγκεκριμένη εταιρεία αποτυγχάνει ή αλλάζει στρατηγική σχετικά με ένα προϊόν, προκαλώντας προβλήματα σε μια τεράστια πυραμίδα από εξαρτημένα συστήματα και εταιρείες για λόγους πέρα από τον έλεγχό τους. Δεκαετίες εμπειρίας έχουν δείξει ότι το προσωρινό μέγεθος ή η επιτυχία μιας εταιρείας δεν παρέχουν καμία εγγύηση σχετικά με τη διαθεσιμότητα του λογισμικού της εταιρείας. Καθώς αλλάζουν οι συνθήκες της αγοράς ή οι στρατηγικές των εταιρειών - πολλές φορές με πολύ γρήγορο ρυθμό - τα προγράμματα μπορεί να πάψουν να είναι διαθέσιμα για οποιοδήποτε λόγο.
|
||||
|
||||
Η άδεια λογισμικού GPL προσπαθεί να αποφύγει το πρόβλημα των "ορφανών προγραμμάτων" αποκόπτοντας κάθε εξάρτηση του πηγαίου κώδικα ενός προγράμματος από τα θέματα πνευματικής ιδιοκτησίας.
|
||||
|
||||
Μια άδεια λογισμικού τύπου BSD δίνει σε μια μικρή εταιρεία το ισοδύναμο ενός προγράμματος με δικλείδα ασφαλείας: αν η αρχική εταιρεία σταματήσει να φτιάχνει ένα πρόγραμμα, μπορεί η εταιρεία που εξαρτάται από αυτό να πάρει τα ηνία και να συνεχίσει να το συντηρεί με εμπορικό τρόπο. Μια ακόμα καλύτερη περίπτωση είναι αυτή ενός BSD προγράμματος που συντηρείται από μια μικρή ανεπίσημη επιτροπή, αφού τότε η επιβίωση ενός προγράμματος δεν εξαρτάται από μία και μόνο εταιρεία ή από μια συγκεκριμένη σειρά προϊόντων. Η επιβιωσιμότητα της ομάδας ανάπτυξης, όταν βρίσκονται στην κατάλληλη διανοητική κατάσταση, είναι πιο σημαντική από την φυσική διαθεσιμότητα του πηγαίου κώδικα.
|
||||
|
||||
[[license-cannot]]
|
||||
== Τι δε Μπορεί να Κάνει μια Άδεια Λογισμικού
|
||||
|
||||
Καμία άδεια λογισμικού δε μπορεί να εγγυηθεί τη μελλοντική διαθεσιμότητα ενός προγράμματος. Ο ιδιοκτήτης του copyright ενός προγράμματος μπορεί να αλλάξει τους όρους του copyright οποιαδήποτε στιγμή. Η κοινότητα του BSD θεωρεί ότι σε αυτή την περίπτωση ένα από τα άμεσα αποτελέσματα είναι η διάσπαση και η ανεξάρτητη ανάπτυξη του κώδικα.
|
||||
|
||||
Η GPL απαγορεύει ρητά την αλλαγή της άδειας. Παρόλ' αυτά υπάρχει τουλάχιστον μία περίπτωση που αυτό δεν έγινε: μια εταιρεία (η Mattel) αγόρασε ένα GPL copyright (cphack), ακύρωσε κάθε όρο του αρχικού copyright, πήγε στα δικαστήρια και κέρδισε τη δίκη [2]. Κατάφεραν, δηλαδή, με νόμιμο τρόπο, να ακυρώσουν το copyright για τη διανομή του συγκεκριμένου προγράμματος και όλων των παράγωγων έργων. Δεν είναι ξεκάθαρο αν κάτι τέτοιο θα μπορούσε να γίνει με ένα πολύ μεγαλύτερο ή πολύ πιο διαδεδομένο πρόγραμμα. Υπάρχουν επίσης αμφιβολίες σχετικά με το αν το αρχικό πρόγραμμα ήταν άδειας GPL.
|
||||
|
||||
Ένα άλλο παρόμοιο παράδειγμα είναι η εξαγορά της Cygnus από τη Red Hat. Η Cygnus ήταν μια εταιρεία μηχανικών, η οποία είχε αναλάβει την ανάπτυξη των εργαλείων μεταγλώττισης (compiler tools) της FSF. Η Cygnus μπορούσε να το κάνει αυτό επειδή είχε αναπτύξει ένα μοντέλο υποστήριξης των εργαλείων GNU: πουλούσαν τεχνική υποστήριξη για αυτά τα εργαλεία, οπότε μπορούσαν να συντηρούν μια ομάδα 50 προγραμματιστών και να ορίζουν την πορεία ανάπτυξης των εργαλείων, προσφέροντας την πλειοψηφία των αλλαγών που γίνονταν σε αυτά. Όπως έχει πει ο Donald Rosenberg: "Οι ομάδες που χρησιμοποιούν προϊόντα λογισμικού με άδεια GPL... ζουν με τη μόνιμη απειλή ότι κάποιος άλλος θα πάρει τα ηνία στο έργο επειδή έφτιαξε μια καλύτερη έκδοση του κώδικα ή απλά επειδή μπορεί να το κάνει πιο γρήγορα από τους αρχικούς προγραμματιστές"[3].
|
||||
|
||||
[[gpl-advantages]]
|
||||
== Πλεονεκτήματα και Μειονεκτήματα της Άδειας GPL
|
||||
|
||||
Ένας από τους πιο συνηθισμένους λόγους για να χρησιμοποιήσει κανείς την άδεια GPL είναι επειδή χρειάζεται να κάνει αλλαγές στον μεταγλωττιστή GCC ή να τον επεκτείνει. Αυτό είναι πολύ χρήσιμο όταν δουλεύει με καινούριους επεξεργαστές ή ειδικούς επεξεργαστές, σε περιβάλλοντα όπου κάθε κόστος λογισμικού μπορεί να θεωρηθεί περιττό κόστος, ή όταν είναι πολύ μικρή η πιθανότητα να χρησιμοποιηθεί από άλλους το αποτέλεσμα του καινούριου μεταγλωττιστή.
|
||||
|
||||
Η άδεια GPL είναι ελκυστική και για τις μικρές εταιρείες οι οποίες πωλούν CD-ROM σε ένα περιβάλλον όπου ισχύει ο κανόνας "αγόρασε φτηνά, πούλα ακριβότερα" και υπάρχουν ακόμη περιθώρια κέρδους. Είναι επίσης ελκυστική για εκείνες τις εταιρείες οι οποίες επιβιώνουν παρέχοντας διάφορες μορφές τεχνικής υποστήριξης ή τεκμηρίωσης για τα προϊόντα με άδεια GPL.
|
||||
|
||||
Ένα ακούσιο και λιγότερο τεκμηριωμένο αποτέλεσμα της GPL είναι η συμπάθεια που της δείχνουν οι μεγάλες εταιρείες, με σκοπό να υπονομεύσουν τις μικρότερες εταιρείες λογισμικού. Μερικές φορές η GPL μπορεί να ταιριάξει πολύ καλά με στρατηγικές μάρκετινγκ, και να χρησιμοποιηθεί με σκοπό τη μείωση του άμεσου οικονομικού κέρδους, συνεισφέροντας με το δικό της τρόπο σε μονοπωλιακές τακτικές.
|
||||
|
||||
Η άδεια GPL μπορεί να είναι πολύ σημαντικό πρόβλημα για όποιον θέλει να εμπορευματοποιήσει ένα έργο λογισμικού και να βγάλει κέρδος από αυτό. Για παράδειγμα, η GPL μπορεί να είναι εμπόδιο στα σχέδια ενός φοιτητή που σκέφτεται να ιδρύσει μια εταιρεία με βάση την ιδέα της έρευνάς του, ή μπορεί να είναι εμπόδιο στα σχέδια ενός εργαζόμενου που θέλει να συνεργαστεί με μια εταιρεία με βάση μια προσωπική του ιδέα.
|
||||
|
||||
Για όσους χρειάζεται να δουλεύουν με στατικά συνδεμένα προγράμματα και να συνδυάζουν κώδικα από πολλά μέρη ή κώδικα που είναι συμβατός με μια ποικιλία από πρότυπα, η GPL δεν είναι τόσο καλή επιλογή άδειας, επειδή απαγορεύει τη χρήση εμπορικών υλοποιήσεων αυτών των προτύπων. Έτσι η GPL μειώνει τον αριθμό των προγραμμάτων που μπορούν να αναπτυχθούν σε αυτά που χρησιμοποιούν μόνο τα πρότυπα GPL. Ο σκοπός της ίδιας της GPL είναι να μη μπορεί να φτιάξει κανείς εμπορικά προϊόντα με GPL κώδικα. (Αυτός ο περιορισμός δεν ισχύει για όλες τις εφαρμογές Linux, επειδή οι περισσότερες από αυτές δεν χρησιμοποιούν στατική σύνδεση με τον GPL κώδικα του Linux, αλλά βασίζονται σε ένα δυναμικό API.)
|
||||
|
||||
Η GPL προσπαθεί να πείσει τους προγραμματιστές να συνεισφέρουν σε ένα συνεχώς εξελισσόμενο σύνολο προγραμμάτων, με περιθώριο συναγωνισμού στη διανομή και την τεχνική υποστήριξη αυτών των προγραμμάτων. Αυτό δεν είναι ρεαλιστικό σενάριο όμως για πολλά καίρια συστήματα και πρότυπα, τα οποία μπορεί να είναι χρήσιμα σε μεγάλη ποικιλία συστημάτων και ταυτόχρονα να απαιτούν εμπορικές επεκτάσεις ή προσαρμογές ή ενσωμάτωση σε υπάρχοντα προγράμματα με legacy πρότυπα και υπάρχουσες άδειες, ασύμβατες με την άδεια GPL. Για παράδειγμα, τα real-time και τα embedded συστήματα χρησιμοποιούν στατική σύνδεση πολύ συχνά, οπότε η GPL και η LGPL αποτελούν σοβαρό πρόβλημα για εταιρείες οι οποίες δραστηριοποιούνται σε αυτό το χώρο.
|
||||
|
||||
Η άδεια GPL είναι μια προσπάθεια να συγκρατηθεί η ανάπτυξη του λογισμικού, ανεξάρτητα από τη ζήτηση για άλλου είδους αποτελέσματα, σε ένα στάδιο έρευνας και ανάπτυξης. Αυτό μεγιστοποιεί τα κέρδη για τους μελετητές και τους προγραμματιστές, αλλά μπορεί να έχει ένα άγνωστου μεγέθους κόστος για όσους θα είχαν όφελος από την πιο ευρεία διαθεσιμότητα του κώδικα.
|
||||
|
||||
Η GPL έχει σχεδιαστεί, βασικά, με σκοπό να εμποδίσει τα αποτελέσματα της έρευνας από το να κάνουν τη μετάβαση σε εμπορικά προϊόντα. Πολλές φορές αυτό θεωρείται ένα από τα τελευταία βήματα στην παραδοσιακή μεταφορά τεχνογνωσίας από το ερευνητικό στο εμπορικό στάδιο, και είναι συνήθως αρκετά δύσκολο σαν βήμα ακόμα και κάτω από τις καλύτερες συνθήκες. Η GPL έχει σχεδιαστεί έτσι που αυτό το βήμα να είναι πρακτικά αδύνατον να πραγματοποιηθεί.
|
||||
|
||||
[[bsd-advantages]]
|
||||
== Πλεονεκτήματα της Άδειας BSD
|
||||
|
||||
Η άδεια BSD είναι πολύ καλή επιλογή για ερευνητικά ή άλλα έργα, όταν αυτά έχουν μεγάλη διάρκεια και χρειάζονται ένα περιβάλλον ανάπτυξης το οποίο:
|
||||
|
||||
* έχει πολύ μικρό ή μηδενικό κόστος
|
||||
* θα συνεχίσει να εξελίσσεται σε βάθος χρόνου
|
||||
* επιτρέπει σε οποιονδήποτε να συνεχίσει, ακόμη και να εμπορευματοποιήσει τα τελικά αποτελέσματα με πολύ μικρό κόστος και ελάχιστα νομικά προβλήματα
|
||||
|
||||
Αυτό το τελευταίο χαρακτηριστικό είναι πολύ συχνά εκείνο που παίζει τον πιο σημαντικό ρόλο. Κλασικό παράδειγμα είναι η επιλογή άδειας του Apache project:
|
||||
|
||||
"Αυτού του είδους η άδεια είναι ιδανική για την προώθηση ενός πηγαίου κώδικα που λειτουργεί ως σημείο αναφοράς για την υλοποίηση ενός πρωτοκόλου κοινής χρήσης. Αυτός είναι ένας από τους λόγους για τους οποίους διαλέξαμε μια τέτοια άδεια για το apache group. Πολλοί από εμάς θέλουμε να επιβιώσει το HTTP και να γίνει ένα πρότυπο το οποίο είναι αποδεκτό από όλους, και δε θα μας πειράξει καθόλου αν η Microsoft ή η Netscape ενσωματώσει τη δική μας μηχανή HTTP σε δικά τους προϊόντα, αν αυτό προωθήσει ακόμη περισσότερο το στόχο μας για κοινή χρήση του HTTP... Αυτό σημαίνει ότι είναι στρατηγικής σημασίας για το έργο μας να διατηρήσουμε την ενεργητικότητα που έχει σήμερα, και να πείσουμε τους συμμετέχοντες ότι κερδίζουν περισσότερα συνεισφέροντας κώδικα στο έργο μας. Ακόμη και κώδικα που μπορεί να είχε αξία αν τον κρατούσαν ως εμπορικό μυστικό."
|
||||
|
||||
Οι προγραμματιστές τείνουν να προτιμούν την άδεια BSD επειδή τους αφήνει να ασχολούνται με τον κώδικα, και να κάνουν αυτό που πραγματικά θέλουν, χωρίς να ασχολούνται με περίπλοκα νομικά ζητήματα. Αντίθετα, όσοι θέλουν να χρησιμοποιούν το τελικό αποτέλεσμα ως ένα ολοκληρωμένο σύστημα, ή ξέρουν πως άλλοι θα κάνουν την ανάπτυξη του λογισμικού, ή όσοι δεν περιμένουν να ζήσουν από τις αλλαγές και βελτιώσεις τις οποίες κάνουν σε ένα σύστημα (όπως π.χ. οι εργαζόμενοι σε κυβερνητικούς φορείς), προτιμούν την άδεια GPL επειδή αναγκάζει τους άλλους να τους δώσουν περισσότερο κώδικα και εμποδίζει τους εργοδότες τους από το να κρατήσουν τα πνευματικά δικαιώματα και να "θάψουν" ή να αφήσουν ορφανό ένα πρόγραμμα. Αν θέλετε να αναγκάσετε τους ανταγωνιστές σας να σας βοηθήσουν, τότε η GPL είναι ιδιαίτερα ελκυστική ως επιλογή.
|
||||
|
||||
Μια άδεια τύπου BSD δεν είναι απλά ένα δώρο. Μια από τις πιο συχνές ερωτήσεις σχετικά με τις άδειες BSD είναι: "Γιατί να βοηθήσω τους ανταγωνιστές μου να κλέψουν τη δουλειά μας;". Στην πραγματικότητα η άδεια BSD δίνει κίνητρο στους ανταγωνιστές να συνεργαστούν. Αν μία μόνο εταιρεία καταφέρει να κυριαρχήσει σε κάποιο τομέα τον οποίο οι άλλες εταιρείες θεωρούν στρατηγικής σημασίας, τότε οι άλλες εταιρείες μπορούν, με ελάχιστη προσπάθεια, να ιδρύσουν μια μικρή επιτροπή με στόχο την επαναφορά της ισορροπίας. Μπορούν τότε να συνεισφέρουν όλες μαζί στην βελτίωση ενός ανταγωνιστικού BSD προϊόντος, αυξάνοντας τον ανταγωνισμό της αγοράς. Έτσι κάθε εταιρεία μπορεί να κερδίσει από κάποιου είδους πλεονέκτημα, το οποίο μπορεί να προσφέρει η ίδια, ενώ ταυτόχρονα όλες μαζί συνεισφέρουν στην οικονομική ευελιξία και αποδοτικότητα της αγοράς. Όσο πιο γρήγορα και εύκολα μπορούν να το κάνουν αυτό τα συνεργαζόμενα μέλη μιας τέτοιας ομάδας, τόσο πιο πετυχημένη μπορεί να γίνει η ομάδα. Μια άδεια BSD είναι, ουσιαστικά, μια άδεια λογισμικού που επιτρέπει και ενθαρρύνει τέτοιες συμπεριφορές, με το ελάχιστο νομικό κόστος και πολύ μικρή νομική πολυπλοκότητα.
|
||||
|
||||
Ο πιο σημαντικός στόχος της GPL είναι η δημιουργία ενός πλήρους και ανταγωνιστικού συστήματος Ελεύθερου Λογισμικού, διαθέσιμου σε οποιονδήποτε το θέλει ή το χρειάζεται με ελάχιστο ή καθόλου κόστος, είναι σημαντικός στόχος. Μια άδεια BSD, σε συνδυασμό με ad-hoc ομάδες από ενδιαφερόμενους συνεργάτες, μπορεί να πετύχει τον ίδιο στόχο χωρίς να καταστρέψει τα οικονομικά κίνητρα του συστήματος μεταφοράς τεχνογνωσίας.
|
||||
|
||||
[[recommendations]]
|
||||
== Οδηγίες για τη Χρήση μιας Άδειας Τύπου BSD
|
||||
|
||||
* Η άδεια BSD είναι προτιμότερη για τη μεταφορά ερευνητικών αποτελεσμάτων έτσι που να μπορούν να χρησιμοποιηθούν σε μεγάλο εύρος εφαρμογών, μεγιστοποιώντας το όφελος της οικονομίας από αυτά. Γι' αυτό πρέπει οι οργανώσεις που χρηματοδοτούν ερευνητικά έργα, όπως η NSF, ONR και DARPA, να ενθαρρύνουν τη χρήση μιας άδειας τύπου BSD. Μια τέτοια άδεια είναι ιδανική τόσο για τα πρώτα στάδια ενός ερευνητικού έργου, όσο και για τα προγράμματα, τα δεδομένα και το υλικό που χρησιμοποιείται. Οι χρηματοδότες οργανισμοί θα πρέπει επίσης να ενθαρρύνουν τη χρήση ανοιχτών προτύπων και ανοιχτών συστημάτων, τα οποία υλοποιούνται με βάση υπάρχοντα ανοιχτά συστήματα και ανοιχτά πρότυπα.
|
||||
* Η πολιτική των κυβερνήσεων πρέπει να ελαχιστοποιεί το κόστος και τα προβλήματα της μετάβασης από ερευνητικό σε εφαρμοσμένο στάδιο. Όταν αυτό είναι δυνατόν, η χρηματοδότηση μιας ερευνητικής εργασίας θα πρέπει να απαιτεί τη διαθεσιμότητα των αποτελεσμάτων με βάση μια άδεια που επιτρέπει και την εμπορική χρήση των αποτελεσμάτων - όπως οι άδειες τύπου BSD.
|
||||
* Σε πολλές περιπτώσεις μια άδεια τύπου BSD και οι μακροχρόνιες επιπτώσεις της στη διαθεσιμότητα και τις εν δυνάμει χρήσεις του λογισμικού ταιριάζουν πιο καλά με τους στόχους ενός ερευνητικού πανεπιστημιακού προγράμματος, από ότι μια κλειστή πανεπιστημιακή άδεια ή μια άδεια βασισμένη σε πατέντες. Η μέχρι τώρα εμπειρία έχει δείξει ότι μερικές φορές τα πανεπιστήμια έχουν περισσότερα να κερδίσουν και, σε βάθος χρόνου, αμοίβονται καλύτερα όταν δημοσιεύουν τα αποτελέσματα των ερευνών τους και αναζητούν δωρεές από επιτυχημένους απόφοιτους.
|
||||
* Οι εταιρείες έχουν καταλάβει πλέον ότι η δημιουργία de facto προτύπων είναι μια καλή τεχνική προβολής. Μια άδεια τύπου BSD μπορεί να λειτουργήσει άνετα με τέτοιο τρόπο, ειδικά όταν μια εταιρεία έχει το πλεονέκτημα να οδηγεί τις εξελίξεις ενός συστήματος. Η άδεια είναι ελκυστική από νομικής πλευράς σε όσο το δυνατόν μεγαλύτερο κοινό, και την ίδια στιγμή η εμπειρία μιας εταιρείας με το συγκεκριμένο σύστημα εξασφαλίζει ότι θα έχει τον έλεγχο σε ότι αφορά στην ανάπτυξη και εξέλιξη του συστήματος. Μερικές φορές μπορεί να παίξει τον ίδιο ρόλο στη δημιουργία de facto προτύπων και κάποια άλλη άδεια, όπως η GPL, ειδικά όταν υπάρχει λόγος να καθυστερήσουν ή να έχουν διάφορα εμπόδια οι ανταγωνιστές. Η GPL όμως δημιουργεί άλλου είδους προβλήματα στην προώθηση ενός προτύπου, επειδή ενθαρρύνει τη δημιουργία μιας ολοκληρωμένης σουίτας κι όχι ενός ανεξάρτητου, εμπορικά διαθέσιμου και βιώσιμου προτύπου. Η χρήση μιας σουίτας GPL προγραμμάτων δημιουργεί, από την άλλη, μια σειρά από προβλήματα και νομικές δυσκολίες σχετικά με την εμπορική χρήση ενός συστήματος. Ένα πραγματικά χρήσιμο τεχνικό πρότυπο δε θα 'πρεπε να δημιουργεί τέτοιου είδους προβλήματα ή να απαιτεί τον αποκλεισμό άλλων προτύπων για μη τεχνικούς λόγους.
|
||||
* Όσες εταιρείες ενδιαφέρονται να προωθήσουν κάποιο πρότυπο, το οποίο μπορεί να γίνει η βάση για τα εμπορικά προϊόντα μιας άλλης εταιρείας, πρέπει να είναι προσεκτικές με την άδεια GPL. Ανεξάρτητα από την άδεια που θα χρησιμοποιηθεί, κάθε σύστημα τείνει να περνάει στην κατοχή όποιου κάνει τις περισσότερες αλλαγές και καταλαβαίνει περισσότερο τον τρόπο με τον οποίο λειτουργεί το συγκεκριμένο σύστημα. Το μόνο που προσθέτει συνήθως η άδεια GPL είναι νομικής φύσεως προστριβές.
|
||||
* Οι μεγάλες εταιρείες, στις οποίες αναπτύσσεται και Open Source λογισμικό, είναι καλό να γνωρίζουν ότι οι προγραμματιστές προτιμούν το Open Source λογισμικό επειδή παραμένει διαθέσιμο στον εργαζόμενο όταν αλλάζει εργοδότη. Μερικές εταιρείες ενθαρρύνουν κάτι τέτοιο, θεωρώντας το άλλη μια προσφορά της εταιρείας στον εργαζόμενο, ειδικά όταν το σχετικό λογισμικό δεν είναι στρατηγικής σημασίας για την ίδια την εταιρεία. Η όλη ιδέα είναι, βασικά, ένα είδος από "επίδομα" ή προσφορά της εταιρείας στον εργαζόμενο, το οποίο εμπεριέχει την πιθανότητα μελλοντικού κόστους για την εταιρεία αλλά δεν κοστίζει τίποτα με άμεσο τρόπο. Ένας τρόπος με τον οποίο ωφελείται μια εταιρεία όταν ενθαρρύνει τους εργαζόμενούς της να προσφέρουν σε έργα Open Source είναι η φήμη που κερδίζουν μεταξύ των συναδέλφων τους. Η ευκαιρία για κάτι τέτοιο είναι κι αυτή ένα είδος από "προσφορά" της εταιρείας στους εργαζόμενους, η οποία δεν έχει σχεδόν κανένα κόστος ή μειονέκτημα.
|
||||
* Οι μικρές εταιρείες, με έργα τα οποία είναι εύκολο να μείνουν ορφανά από συντηρητές αξίζει να χρησιμοποιήσουν κάποια άδεια τύπου BSD. Ανεξάρτητα από το μέγεθος που έχουν μια συγκεκριμένη στιγμή, όλες οι εταιρείες αξίζει να σκεφτούν τουλάχιστον την πιθανότητα να ιδρύσουν ένα έργο Open Source γύρω από ένα κομμάτι λογισμικού, ειδικά όταν ο σκοπός τους είναι η συνεργασία με άλλες εταιρείες με το ελάχιστο νομικό και οργανωτικό κόστος. Οι άδειες τύπου BSD ταιριάζουν πολύ καλά με αυτού του είδους τα έργα.
|
||||
* Οι μη κερδοσκοπικοί οργανισμοί θα 'πρεπε να συμμετέχουν σε έργα Open Source όποτε είναι δυνατόν κάτι τέτοιο. Οι άδειες τύπου BSD είναι ιδανικές για τέτοιους οργανισμούς, επειδή μειώνουν στο ελάχιστο τα προβλήματα με τη χρήση του κώδικα. Οπότε είναι καλή ιδέα να τις προτιμούν οι μη κερδοσκοπικοί οργανισμοί. Σε αντίθεση με τις απλές BSD άδειες, η άδεια GPL μπορεί να είναι πηγή προβλημάτων για τους μη κερδοσκοπικούς οργανισμούς που δραστηριοποιούνται στον αναπτυσσόμενο κόσμο. Σε μερικά μέρη όπου η εφαρμογή του νόμου μπορεί να κοστίσει πολλά χρήματα, η απλότητα των αδειών BSD σε σύγκριση με την άδεια GPL μπορεί να είναι σημαντικό πλεονέκτημα.
|
||||
|
||||
[[conclusion]]
|
||||
== Επίλογος
|
||||
|
||||
Σε αντίθεση με την άδεια GPL, η οποία έχει σχεδιαστεί για να εμποδίσει με κάθε τρόπο την εμπορική χρήση του λογισμικού, οι άδειες τύπου BSD έχουν πολύ λίγες απαιτήσεις και όρους για οποιαδήποτε μελλοντική χρήση του λογισμικού. Έτσι το λογισμικό με άδεια BSD μπορεί να παραμείνει Open Source ή να ενσωματωθεί σε εμπορικές λύσεις, ακολουθώντας τις αλλαγές στις ανάγκες του δημιουργού του ή κάποιας εταιρείας. Με λίγα λόγια, οι άδειες τύπου BSD δε δημιουργούν νομικά προβλήματα στο μέλλον ή κατά τη διάρκεια της ανάπτυξης ενός προγράμματος.
|
||||
|
||||
Το πιο σημαντικό πλεονέκτημα μιας άδειας τύπου BSD είναι ότι δεν περιέχει περίπλοκους νομικούς όρους, όπως οι άδειες GPL και LGPL, οπότε επιτρέπει στους προγραμματιστές και τις εταιρείες να αφιερώνουν περισσότερο από το χρόνο τους στη δημιουργία και την προώθηση του κώδικα, αντί να ανησυχούν αν ο κώδικας που γράφουν έχει παραβιάσει κάποια άδεια.
|
||||
|
||||
[[addenda]]
|
||||
== Αναφορές
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
[1] http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
[2] http://archives.cnn.com/2000/TECH/computing/03/28/cyberpatrol.mirrors/
|
||||
|
||||
[3] Open Source: the Unauthorized White Papers, Donald K. Rosenberg, IDG Books,
|
||||
2000. Quotes are from page 114, ``Effects of the GNU GPL''.
|
||||
|
||||
[4] Το τμήμα What License to Use? του
|
||||
http://www.oreilly.com/catalog/opensources/book/brian.html
|
||||
|
||||
Αυτό το άρθρο είναι μια συνοπτική έκδοση μιας προηγούμενης
|
||||
εργασίας του συγγραφέα, η οποία είναι διαθέσιμη στη διεύθυνση:
|
||||
http://alumni.cse.ucsc.edu/~brucem/open_source_license.htm
|
||||
....
|
||||
233
documentation/content/el/articles/contributing/_index.adoc
Normal file
233
documentation/content/el/articles/contributing/_index.adoc
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
---
|
||||
title: Συνεισφέροντας στο FreeBSD
|
||||
authors:
|
||||
- author: Jordan Hubbard
|
||||
- author: Κυριάκος Κεντρωτής
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "ieee", "general"]
|
||||
---
|
||||
|
||||
= Συνεισφέροντας στο FreeBSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/el/urls.adoc[]
|
||||
include::shared/el/mailing-lists.adoc[lines=10..-1]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Αυτό το άρθρο περιγράφει διάφορους τρόπους με τους οποίους μπορεί ένα άτομο ή μια οργάνωση να συνεισφέρει στο FreeBSD.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
Θέλετε να συμβάλλετε στο FreeBSD λοιπόν; Αυτό είναι υπέροχο! Το FreeBSD _βασίζεται_ στη συνεισφορά των χρηστών για να επιβιώσει ως έργο. Οι συνεισφορές σας δεν είναι απλώς καλοδεχούμενες, αλλά είναι ουσιαστικές προκειμένου το FreeBSD να συνεχίσει να αναπτύσσεται.
|
||||
|
||||
Δεν είναι ανάγκη να είστε προγραμματιστής ή φίλος με την κεντρική ομάδα του FreeBSD για να γίνει η συνεισφορά σας αποδεκτή. Το FreeBSD αναπτύσσεται από ένα μεγάλο αριθμό ανθρώπων από όλο τον κόσμο. Στην ομάδα ανάπτυξης υπάρχουν άτομα διαφόρων ηλικιών ή γνωστικών αντικειμένων. Οι εργασίες οι οποίες πρέπει να γίνουν είναι αρκετές όμως. Πολλές φορές είναι περισσότερες από ότι μπορούν να κάνουν οι άνθρωποι που είναι διαθέσιμοι στην ομάδα του FreeBSD. Γι αυτό είναι πάντοτε καλοδεχούμενη κάθε βοήθεια.
|
||||
|
||||
Το FreeBSD είναι υπεύθυνο για ένα ολόκληρο λειτουργικό περιβάλλον, κι όχι μόνο για ένα πυρήνα ή μερικά διάσπαρτα εργαλεία. Έτσι, η λίστα των εργασιών που πρέπει να γίνουν καλύπτει ένα αρκετά μεγάλο εύρος: από την τεκμηρίωση, τη δοκιμή και την παρουσίαση, μέχρι το πρόγραμμα εγκατάστασης του συστήματος και τα πολύ εξειδικευμένα θέματα της ανάπτυξης του πυρήνα. Έτσι είναι σχεδόν σίγουρο ότι όλοι μπορούν να συνεισφέρουν με εποικοδομητικό τρόπο στο έργο ανάπτυξης του FreeBSD, όποιες γνώσεις και να έχουν.
|
||||
|
||||
Μας ενδιαφέρει επίσης και κάθε επικοινωνία με εμπορικούς οργανισμούς, εφόσον δραστηριοποιούνται σε κάποιο χώρο σχετικό με το FreeBSD. Χρειάζεστε μια ειδική επέκταση για να δουλέψει το προϊόν σας; Θα μας βρείτε δεκτικούς στα αιτήματα σας· ειδικά όταν είναι ρεαλιστικά. Δουλεύετε πάνω σε ένα προϊόν βασισμένο στο FreeBSD; Παρακαλούμε ενημερώστε μας. Μπορεί να συνεργαστούμε με κάποιο τρόπο χρήσιμο και στις δύο πλευρές. Ο κόσμος του ελεύθερου λογισμικού έχει ενδιαφέρουσες επιπτώσεις σε πολλές υπάρχουσες θεωρίες σχετικά με την ανάπτυξη, την πώληση και τη συντήρηση του λογισμικού. Αξίζει, αν όχι να ασχοληθείτε μαζί του, τουλάχιστον να έχετε υπόψη σας πως λειτουργεί.
|
||||
|
||||
[[contrib-what]]
|
||||
== Τι χρειάζεται
|
||||
|
||||
Η λίστα εργασιών και μικρότερων έργων που ακολουθεί είναι μια ενδεικτική συλλογή από ιδέες για υλοποίηση και αιτήματα των χρηστών του FreeBSD.
|
||||
|
||||
[[non-programmer-tasks]]
|
||||
=== Εργασίες που δε χρειάζονται προγραμματιστές
|
||||
|
||||
Αρκετοί άνθρωποι που σχετίζονται με το FreeBSD δεν είναι προγραμματιστές. Το έργο περιλαμβάνει συγγραφείς τεκμηρίωσης, σχεδιαστές ιστοσελίδων και ανθρώπους που το υποστηρίζουν. Το μόνο που χρειάζεται για να συνεισφέρει κάποιος στο έργο αυτής της ομάδας είναι η διάθεση να επενδύσει λίγο χρόνο και η θέληση για γνώση.
|
||||
|
||||
. Διαβάστε τη λίστα συχνών ερωτήσεων (FAQ) και το Εγχειρίδιο του FreeBSD. Αν κάτι δεν εξηγείται σωστά, περιέχει ξεπερασμένες πληροφορίες ή είναι εντελώς λάθος, ειδοποιήστε μας. Ακόμα καλύτερα, στείλτε μας μια διόρθωση (η SGML δεν είναι δύσκολη στην εκμάθηση, αλλά πάντα δεχόμαστε και διορθώσεις σε μορφή απλού κειμένου ASCII).
|
||||
. Βοηθήστε στη μετάφραση της τεκμηρίωσης του FreeBSD στη μητρική σας γλώσσα. Αν υπάρχει ήδη τεκμηρίωση στη γλώσσα σας, μπορείτε να βοηθήσετε στη μετάφραση επιπρόσθετων κειμένων ή να επιβεβαιώνετε ότι η μετάφραση είναι ενημερωμένη. Πρώτα, κοιτάξτε στις link:{fdp-primer}#translations[απαντημένες ερωτήσεις σχετικά με τις μεταφράσεις] στο Βασικό Οδηγό για την Τεκμηρίωση του FreeBSD. Το να στείλετε μία μετάφραση δεν σας καθιστά υπεύθυνο να μεταφράσετε όλη την τεκμηρίωση του FreeBSD. Ως εθελοντής μπορείτε να μεταφράσετε όσα κείμενα θέλετε ή μπορείτε· όσο πολλά, μεγάλα, μικρά ή λίγα είναι αυτά. Μόλις αρχίσει κάποιος τη μετάφραση της τεκμηρίωσης του FreeBSD σε μια γλώσσα, σχεδόν αμέσως αρχίσουν να συνεισφέρουν κι άλλοι στην προσπάθεια. Αν έχετε το χρόνο ή την ενέργεια να μεταφράσετε μόνο ένα μέρος της τεκμηρίωσης, παρακαλούμε μεταφράστε τις οδηγίες εγκατάστασης.
|
||||
. Να διαβάζετε περιστασιακά (ή καθημερινά) τις {freebsd-questions} και news:comp.unix.bsd.freebsd.misc. Το να μοιράζεστε την εμπειρία σας και να βοηθάτε ανθρώπους να λύσουν τα προβλήματά τους μπορεί να είναι ιδιαίτερα ικανοποιητικό. Μερικές φορές μπορεί να μάθετε και κάτι νέο μέσα από αυτή τη διαδικασία! Επίσης αυτές οι συζητήσεις μπορεί να σας δώσουν ιδέες για καινούρια ενδιαφέροντα πράγματα με τα οποία μπορείτε να ασχοληθείτε.
|
||||
|
||||
[[ongoing-programmer-tasks]]
|
||||
=== Εργασίες για προγραμματιστές
|
||||
|
||||
Στις περισσότερες από τις εργασίες που αναφέρονται εδώ χρειάζεται είτε σημαντική επένδυση χρόνου ή μία σε βάθος γνώση του πυρήνα του FreeBSD ή και τα δύο. Υπάρχουν επίσης πολλές εργασίες οι οποίες είναι ταυτόχρονα χρήσιμες και αρκετά εύκολες ακόμη και για κάποιον "hacker του σαββατοκύριακου".
|
||||
|
||||
. Αν τρέχετε FreeBSD-CURRENT και έχετε γρήγορη σύνδεση στο Internet, υπάρχει ένας εξυπηρετητής στο `current.FreeBSD.org` που "χτίζει" μια πλήρη έκδοση κάθε μέρα. Προσπαθήστε να εγκαταστήσετε την τελευταία έκδοση από εκεί και κάντε αναφορά για οποιοδήποτε πρόβλημα συναντήσετε κατά τη διάρκεια της εγκατάστασης ή μετά από αυτήν.
|
||||
. Διαβάστε τη {freebsd-bugs}. Πιθανόν να υπάρχει κάποιο πρόβλημα το οποίο μπορείτε να σχολιάσετε εποικοδομητικά ή κάποιο patch το οποίο μπορείτε να δοκιμάσετε. Ακόμα καλύτερα, μπορεί να βρείτε κάποιο πρόβλημα το οποίο σας φαίνεται ενδιαφέρον και μπορεί να το διορθώσετε οι ίδιοι.
|
||||
. Αν γνωρίζετε οποιεσδήποτε διορθώσεις προβλήματος οι οποίες έχουν εφαρμοστεί επιτυχημένα στον κλάδο ανάπτυξης -CURRENT αλλά δεν έχουν συγχωνευτεί με τον κλάδο -STABLE μετά από κάποιο λογικό διάστημα (συνήθως μερικές βδομάδες), στείλτε στον committer μια ευγενική υπενθύμιση.
|
||||
. Βοηθήστε μας να ξεχωρίσουμε το λογισμικό από εξωτερικές ομάδες και να μετακινήσουμε τέτοια προγράμματα στον κατάλογο [.filename]#src/contrib# του πηγαίου κώδικα.
|
||||
. Σιγουρευτείτε ότι τα προγράμματα του [.filename]#src/contrib# έχουν ενημερωθεί στις τελευταίες διαθέσιμες εκδόσεις.
|
||||
. Μεταγλωττίστε τον πηγαίο κώδικα (ή ένα μέρος του κώδικα) με επιπλέον ειδοποιήσεις πιθανών λαθών (compiler warnings) και διορθώστε ότι λάθη βρείτε.
|
||||
. Διορθώστε τις προειδοποιήσεις λάθους (warnings) για τα ports τα οποία χρησιμοποιούν μη αποδεκτές κλήσεις, όπως η συνάρτηση `gets()`, ή συμπεριλαμβάνουν παλιά αρχεία include, όπως το [.filename]#malloc.h#.
|
||||
. Αν έχετε συνεισφέρει αλλαγές για κάποια ports και χρειάστηκαν αλλαγές για να δουλέψει το αντίστοιχο λογισμικό σωστά σε FreeBSD, στείλτε τις αλλαγές σας στους αρχικούς δημιουργούς του λογισμικού (αυτό θα κάνει τη ζωή σας ευκολότερη όταν θα κυκλοφορήσουν τη νέα έκδοση).
|
||||
. Προσπαθείστε να βρείτε αντίγραφα από επίσημα πρότυπα όπως το POSIX(R). Μπορείτε να βρείτε συνδέσμους σχετικά με αυτά τα πρότυπα στην ιστοσελίδα link:https://www.FreeBSD.org/projects/c99/index/[FreeBSD C99 & POSIX Standards Conformance Project]. Συγκρίνετε την συμπεριφορά του FreeBSD με την απαιτούμενη από τα πρότυπα. Αν η συμπεριφορά διαφέρει, ιδιαίτερα σε λεπτά ή δυσδιάκριτα σημεία των προδιαγραφών, στείλτε μια αναφορά προβλήματος σχετικά με αυτό. Αν είναι δυνατόν σκεφτείτε ένα τρόπο να διορθώσετε το πρόβλημα και συμπεριλάβετε το patch στην αναφορά σας. Αν θεωρείται ότι τα πρότυπα είναι λανθασμένα, θέστε ερώτημα στον οργανισμό του προτύπου να εξετάσει το θέμα.
|
||||
. Μπορείτε ακόμη να προτείνετε επιπλέον εργασίες για αυτή τη λίστα!
|
||||
|
||||
=== Εργασία Μέσω της Βάσης Αναφορών Προβλημάτων (PR database)
|
||||
|
||||
Η http://www.FreeBSD.org/cgi/query-pr-summary.cgi[λίστα αναφορών προβλημάτων του FreeBSD] περιέχει όλες τις γνωστές αναφορές προβλημάτων και τα αιτήματα αναβάθμισης τα οποία έχουν υποβάλλει σε αυτή οι χρήστες του FreeBSD. Σε αυτή υπάρχουν εργασίες τόσο για προγραμματιστές όσο και για μη προγραμματιστές. Ένας τρόπος να βοηθήσετε την ανάπτυξη του FreeBSD είναι να διατρέξετε (μία η περισσότερες φορές) τη λίστα προβλημάτων, ψάχνοντας για κάτι που σας ενδιαφέρει. Μερικές από αυτές τις αναφορές προβλημάτων σχετίζονται με πολύ απλές εργασίες. Πολλές φορές αρκεί μία σύντομη ματιά για να επιβεβαιωθεί ότι η προτεινόμενη διόρθωση κάποιου προβλήματος είναι σωστή. Άλλες φορές οι αλλαγές που χρειάζονται είναι πιο δύσκολες ή δεν έχει βρεθεί κάποια λύση ακόμα.
|
||||
|
||||
Αρχίστε με τις αναφορές προβλημάτων που δεν έχουν εκχωρηθεί σε κάποιον άλλον. Αν η αναφορά είναι καταχωρημένη σε κάποιον, αλλά βλέπετε ότι είναι κάτι που μπορείτε να χειριστείτε, ειδοποιήστε με email τον υπεύθυνο της αναφοράς και ρωτήστε αν μπορείτε να δουλέψετε πάνω σ' αυτήν. Ίσως ο υπεύθυνος έχει ήδη ξεκινήσει κάποιες διορθώσεις και σας δώσει κάτι για δοκιμή ή έχει ήδη κάποιες ιδέες που μπορείτε να συζητήσετε μαζί του.
|
||||
|
||||
=== Διαλέξτε κάποιο αντικείμενο από την σελίδα με τις "ιδέες".
|
||||
|
||||
Η λίστα link:https://www.FreeBSD.org/projects/ideas/[FreeBSD των έργων και των ιδεών για εθελοντές] είναι επίσης διαθέσιμη για ανθρώπους με διάθεση να συνεισφέρουν στο έργο του FreeBSD. Η λίστα ανανεώνεται τακτικά και περιλαμβάνει αντικείμενα για ενασχόληση τόσο για προγραμματιστές όσο και για μη προγραμματιστές και παρέχει πληροφορίες για κάθε έργο.
|
||||
|
||||
[[contrib-how]]
|
||||
== Πως μπορείτε να συνεισφέρετε
|
||||
|
||||
Οι συνεισφορές στο σύστημα κατατάσσονται γενικά σε μια από τις ακόλουθες 5 κατηγορίες:
|
||||
|
||||
[[contrib-general]]
|
||||
=== Αναφορές προβλήματος και γενικές επεξηγηματικές παρατηρήσεις-σχόλια
|
||||
|
||||
Μια ιδέα ή πρόταση _γενικού_ τεχνικού ενδιαφέροντος θα πρέπει να αποσταλεί στη λίστα {freebsd-hackers}. Επιπλέον, άνθρωποι με ενδιαφέρον για τέτοια θέματα (αλλά και ανεκτικότητα σε _μεγάλο_ αριθμό εισερχόμενων μηνυμάτων!) μπορούν να γραφτούν στη λίστα {freebsd-hackers}. Δείτε το link:{handbook}#eresources-mail[Εγχειρίδιο του FreeBSD] για περισσότερες πληροφορίες σχετικά με αυτήν αλλά και άλλες λίστες.
|
||||
|
||||
Αν βρείτε κάποιο bug ή αν έχετε κάνει κάποια συγκεκριμένη αλλαγή, παρακαλούμε κάντε αναφορά χρησιμοποιώντας το πρόγραμμα man:send-pr[1] ή την αντίστοιχη link:https://www.FreeBSD.org/send-pr/[ ιστοσελίδα]. Προσπαθήστε να συμπληρώσετε όλα τα πεδία της αναφοράς. Αν οι αλλαγές που κάνατε δεν ξεπερνούν τα 65KB σε μέγεθος, συμπεριλάβετε τις αλλαγές σας απευθείας στην αναφορά. Αν οι αλλαγές είναι κατάλληλες για εφαρμογή στον πηγαίο κώδικα, προσθέστε την ετικέτα `[PATCH]` στην περίληψη της αναφοράς. Όταν συμπεριλαμβάνετε patches, _μη_ χρησιμοποιείτε αντιγραφή-και-επικόλληση, διότι η αντιγραφή και επικόλληση μετατρέπει συχνά τους στηλοθέτες (TAB) σε κενά και αχρηστεύει το patch. Αν τα patches είναι πολύ μεγαλύτερα από 20KB, δοκιμάστε να τα συμπιέσετε (π.χ. με το man:gzip[1] ή το man:bzip2[1]) και χρησιμοποιήστε το εργαλείο man:uuencode[1] για να εισάγετε τη συμπιεσμένη μορφή στην αναφορά σας.
|
||||
|
||||
Μετά της υποβολή μιας αναφοράς θα λάβετε επιβεβαίωση παράλληλα με έναν αριθμό αναφοράς. Κρατήστε τον αριθμό ώστε να μπορείτε να μας ενημερώνετε με πληροφορίες σχετικά με το πρόβλημα στέλνοντας mail στο {bugfollowup}. Χρησιμοποιήστε τον αριθμό της αναφοράς σας στο θέμα του μηνύματος, π.χ. `"Re: kern/3377"`. Επιπρόσθετες πληροφορίες για οποιοδήποτε αναφορά προβλήματος θα πρέπει να υποβάλλονται με τον παραπάνω τρόπο.
|
||||
|
||||
Εάν δε λάβετε επιβεβαίωση εγκαίρως (3 μέρες ως μια βδομάδα, ανάλογα με τη αξιοπιστία του email) ή για κάποιο λόγο αδυνατείτε να χρησιμοποιήσετε την εντολή man:send-pr[1], μπορείτε να απευθυνθείτε σε κάποιον προκειμένου να την αρχειοθετήσει για εσάς στέλνοντας mail στη {freebsd-bugs}.
|
||||
|
||||
Δείτε επίσης link:{problem-reports}[αυτό το άρθρο] σχετικά με το πώς να γράφετε καλές αναφορές προβλημάτων.
|
||||
|
||||
=== Αλλαγές στην τεκμηρίωση
|
||||
|
||||
Οι αλλαγές στην τεκμηρίωση επιβλέπονται από την {freebsd-doc}. Για πλήρεις οδηγίες σχετικά με τον τρόπο που μπορείτε να συνεισφέρετε στην τεκμηρίωση του FreeBSD, δείτε τον link:{fdp-primer}[Οδηγό τεκμηρίωσης του FreeBSD]. Στείλτε τα καινούρια σας κείμενα ή τις αλλαγές σας (ακόμη και μικροδιορθώσεις είναι πάντα καλοδεχούμενες) χρησιμοποιώντας την εντολή man:send-pr[1] όπως περιγράφετε στο <<contrib-general>>.
|
||||
|
||||
=== Αλλαγές στον Πηγαίο Κώδικα
|
||||
|
||||
Μία προσθήκη ή αλλαγή στον υπάρχοντα κώδικα είναι κατά κάποιο τρόπο περίτεχνη υπόθεση και εξαρτάται αρκετά από τον βαθμό της ενημέρωσης που έχετε με την τρέχουσα κατάσταση της ανάπτυξης του FreeBSD. Υπάρχει μια ειδική συνεχώς αναπτυσσόμενη έκδοση του FreeBSD γνωστή ως "FreeBSD-CURRENT" η οποία είναι διαθέσιμη με διάφορους τρόπους για την ευκολία των προγραμματιστών που δραστηριοποιούνται ενεργά στην ανάπτυξη του συστήματος. Δείτε link:{handbook}#current-stable[το Εγχειρίδιο του FreeBSD] για περισσότερες πληροφορίες σχετικά με το που θα βρείτε και πώς μπορείτε να χρησιμοποιήσετε το FreeBSD-CURRENT.
|
||||
|
||||
Δουλεύοντας από παλιότερο κώδικα δυστυχώς σημαίνει ότι οι αλλαγές σας μπορεί μερικές φορές να είναι αρκετά ξεπερασμένες ή να αποκλίνουν πολύ, οπότε να δυσκολεύει κάπως η ενσωμάτωσή τους στο FreeBSD. Ρίσκα σαν γι' αυτά μπορούν να ελαχιστοποιηθούν κάπως με την συμμετοχή στις λίστες {freebsd-announce} και {freebsd-current}, στις οποίες διεξάγονται συζητήσεις για την τρέχουσα κατάσταση του συστήματος.
|
||||
|
||||
Αφού εξασφαλίσετε κάπως ένα σχετικά ενημερωμένο αντίγραφο του πηγαίου κώδικα ως βάση για τις αλλαγές σας, το επόμενο βήμα είναι να δημιουργήσετε diffs για αποστολή στην ομάδα ανάπτυξης του FreeBSD. Αυτό γίνεται με την εντολή man:diff[1].
|
||||
|
||||
Το προτιμώμενο format του man:diff[1] για την υποβολή patches είναι η ενοποιημένη μορφή εξόδου (unified diff), που δημιουργείται από την εντολή `diff -u`. Μια μικρή εξαίρεση είναι τα τα patches που αλλάζουν μεγάλα κομμάτια κώδικα, ουσιαστικά αντικαθιστώντας τα σχεδόν με μια καινούρια έκδοση. Για τέτοιες αλλαγές μπορεί να είναι πιο ευανάγνωστη η μορφή εξόδου που δημιουργείται από την εντολή `diff -c`.
|
||||
|
||||
Για παράδειγμα το:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% diff -c παλιό_αρχείο νέο_αρχείο
|
||||
....
|
||||
|
||||
ή το
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% diff -c -r παλιός_κατάλογος νέος_κατάλογος
|
||||
....
|
||||
|
||||
θα δημιουργήσει ένα σετ από context diffs για τον κώδικα του συγκεκριμένου αρχείου ή της ιεραρχίας καταλόγων.
|
||||
|
||||
Ομοίως το,
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% diff -u παλιό_αρχείο νέο_αρχείο
|
||||
....
|
||||
|
||||
ή το
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% diff -u -r παλιός_κατάλογος νέος_κατάλογος
|
||||
....
|
||||
|
||||
θα κάνει το ίδιο, αλλά θα παράγει diff ενοποιημένη μορφή.
|
||||
|
||||
Δείτε τη βοήθεια του εργαλείου man:diff[1] για περισσότερες λεπτομέρειες.
|
||||
|
||||
Από τη στιγμή που έχετε κάποια diffs, (τα οποία μπορείτε να ελέγξετε με την εντολή man:patch[1]), θα πρέπει να τα υποβάλλετε για ενσωμάτωση στο FreeBSD. Χρησιμοποιήστε το πρόγραμμα man:send-pr[1], όπως περιγράφετε στο κείμενο <<contrib-general>>. _Μη_ στέλνετε μόνο ένα μήνυμα με τα patches στη {freebsd-hackers} αλλιώς θα χαθούν! Σας ευχαριστούμε προκαταβολικά για οποιαδήποτε προσφορά κώδικα (το έργο ανάπτυξης του FreeBSD είναι εθελοντική προσπάθεια που βασίζεται ακριβώς σε τέτοιες προσφορές!). Επειδή είμαστε απασχολημένοι, μπορεί να μη χειριστούμε την αίτηση για αλλαγή αμέσως, ωστόσο μέχρι να το κάνουμε αυτό, θα παραμείνει στην βάση αναφορών. Θυμηθείτε να επισημάνετε την υποβολή σας με την ετικέτα `[PATCH]` στην περίληψη της αναφοράς.
|
||||
|
||||
Αν νομίζετε ότι χρειάζεται (π.χ. έχετε προσθέτει, αφαιρέσει ή μετονομάσει κάποια αρχεία), χρησιμοποιείστε το εργαλείο `tar` για να πακετάρετε τις αλλαγές σας, και το εργαλείο man:uuencode[1] για να τις ενσωματώσετε στην αναφορά που θα στείλετε. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το εργαλείο man:shar[1] αντί για το man:tar[1].
|
||||
|
||||
Αν η φύση των αλλαγών που θέλετε να κάνετε είναι κάπως ευαίσθητη, π.χ. αν δεν είστε σίγουροι για τα πνευματικά δικαιώματα και τη διανομή των αλλαγών ή αν απλά δεν είστε έτοιμοι να δώσετε στη δημοσιότητα κάποιες αλλαγές χωρίς ένα review ακόμα, τότε είναι καλύτερα να στείλετε τις αλλαγές σας απευθείας στην {core} αντί να τις προωθήσετε μέσω του man:send-pr[1]. Η {core} αποτελείται από ένα πολύ μικρότερο αριθμό ατόμων. Έχετε υπόψιν όμως ότι αυτή η ομάδα είναι __πολύ απασχολημένη__, οπότε καλό είναι να τους στέλνετε μηνύματα μόνο όταν είστε αρκετά σίγουροι ότι είναι απαραίτητο.
|
||||
|
||||
Κάτι τελευταίο σχετικά με τον πηγαίο κώδικα του FreeBSD. Οι σελίδες τεκμηρίωσης man:intro[9] και man:style[9] περιέχουν πληροφορίες σχετικά με το στυλ κώδικα που προτιμούμε για το FreeBSD. Πριν στείλετε σημαντικές αλλαγές στην ομάδα ανάπτυξης είναι σημαντικό να έχετε εξοικειωθεί με το στυλ που γράφουμε και, όταν είναι δυνατόν, να το ακολουθήσετε στο γράψιμο του κώδικα που θα μας στείλετε.
|
||||
|
||||
=== Νέος Κώδικας και Μεγάλα Πακέτα Πρόσθετων Χαρακτηριστικών
|
||||
|
||||
Στην περίπτωση μιας σχετικά μεγάλης συνεισφοράς λογισμικού στο FreeBSD και κάθε φορά που προστίθεται ένα σημαντικό καινούριο χαρακτηριστικό στο σύστημα, είναι σχεδόν πάντα απαραίτητο να είναι διαθέσιμες οι αλλαγές με τη μορφή ενός πακέτου tar ή να είναι διαθέσιμες μέσω ενός εξυπηρετητή web ή FTP. Αν δεν έχετε πρόσβαση για να ανεβάσετε τα αρχεία σε κάποιοn εξυπηρετητή web ή FTP, ρωτήστε στην κατάλληλη λίστα ηλεκτρονικού ταχυδρομείου του FreeBSD και κάποιος άλλος μπορεί να φιλοξενήσει τα αρχεία για σας.
|
||||
|
||||
Το ευαίσθητο θέμα των πνευματικών δικαιωμάτων και των αδειών χρήσης είναι το επόμενο πράγμα που παίζει μεγάλο ρόλο, ιδιαίτερα για μεγάλα έργα λογισμικού. Οι άδειες χρήσης που είναι αποδεκτές για κώδικα που ενσωματώνεται στο FreeBSD είναι οι παρακάτω:
|
||||
|
||||
. Η άδεια χρήσης BSD. Αυτή η άδεια είναι η προτιμότερη, λόγω της ιδιαίτερης "χωρίς περιορισμούς" φύσης που έχει και της δυνατότητας χρήσης του κώδικα ακόμη και για εμπορικούς σκοπούς. Η Ομάδα του FreeBSD δεν αποθαρρύνει τέτοιου είδους χρήση του πηγαίου κώδικα. Το αντίθετο μάλιστα, ενθαρρύνει τη χρήση του κώδικα, αφού έτσι υπάρχει πιθανότητα ορισμένοι εμπορικοί να συνεισφέρουν με τη σειρά τους στην ανάπτυξη του FreeBSD.
|
||||
. Η άδεια GNU General Public License, ή "GPL". αυτή η άδεια δεν είναι τόσο δημοφιλής επειδή χρειάζεται έξτρα προσπάθεια από οποιονδήποτε χρησιμοποιεί τον κώδικα για εμπορικούς σκοπούς, αλλά επειδή υπάρχει ένα μεγάλο σώμα πηγαίου κώδικα, το οποίο διανέμεται με αυτή την άδεια κι από το οποίο εξαρτιόμαστε (μεταγλωττιστής, assembler, προγράμματα μορφοποίησης κειμένου, κλπ.), θα ήταν κάπως χαζό να μη δεχόμαστε καμία αλλαγή σε τέτοιο κώδικα. Ο κώδικας με άδεια GPL διανέμεται όμως σε δικό του, ξεχωριστό μέρος του πηγαίου κώδικα του FreeBSD, κάτω από τους καταλόγους [.filename]#/sys/gnu# και [.filename]#/usr/src/gnu#. Έτσι είναι εύκολο να ξεχωρίσει κανείς από τον κώδικα του FreeBSD όλα τα μέρη με άδεια GPL, όταν υπάρχει λόγος να γίνει τέτοιος διαχωρισμός.
|
||||
|
||||
Οι συνεισφορές κώδικα με οποιαδήποτε άλλη άδεια πρέπει να περάσουν από πολύ προσεκτικό έλεγχο πριν αποφασίσουμε αν υπάρχει λόγος να ενσωματωθούν με το FreeBSD. Οι συνεισφορές με ιδιαίτερα αυστηρούς εμπορικούς περιορισμούς απορρίπτονται συνήθως χωρίς πολύ σκέψη, αλλά οι δημιουργοί των αλλαγών ή του συγκεκριμένου κώδικα μπορούν πάντα να διανέμουν τις αλλαγές τους μέσα από τα δικά τους κανάλια διανομής και επικοινωνίας.
|
||||
|
||||
Για να ορίσετε ότι κάποιο δικό σας έργο πηγαίου κώδικα διανέμεται με τους όρους μιάς άδειας "τύπου BSD" μπορείτε να συμπεριλάβετε στην αρχή των αρχείων πηγαίου κώδικα το παρακάτω κείμενο, αντικαθιστώντας το κείμενο μεταξύ των `%%` με τις κατάλληλες πληροφορίες:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
Copyright (c) %%χρονιά_ή_χρονιές_αλλαγών%%
|
||||
%%το_όνομά_σας%%, %%η_διεύθυνσή_σας%%.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer as
|
||||
the first lines of this file unmodified.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY %%το_όνομά_σας%% ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL %%το_όνομά_σας%% BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$Id$
|
||||
....
|
||||
|
||||
Ένα αντίγραφο αυτού του κειμένου υπάρχει στο αρχείο [.filename]#/usr/shared/examples/etc/bsd-style-copyright#, οπότε μπορείτε να το αντιγράφετε από εκεί κάθε φορά που χρειάζεται.
|
||||
|
||||
=== Χρήματα, Υλικό ή Πρόσβαση στο Διαδίκτυο
|
||||
|
||||
Κάθε δωρεά που μπορείτε να κάνετε στο έργο του FreeBSD είναι ευπρόσδεκτη. Ακόμα και η πιο μικρή προσφορά μπορεί να έχει μεγάλη σημασία για ένα έργο το οποίο βασίζεται στην εθελοντική εργασία, όπως το δικό μας. Ειδικά οι προσφορές σε υλικό είναι πολύ σημαντικές, αφού έτσι μας δίνεται η δυνατότητα να επεκτείνουμε την υποστήριξη του FreeBSD για το υλικό αυτό - κάτι που μπορεί να μην είναι εύκολο αν πρέπει να αγοράσουμε κάθε κομμάτι υλικού μόνοι μας.
|
||||
|
||||
[[donations]]
|
||||
==== Χρηματικές Δωρεές
|
||||
|
||||
Η οργάνωση FreeBSD Foundation είναι ένας μη κερδοσκοπικός σύλλογος, ο οποίος έχει ιδρυθεί για να προωθήσει το έργο της Ομάδας του FreeBSD. Λόγω της νομικής φύσης του συλλόγου, η οργάνωση παρέχει μερικές φορολογικές ελαφρύνσεις στις Ηνωμένες Πολιτείες και πιο συγκεκριμένα στην πολιτεία του Colorado. Οι δωρεές στην οργάνωση εκπίπτουν από τους φόρους που πρέπει να πληρώσει κάποιος στις Ηνωμένες Πολιτείες· πιθανόν και σε άλλα μέρη.
|
||||
|
||||
Οι δωρέες σας μπορούν να σταλούν σε μορφή εμβάσματος, στη διεύθυνση:
|
||||
|
||||
[.address]
|
||||
****
|
||||
The FreeBSD Foundation +
|
||||
P.O. Box 20247, +
|
||||
Boulder, +
|
||||
CO 80308 +
|
||||
USA
|
||||
****
|
||||
|
||||
Η οργάνωση μπορεί πλέον να δεχτεί και δωρεές μέσω δικτύου από το σύστημα PayPal. Αν ενδιαφέρεστε να κάνετε κάποια δωρεά, παρακαλούμε ξεκινήστε από την http://www.freebsdfoundation.org[ιστοσελίδα της FreeBSD Foundation].
|
||||
|
||||
Περισσότερες πληροφορίες για την οργάνωση FreeBSD Foundation μπορείτε να βρείτε στην ανακοίνωση http://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction]. Η επικοινωνία με την οργάνωση μπορεί να γίνει και μέσω ηλεκτρονικής αλληλογραφίας στη διεύθυνση mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org].
|
||||
|
||||
==== Δωρεές Υλικού
|
||||
|
||||
Η Ομάδα Ανάπτυξης του FreeBSD δέχεται κάθε δωρεά υλικού για την οποία μπορεί να βρει κάποια καλή χρήση. Αν ενδιαφέρεστε να μας δωρίσετε κάποιο υλικό, παρακαλούμε επικοινωνήστε με την link:https://www.FreeBSD.org/donations/[Ομάδα Διαχείρισης των Δωρεών].
|
||||
|
||||
==== Δωρέες Πρόσβασης στο Διαδίκτυο
|
||||
|
||||
Πάντα είναι χρήσιμο να έχουμε καινούρια mirror sites για το FTP, τον ιστότοπό μας ή το `cvsup`. Αν θέλετε να εγκαταστήσετε ένα τέτοιο mirror, παρακαλούμε δείτε τo άρθρο link:{hubs}[Mirroring FreeBSD]. Εκεί θα βρείτε περισσότερες πληροφορίες.
|
||||
161
documentation/content/el/articles/explaining-bsd/_index.adoc
Normal file
161
documentation/content/el/articles/explaining-bsd/_index.adoc
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
---
|
||||
title: Περιγραφή των Συστημάτων BSD
|
||||
authors:
|
||||
- author: Greg Lehey
|
||||
email: grog@FreeBSD.org
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "amd", "apple", "intel", "xfree86", "linux", "opengroup", "sparc", "sun", "unix", "general"]
|
||||
---
|
||||
|
||||
= Περιγραφή των Συστημάτων BSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Στον κόσμο του open source, η λέξη "Linux" είναι σχεδόν συνώνυμη με την έννοια "Λειτουργικό Σύστημα", αλλά δεν είναι το μόνο open source UNIX(R) λειτουργικό σύστημα. Σύμφωνα με τον http://www.leb.net/hzo/ioscount/data/r.9904.txt[Μετρητή Λειτουργικών Συστημάτων του Internet], από τον Απρίλιο του 1999 το 31.3% των υπολογιστών του κόσμου που είναι συνδεδεμένοι στο δίκτυο τρέχουν Linux. Το 14.6% τρέχουν BSD UNIX(R). Κάποιες από τις μεγαλύτερες εφαρμογές του παγκόσμιου ιστού, όπως το http://www.yahoo.com/[Yahoo!], τρέχουν BSD. Ο πιο μεγάλος σε φόρτο FTP εξυπηρετητής του κόσμου το 1999 (που δεν υπάρχει πλέον), το link:ftp://ftp.cdrom.com/[ftp.cdrom.com], χρησιμοποιούσε BSD για να μεταφέρει πάνω από 1.4 TB δεδομένων τη μέρα. Είναι προφανές ότι αυτή δεν είναι μια περιορισμένη αγορά: το BSD είναι ένα καλά κρατημένο μυστικό.
|
||||
|
||||
Λοιπόν, ποιο είναι το μυστικό; Γιατί το BSD δεν είναι πιο ευρέως γνωστό; Αυτό το άρθρο είναι μια προσπάθεια να απαντηθούν αυτές και άλλες ερωτήσεις.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
== Τί είναι το BSD;
|
||||
|
||||
BSD σημαίνει "Berkeley Software Distribution". Είναι το όνομα από τις διανομές πηγαίου κώδικα που έκανε το Πανεπιστήμιο της Καλιφόρνια, Berkeley (University of California, Berkeley), οι οποίες ήταν αρχικά επεκτάσεις στο UΝΙΧ ερευνητικό λειτουργικό σύστημα της AT&T. Διάφορα open source λειτουργικά συστήματα είναι βασισμένα σε μια έκδοση αυτού του πηγαίου κώδικα γνωστή ως 4.4BSD-Lite. Εκτός από αυτό, περιέχουν και μια ποικιλία από πακέτα από άλλες Open Source πηγές, με την ομάδα GNU να είναι μια από τις πιο σημαντικές. Συνολικά, το λειτουργικό σύστημα περιλαμβάνει:
|
||||
|
||||
* Τον BSD πυρήνα, που διαχειρίζεται την δρομολόγηση των διεργασιών, την μνήμη, την συμμετρική πολυ-επεξεργασία (symmetric multi-processing, SMP) τους οδηγούς συσκευών, κλπ.
|
||||
+
|
||||
__Σε αντίθεση με τον πυρήνα του Linux, υπάρχουν παραπάνω από ένα διαφορετικοί BSD πυρήνες με ποικίλες δυνατότητες.__
|
||||
* Η βιβλιοθήκη της C, το βασικό API του συστήματος.
|
||||
+
|
||||
__Η C βιβλιοθήκη του BSD είναι βασισμένη σε κώδικα από το Berkeley, όχι από την ομάδα GNU.__
|
||||
* Εργαλεία όπως φλοιοί (shells), προγράμματα διαχείρισης αρχείων, μεταγλωττιστές (compilers, linkers).
|
||||
+
|
||||
__Κάποια από τα εργαλεία είναι βασισμένα σε κώδικα GNU, κάποια άλλα όχι.__
|
||||
* Το Σύστημα X Window, που υλοποιεί το γραφικό περιβάλλον.
|
||||
+
|
||||
Το σύστημα X Window που χρησιμοποιείται στις πιο πολλές εκδόσεις του BSD συντηρείται από μια διαφορετική ομάδα προγραμματιστών: είτε την http://www.XFree86.org/[ομάδα ], είτε την ομάδα http://www.X.org/[X.Org]. Αυτός είναι ο ίδιος κώδικας που χρησιμοποιεί και το Linux. Το BSD συνήθως δεν ορίζει ένα συγκεκριμένο "γραφικό περιβάλλον", όπως το GNOME ή το KDE, παρόλο που και τα δυο είναι διαθέσιμα.
|
||||
* Πολλά άλλα προγράμματα και εργαλεία.
|
||||
|
||||
== Τί, ένα αληθινό UNIX(R);
|
||||
|
||||
Τα BSD λειτουργικά συστήματα δεν είναι κλώνοι, αλλά open source προϊόντα που έχουν βγει από το Πειραματικό UNIX(R) λειτουργικό σύστημα της AT&T, που είναι επίσης πρόγονος του μοντέρνου UNIX(R) System V. Αυτό ίσως σας προκαλέσει έκπληξη. Πώς μπορεί κάτι τέτοιο να γίνει, αφού η AT&T δεν έχει διανείμει ποτέ τον κώδικά της σαν open source;
|
||||
|
||||
Είναι αλήθεια ότι το AT&T UNIX(R) δεν είναι open source, και κατά μια έννοια, αν είμαστε αυστηροί με το θέμα των πνευματικών δικαιωμάτων, το BSD σίγουρα _δεν_ είναι UNIX(R), αλλά από την άλλη, η ίδια η AT&T έχει ενσωματώσει κώδικα από άλλες ομάδες ανάπτυξης, με μια από τις πιο σημαντικές να είναι η Ομάδα Έρευνας της Επιστήμης των Υπολογιστών του Πανεπιστημίου της California, Berkeley, CA (Computer Sciences Research Group (CSRG), University of California, Berkeley, CA). Ξεκινώντας το 1976, η CSRG ξεκίνησε να διανέμει tapes με το λογισμικό τους, αποκαλώντας το _Berkeley Software Distribution_ ή απλώς __BSD__.
|
||||
|
||||
Οι αρχικές εκδόσεις του BSD αποτελούνταν κυρίως από προγράμματα για χρήστες, αλλά αυτό άλλαξε δραματικά όταν η CSRG έκλεισε ένα συμβόλαιο με την Defense Advanced Projects Research Agency (DARPA) για να αναβαθμίσει τα πρωτόκολλα επικοινωνίας του δικτύου της DARPA, του ARPANET. Τα νέα πρωτόκολλα ήταν γνωστά ως __Internet Protocols__, αργότερα _TCP/IP_ παίρνοντας το όνομά τους από τα δύο πιο σημαντικά πρωτόκολλα Η πρώτη ευρέως γνωστή υλοποίηση ήταν μέρος του 4.2BSD, που ανακοινώθηκε το 1982.
|
||||
|
||||
Κατά τη διάρκεια της δεκαετίας του 80 αναπτύχθηκε ένα πλήθος εταιρειών που διέθεταν σταθμούς εργασίας. Πολλές προτίμησαν να αγοράσουν την άδεια του UNIX(R) αντί να αναπτύξουν δικά τους λειτουργικά συστήματα. Συγκεκριμένα, η Sun Microsystems αγόρασε την άδεια του UNIX(R) και ανέπτυξε μια έκδοση του 4.2BSD την οποία ονόμασε SunOS. Όταν και η ίδια η AT&T μπόρεσε, άρχισε να πουλά το UNIX(R) με μια έκδοση περιορισμένων δυνατοτήτων που λεγόταν System III, την οποία γρήγορα ακολούθησε το System V. Η βάση πηγαίου κώδικα του System V δεν περιείχε κώδικα δικτύωσης, οπότε όλες οι υλοποιήσεις περιείχαν επιπλέον λογισμικό από το BSD, συμπεριλαμβανομένου του λογισμικού TCP/IP, αλλά και προγράμματα όπως τον φλοιό _csh_ και τον επεξεργαστή κειμένου __vi__. Συνολικά, αυτές οι βελτιώσεις ήταν γνωστές σαν __οι Επεκτάσεις Berkeley__.
|
||||
|
||||
Τα tapes του BSD περιείχαν πηγαίο κώδικα της AT&T κι έτσι απαιτούσαν μια άδεια πηγαίου κώδικα του UNIX(R). Μέχρι το 1990, η χρηματοδότηση της CSRG τέλειωνε, και πήγαινε για κλείσιμο. Κάποια μέλη της ομάδας αποφάσισαν να διανείμουν τον BSD κώδικα, που ήταν Open Source, χωρίς τα κομμάτια του εμπορικού AT&T κώδικα. Αυτό έγινε τελικά με την __Networking Tape 2__, γνωστή και ως __Net/2__. Η Net/2 δεν ήταν ένα ολοκληρωμένο λειτουργικό σύστημα. Περίπου 20% από τον κώδικα του πυρήνα έλειπε. Ένα από τα μέλη της CSRG, ο William F. Jolitz, έγραψε τον υπόλοιπο κώδικα που έλειπε και τον έδωσε νωρίς το 1992 με όνομα __386BSD__. Την ίδια στιγμή, μια άλλη ομάδα από πρώην μέλη της CSRG ίδρυσε μια εμπορική εταιρεία με όνομα http://www.bsdi.com/[Berkeley Software Design Inc.] και εξέδωσε μια πειραματική έκδοση ενός λειτουργικού συστήματος που λεγόταν http://www.bsdi.com/[BSD/386], το οποίο ήταν βασισμένο στον ίδιο πηγαίο κώδικα. Το όνομα του λειτουργικού συστήματος άλλαξε αργότερα σε BSD/OS.
|
||||
|
||||
Το 386BSD ποτέ δεν έγινε ένα σταθερό λειτουργικό σύστημα. Αντί γι αυτό, δύο άλλες ομάδες ξεπήδησαν από αυτό το 1993. Η ομάδα του http://www.NetBSD.org/[NetBSD] και η ομάδα του link:https://www.FreeBSD.org/[FreeBSD]. Οι δυο ομάδες αρχικά ξεχώρισαν επειδή είχαν διαφορετική υπομονή όσον αφορά σε κάποιες βελτιώσεις στο 386BSD. Η ομάδα του NetBSD ξεκίνησε στην αρχή της χρονιάς, και η πρώτη έκδοση του FreeBSD δεν ήταν έτοιμη μέχρι το τέλος της χρονιάς. Στο μεταξύ η βάση του πηγαίου κώδικα είχε πλέον τόσες διαφορές που ήταν δύσκολο να ενωθεί η μια με με την άλλη ομάδα. Επιπλέον, οι δυο ομάδες είχαν και διαφορετικούς στόχους όπως θα δούμε παρακάτω. Το 1996 δημιουργήθηκε το http://www.OpenBSD.org/[OpenBSD] από το NetBSD και το 2003 δημιουργήθηκε το http://www.dragonflybsd.org/[DragonFlyBSD] από το FreeBSD.
|
||||
|
||||
== Γιατί δεν είναι το BSD πιο γνωστό;
|
||||
|
||||
Για διάφορους λόγους, το BSD είναι σχετικά άγνωστο:
|
||||
|
||||
. Αυτοί που αναπτύσσουν το BSD ασχολούνται συχνά περισσότερο με το να διορθώνουν τον κώδικά τους παρά με το να τον διαφημίζουν.
|
||||
. Αρκετή από την δημοσιότητα του Linux οφείλεται σε παράγοντες εξωτερικούς (σε σχέση με αυτούς που αναπτύσσουν το Linux), όπως στα μέσα ενημέρωσης, και σε εταιρείες που έχουν φτιαχτεί για να παρέχουν υπηρεσίες βασισμένες σε Linux. Μέχρι πρόσφατα, τα open source BSD δεν είχαν τέτοιους διαφημιστές.
|
||||
. Αυτοί που αναπτύσσουν το BSD τείνουν να είναι πιο έμπειροι από τους χρήστες του Linux και δεν τους ενδιαφέρει τόσο πολύ να το κάνουν εύκολο στη χρήση. Οι καινούριοι χρήστες έχουν την τάση να αισθάνονται πιο άνετα με το Linux.
|
||||
. Το 1992, η AT&T έκανε μήνυση στην http://www.bsdi.com/[BSDI], την εταιρεία που ανέπτυσσε το BSD/386, κατηγορώντας την ότι το προϊόν περιείχε κώδικα του οποίου τα πνευματικά δικαιώματα ανήκαν στην AT&T. Η υπόθεση κανονίστηκε εκτός δικαστηρίου το 1994, αλλά το φάντασμα της μήνυσης ακόμα συνεχίζει να τρομάζει τον κόσμο. Ακόμα και σχετικά πρόσφατα, τον Μάρτιο του 2000, ένα άρθρο που βγήκε στον παγκόσμιο ιστό υποστηρίζει ότι η υπόθεση έκλεισε με "πρόσφατο διακανονισμό".
|
||||
+
|
||||
Μια λεπτομέρεια που η μήνυση ξεκαθάρισε είναι η κατάσταση των ονομάτων: κατά τη διάρκεια της δεκαετίας του'80, το BSD ήταν γνωστό ως "BSD UNIX(R)". Με την αφαίρεση ακόμα και του τελευταίου κομματιού κώδικα από την AT&T, έχασε και το δικαίωμα στο όνομα UNIX(R). Έτσι θα δείτε αναφορές σε βιβλία με τίτλους όπως "the 4.3BSD UNIX(R) operating system" και "the 4.4BSD operating system".
|
||||
. Υπάρχει η εντύπωση πως τα BSD λειτουργικά συστήματα είναι κομματιασμένα και αντιμαχόμενα. Η http://interactive.wsj.com/bin/login?Tag=/&URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&[Wall Street Journal] μιλούσε για "balkanization" των ομάδων ανάπτυξης του BSD. Ακριβώς όπως και η μήνυση, αυτή η εντύπωση βασίζεται κυρίως σε παλιές ιστορίες.
|
||||
|
||||
== Σύγκριση του BSD με το Linux
|
||||
|
||||
Τελικά ποια είναι η διαφορά μεταξύ, ας πούμε, του Debian Linux και του FreeBSD; Για τον μέσο χρήστη, η διαφορά είναι στην πραγματικότητα μικρή: και τα δυο είναι λειτουργικά συστήματα που μοιάζουν με το UNIX(R). Και τα δυο αναπτύσσονται από μη εμπορικές κοινότητες (αυτό δεν ισχύει για πολλές άλλες διανομές του Linux φυσικά). Στις επόμενες παραγράφους, θα πούμε λίγα πράγματα για το BSD και θα το συγκρίνουμε με το Linux. Η περιγραφή ταιριάζει πιο πολύ στο FreeBSD, το οποίο είναι περίπου το 80% των εγκατεστημένων BSD, αλλά οι διαφορές από το NetBSD, το OpenBSD και το DragonFlyBSD είναι μικρές.
|
||||
|
||||
=== Σε ποιον ανήκει το BSD;
|
||||
|
||||
Δεν υπάρχει ένα άτομο ή οργανισμός στον οποίο να ανήκει το BSD. Αναπτύσσεται και διανέμεται από μια κοινότητα προγραμματιστών από όλο τον κόσμο που έχουν αρκετές γνώσεις και είναι αφοσιωμένοι στην ανάπτυξή του. Κάποια από τα κομμάτια του BSD είναι ανεξάρτητα Open Source projects που συντηρούνται από κάποια διαφορετική ομάδα ή άτομο.
|
||||
|
||||
=== Πως αναπτύσσεται και ενημερώνεται το BSD;
|
||||
|
||||
Οι BSD πυρήνες αναπτύσσονται ακολουθώντας το Open Source μοντέλο ανάπτυξης. Κάθε ομάδα διατηρεί ένα _δέντρο πηγαίου κώδικα_ στο οποίο έχουν όλοι πρόσβαση, χρησιμοποιώντας το http://www.cvshome.org/[Concurrent Versions System] (CVS). Το δέντρο πηγαίου κώδικα περιέχει όλο τον πηγαίο κώδικα για τα αρχεία του συστήματος, καθώς και τεκμηρίωση ή άλλα σχετικά αρχεία. Το CVS επιτρέπει στους χρήστες να "εξάγουν" (με άλλα λόγια να πάρουν ένα αντίγραφο) οποιασδήποτε έκδοσης του συστήματος.
|
||||
|
||||
Ένας μεγάλος αριθμός προγραμματιστών από όλο τον κόσμο συνεισφέρουν με βελτιώσεις για το BSD. Χωρίζονται σε τρεις κατηγορίες:
|
||||
|
||||
* Οι _Contributors_ γράφουν κώδικα ή τεκμηρίωση. Δεν έχουν δικαίωμα να κάνουν commit (να προσθέσουν κώδικα) απευθείας στον πηγαίο κώδικα. Για να μπει ο κώδικάς τους στο σύστημα πρέπει να περάσει από έλεγχο και να δοκιμαστεί από κάποιον προγραμματιστή που έχει τέτοια δικαιώματα, ο οποίος λέγεται και __committer__.
|
||||
* Οι _Committers_ είναι προγραμματιστές με δικαίωμα να προσθέτουν πράγματα απευθείας στον πηγαίο κώδικα. Για να γίνει κάποιος committer πρέπει να δείξει ότι έχει ικανότητες σε κάποιο συγκεκριμένο τομέα, στον οποίο είναι ενεργός.
|
||||
+
|
||||
Αφήνεται στην διακριτικότητα του committer το αν θα πρέπει να πάρει άδεια πριν κάνει αλλαγές σε ένα συγκεκριμένο μέρος του πηγαίου κώδικα. Γενικά, ένας έμπειρος committer μπορεί να κάνει αλλαγές που είναι προφανώς σωστές χωρίς να ζητήσει άδεια. Για παράδειγμα, ένας committer από την ομάδα τεκμηρίωσης μπορεί να διορθώνει ορθογραφικά ή γραμματικά λάθη χωρίς να ζητήσει επιβεβαίωση. Από την άλλη, προγραμματιστές που κάνουν μεγάλες ή περίπλοκες αλλαγές θα πρέπει να δίνουν κάπως τις αλλαγές τους στους άλλους για έλεγχο πριν κάνουν commit. Σε εξαιρετικές περιπτώσεις, ένα μέλος της βασικής ομάδας (core team) με την ιδιότητα του Principal Architect μπορεί να απαιτήσει οι αλλαγές να αφαιρεθούν από τον πηγαίο κώδικα, μια διαδικασία που λέγεται __backing out__. Όλοι οι committers παίρνουν mail που περιγράφουν κάθε ξεχωριστή αλλαγή που γίνεται commit, οπότε δεν είναι δυνατόν να προστεθεί κάτι κρυφά.
|
||||
* Η __Core team__. Τέλος, το FreeBSD και το NetBSD έχουν το καθένα μια βασική ομάδα (core team) που έχει την διαχείριση του συστήματος. Η βασική ομάδα έχει αναπτυχθεί στην πορεία του project, και ο ρόλος της δεν είναι πάντα σαφώς καθορισμένος. Δεν είναι απαραίτητο να είναι κάποιος προγραμματιστής, αν και συνήθως τα μέλη της βασικής ομάδας είναι από τα άτομα που αναπτύσσουν το BSD. Οι κανόνες για την βασική ομάδα διαφέρουν από το ένα project στο άλλο, αλλά γενικά η γνώμη της βασικής ομάδας μετράει περισσότερο στην κατεύθυνση του project από αυτή των υπόλοιπων.
|
||||
|
||||
Αυτή η οργάνωση διαφέρει από αυτή του Linux σε διάφορα σημεία:
|
||||
|
||||
. Δεν υπάρχει ένα μοναδικό άτομο που να ελέγχει τα περιεχόμενα του συστήματος. Πρακτικά, αυτή η διαφορά υπερεκτιμάται, αφού ο Principal Architect μπορεί να απαιτήσει κάποιος κώδικας να αφαιρεθεί, και ακόμα και στο Linux υπάρχουν αρκετά άτομα που τους επιτρέπεται να κάνουν αλλαγές.
|
||||
. Από την άλλη, _υπάρχει_ ένα κεντρικό repository, ένα μέρος που μπορείτε να βρείτε ολόκληρο το λειτουργικό σύστημα σε μορφή πηγαίου κώδικα, σε οποιαδήποτε έκδοση, ακόμα και παλιότερες.
|
||||
. Τα BSD project συντηρούν ολόκληρο το "Λειτουργικό Σύστημα", κι όχι μόνο τον πυρήνα. Αυτή η διαφορά είναι μόνο οριακά χρήσιμη. Ούτε το BSD, ούτε το Linux δεν είναι πολύ χρήσιμα χωρίς εφαρμογές. Οι εφαρμογές που χρησιμοποιούνται στο BSD είναι συχνά οι ίδιες εφαρμογές που χρησιμοποιούνται κάτω από το Linux.
|
||||
. Σαν αποτέλεσμα της κεντρικής και σαφώς ορισμένης συντήρησης ενός CVS δέντρου πηγαίου κώδικα, η ανάπτυξη του BSD είναι ξεκάθαρη, και είναι εύκολη η πρόσβαση σε οποιαδήποτε έκδοση του συστήματος είτε με αριθμό έκδοσης, είτε με ημερομηνία. Το CVS επίσης επιτρέπει αθροιστικές αλλαγές στο σύστημα. Για παράδειγμα, το repository του FreeBSD ενημερώνεται περίπου 100 φορές τη μέρα. Οι πιο πολλές από αυτές τις αλλαγές είναι μικρές.
|
||||
|
||||
=== Εκδόσεις του BSD
|
||||
|
||||
Οι ομάδες ανάπτυξης των FreeBSD, NetBSD και OpenBSD διαθέτουν το σύστημα σε τρεις διαφορετικές "εκδόσεις". Όπως και με το Linux, σε κάθε έκδοση δίνεται ένας αριθμός, π.χ. 1.4.1 ή 3.5. Εκτός από αυτό, ο αριθμός της έκδοσης έχει ένα επίθεμα, το οποίο υποδηλώνει το σκοπό της έκδοσης:
|
||||
|
||||
. Η πειραματική έκδοση του συστήματος λέγεται __CURRENT__. Το FreeBSD ορίζει ένα αριθμό έκδοσης για το CURRENT, για παράδειγμα FreeBSD 5.0-CURRENT. Το NetBSD χρησιμοποιεί ένα κάπως διαφορετικό τρόπο ονοματολογίας και προσθέτει γράμμα στο τέλος του αριθμού έκδοσης το οποίο αντιστοιχεί σε αλλαγές εσωτερικών λειτουργιών, για παράδειγμα NetBSD 1.4.3G. Το OpenBSD δεν ορίζει κάποιο αριθμό ("OpenBSD-current"). Η ανάπτυξη καινούριων πραγμάτων πάντα γίνεται σε αυτόν τον κλάδο.
|
||||
. Σε τακτά χρονικά διαστήματα, από δυο μέχρι και τέσσερεις φορές το χρόνο, τα project ανακοινώνουν μια _RELEASE_ έκδοση του συστήματος, η οποία διατίθεται σε CD-ROM και μπορεί κάποιος να την κατεβάσει από FTP εξυπηρετητές, για παράδειγμα ανακοινώνεται το OpenBSD 2.6-RELEASE ή το NetBSD 1.4-RELEASE. Η RELEASE έκδοση απευθύνεται σε τελικούς χρήστες, και είναι η κανονική μορφή του συστήματος. Το NetBSD διαθέτει επίσης και _patch εκδόσεις_ με ένα τρίτο ψηφίο, όπως για παράδειγμα την NetBSD 1.4.2.
|
||||
. Καθώς προβλήματα βρίσκονται σε κάποια RELEASE έκδοση, διορθώνονται, και οι αλλαγές προστίθενται στο CVS. Στο FreeBSD, το αποτέλεσμα ονομάζεται η STABLE έκδοση, ενώ στο NetBSD και στο OpenBSD συνεχίζει να λέγεται η RELEASE έκδοση. Μικρά καινούρια χαρακτηριστικά μπορεί να προστεθούν και σε αυτόν τον κλάδο μετά από μια δοκιμαστική περίοδο στον CURRENT κλάδο.
|
||||
|
||||
_Το Linux, σε αντίθεση, συντηρεί δυο ξεχωριστά δέντρα πηγαίου κώδικα. Την σταθερή και την πειραματική έκδοση. Οι σταθερές εκδόσεις έχουν ένα ζυγό αριθμό έκδοσης, όπως 2.0, 2.2 ή 2.4. Οι πειραματικές εκδόσεις έχουν περιττό αριθμό έκδοσης, όπως 2.1, 2.3 ή 2.5. Σε κάθε περίπτωση, ο αριθμός ακολουθείται από ένα ακόμα αριθμό που υποδεικνύει την ακριβή έκδοση. Ακόμα, κάθε διανομέας προσθέτει τα δικά του προγράμματα χρήστη και εργαλεία, οπότε το όνομα της διανομής είναι επίσης σημαντικό. Κάθε διανομέας επίσης προσθέτει τον δικό του αριθμό στην διανομή, οπότε μια πλήρης περιγραφή μπορεί να είναι κάτι σαν "TurboLinux 6.0 με πυρήνα 2.2.14"_
|
||||
|
||||
=== Τι εκδόσεις του BSD είναι διαθέσιμες;
|
||||
|
||||
Σε αντίθεση με τις διανομές του Linux, υπάρχουν μόνο τέσσερα διαφορετικά open source BSD. Κάθε BSD ομάδα συντηρεί τον δικό της πηγαίο κώδικα και τον δικό της πυρήνα. Πρακτικά, φυσικά, υπάρχουν πολύ λιγότερες διαφορές στα προγράμματα χρήστη των BSD ομάδων από ότι υπάρχουν στο Linux.
|
||||
|
||||
Είναι δύσκολο να κατηγοριοποιηθούν οι σκοποί της κάθε BSD ομάδας. Οι διαφορές είναι πολύ υποκειμενικές. Βασικά,
|
||||
|
||||
* Το FreeBSD έχει ως στόχο την υψηλή απόδοση και την ευκολία χρήσης από τους τελικούς χρήστες. Είναι επίσης το αγαπημένο των υπηρεσιών παροχής περιεχομένου στον παγκόσμιο ιστό. Τρέχει σε αρκετές πλατφόρμες: συστήματα βασισμένα στην i386(TM) αρχιτεκτονική ("PC"), συστήματα βασισμένα στους AMD 64-bit επεξεργαστές, συστήματα βασισμένα στην αρχιτεκτονική UltraSPARC(R), συστήματα με επεξεργαστές Alpha της Compaq και συστήματα βασισμένα στο πρότυπο PC-98 της NEC. Το FreeBSD έχει σημαντικά περισσότερους χρήστες από τα άλλα projects.
|
||||
* Το NetBSD στοχεύει στην μέγιστη μεταφερσιμότητα: "μα φυσικά και τρέχει NetBSD". Τρέχει σε μηχανές από υπολογιστές χειρός μέχρι μεγάλους εξυπηρετητές, και έχει χρησιμοποιηθεί ακόμα και σε αποστολές της NASA. Είναι μια πολύ καλή επιλογή για παλιό μη-Intel(R) hardware.
|
||||
* Το OpenBSD δίνει μεγάλη σημασία στην ασφάλεια και στην καθαρότητα του κώδικα: χρησιμοποιεί ένα συνδυασμό από ιδέες open source και λεπτομερή έλεγχο του κώδικα για να φτιάξει ένα σύστημα που είναι ολοφάνερα σωστό, κάτι που το κάνει να είναι η επιλογή των οργανισμών που δίνουν σημασία στην ασφάλεια, όπως τράπεζες, χρηματιστήρια και παραρτήματα της κυβέρνησης των ΗΠΑ. Όπως και το NetBSD τρέχει σε αρκετές πλατφόρμες.
|
||||
* Το DragonFlyBSD στοχεύει στην ανάπτυξη ενός συστήματος μεγάλης απόδοσης και scalability σε οτιδήποτε από ένα απλό σύστημα ενός επεξεργαστή μέχρι τεράστια clusters συστημάτων. Το DragonFlyBSD έχει αρκετούς στόχους ευρείας εμβέλειας, αλλά μέχρι τώρα οι προσπάθειες της ομάδας ανάπτυξής του επικεντρώνονται στην υλοποίηση μιας SMP πλατφόρμας που είναι εύκολο να κατανοηθεί, να συντηρηθεί και ευνοεί την περαιτέρω ανάπτυξη.
|
||||
|
||||
Υπάρχουν ακόμη και δύο BSD λειτουργικά συστήματα που δεν είναι open source, το BSD/OS και το Mac OS(R) X της Apple:
|
||||
|
||||
* Το BSD/OS είναι το πιο παλιό από τα βασισμένα στο 4.4BSD λειτουργικά συστήματα. Δεν ήταν open source, παρόλο που άδειες πηγαίου κώδικα ήταν διαθέσιμες με σχετικά χαμηλό κόστος. Έμοιαζε πολύ με το FreeBSD. Δύο χρόνια μετά την εξαγορά της BSDi από τη Wind River Systems, το BSD/OS απέτυχε να επιβιώσει σαν ανεξάρτητο προϊόν. Μπορεί ακόμα να είναι διαθέσιμη υποστήριξη και πηγαίος κώδικας από την Wind River, αλλά όλη η ανάπτυξη γίνεται πλέον στο embedded λειτουργικό σύστημα VxWorks.
|
||||
* Το http://www.apple.com/macosx/server/[Mac OS(R) X] είναι η πιο πρόσφατη έκδοση του λειτουργικού συστήματος για την γραμμή υπολογιστών Macintosh(R) της http://www.apple.com/[Apple Computer Inc.] Ο πυρήνας του λειτουργικού συστήματος, ο οποίος είναι βασισμένος στο BSD και λέγεται http://developer.apple.com/darwin/[Darwin], είναι διαθέσιμος ως ένα πλήρες λειτουργικό σύστημα ανοιχτού κώδικα για υπολογιστές x86 και PPC. Το σύστημα γραφικών Aqua/Quartz και πολλά άλλα εμπορικά μέρη του Mac OS(R) X δεν είναι διαθέσιμα σε μορφή πηγαίου κώδικα. Αρκετά μέλη της ομάδας ανάπτυξης του Darwin συμμετέχουν στην ανάπτυξη του FreeBSD κι ανάποδα.
|
||||
|
||||
=== Τι διαφορά έχει η άδεια του BSD από την GNU Public άδεια;
|
||||
|
||||
Το Linux διατίθεται σύμφωνα με τους όρους της http://www.fsf.org/copyleft/gpl.html[GNU General Public License] (GPL), η οποία είναι σχεδιασμένη για να αποκλείσει το μη-ελεύθερο λογισμικό. Ειδικότερα, οποιοδήποτε προϊόν βασισμένο σε κάποιο προϊόν διαθέσιμο σύμφωνα με τους όρους της GPL πρέπει κι αυτό να δίνεται σε μορφή πηγαίου κώδικα αν ζητηθεί. Αντίθετα, η http://www.opensource.org/licenses/bsd-license.html[BSD άδεια] είναι λιγότερο περιοριστική: διανομές οι οποίες είναι διαθέσιμες μόνο σε εκτελέσιμη μορφή επιτρέπονται. Αυτό είναι πολύ χρήσιμο σε embedded εφαρμογές.
|
||||
|
||||
=== Τί άλλο θά 'πρεπε να ξέρω;
|
||||
|
||||
Επειδή λιγότερες εφαρμογές είναι διαθέσιμες για BSD από ότι για Linux, οι προγραμματιστές του BSD έγραψαν ένα πακέτο συμβατότητας με το Linux, που επιτρέπει σε προγράμματα για Linux να τρέξουν κάτω από BSD. Το πακέτο περιλαμβάνει τόσο αλλαγές στον πυρήνα, έτσι ώστε να εκτελούνται σωστά οι κλήσεις συστήματος του Linux, όσο και αρχεία συμβατότητας με το Linux όπως η βιβλιοθήκη της C. Δεν υπάρχει πρακτικά διαφορά στην ταχύτητα εκτέλεσης μεταξύ μιας εφαρμογής για Linux που τρέχει σε ένα Linux μηχάνημα και μιας εφαρμογής για Linux που τρέχει σε ένα BSD μηχάνημα ίδιας ταχύτητας.
|
||||
|
||||
Η λογική του BSD, "όλα από μια πηγή", σημαίνει ότι οι αναβαθμίσεις είναι πολύ πιο εύκολες να γίνουν από ότι στο Linux. Το BSD παρέχει επίσης και βιβλιοθήκες συμβατότητας με παλιότερες εκδόσεις, οπότε μπορείτε να τρέχετε εκτελέσιμα που είναι αρκετά χρόνια παλιά χωρίς προβλήματα.
|
||||
|
||||
=== Τι προτείνετε να χρησιμοποιήσω, BSD ή Linux;
|
||||
|
||||
Κι αυτό τι υποτίθεται ότι σημαίνει πρακτικά; Ποιος θά 'πρεπε να χρησιμοποιεί BSD, και ποιος θά 'πρεπε να χρησιμοποιεί Linux;
|
||||
|
||||
Αυτή είναι μια πολύ δύσκολη ερώτηση να απαντήσει κανείς. Ας δούμε μερικές γενικές οδηγίες:
|
||||
|
||||
* "Αν δεν έχει χαλάσει, μην το φτιάξετε": Αν ήδη χρησιμοποιείτε κάποιο open source λειτουργικό σύστημα, και είστε ικανοποιημένοι από αυτό, μάλλον δεν υπάρχει κανένας καλός λόγος να το αλλάξετε.
|
||||
* Τα BSD συστήματα, και ειδικά το FreeBSD, μπορούν να έχουν αξιοσημείωτα καλύτερη απόδοση από το Linux. Αλλά αυτό δεν ισχύει πάντα. Σε πολλές περιπτώσεις, δεν υπάρχει διαφορά στην απόδοση ή είναι πολύ μικρή. Σε μερικές περιπτώσεις μπορεί το Linux να αποδίδει καλύτερα από το FreeBSD.
|
||||
* Γενικά, τα BSD συστήματα έχουν καλύτερη φήμη όσον αφορά στην αξιοπιστία που έχουν, κυρίως σαν αποτέλεσμα της πιο ώριμης βάσης κώδικα.
|
||||
* Τα BSD συστήματα έχουν τη φήμη ότι έχουν πιο ποιοτική και ολοκληρωμένη τεκμηρίωση. Οι διάφορες ομάδες τεκμηρίωσης προσπαθούν να παρέχουν ενημερωμένη τεκμηρίωση σε πολλές γλώσσες, να κρατούν την τεκμηρίωση ενημερωμένη και να καλύπτουν κάθε χαρακτηριστικό του συστήματος σε βάθος.
|
||||
* Η BSD άδεια μπορεί να σας αρέσει περισσότερο από την GPL.
|
||||
* Το BSD μπορεί να τρέξει ένα μεγάλο ποσοστό από τα εκτελέσιμα των προγραμμάτων για Linux, ενώ το Linux δε μπορεί να τρέξει BSD εκτελέσιμα. Πολλές BSD υλοποιήσεις μπορούν να τρέξουν ακόμη κι εκτελέσιμα από άλλα UNIX(R) συστήματα. Αυτό πιθανόν να έχει ως αποτέλεσμα η μετάβαση από κάποιο άλλο σύστημα σε BSD να είναι πιο εύκολη από ότι σε Linux.
|
||||
+
|
||||
Το BSD μπορεί να τρέξει εκτελέσιμα του Linux, ενώ το Linux δεν μπορεί να εκτελέσει προγράμματα για BSD. Σαν αποτέλεσμα, περισσότερο λογισμικό είναι διαθέσιμο για BSD από ότι για Linux.
|
||||
|
||||
=== Ποιος παρέχει υποστήριξη, service και εκπαίδευση για το BSD;
|
||||
|
||||
Η BSDi / http://www.freebsdmall.com[FreeBSD Mall, Inc.] πάντα παρείχε υποστήριξη για το BSD/OS και πρόσφατα ανακοίνωσε ότι παρέχει συμβόλαια υποστήριξης και για το FreeBSD.
|
||||
|
||||
Επίσης, κάθε ένα από τα BSD έχει μια λίστα με consultants που μπορείτε να προσλάβετε: για το link:https://www.FreeBSD.org/commercial/consult_bycat/[FreeBSD], το http://www.netbsd.org/gallery/consultants.html[NetBSD], και το http://www.openbsd.org/support.html[OpenBSD].
|
||||
235
documentation/content/el/articles/freebsd-questions/_index.adoc
Normal file
235
documentation/content/el/articles/freebsd-questions/_index.adoc
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
---
|
||||
title: Πως να χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου FreeBSD-questions
|
||||
authors:
|
||||
- author: Greg Lehey
|
||||
email: grog@FreeBSD.org
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "microsoft", "opengroup", "qualcomm", "general"]
|
||||
---
|
||||
|
||||
= Πως να χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου FreeBSD-questions
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/el/urls.adoc[]
|
||||
include::shared/el/mailing-lists.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Αυτό το κείμενο παρέχει χρήσιμες πληροφορίες για όσους προσπαθούν να προετοιμάσουν ένα γράμμα για την λίστα ταχυδρομείου FreeBSD-questions. Δίνονται συμβουλές και οδηγίες που θα μεγιστοποιήσουν την πιθανότητα ο αναγνώστης να πάρει χρήσιμες απαντήσεις.
|
||||
|
||||
Αυτό το κείμενο (ΣΤΜ: η αγγλική έκδοση) στέλνεται τακτικά στην ίδια τη λίστα FreeBSD-questions.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
== Εισαγωγή
|
||||
|
||||
Η `FreeBSD-questions` είναι μια ταχυδρομική λίστα που συντηρείται από την ομάδα ανάπτυξης του FreeBSD για να βρίσκουν σε αυτή βοήθεια όσοι έχουν απορίες σχετικά με την χρήση του FreeBSD. Μια άλλη λίστα, η `FreeBSD-hackers`, είναι για πιο προχωρημένες ερωτήσεις, όπως για παράδειγμα συζητήσεις για μελλοντικές εργασίες ανάπτυξης.
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Ο όρος "hacker" δεν έχει καμία απολύτως σχέση με την εισβολή στους υπολογιστές άλλων ανθρώπων. Ο σωστός όρος για τέτοιου είδους ενέργειες είναι "cracker", αλλά τα δημοφιλή μέσα ενημέρωσης δεν το έχουν ανακαλύψει ακόμα. Οι FreeBSD hackers δεν εγκρίνουν την παραβίαση της ασφάλειας των υπολογιστών (cracking), και δεν έχουν καμία σχέση με τέτοιου είδους ενέργειες. Για να πιο λεπτομερή περιγραφή των hackers, δείτε το http://www.catb.org/~esr/faqs/hacker-howto.html[How to Become A Hacker] του Eric Raymond.
|
||||
====
|
||||
|
||||
Αυτό είναι ένα τακτικό μήνυμα του οποίου σκοπός είναι να βοηθήσει τόσο αυτούς που αναζητούν βοήθεια από την FreeBSD-questions (τους "καινούριους") όσο και αυτούς που απαντάνε τις ερωτήσεις (τους "hackers").
|
||||
|
||||
Αναπόφευκτα υπάρχει μια κόντρα, που οφείλεται στην διαφορετική οπτική γωνία που έχει η κάθε ομάδα. Οι καινούριοι κατηγορούν τους hackers ότι είναι εγωιστές, κολλημένοι, και ότι δεν βοηθάνε, ενώ οι hackers κατηγορούν τους καινούριους ότι είναι χαζοί, ανίκανοι να διαβάσουν απλά Αγγλικά, κι ότι περιμένουν τα πάντα να τους δίνονται σε ένα ασημένιο δίσκο. Γεγονός είναι, βέβαια, ότι μια δόση αλήθειας υπάρχει και στις δυο αυτές απόψεις, αλλά κατά κύριο λόγο αυτές οι απόψεις οφείλονται σε αισθήματα οργής.
|
||||
|
||||
Με αυτό το κείμενο, θα ήθελα να κάνω κάτι να απαλύνω κάπως αυτή την οργή, και να βοηθήσω όσο μπορώ όλους να χρησιμοποιούν με τα καλύτερα δυνατά αποτελέσματα τη λίστα FreeBSD-questions. Παρακάτω περιγράφω πως να στείλει κάποιος μια ερώτηση. Μετά θα δούμε και τρόπους για να δίνονται απαντήσεις.
|
||||
|
||||
== Πως να γραφτείτε στην FreeBSD-questions
|
||||
|
||||
Η FreeBSD-questions είναι μια λίστα ηλεκτρονικού ταχυδρομείου, οπότε χρειάζεστε πρόσβαση σε κάποια υπηρεσία ηλεκτρονικού ταχυδρομείου. Για να γραφτείτε στη λίστα, επισκεφθείτε με το φυλλομετρητή σας τη {freebsd-questions}. Στο τμήμα "Subscribing to freebsd-questions" συμπληρώστε το πεδίο "Your email address" κι όποια άλλα προαιρετικά πεδία θέλετε.
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Τα πεδία κωδικού παρέχουν μέτρια ασφάλεια, αλλά οι κωδικόί αυτός θα εμποδίσουν τον περισσότερο κόσμο από το να κάνει αλλαγές στη συνδρομή σας. _Μη χρησιμοποιήσετε όμως κάποιο πολύτιμο κωδικό σε αυτό το πεδίο, γιατί θα σας έρχεται περιοδικά μια υπενθύμιση του κωδικού σε ένα απλό, μη κρυπτογραφημένο μήνυμα ηλεκτρονικού ταχυδρομείου._
|
||||
====
|
||||
|
||||
Λίγο μετά θα λάβετε ένα μήνυμα επιβεβαίωσης της εγγραφής από το mailman. Ακολουθήστε τις οδηγίες του μηνύματος για να ενεργοποιηθεί η συνδρομή σας.
|
||||
|
||||
Τέλος, μόλις λάβετε το μήνυμα καλωσορίσματος από το mailman, που περιγράφει τη λίστα και τον κωδικό της συνδρομής σας, __κρατήστε ένα αντίγραφο__. Αν θελήσετε ποτέ να ακυρώσετε την εγγραφή σας στη λίστα, θα χρειαστείτε τις πληροφορίες του μηνύματος. Δείτε και τις επόμενες παραγράφους για περισσότερες λεπτομέρειες.
|
||||
|
||||
== Πως να διαγραφείτε από την FreeBSD-questions
|
||||
|
||||
Όταν γραφτήκατε στην FreeBSD-questions, πήρατε ένα μήνυμα καλωσορίσματος από το mailto:mailman[mailman]. Σε αυτό το μήνυμα, ανάμεσα σε άλλα πράγματα, εξηγεί και πως μπορείτε να διαγραφείτε από τη λίστα. Ορίστε ένα τυπικό μήνυμα:
|
||||
|
||||
....
|
||||
Welcome to the freebsd-questions@freebsd.org mailing list!
|
||||
|
||||
To post to this list, send your email to:
|
||||
|
||||
freebsd-questions@freebsd.org
|
||||
|
||||
General information about the mailing list is at:
|
||||
|
||||
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
|
||||
|
||||
If you ever want to unsubscribe or change your options (eg, switch to
|
||||
or from digest mode, change your password, etc.), visit your
|
||||
subscription page at:
|
||||
|
||||
http://lists.freebsd.org/mailman/options/freebsd-questions/grog%40lemsi.de
|
||||
|
||||
You can also make such adjustments via email by sending a message to:
|
||||
|
||||
freebsd-questions-request@freebsd.org
|
||||
|
||||
with the word `help' in the subject or body (don't include the
|
||||
quotes), and you will get back a message with instructions.
|
||||
|
||||
You must know your password to change your options (including changing
|
||||
the password, itself) or to unsubscribe. It is:
|
||||
|
||||
12345
|
||||
|
||||
Normally, Mailman will remind you of your freebsd.org mailing list
|
||||
passwords once every month, although you can disable this if you
|
||||
prefer. This reminder will also include instructions on how to
|
||||
unsubscribe or change your account options. There is also a button on
|
||||
your options page that will email your current password to you.
|
||||
....
|
||||
|
||||
Χρησιμοποιώντας τη διεύθυνση URL που περιέχει το μήνυμα καλωσορίσματος που λάβατε (με τίτλο "Welcome") μπορείτε να επισκεφθείτε τη "Σελίδα προσωπικών ρυθμίσεων" και να αιτηθείτε τη διαγραφή σας ("Unsubscribe") από τη λίστα FreeBSD-questions.
|
||||
|
||||
Μόλις ζητήσετε τη διαγραφή σας το mailman θα σας στείλει ένα μήνυμα επιβεβαίωσης της διαγραφής. Ακολουθήστε τις οδηγίες του μηνύματος για να ολοκληρώσετε τη διαδικασία διαγραφής.
|
||||
|
||||
Αν τα έχετε κάνει όλα αυτά και ακόμα δεν μπορείτε να καταλάβετε τι συμβαίνει, στείλτε ένα μήνυμα στη διεύθυνση mailto:Postmaster@FreeBSD.org[Postmaster@FreeBSD.org], και αυτός θα σας βοηθήσει να βρείτε μια άκρη. _Μην_ στείλετε κάποιο μήνυμα στην FreeBSD-questions: δεν μπορούν να σας βοηθήσουν.
|
||||
|
||||
== Που να στείλω την ερώτησή μου; Στην `-questions` ή στην `-hackers`;
|
||||
|
||||
Δύο είναι οι λίστες που μπορεί κάποιος να κάνει ερωτήσεις γενικού περιεχομένου σχετικά με το FreeBSD, η `FreeBSD-questions` και η `FreeBSD-hackers`. Σε κάποιες περιπτώσεις, δεν είναι απολύτως ξεκάθαρο σε ποια λίστα πρέπει να ρωτήσετε. Τα παρακάτω κριτήρια θα σας βοηθήσουν να αποφασίσετε στο 99% των περιπτώσεων, όμως:
|
||||
|
||||
. Αν η ερώτηση είναι γενικού περιεχομένου, ρωτήστε στην `FreeBSD-questions`. Παραδείγματα μπορεί να είναι ερωτήσεις σχετικά με την εγκατάσταση του FreeBSD ή την χρήση ενός συγκεκριμένου UNIX(R) εργαλείου.
|
||||
. Αν νομίζετε ότι η ερώτηση έχει σχέση με κάποιο bug, αλλά δεν είστε σίγουροι, ή δεν ξέρετε πως να το ψάξετε περισσότερο, στείλτε το μήνυμα στην `FreeBSD-questions`.
|
||||
. Αν η ερώτηση έχει σχέση με κάποιο bug, και είστε _σίγουροι_ ότι είναι bug (για παράδειγμα, μπορείτε να δείξετε το μέρος στον πηγαίο κώδικα που εμφανίζεται, ή ίσως έχετε και κάποια διόρθωση έτοιμη), τότε στείλτε το μήνυμά σας στην `FreeBSD-hackers`.
|
||||
. Αν η ερώτηση έχει σχέση με βελτιώσεις στο FreeBSD, και μπορείτε να κάνετε προτάσεις σχετικά με την υλοποίησή τους, στείλτε το μήνυμα στην `FreeBSD-hackers`.
|
||||
|
||||
Υπάρχουν επίσης κι άλλες λίστες ηλεκτρονικού ταχυδρομείου, για παράδειγμα η `FreeBSD-isp`, η οποία ασχολείται με τα ενδιαφέροντα των ISP (Παροχείς Υπηρεσιών Internet-Internet Service Providers) που τρέχουν FreeBSD. Αν τυχαίνει να παρέχετε υπηρεσίες Internet, αυτό δεν σημαίνει πως αυτόματα πρέπει να στέλνετε όλες σας τις ερωτήσεις στην `FreeBSD-isp`. Τα κριτήρια που αναφέραμε παραπάνω πάλι ισχύουν, και μάλλον σας συμφέρει να τα χρησιμοποιήσετε, αφού έτσι είναι πιο πιθανόν να πάρετε καλύτερα αποτελέσματα.
|
||||
|
||||
== Πριν στείλετε μια ερώτηση
|
||||
|
||||
Μπορείτε (και πρέπει) να κάνετε κάποια πράγματα από μόνοι σας πριν στείλετε μια ερώτηση σε κάποια από τις λίστες ηλεκτρονικού ταχυδρομείου.
|
||||
|
||||
* Προσπαθείστε να λύσετε το πρόβλημα μόνοι σας. Αν στείλετε μια ερώτηση η οποία δείχνει ότι έχετε προσπαθήσει ήδη να λύσετε το πρόβλημα, είναι σχεδόν σίγουρο ότι η ερώτησή σας θα κινήσει το ενδιαφέρον περισσότερο ενδιαφέρον. Η προσπάθεια να λύσετε το πρόβλημα μόνοι σας έχει κι άλλα καλά αποτελέσματα: θα βελτιώσει την κατανόηση που έχετε για τον τρόπο που δουλεύει το FreeBSD, οπότε ύστερα θα μπορείτε ακόμη και να χρησιμοποιήσετε τη γνώση που αποκτήσατε για να βοηθήσετε άλλους, απαντώντας τις ερωτήσεις τους σε κάποια από τις λίστες.
|
||||
* Διαβάστε τα manual pages, και την τεκμηρίωση του FreeBSD (είτε το αντίγραφο που διανέμεται μαζί με τις εκδόσεις του FreeBSD κι εγκαθίσταται στον κατάλογο [.filename]#/usr/doc# ή μέσω WWW στη διεύθυνση http://www.FreeBSD.org[http://www.FreeBSD.org]), ειδικά το link:{handbook}[Εγχειρίδιο του FreeBSD] και τη link:{faq}[λίστα συχνών ερωτήσεων].
|
||||
* Περιηγηθείτε ή αναζητήστε σχετικά θέματα στα αρχεία της λίστας, για να δείτε αν η ερώτησή σας ή κάποια παρόμοια έχει ήδη εμφανιστεί ή έχει απαντηθεί στο παρελθόν. Μπορείτε να βρείτε τα αρχεία της λίστας στη διεύθυνση http://www.FreeBSD.org/mail[http://www.FreeBSD.org/mail] και να αναζητήσετε παλιά θέματα στη διεύθυνση http://www.FreeBSD.org/search/#mailinglists[http://www.FreeBSD.org/search/#mailinglists]. Τέτοιες αναζητήσεις μπορούν να γίνουν και σε άλλους εξυπηρετητές που έχουν το αρχείο της λίστας, π.χ. στη διεύθυνση http://marc.theaimsgroup.com[http://marc.theaimsgroup.com].
|
||||
* Χρησιμοποιήστε μια μηχανή αναζήτησης, όπως το http://www.google.com[Google] ή το http://www.yahoo.com[Yahoo] για να βρείτε απαντήσεις στις ερωτήσεις σας. Το Google έχει ακόμα και http://www.google.com/bsd[ειδικό τμήμα για τα BSD λειτουργικά συστήματα].
|
||||
|
||||
== Πως να στείλετε μια ερώτηση
|
||||
|
||||
Όταν στέλνετε μια ερώτηση στην FreeBSD-questions, σκεφτείτε πρώτα τα παρακάτω πράγματα:
|
||||
|
||||
* Να θυμάστε πως κανείς δεν πληρώνεται για να απαντήσει μια ερώτηση στην FreeBSD-questions. Απαντούν επειδή οι ίδιοι θέλουν να απαντήσουν. Μπορείτε να επηρεάσετε την θέληση κάποιου να απαντήσει θετικά στέλνοντας μια προσεγμένη ερώτηση και δίνοντας όσο το δυνατόν περισσότερες σχετικές πληροφορίες. Μπορεί να επηρεάσετε αρνητικά την θέληση κάποιου να απαντήσει, στέλνοντας μια ατελή, δύσκολη να διαβαστεί, ή αγενή ερώτηση. Είναι επίσης πολύ πιθανόν να στείλετε ένα μήνυμα στην FreeBSD-questions και να μην πάρετε απάντηση, ακόμα και αν ακολουθήσετε αυτούς τους κανόνες. Είναι όμως ακόμα περισσότερο πιθανό να μην πάρετε μια απάντηση, αν δεν τους ακολουθήσετε. Στο υπόλοιπο αυτού του κειμένου θα δούμε πως θα έχετε τα καλύτερα δυνατά αποτελέσματα από την FreeBSD-questions.
|
||||
* Δεν διαβάζουν όλα τα μηνύματα όσοι απαντούν στην FreeBSD-questions: κοιτάζουν την γραμμή θέματος (subject) και αποφασίζουν αν τους ενδιαφέρει ή όχι. Προφανώς, σας συμφέρει να έχετε ορίσει ένα θέμα. Θέματα όμως όπως "FreeBSD problem" ή "Help" δεν είναι αρκετά. Αν δεν έχετε βάλει κανένα θέμα, πολλοί ούτε καν που θα κάτσουν να διαβάσουν το μήνυμα. Αν το θέμα είναι κάπως ασαφές και δεν αναφέρει ακριβώς το πρόβλημα, άνθρωποι που μπορούν να απαντήσουν ίσως να μην το διαβάσουν καν.
|
||||
* Διαμορφώστε το γράμμα σας ώστε να διαβάζεται εύκολα, και ΜΗΝ ΦΩΝΑΖΕΤΕ ΣΑΣ ΠΑΡΑΚΑΛΩ!!!!! Καταλαβαίνουμε ότι πολύς κόσμος δεν έχει για μητρική του γλώσσα τα Αγγλικά, και προσπαθούμε να είμαστε αρκετά ανεκτικοί σε αυτό το θέμα, αλλά είναι πραγματικά ενοχλητικό να προσπαθεί κανείς να διαβάσει ένα μήνυμα γεμάτο ορθογραφικά λάθη ή όταν είναι όλο γραμμένο σε μια γραμμή.
|
||||
+
|
||||
Μην υποτιμάτε την επίδραση που ένα κακογραμμένο μήνυμα μπορεί να έχει, κι αυτό όχι μόνο στην FreeBSD-questions λίστα. Το μήνυμα σας είναι αυτό που θα δουν οι άλλοι, κι αν είναι κακογραμμένο, με το κείμενο ολόκληρων παραγράφων σε μια γραμμή, ή γεμάτο λάθη, θα δώσει άσχημη εντύπωση στους άλλους για σας.
|
||||
+
|
||||
Πάρα πολλά κακογραμμένα μηνύματα οφείλονται σε http://www.lemis.com/email.html[ελλατωματικά ή κακορυθμισμένα προγράμματα ηλεκτρονικής αλληλογραφίας]. Τα παρακάτω προγράμματα είναι γνωστό ότι στέλνουν κακογραμμένα μηνύματα χωρίς εσείς να το ξέρετε πως κάτι τέτοιο γίνεται:
|
||||
|
||||
** cc:Mail
|
||||
** Eudora(R)
|
||||
** exmh
|
||||
** Microsoft(R) Exchange
|
||||
** Microsoft(R) Internet Mail
|
||||
** Microsoft(R) Outlook(R)
|
||||
** Netscape(R)
|
||||
+
|
||||
Όπως βλέπετε, τα προγράμματα ηλεκτρονικής αλληλογραφίας στον κόσμο της Microsoft είναι αρκετά συχνά στη λίστα. Όταν είναι δυνατόν, χρησιμοποιήστε ένα πρόγραμμα ηλεκτρονικής αλληλογραφίας που τρέχει σε UNIX(R). Αν είστε υποχρεωμένοι να χρησιμοποιήσετε κάποιο πρόγραμμα ηλεκτρονικής αλληλογραφίας σε Microsoft περιβάλλον, τότε σιγουρευτείτε ότι το έχετε ρυθμίσει σωστά. Προσπαθήστε να μην χρησιμοποιείτε MIME: πολλοί χρησιμοποιούν προγράμματα να διαβάσουν την αλληλογραφία τους που δεν τα πάνε καλά με το MIME.
|
||||
* Σιγουρευτείτε ότι η ώρα και η ζώνη ώρας είναι σωστά ρυθμισμένες στο σύστημά σας. Αυτό μπορεί να φαίνεται λίγο χαζό, αφού το μήνυμά σας έτσι κι αλλιώς θα φτάσει, αλλά πολλοί από τους ανθρώπους που προσπαθείτε να επικοινωνήσετε μαζί τους παίρνουν αρκετές εκατοντάδες μηνύματα κάθε μέρα. Πολλές φορές ταξινομούν τα εισερχόμενα μηνύματά τους ανάλογα με το θέμα και την ημερομηνία, και αν το μήνυμά σας δεν φτάσει πριν την πρώτη απάντηση, μπορεί να θεωρήσουν ότι δεν το πήραν καν και να μην ασχοληθούν παραπάνω.
|
||||
* Μην συμπεριλαμβάνετε άσχετες ερωτήσεις στο ίδιο μήνυμα. Πρώτα από όλα, ένα τεράστιο μήνυμα μπορεί να φοβίσει τον κόσμο και να μην ασχοληθούν, και δεύτερον, είναι δύσκολο να πετύχετε να διαβάσουν όλες τις ερωτήσεις όλοι όσοι μπορούν να απαντήσουν.
|
||||
* Δώστε όσο περισσότερες πληροφορίες γίνεται. Αυτό είναι μια κάπως περίεργη απαίτηση, και πρέπει να αναλύσουμε κάπως τι πληροφορίες χρειάζεται να στείλετε, αλλά για αρχή ας πούμε τα εξής:
|
||||
|
||||
** Σχεδόν σε κάθε περίπτωση, είναι σημαντικό να ξέρει κανείς ποια έκδοση του FreeBSD τρέχετε. Ειδικά με το FreeBSD-CURRENT, θα πρέπει να πείτε ακόμα και ποια είναι η ημερομηνία του πηγαίου κώδικα. Όπως και νά 'χει, δεν πρέπει να στέλνετε όμως ερωτήσεις για το -CURRENT στην FreeBSD-questions.
|
||||
** Για οποιοδήποτε πρόβλημα _μπορεί_ να έχει σχέση με το υλικό του υπολογιστή σας (hardware), πείτε μας και για το υλικό που έχει ο υπολογιστής. Αν έχετε αμφιβολίες, υποθέστε ότι μάλλον έχει σχέση με το υλικό. Τι είδος CPU χρησιμοποιείτε; Πόσο γρήγορη; Τι μητρική; Πόσο μνήμη; Τι περιφερειακά;
|
||||
+
|
||||
Γενικά πρέπει να χρησιμοποιήσετε και την κρίση σας εδώ, αλλά συνήθως η έξοδος της εντολής man:dmesg[8] μπορεί να αποδειχθεί χρήσιμη, αφού μας λέει όχι μόνο τι υλικό χρησιμοποιείτε, αλλά και ποια έκδοση του FreeBSD τρέχετε.
|
||||
** Αν βλέπετε κάποια μηνύματα λάθους, μην γράφετε "Βλέπω κάποια μηνύματα λάθους", αλλά γράψτε (για παράδειγμα) "Βλέπω το μήνυμα λάθους 'No route to host'".
|
||||
** Αν το σύστημα κάνει panic, μην πείτε "Το σύστημά μου έκανε panic", αλλά (για παράδειγμα) "το σύστημά μου έκανε panic με το μήνυμα 'free vnode isn't'".
|
||||
** Αν έχετε κάποια δυσκολία με την εγκατάσταση του FreeBSD, πείτε μας σίγουρα τι υλικό έχετε. Πιο συγκεκριμένα, είναι σημαντικό να ξέρουμε τα IRQ και τις διευθύνσεις I/O για όλες τις κάρτες που έχετε εγκατεστημένες στο μηχάνημά σας.
|
||||
** Αν έχετε κάποιο πρόβλημα με το να καταφέρετε το PPP να δουλέψει, περιγράψτε τις ρυθμίσεις σας. Ποια έκδοση του PPP τρέχετε; Πως συνδέεστε και με ποιο τρόπο ελέγχεται η ταυτότητά σας; Έχετε στατική ή δυναμική IP διεύθυνση; Τι μηνύματα παίρνετε στα log αρχεία σας;
|
||||
|
||||
* Πολλές από τις πληροφορίες που θέλετε συνήθως να στείλετε, περιλαμβάνονται στην έξοδο προγραμμάτων όπως το man:dmesg[8], ή στα μηνύματα που βλέπετε στην κονσόλα σας, τα οποία τις πιο πολλές φορές σώζονται και στο αρχείο [.filename]#/var/log/messages#. Μην δοκιμάσετε να αντιγράψετε αυτές τις πληροφορίες ξαναγράφοντάς τες. Είναι βαρετό και σχεδόν σίγουρα θα κάνετε κάποιο λάθος. Για να στείλετε τα περιεχόμενα κάποιου log αρχείου, είτε κάντε ένα αντίγραφο του αρχείου και χρησιμοποιήστε κάποιον επεξεργαστή κειμένου να κόψετε όσα κομμάτια δεν είναι σχετικά, ή αντιγράψτε και επικολλήστε ότι έχει σχέση στο μήνυμά σας. Για την έξοδο κάποιου προγράμματος, όπως π.χ. το man:dmesg[8], ανακατευθύνετε την έξοδο σε κάποιο αρχείο και χρησιμοποιήστε αυτό το αρχείο. Για παράδειγμα:
|
||||
+
|
||||
[source,bash]
|
||||
....
|
||||
% dmesg > /tmp/dmesg.out
|
||||
....
|
||||
+
|
||||
Αυτό θα στείλει την έξοδο της εντολής στο αρχείο [.filename]#/tmp/dmesg.out#.
|
||||
* Αν τα κάνετε όλα αυτά, και πάλι δεν πάρετε κάποια απάντηση μπορεί να υπάρχουν άλλοι λόγοι. Για παράδειγμα, μπορεί το πρόβλημα να είναι τόσο περίπλοκο που κανείς δεν ξέρει την απάντηση, ή μπορεί το άτομο που ξέρει να απαντήσει να μην ήταν διαθέσιμο. Αν δεν πάρετε απάντηση για π.χ. πάνω από μια βδομάδα, μπορεί να βοηθήσει αν ξαναστείλετε το μήνυμα. Πάντως, αν δεν πάρετε απάντηση ούτε την δεύτερη φορά, μάλλον δεν θα βρείτε βοήθεια σε αυτή τη λίστα. Το να στέλνετε το μήνυμα ξανά και ξανά το μόνο που θα έχει σαν αποτέλεσμα θα είναι να μην θέλει κανείς να ασχοληθεί μαζί του.
|
||||
|
||||
Για να ανακεφαλαιώσουμε, ας πούμε ότι ξέρετε την απάντηση στην παρακάτω ερώτηση (ναι είναι η ίδια ερώτηση και στις δυο περιπτώσεις). Μπορείτε να διαλέξετε ποια από τις δυο αυτές ερωτήσεις θα προτιμούσατε να απαντήσετε:
|
||||
|
||||
.Παράδειγμα 1
|
||||
[example]
|
||||
====
|
||||
|
||||
....
|
||||
Subject: HELP!!?!??
|
||||
I just can't get hits damn silly FereBSD system to
|
||||
workd, and Im really good at this tsuff, but I have never seen
|
||||
anythign sho difficult to install, it jst wont work whatever I try
|
||||
so why don't y9ou guys tell me what I doing wrong.
|
||||
....
|
||||
====
|
||||
|
||||
.Παράδειγμα 2
|
||||
[example]
|
||||
====
|
||||
|
||||
....
|
||||
Subject: Problems installing FreeBSD
|
||||
|
||||
I've just got the FreeBSD 2.1.5 CDROM from Walnut Creek, and I'm having a lot
|
||||
of difficulty installing it. I have a 66 MHz 486 with 16 MB of
|
||||
memory and an Adaptec 1540A SCSI board, a 1.2GB Quantum Fireball
|
||||
disk and a Toshiba 3501XA CDROM drive. The installation works just
|
||||
fine, but when I try to reboot the system, I get the message
|
||||
``Missing Operating System''.
|
||||
....
|
||||
====
|
||||
|
||||
== Πως να συμπληρώσετε μια ερώτηση
|
||||
|
||||
Συχνά θα θέλετε να στείλετε κάποιες παραπάνω πληροφορίες για μια ερώτηση που έχετε κάνει ήδη. Ο καλύτερος τρόπος να το κάνετε αυτό είναι να απαντήσετε στο ίδιο το αρχικό σας μήνυμα. Αυτό έχει τρία πλεονεκτήματα:
|
||||
|
||||
. Περιλαμβάνετε και το αρχικό σας μήνυμα, κι έτσι κάποιος που διαβάζει θα ξέρει σε τι αναφέρεστε. Βεβαίως, μην ξεχάσετε να κόψετε ότι δεν είναι απαραίτητο.
|
||||
. Το κείμενο της γραμμής θέματος παραμένει το ίδιο (θυμηθήκατε να βάλετε κάποιο θέμα, σωστά;). Πολλά προγράμματα ηλεκτρονικής αλληλογραφίας ταξινομούν τα μηνύματα ανάλογα με το θέμα τους. Αυτό βοηθάει τα σχετικά μηνύματα να μένουν μαζί.
|
||||
. Οι αριθμοί αναφοράς στην επικεφαλίδα του μηνύματος θα δείχνουν στο προηγούμενο γράμμα. Κάποια προγράμματα ηλεκτρονικής αλληλογραφίας, όπως το http://www.mutt.org/[mutt], μπορούν να _ομαδοποιήσουν_ τα μηνύματα, δείχνοντας ακριβώς τι σχέση έχουν το ένα με το άλλο.
|
||||
|
||||
== Πως να απαντήσετε μια ερώτηση
|
||||
|
||||
Πριν απαντήσετε κάποια ερώτηση στην FreeBSD-questions, σκεφτείτε τα εξής:
|
||||
|
||||
. Πολλά πράγματα από αυτά που ισχύουν για τις ερωτήσεις, ισχύουν και για τις απαντήσεις. Διαβάστε τα πρώτα, παραπάνω
|
||||
. Μήπως κάποιος άλλος έχει απαντήσει στην ερώτηση; Ο πιο εύκολος τρόπος να το ελέγξετε αυτό είναι να ταξινομήσετε τα εισερχόμενα γράμματά σας ανάλογα με το θέμα τους. Έτσι (ας ελπίσουμε) θα δείτε την ερώτηση να ακολουθείται από τις απαντήσεις (όταν αυτές υπάρχουν) όλες μαζί.
|
||||
+
|
||||
Αν κάποιος άλλος έχει ήδη απαντήσει δεν σημαίνει πως εσείς δεν πρέπει να απαντήσετε κάπως διαφορετικά. Αλλά έχει νόημα να διαβάστε πρώτα όλες τις απαντήσεις.
|
||||
. Έχετε να προσθέσετε κάτι σε όσα έχουν ήδη γραφτεί; Γενικά, απαντήσεις του στυλ "Ναι, κι εγώ" δεν βοηθάνε και πολύ. Υπάρχουν βέβαια και εξαιρέσεις, όπως όταν, για παράδειγμα, κάποιος περιγράφει ένα πρόβλημα που έχει και δεν ξέρει αν είναι δικό του φταίξιμο ή κάτι δεν πάει καλά είτε με το υλικό είτε με το λογισμικό του. Αν στείλετε ωστόσο ένα "κι εγώ" μήνυμα, φροντίστε τουλάχιστον να έχει όλες τις πληροφορίες που χρειάζονται.
|
||||
. Είστε σίγουρος ότι καταλαβαίνετε την ερώτηση; Πολύ συχνά, αυτός που ρωτάει έχει μπερδευτεί ή δεν έχει εκφραστεί με αρκετή σαφήνεια. Ακόμα και με την καλύτερη δυνατή γνώση του συστήματος, είναι εύκολο να στείλετε μια απάντηση που δεν απαντά στην ερώτηση. Αυτό δεν βοηθά και πολύ. Θα αφήσετε αυτόν που ρωτάει πιο θυμωμένο και μπερδεμένο από πριν. Αν κανείς άλλος δεν απαντήσει, και δεν είστε ούτε εσείς σίγουρος, μπορείτε πάντα να ζητήσετε πιο πολλές πληροφορίες.
|
||||
. Είστε σίγουρος ότι η απάντηση σας είναι σωστή; Αν όχι περιμένετε μια μέρα περίπου. Αν κανείς δεν στείλει κάποια καλύτερη απάντηση, μπορείτε να απαντήσετε εσείς, γράφοντας για παράδειγμα "Δεν ξέρω αν αυτό είναι σωστό, αλλά αφού κανείς άλλος δεν έχει απαντήσει, γιατί δεν δοκιμάζεις να αντικαταστήσεις το ATAPI CDROM σου με ένα βάτραχο;".
|
||||
. Αν δεν υπάρχει κάποιος καλός λόγος για να κάνετε κάτι διαφορετικό, απαντήστε και στον αποστολέα και στην FreeBSD-questions. Πολύς κόσμος στην FreeBSD-questions είναι "παρατηρητές": μαθαίνουν διαβάζοντας τα μηνύματα που στέλνονται σαν απαντήσεις στους άλλους. Αν μεταφέρετε κάποιο μήνυμα γενικού ενδιαφέροντος εκτός λίστας, στερείτε αυτούς τους αναγνώστες από μια πολύτιμη πηγή πληροφοριών. Προσοχή όμως με τις ομαδικές απαντήσεις. Πολύς κόσμος στέλνει απαντήσεις με εκατοντάδες Cc αντίγραφα. Σε αυτή την περίπτωση, κόψτε τις κατάλληλες Cc διευθύνσεις.
|
||||
. Συμπεριλάβετε το σχετικό κείμενο από το αρχικό μήνυμα. Αφαιρέστε ότι δεν χρειάζεται, αλλά μην το παρακάνετε. Θα πρέπει να μπορεί κάποιος που δεν διάβασε την αρχική ερώτηση να καταλάβει για τι πράγμα μιλάτε.
|
||||
. Χρησιμοποιήστε κάποια τεχνική για να ξεχωρίσετε ποιο κείμενο προέρχεται από το αρχικό μήνυμα, και ποιο έχετε προσθέσει εσείς. Προσωπικά βρίσκω ότι βάζοντας στην αρχή κάθε γραμμής του αρχικού μηνύματος ένα "`>`" είναι αρκετά καλός τρόπος να γίνει κάτι τέτοιο. Το να αφήνετε κενά μετά τις γραμμές που αρχίζουν με "`>`" και να αφήνετε μια κενή γραμμή μεταξύ του αρχικού κειμένου και του δικού σας επίσης βοηθά στο να είναι πιο εύκολο να διαβαστεί το αποτέλεσμα.
|
||||
. Βάλτε τις απαντήσεις σας στο σωστό μέρος (μετά το κείμενο στο οποίο απαντάτε). Είναι πολύ δύσκολο να διαβαστεί μια ομάδα απαντήσεων όπου κάθε απάντηση έρχεται πριν το κείμενο στο οποίο απαντάει.
|
||||
. Τα πιο πολλά προγράμματα ηλεκτρονικής αλληλογραφίας αλλάζουν το θέμα προσθέτοντας στην αρχή ένα "Re: ". Αν το δικό σας πρόγραμμα δεν το κάνει αυτόματα, θα πρέπει να το κάνετε εσείς.
|
||||
. Αν ο αποστολέας δεν ακολούθησε τις συμβάσεις μορφοποίησης (γραμμές πολύ μεγάλες, άσχετη ή ασαφής γραμμή θέματος), _προτιμήστε_ να το διορθώσετε. Στην περίπτωση ακατάλληλης γραμμής θέματος (όπως π.χ "HELP!!??"), αλλάξτε το θέμα σε κάτι όπως "Re: Difficulties with sync PPP (was: HELP!!??)". Έτσι όσοι προσπαθούν να παρακολουθήσουν αυτή την ομάδα μηνυμάτων θα δυσκολευτούν λιγότερο να την παρακολουθήσουν.
|
||||
+
|
||||
Σε τέτοιες περιπτώσεις είναι καλό να λέτε τι κάνατε και γιατί, αλλά προσπαθήστε να μην είστε αγενείς. Αν δείτε ότι δεν μπορείτε να απαντήσετε χωρίς να είστε αγενείς, καλύτερα μην απαντάτε.
|
||||
+
|
||||
Αν απλά θέλετε να απαντήσετε σε ένα μήνυμα λόγω της κακής του μορφοποίησης, απαντήστε καλύτερα στον αποστολέα, κι όχι στη λίστα. Μπορείτε απλώς να του στείλετε αυτό το κείμενο σαν απάντηση, αν θέλετε.
|
||||
433
documentation/content/el/articles/gjournal-desktop/_index.adoc
Normal file
433
documentation/content/el/articles/gjournal-desktop/_index.adoc
Normal file
|
|
@ -0,0 +1,433 @@
|
|||
---
|
||||
title: Υλοποίηση του UFS Journaling σε ένα Desktop Υπολογιστή
|
||||
authors:
|
||||
- author: Μανώλης Κιαγιάς
|
||||
email: manolis@FreeBSD.org
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "general"]
|
||||
---
|
||||
|
||||
= Υλοποίηση του UFS Journaling σε ένα Desktop Υπολογιστή
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
ifeval::["{backend}" == "html5"]
|
||||
:imagesdir: ../../../images/articles/gjournal-desktop/
|
||||
endif::[]
|
||||
|
||||
ifeval::["{backend}" == "pdf"]
|
||||
:imagesdir: ../../../../static/images/articles/gjournal-desktop/
|
||||
endif::[]
|
||||
|
||||
ifeval::["{backend}" == "epub3"]
|
||||
:imagesdir: ../../../../static/images/articles/gjournal-desktop/
|
||||
endif::[]
|
||||
|
||||
include::shared/authors.adoc[]
|
||||
include::shared/el/mailing-lists.adoc[lines=10..-1]
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Ένα σύστημα αρχείων που διαθέτει δυνατότητα journaling, χρησιμοποιεί ένα αρχείο καταγραφής (journal ή ημερολόγιο) στο οποίο γίνονται αρχικά οι εγγραφές πριν καταχωρηθούν στο κανονικό σύστημα αρχείων. Με τον τρόπο αυτό μπορεί να εξασφαλιστεί η ακεραιότητα του συστήματος αρχείων στην περίπτωση κατάρρευσης ή απότομης διακοπής της τροφοδοσίας του. Η χρήση του journaling διασφαλίζει την συνολική ακεραιότητα του συστήματος αρχείων, αλλά δεν μπορεί να διασφαλίσει ότι δεν θα έχουμε απώλεια δεδομένων σε μεμονωμένα αρχεία τα οποία ήταν ενδεχομένως σε χρήση την ώρα της κατάρρευσης. Ένα πλεονέκτημα του journaling είναι η ελαχιστοποίηση του χρόνου που απαιτείται για τον έλεγχο του συστήματος αρχείων σε περίπτωση κακού τερματισμού. Το σύστημα αρχείων UFS που χρησιμοποιείται από το FreeBSD δεν διαθέτει δικό του ενσωματωμένο journaling. Ωστόσο, το πλαίσιο λειτουργιών GEOM στο FreeBSD 7._X_ παρέχει ένα νέο journal class το οποίο δίνει αυτή τη δυνατότητα, και μάλιστα ανεξάρτητα από το σύστημα αρχείων που χρησιμοποιείται. Στο άρθρο αυτό εξετάζουμε πως μπορούμε να χρησιμοποιήσουμε το journaling σε ένα τυπικό desktop μηχάνημα για εργασία γραφείου.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[introduction]]
|
||||
== Εισαγωγή
|
||||
|
||||
Αν και οι περισσότεροι εξυπηρετητές που χρησιμοποιούνται σε περιβάλλοντα παραγωγής είναι καλά προστατευμένοι από μη-αναμενόμενους τερματισμούς, δεν συμβαίνει το ίδιο και με το συνηθισμένο desktop μηχάνημα το οποίο βρίσκεται στα χέρια του τελικού χρήστη. Αυτό συνήθως δεν προστατεύεται από διακοπές ρεύματος, ενώ δεν είναι και οι λίγες οι περιπτώσεις που ο κακός τερματισμός οφείλεται σε λανθασμένο χειρισμό του χρήστη (κατά λάθος πίεση του reset κ.α.). Στις περισσότερες από αυτές τις περιπτώσεις, τα Soft Updates που χρησιμοποιεί το σύστημα αρχείων UFS μπορούν να το προστατεύσουν αρκετά καλά, αν και μετά τον προβληματικό τερματισμό απαιτείται συνήθως έλεγχος του συστήματος αρχείων, ο οποίος ακόμα και όταν γίνεται στο παρασκήνιο, διαρκεί αρκετό χρόνο. Σε σπάνιες περιπτώσεις, το σύστημα αρχείων μπορεί να υποστεί ζημιά η οποία να χρειάζεται χειροκίνητη επέμβαση για να διορθωθεί, ενώ είναι πιθανή και η απώλεια δεδομένων.
|
||||
|
||||
Η νέα δυνατότητα για journaling που παρέχεται από το GEOM μπορεί να βοηθήσει ιδιαίτερα στις παραπάνω περιπτώσεις, ελαχιστοποιώντας το χρόνο που απαιτείται για τον έλεγχο του συστήματος αρχείων και εξασφαλίζοντας ότι το σύστημα θα επανέλθει πολύ σύντομα σε σταθερή κατάσταση.
|
||||
|
||||
Το άρθρο αυτό περιγράφει μια διαδικασία για την υλοποίηση του UFS journaling σε ένα τυπικό desktop PC (στο οποίο χρησιμοποιείται ένας σκληρός δίσκος τόσο για το σύστημα όσο και για τα δεδομένα). Θα πρέπει να ακολουθήσετε αυτές τις οδηγίες κατά τη διάρκεια μιας νέας εγκατάστασης του FreeBSD. Τα βήματα είναι αρκετά απλά και δεν απαιτούν ιδιαίτερα πολύπλοκες εντολές.
|
||||
|
||||
Αφού διαβάσετε αυτό το άρθρο, θα ξέρετε:
|
||||
|
||||
* Πως να δεσμεύσετε κάποιο χώρο στο δίσκο για το journaling κατά τη διάρκεια μιας νέας εγκατάστασης του FreeBSD.
|
||||
* Πως να φορτώσετε και να ενεργοποιήσετε το άρθρωμα (module) `geom_journal` (ή πως να ενσωματώσετε τη λειτουργία του στον προσαρμοσμένο πυρήνα σας).
|
||||
* Πως να μετατρέψετε τα υπάρχοντα συστήματα αρχείων σας ώστε να χρησιμοποιούν journaling, και τι παραμέτρους θα πρέπει να δώσετε στο [.filename]#/etc/fstab# ώστε να τα προσαρτήσετε.
|
||||
* Πως να ενεργοποιήσετε το journaling σε νέες (άδειες) κατατμήσεις.
|
||||
* Πως να αντιμετωπίσετε προβλήματα που σχετίζονται με το journaling.
|
||||
|
||||
Πριν διαβάσετε αυτό το άρθρο, θα πρέπει:
|
||||
|
||||
* Να κατανοείτε βασικές έννοιες του UNIX(R) και του FreeBSD.
|
||||
* Να είστε εξοικειωμένος με τη διαδικασία εγκατάστασης του FreeBSD και το βοηθητικό πρόγραμμα Sysinstall.
|
||||
|
||||
[WARNING]
|
||||
====
|
||||
Η διαδικασία που περιγράφεται εδώ, προορίζεται για χρήση σε νέες εγκαταστάσεις, όπου δεν υπάρχουν ακόμα αποθηκευμένα δεδομένα χρήστη. Αν και είναι δυνατόν να τροποποιήσετε και να επεκτείνετε τη διαδικασία αυτή σε μηχανήματα που βρίσκονται ήδη σε κανονική χρήση, θα πρέπει οπωσδήποτε να _πάρετε αντίγραφα ασφαλείας_ όλων των σημαντικών δεδομένων πριν επιχειρήσετε οποιαδήποτε αλλαγή. Όταν κάνετε αλλαγές στα συστήματα αρχείων και στις κατατμήσεις των δίσκων σε τέτοιο επίπεδο, είναι πιθανόν να κάνετε λάθη τα οποία θα αποβούν μοιραία για τα δεδομένα σας.
|
||||
====
|
||||
|
||||
[[understanding-journaling]]
|
||||
== Κατανόηση του Journaling στο FreeBSD
|
||||
|
||||
Το journaling που παρέχεται από το GEOM στο FreeBSD 7._X_ δεν είναι προσανατολισμένο σε κάποιο συγκεκριμένο σύστημα αρχείων (όπως για παράδειγμα συμβαίνει με το σύστημα αρχείων ext3 στο Linux(R)) αλλά λειτουργεί σε επίπεδο block. Αν και αυτό σημαίνει ότι μπορεί να χρησιμοποιηθεί σε διαφορετικά συστήματα αρχείων, για το FreeBSD 7.0-RELEASE, είναι δυνατή η χρήση του μόνο στο UFS2.
|
||||
|
||||
Οι λειτουργίες journaling παρέχονται φορτώνοντας το άρθρωμα [.filename]#geom_journal.ko# στον πυρήνα (ή ενσωματώνοντας τη λειτουργία του σε ένα προσαρμοσμένο πυρήνα) και χρησιμοποιώντας την εντολή `gjournal` για τη ρύθμιση των συστημάτων αρχείων. Η χρήση του journaling είναι γενικά θεμιτή σε μεγάλα συστήματα αρχείων, όπως είναι το [.filename]#/usr#. Θα χρειαστεί ωστόσο να έχετε δεσμεύσει από πριν κάποιο ελεύθερο χώρο στο δίσκο.
|
||||
|
||||
Όταν γίνεται χρήση του journaling σε ένα σύστημα αρχείων, απαιτείται κάποιος ελεύθερος χώρος για να αποθηκεύονται τα δεδομένα του ημερολογίου καταγραφής (journal). Ο χώρος του δίσκου που αποθηκεύονται τα πραγματικά δεδομένα αναφέρεται ως __παροχέας δεδομένων (data provider)__, ενώ ο χώρος στον οποίο αποθηκεύεται το ημερολόγιο ονομάζεται _παροχέας ημερολογίου (journal provider)._ Σε περίπτωση που το journaling γίνεται σε σύστημα αρχείων το οποίο έχει ήδη δεδομένα, οι δύο παροχείς πρέπει να βρίσκονται σε διαφορετικές κατατμήσεις. Σε περίπτωση χρήσης journaling σε νέα κατάτμηση, έχετε την επιλογή να χρησιμοποιήσετε τον ίδιο παροχέα και για τα δεδομένα και για το ημερολόγιο. Σε κάθε περίπτωση, με τη χρήση της εντολής `gjournal`, οι δύο παροχείς συνδυάζονται για να δημιουργήσουν το τελικό σύστημα αρχείων που υποστηρίζει journaling. Για παράδειγμα:
|
||||
|
||||
* Θέλετε να χρησιμοποιήσετε journaling στο σύστημα αρχείων [.filename]#/usr#, το οποίο βρίσκεται στο [.filename]#/dev/ad0s1f# (το σύστημα αρχείων περιέχει ήδη δεδομένα).
|
||||
* Έχετε κρατήσει κάποιο κενό χώρο στο δίσκο, σε μια κατάτμηση στο [.filename]#/dev/ad0s1g#.
|
||||
* Με την χρήση της εντολής `gjournal`, θα δημιουργηθεί μια νέα συσκευή, η [.filename]#/dev/ad0s1f.journal#, όπου το [.filename]#/dev/ad0s1f# θα είναι ο παροχέας δεδομένων και το [.filename]#/dev/ad0s1g# θα είναι ο παροχέας ημερολογίου. Η νέα αυτή συσκευή θα χρησιμοποιείται πλέον για όλες τις εργασίες που θα εκτελούνται στο σύστημα αρχείων.
|
||||
|
||||
Ο χώρος στο δίσκο που απαιτείται για το ημερολόγιο εξαρτάται από τη χρήση του συστήματος αρχείων, και όχι από το μέγεθος του παροχέα δεδομένων. Για παράδειγμα, σε ένα τυπικό μηχάνημα γραφείου, θα είναι αρκετό να χρησιμοποιήσετε 1 GB για τον παροχέα ημερολογίου του συστήματος αρχείων [.filename]#/usr#, ενώ σε ένα μηχάνημα το οποίο χρησιμοποιείται σε εργασίες όπου οι εγγραφές στο δίσκο είναι πολύ συχνές και μεγάλες σε μέγεθος (π.χ. επεξεργασία video) θα χρειαστείτε περισσότερο χώρο. Σε περίπτωση που ο χώρος που έχει δεσμευθεί για το ημερολόγιο εξαντληθεί πριν γίνει δυνατή η εγγραφή δεδομένων στο κανονικό σύστημα αρχείων, το σύστημα θα καταρρεύσει με kernel panic.
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Τα μεγέθη που προτείνονται εδώ για τον παροχέα ημερολογίου, είναι απίθανο να προκαλέσουν πρόβλημα σε τυπική χρήση γραφείου (περιήγηση στο διαδίκτυο, επεξεργασία κειμένου, αναπαραγωγή πολυμέσων). Αν ωστόσο το είδος της εργασίας σας περιλαμβάνει έντονη χρήση του σκληρού δίσκου, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κανόνα για τη μεγαλύτερη δυνατή αξιοπιστία: όλη η μνήμη RAM του συστήματος σας πρέπει να χωράει στο 30% του χώρου του ημερολογίου. Για παράδειγμα, αν το σύστημα σας έχει 1 GB RAM, θα πρέπει να δημιουργήσετε ημερολόγιο μεγέθους περίπου 3.3 GB. (Πολλαπλασιάστε το μέγεθος της RAM με το 3.3 για να βρείτε το μέγεθος του ημερολογίου.)
|
||||
====
|
||||
|
||||
Για περισσότερες πληροφορίες σχετικά με το journaling, παρακαλούμε διαβάστε τη σελίδα manual του man:gjournal[8].
|
||||
|
||||
[[reserve-space]]
|
||||
== Βήματα Κατά την Εγκατάσταση του FreeBSD
|
||||
|
||||
=== Δέσμευση Χώρου στο Δίσκο για το Journaling
|
||||
|
||||
Ένα τυπικό desktop μηχάνημα, έχει συνήθως ένα σκληρό δίσκο στον οποίο αποθηκεύονται τόσο το λειτουργικό όσο και τα δεδομένα του χρήστη. Συνήθως, οι προεπιλεγμένες κατατμήσεις που δημιουργούνται από το Sysinstall είναι περίπου σωστές: Ένα desktop μηχάνημα δεν χρειάζεται μεγάλη κατάτμηση [.filename]#/var#, ενώ το μεγαλύτερο μέρος του ελεύθερου χώρου αποδίδεται στο [.filename]#/usr#, αφού στους υποκαταλόγους του αποθηκεύονται τα δεδομένα του χρήστη και γίνονται και οι εγκαταστάσεις του λογισμικού.
|
||||
|
||||
Χρησιμοποιώντας τις προεπιλεγμένες κατατμήσεις (αυτές που δημιουργεί ο επεξεργαστής Disklabel όταν πιέσετε το kbd:[A]), δεν μένει καθόλου ελεύθερος χώρος. Ωστόσο κάθε κατάτμηση στην οποία θέλετε να χρησιμοποιήσετε journaling, χρειάζεται ακόμα μία για την αποθήκευση του ημερολογίου. Καθώς η κατάτμηση [.filename]#/usr# είναι η μεγαλύτερη, το πλέον λογικό είναι να την μικρύνουμε ελαφρά ώστε να εξασφαλίσουμε το χώρο που απαιτείται για το journaling.
|
||||
|
||||
Στο παράδειγμα μας, χρησιμοποιείται ένας δίσκος μεγέθους 80 GB. Στην ακόλουθη εικόνα φαίνονται οι προεπιλεγμένες κατατμήσεις όπως δημιουργούνται από τον επεξεργαστή Disklabel κατά την εγκατάσταση:
|
||||
|
||||
image::disklabel1.png[]
|
||||
|
||||
Αν τα παραπάνω μεγέθη είναι περίπου τα επιθυμητά για την εγκατάσταση σας, είναι αρκετά εύκολο να ρυθμιστούν ώστε να γίνει δυνατή η χρήση του journaling. Απλώς χρησιμοποιήστε τα πλήκτρα με τα βελάκια για να μετακινήσετε την μπάρα επιλογής στην κατάτμηση [.filename]#/usr# και πιέστε το kbd:[D] για να την διαγράψετε.
|
||||
|
||||
Τώρα, μετακινήστε την μπάρα επιλογής στο όνομα του σκληρού δίσκου στο άνω μέρος της οθόνης, και πιέστε kbd:[C] για να δημιουργήσετε μια νέα κατάτμηση για το [.filename]#/usr#. Η νέα αυτή κατάτμηση θα πρέπει να είναι μικρότερη κατά 1 GB (αν έχετε σκοπό να χρησιμοποιήσετε journaling μόνο στο [.filename]#/usr#), ή κατά 2 GB (αν έχετε σκοπό να χρησιμοποιήσετε journaling τόσο στο [.filename]#/usr# όσο και στο [.filename]#/var#). Στο διάλογο που θα εμφανιστεί, επιλέξτε να δημιουργήσετε σύστημα αρχείων (file system) και γράψτε [.filename]#/usr# ως το σημείο προσάρτησης (mount point).
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Είναι αναγκαία η χρήση journaling στην κατάτμηση [.filename]#/var# partition; Φυσιολογικά, το journaling έχει νόημα μόνο σε αρκετά μεγάλες κατατμήσεις. Δεν πρόκειται ωστόσο να δημιουργηθεί κάποιο πρόβλημα αν χρησιμοποιήσετε journaling στο [.filename]#/var#. Αν η χρήση του συγκεκριμένου συστήματος αρχείων είναι μικρή (το οποίο είναι και το πιθανότερο σε ένα dekstop μηχάνημα) ίσως είναι καλή ιδέα να χρησιμοποιήσετε λιγότερο χώρο στο δίσκο για το ημερολόγιο του.
|
||||
|
||||
Στο παράδειγμα μας, θα ενεργοποιήσουμε το journaling τόσο στο [.filename]#/usr# όσο και στο [.filename]#/var#. Μπορείτε φυσικά να προσαρμόσετε αυτή τη διαδικασία σύμφωνα με τις ανάγκες σας.
|
||||
====
|
||||
|
||||
Για να απλοποιήσουμε, όσο είναι δυνατόν, τη διαδικασία, θα χρησιμοποιήσουμε το Sysinstall για να δημιουργήσουμε τις κατατμήσεις που απαιτούνται για το journaling. Ωστόσο, κατά τη διάρκεια της εγκατάστασης, το Sysinstall επιμένει να ρωτάει για σημεία προσάρτησης σε κάθε κατάτμηση που δημιουργείται. Στο σημείο αυτό, δεν υπάρχουν σημεία προσάρτησης για τις κατατμήσεις μας, και στην πραγματικότητα __δεν τα χρειαζόμαστε καν__. Οι κατατμήσεις που χρησιμοποιούνται για τα ημερολόγια, δεν προσαρτώνται κάπου.
|
||||
|
||||
Για να αποφύγουμε αυτά τα προβλήματα με το Sysinstall, θα δημιουργήσουμε αυτές τις κατατμήσεις ως χώρο swap. Στο swap δεν γίνεται ποτέ προσάρτηση, ενώ και το Sysinstall δεν έχει κανένα πρόβλημα να δημιουργήσει όσες τέτοιες κατατμήσεις χρειαζόμαστε. Μετά την πρώτη εκκίνηση, θα πρέπει ωστόσο να επεξεργαστούμε το αρχείο [.filename]#/etc/fstab# και να αφαιρέσουμε τις έξτρα καταχωρήσεις swap που δημιουργήθηκαν κατά την εγκατάσταση.
|
||||
|
||||
Για να δημιουργήσετε τους χώρους swap, χρησιμοποιήστε πάλι τα πλήκτρα με τα βελάκια για να μετακινήσετε την μπάρα επιλογής στο άνω μέρος της οθόνης του επεξεργαστή Disklabel, έτσι ώστε να είναι επιλεγμένο το όνομα του σκληρού δίσκου. Κατόπιν, πιέστε kbd:[N], δώστε το επιθυμητό μέγεθος (_1024M_), και επιλέξτε "swap space" από το μενού που εμφανίζεται. Επαναλάβετε για κάθε ημερολόγιο που επιθυμείτε να δημιουργήσετε. Στο παράδειγμα μας, δημιουργούμε δύο κατατμήσεις στις οποίες θα αποθηκεύονται τα ημερολόγια των [.filename]#/usr# και [.filename]#/var#. Το τελικό αποτέλεσμα φαίνεται στην παρακάτω εικόνα:
|
||||
|
||||
image::disklabel2.png[]
|
||||
|
||||
Μόλις ολοκληρώσετε τη δημιουργία των κατατμήσεων, σας συνιστούμε να σημειώσετε τα ονόματα τους και τα σημεία προσάρτησης για να τα έχετε πρόχειρα κατά τη φάση των ρυθμίσεων. Με τον τρόπο αυτό θα αποφύγετε τυχόν λάθη που μπορεί να καταστρέψουν την εγκατάσταση σας. Ο παρακάτω πίνακας δείχνει τις σημειώσεις μας για το παράδειγμα μας:
|
||||
|
||||
.Κατατμήσεις και Ημερολόγια
|
||||
[cols="1,1,1", options="header"]
|
||||
|===
|
||||
| Κατάτμηση
|
||||
| Σημείο Προσάρτησης
|
||||
| Ημερολόγιο
|
||||
|
||||
|ad0s1d
|
||||
|/var
|
||||
|ad0s1h
|
||||
|
||||
|ad0s1f
|
||||
|/usr
|
||||
|ad0s1g
|
||||
|===
|
||||
|
||||
Συνεχίστε την εγκατάσταση όπως συνήθως. Σας συνιστούμε ωστόσο να μην εγκαταστήσετε εφαρμογές (πακέτα) μέχρι να ολοκληρώσετε τη διαδικασία του journaling.
|
||||
|
||||
[[first-boot]]
|
||||
=== Πρώτη Εκκίνηση
|
||||
|
||||
Το σύστημα σας θα ξεκινήσει φυσιολογικά, αλλά θα χρειαστεί να επεξεργαστείτε το [.filename]#/etc/fstab# και να διαγράψετε τις καταχωρήσεις για τις κατατμήσεις swap που θα χρησιμοποιηθούν στα ημερολόγια. Φυσιολογικά, η κατάτμηση που χρησιμοποιείται ως κανονικό swap τελειώνει με το γράμμα "b" (π.χ. ad0s1b στο παράδειγμα μας). Διαγράψτε όλες τις άλλες καταχωρήσεις για το swap και επανεκκινήστε το σύστημα σας, ώστε να σταματήσει το FreeBSD να τις χρησιμοποιεί.
|
||||
|
||||
Μόλις το σύστημα εκκινήσει ξανά, θα είμαστε έτοιμοι να ρυθμίσουμε το journaling.
|
||||
|
||||
[[configure-journal]]
|
||||
== Ρύθμιση του Journaling
|
||||
|
||||
[[running-gjournal]]
|
||||
=== Εκτέλεση της Εντολής `gjournal`
|
||||
|
||||
Έχοντας προετοιμάσει όλες τις απαραίτητες κατατμήσεις, είναι σχετικά απλό να ρυθμίσουμε το journaling. Θα πρέπει να μεταβούμε σε κατάσταση ενός χρήστη, για το λόγο αυτό εισέλθετε στο σύστημα ως `root` και γράψτε:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# shutdown now
|
||||
....
|
||||
|
||||
Πιέστε kbd:[Enter] για να βγείτε στο προεπιλεγμένο κέλυφος. Θα πρέπει να αποπροσαρτήσουμε τις κατατμήσεις στις οποίες θα γίνει το journaling, στο παράδειγμα μας τις [.filename]#/usr# και [.filename]#/var#:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# umount /usr /var
|
||||
....
|
||||
|
||||
Φορτώστε το άρθρωμα του πυρήνα που απαιτείται για το journaling:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal load
|
||||
....
|
||||
|
||||
Χρησιμοποιήστε τώρα τις σημειώσεις σας για να καθορίσετε ποια κατάτμηση χρησιμοποιείται για κάθε ημερολόγιο. Στο παράδειγμα μας, το [.filename]#/usr# βρίσκεται στο [.filename]#ad0s1f# και το ημερολόγιο του θα είναι στο [.filename]#ad0s1g#, ενώ το [.filename]#/var# είναι στο [.filename]#ad0s1d# και το ημερολόγιο του θα είναι στο [.filename]#ad0s1h#. Θα χρειαστείτε τις παρακάτω εντολές:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal label ad0s1f ad0s1g
|
||||
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
|
||||
GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
|
||||
# gjournal label ad0s1d ad0s1h
|
||||
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
|
||||
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
|
||||
....
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Αν ο τελευταίος τομέας κάποιας από τις κατατμήσεις είναι σε χρήση, η εντολή `gjournal` θα σας επιστρέψει ένα μήνυμα λάθους. Θα πρέπει να εκτελέσετε την εντολή χρησιμοποιώντας την παράμετρο `-F` με την οποία θα υποχρεώσετε την επανεγγραφή του τομέα, π.χ.:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal label -f ad0s1d ad0s1h
|
||||
....
|
||||
|
||||
Μια που πρόκειται για νέα εγκατάσταση, είναι μάλλον απίθανο να προκαλέσετε κάποιο πρόβλημα.
|
||||
====
|
||||
|
||||
Στο σημείο αυτό δημιουργούνται δύο νέες συσκευές, οι [.filename]#ad0s1d.journal# και [.filename]#ad0s1f.journal#. Αυτές αντιπροσωπεύουν τις κατατμήσεις [.filename]#/var# και [.filename]#/usr# που θα πρέπει να προσαρτήσουμε. Πριν τις προσαρτήσουμε ωστόσο, θα πρέπει να θέσουμε την επιλογή journal και να αναιρέσουμε την επιλογή Soft Updates:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# tunefs -J enable -n disable ad0s1d.journal
|
||||
tunefs: gjournal set
|
||||
tunefs: soft updates cleared
|
||||
|
||||
# tunefs -J enable -n disable ad0s1f.journal
|
||||
tunefs: gjournal set
|
||||
tunefs: soft updates cleared
|
||||
....
|
||||
|
||||
Προσαρτήστε τώρα χειροκίνητα τις νέες συσκευές στα αντίστοιχα σημεία προσάρτησης (σημειώστε ότι μπορούμε πλέον να χρησιμοποιήσουμε την επιλογή `async` κατά την προσάρτηση):
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# mount -o async /dev/ad0s1d.journal /var
|
||||
# mount -o async /dev/ad0s1f.journal /usr
|
||||
....
|
||||
|
||||
Επεξεργαστείτε το αρχείο [.filename]#/etc/fstab# και ανανεώστε τις καταχωρήσεις για τις κατατμήσεις [.filename]#/usr# και [.filename]#/var#:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
/dev/ad0s1f.journal /usr ufs rw,async 2 2
|
||||
/dev/ad0s1d.journal /var ufs rw,async 2 2
|
||||
....
|
||||
|
||||
[WARNING]
|
||||
====
|
||||
Βεβαιωθείτε ότι οι παραπάνω καταχωρήσεις είναι σωστές, διαφορετικά θα έχετε πρόβλημα να εκκινήσετε κανονικά στην επόμενη επανεκκίνηση του συστήματος σας.
|
||||
====
|
||||
|
||||
Τέλος, επεξεργαστείτε το αρχείο [.filename]#/boot/loader.conf# και προσθέστε την ακόλουθη γραμμή ώστε να φορτώνεται το άρθρωμα man:gjournal[8] σε κάθε εκκίνηση:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
geom_journal_load="YES"
|
||||
....
|
||||
|
||||
Συγχαρητήρια! Το σύστημα σας είναι τώρα έτοιμο για journaling. Μπορείτε να γράψετε `exit` για να επιστρέψετε στην κανονική λειτουργία (πολλαπλών χρηστών) ή να επανεκκινήσετε το σύστημα σας (συνίσταται) για να ελέγξετε τις ρυθμίσεις σας. Κατά την εκκίνηση, θα δείτε μηνύματα όπως το παρακάτω:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150
|
||||
GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
|
||||
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
|
||||
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
|
||||
GEOM_JOURNAL: Journal ad0s1d clean.
|
||||
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
|
||||
GEOM_JOURNAL: Journal ad0s1f clean.
|
||||
....
|
||||
|
||||
Μετά από ένα προβληματικό τερματισμό θα δείτε μηνύματα όπως το παρακάτω:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
GEOM_JOURNAL: Journal ad0s1d consistent.
|
||||
....
|
||||
|
||||
Αυτό συνήθως σημαίνει ότι το man:gjournal[8] χρησιμοποίησε τις πληροφορίες του ημερολογίου για να επιστρέψει το σύστημα αρχείων σε σταθερή κατάσταση.
|
||||
|
||||
[[gjournal-new]]
|
||||
=== Χρήση του Journaling σε Νέες Κατατμήσεις
|
||||
|
||||
Αν και η παραπάνω διαδικασία είναι απαραίτητη για να χρησιμοποιήσετε journaling σε κατατμήσεις που έχουν ήδη δεδομένα, η αντίστοιχη διαδικασία για νέες κατατμήσεις είναι πιο απλή. Στην περίπτωση αυτή, μπορεί να χρησιμοποιηθεί ο ίδιος παροχέας τόσο για τα δεδομένα όσο και για το ημερολόγιο. Για παράδειγμα, υποθέστε ότι έχετε προσθέσει ένα νέο δίσκο και έχετε δημιουργήσει την κατάτμηση [.filename]#/dev/ad1s1d#. Η δημιουργία του ημερολογίου είναι αρκετά απλή και φαίνεται παρακάτω:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal label ad1s1d
|
||||
....
|
||||
|
||||
Το προεπιλεγμένο μέγεθος του ημερολογίου είναι 1 GB. Μπορείτε ωστόσο να το ρυθμίσετε χρησιμοποιώντας την επιλογή `-s`. Μπορείτε να δώσετε τιμές σε bytes, ή να βάλετε μετά την τιμή ένα από τα γράμματα `K`, `M` ή `G` για να δηλώσετε Kilobytes, Megabytes ή Gigabytes αντίστοιχα. Σημειώστε ότι η εντολή `gjournal`, δεν θα σας επιτρέψει να δημιουργήσετε ημερολόγιο που να είναι ακατάλληλο λόγω μικρού μεγέθους.
|
||||
|
||||
Για παράδειγμα, για να δημιουργήσετε ένα ημερολόγιο μεγέθους 2 GB, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal label -s 2G ad1s1d
|
||||
....
|
||||
|
||||
Μπορείτε έπειτα να δημιουργήσετε ένα σύστημα αρχείων στη νέα σας κατάτμηση, και ταυτόχρονα να ενεργοποιήσετε το journaling, χρησιμοποιώντας την επιλογή `-J`:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# newfs -J /dev/ad1s1d.journal
|
||||
....
|
||||
|
||||
[[configure-kernel]]
|
||||
=== Ενσωμάτωση του Journaling σε Προσαρμοσμένο Πυρήνα
|
||||
|
||||
Αν δεν θέλετε να φορτώσετε το `geom_journal` ως άρθρωμα, μπορείτε να ενσωματώσετε τις λειτουργίες του στον προσαρμοσμένο πυρήνα σας. Επεξεργαστείτε το αρχείο ρυθμίσεων του πυρήνα, και βεβαιωθείτε ότι περιλαμβάνει τις ακόλουθες δύο γραμμές:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
options UFS_GJOURNAL # Σημείωση: η επιλογή αυτή υπάρχει στο GENERIC
|
||||
|
||||
options GEOM_JOURNAL # Θα πρέπει να προσθέσετε αυτή τη γραμμή
|
||||
....
|
||||
|
||||
Μεταγλωττίστε και επανεγκαταστήστε τον πυρήνα σας χρησιμοποιώντας τις σχετικές link:{handbook}#kernelconfig[οδηγίες στο Εγχειρίδιο του FreeBSD.]
|
||||
|
||||
Μην ξεχάσετε να αφαιρέσετε την αντίστοιχη καταχώρηση "load" από το αρχείο [.filename]#/boot/loader.conf# αν την είχατε χρησιμοποιήσει προηγουμένως.
|
||||
|
||||
[[troubleshooting-gjournal]]
|
||||
== Αντιμετώπιση Προβλημάτων
|
||||
|
||||
Το ακόλουθο τμήμα καλύπτει συχνές ερωτήσεις σχετικά με προβλήματα που μπορείτε να συναντήσετε στην υλοποίηση του jounaling.
|
||||
|
||||
=== Κατά τη διάρκεια έντονης χρήσης του δίσκου, το σύστημα μου σταματάει με kernel panic. Υπάρχει περίπτωση αυτό να σχετίζεται με το journaling;
|
||||
|
||||
Είναι πιθανό το ημερολόγιο να γεμίζει πριν προλάβουν τα προηγούμενα δεδομένα του να μεταφερθούν στο σύστημα αρχείων. Θα πρέπει να θυμάστε ότι το μέγεθος του ημερολογίου δεν εξαρτάται από το μέγεθος του παροχέα δεδομένων, αλλά από το φόρτο εργασίας του. Αν η δραστηριότητα του δίσκου σας είναι υψηλή, θα χρειαστείτε μεγαλύτερο μέγεθος για την κατάτμηση του ημερολογίου. Δείτε τη σχετική σημείωση στην ενότητα <<understanding-journaling>>.
|
||||
|
||||
=== Έκανα κάποιο λάθος στις ρυθμίσεις, και δεν μπορώ πλέον να ξεκινήσω κανονικά το σύστημα μου. Υπάρχει τρόπος να το διορθώσω;
|
||||
|
||||
Πιθανόν ξεχάσατε να προσθέσετε (ή έχετε κάνει λάθος) την καταχώρηση στο [.filename]#/boot/loader.conf#, ή ίσως υπάρχει λάθος στο αρχείο [.filename]#/etc/fstab#. Τα λάθη αυτά συνήθως διορθώνονται εύκολα. Πιέστε kbd:[Enter] για να ξεκινήσετε το προεπιλεγμένο κέλυφος λειτουργίας ενός χρήστη. Μετά εντοπίστε την πηγή του προβλήματος:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cat /boot/loader.conf
|
||||
....
|
||||
|
||||
Αν λείπει ή υπάρχει λάθος στην καταχώρηση `geom_journal_load`, οι αντίστοιχες συσκευές δεν δημιουργούνται καν. Μπορείτε να φορτώσετε το άρθρωμα χειροκίνητα, να προσαρτήσετε όλες τις κατατμήσεις, και να συνεχίσετε με την κανονική εκκίνηση:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal load
|
||||
|
||||
GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.
|
||||
GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
|
||||
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.
|
||||
GEOM_JOURNAL: Journal ad0s1d clean.
|
||||
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.
|
||||
GEOM_JOURNAL: Journal ad0s1f clean.
|
||||
|
||||
# mount -a
|
||||
# exit
|
||||
(η εκκίνηση συνεχίζεται)
|
||||
....
|
||||
|
||||
Αν ωστόσο η καταχώρηση αυτή είναι σωστή, ρίξτε μια ματιά στο αρχείο [.filename]#/etc/fstab#. Το πιο πιθανό είναι να βρείτε ότι κάποια καταχώρηση λείπει, ή είναι λάθος. Στην περίπτωση αυτή, προσαρτήστε χειροκίνητα όλες τις κατατμήσεις και συνεχίστε την εκκίνηση κανονικά.
|
||||
|
||||
=== Μπορώ να καταργήσω το journaling και να επιστρέψω στο κανονικό σύστημα αρχείων με τα Soft Updates;
|
||||
|
||||
Βέβαια. Χρησιμοποιήστε την ακόλουθη διαδικασία η οποία αναιρεί τις αλλαγές. Μπορείτε έπειτα να χρησιμοποιήσετε τις κατατμήσεις των ημερολογίων για άλλο σκοπό, εφόσον το επιθυμείτε.
|
||||
|
||||
Εισέλθετε ως `root` και μεταβείτε σε κατάσταση ενός χρήστη:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# shutdown now
|
||||
....
|
||||
|
||||
Αποπροσαρτήστε τις κατατμήσεις που χρησιμοποιούν journaling:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# umount /usr /var
|
||||
....
|
||||
|
||||
Συγχρονίστε τα ημερολόγια:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal sync
|
||||
....
|
||||
|
||||
Σταματήστε τους παροχείς ημερολογίου:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal stop ad0s1d.journal
|
||||
# gjournal stop ad0s1f.journal
|
||||
....
|
||||
|
||||
Διαγράψτε τα metadata του journaling από όλες τις συσκευές που χρησιμοποιήσατε:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# gjournal clear ad0s1d
|
||||
# gjournal clear ad0s1f
|
||||
# gjournal clear ad0s1g
|
||||
# gjournal clear ad0s1h
|
||||
....
|
||||
|
||||
Αναιρέστε την επιλογή του journaling, και θέστε ξανά την επιλογή για Soft Updates:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# tunefs -J disable -n enable ad0s1d
|
||||
tunefs: gjournal cleared
|
||||
tunefs: soft updates set
|
||||
|
||||
# tunefs-J disable -n enable ad0s1f
|
||||
tunefs: gjournal cleared
|
||||
tunefs: soft updates set
|
||||
....
|
||||
|
||||
Προσαρτήστε χειροκίνητα τις κανονικές κατατμήσεις:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# mount -o rw /dev/ad0s1d /var
|
||||
# mount -o rw /dev/ad0s1f /usr
|
||||
....
|
||||
|
||||
Επεξεργαστείτε το [.filename]#/etc/fstab# και επαναφέρατε τις προηγούμενες ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
/dev/ad0s1f /usr ufs rw 2 2
|
||||
/dev/ad0s1d /var ufs rw 2 2
|
||||
....
|
||||
|
||||
Τέλος, επεξεργαστείτε το αρχείο [.filename]#/boot/loader.conf#, αφαιρέστε την καταχώρηση που φορτώνει το άρθρωμα `geom_journal` και επανεκκινήστε το σύστημα σας.
|
||||
|
||||
[[further-reading]]
|
||||
== Επιπλέον Πληροφορίες
|
||||
|
||||
Το journaling είναι μια σχετικά νέα δυνατότητα του FreeBSD, και έτσι δεν είναι ακόμα καλά τεκμηριωμένη. Ίσως όμως να βρείτε χρήσιμες πληροφορίες στις παρακάτω αναφορές:
|
||||
|
||||
* Υπάρχει ένα link:{handbook}#geom-gjournal[νέο τμήμα για το journaling] στο Εγχειρίδιο του FreeBSD.
|
||||
* http://lists.freebsd.org/pipermail/freebsd-current/2006-June/064043.html[Αυτή η δημοσίευση] στη λίστα {freebsd-current} από τον δημιουργό του man:gjournal[8], `{pjd}`.
|
||||
* http://lists.freebsd.org/pipermail/freebsd-questions/2008-April/173501.html[Αυτή η δημοσίευση] στη λίστα {freebsd-questions} από τον `{ivoras}`.
|
||||
* Οι σελίδες manual του man:gjournal[8] και man:geom[8].
|
||||
|
|
@ -0,0 +1,278 @@
|
|||
---
|
||||
title: Υποστήριξη της Ελληνικής Γλώσσας στο FreeBSD
|
||||
authors:
|
||||
- author: Νικόλαος Κόκκαλης
|
||||
email: nickkokkalis@yahoo.co.uk
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "general"]
|
||||
---
|
||||
|
||||
= Υποστήριξη της Ελληνικής Γλώσσας στο FreeBSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/authors.adoc[]
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Αυτό το κείμενο δίνει οδηγίες για τις ρυθμίσεις που χρειάζονται, ώστε να μπορούμε να διαβάσουμε και να γράψουμε Ελληνικά στο FreeBSD, τόσο σε κατάσταση κονσόλας όσο και χρησιμοποιώντας το γραφικό περιβάλλον Xorg.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[introduction]]
|
||||
== Εισαγωγή
|
||||
|
||||
Η ρύθμιση της υποστήριξης του FreeBSD για την Ελληνική γλώσσα είναι αρκετά εύκολη, σε κάθε επίπεδο. Με σχετικά λίγες ρυθμίσεις, μπορεί να γράψει και να διαβάσει κανείς σωστά Ελληνικά με την επίσημη κωδικοποίηση ISO/IEC 8859-7, τόσο σε κατάσταση κονσόλας όσο και μέσα από το γραφικό περιβάλλον Xorg. Αν και οι ρυθμίσεις που αφορούν αποκλειστικά στο FreeBSD είναι αυτές της κονσόλας, εδώ θα αναφερθούν και αυτές που αφορούν και τα Xorg αλλά και τις επιμέρους εφαρμογές.
|
||||
|
||||
Αφού διαβάσετε αυτό το άρθρο θα ξέρετε:
|
||||
|
||||
* Που θα βρείτε Ελληνικές γραμματοσειρές, τόσο για την κονσόλα του FreeBSD όσο και για Xorg.
|
||||
* Πώς να ορίσετε μια αντιστοιχία πληκτρολογίου ("keymap") σε κατάσταση κονσόλας, η οποία να επιτρέπει την εισαγωγή Ελληνικού κειμένου, με την κωδικοποίηση ISO/IEC 8859-7.
|
||||
* Πώς να ορίσετε ότι η προκαθορισμένη γραμματοσειρά σε κατάσταση κονσόλας θα είναι κάποια που έχει Ελληνικούς χαρακτήρες.
|
||||
* Πώς να ορίσετε μια αντιστοιχία πληκτρολογίου ("keymap") σε κατάσταση γραφικών, η οποία να επιτρέπει την εισαγωγή Ελληνικού κειμένου, με την κωδικοποίηση ISO/IEC 8859-7.
|
||||
* Πώς να στήσετε γραμματοσειρές για το γραφικό περιβάλλον του FreeBSD, οι οποίες θα έχουν υποστήριξη τόσο για UTF-8 όσο και για ISO/IEC 8859-7 Ελληνικά.
|
||||
|
||||
[[console-setup]]
|
||||
== Ρυθμίσεις για Ελληνικά στην κονσόλα του FreeBSD
|
||||
|
||||
Στην κονσόλα οι ρυθμίσεις αφορούν δύο στάδια. Το πρώτο στάδιο γίνεται κατά τον ίδιο τρόπο πάντα, ενώ το δεύτερο διαφοροποιείται ανάλογα με το κέλυφος ("shell").
|
||||
|
||||
* Ρυθμίσεις για την προκαθορισμένη γραμματοσειρά της κονσόλας και μια αντιστοιχία πληκτρολογίου με υποστήριξη για Ελληνικά.
|
||||
* Ρυθμίσεις έτσι ώστε το περιβάλλον του κελύφους να υποστηρίζει την Ελληνική γλώσσα.
|
||||
|
||||
[[console-files]]
|
||||
=== Ελληνική γραμματοσειρά και αντιστοιχία πληκτρολογίου για την κονσόλα
|
||||
|
||||
Για να μπορέσουμε να διαβάσουμε και να γράψουμε Ελληνικά με την κωδικοποίηση ISO/IEC 8859-7 στην κονσόλα του FreeBSD χρειαζόμαστε τουλάχιστον δύο αρχεία: μια γραμματοσειρά και μια αντιστοιχία πληκτρολογίου.
|
||||
|
||||
Ο `{keramida}` έχει φτιάξει μια τέτοια γραμματοσειρά και μια αντιστοιχία πληκτρολογίου. Αυτά τα δύο αρχεία δεν είναι μέρος του βασικού συστήματος του FreeBSD τη στιγμή που γράφονται αυτές οι γραμμές, οπότε θα χρειαστεί να τα κατεβάσετε από το δίκτυο. Για να κατεβάσετε τα δύο αρχεία που χρειάζονται και να τα τοποθετήσετε στον κατάλληλο κατάλογο για τον τύπο του κάθε αρχείου, μπορείτε να τρέξετε τις παρακάτω εντολές:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cd /usr/shared/syscons/fonts
|
||||
# fetch 'http://people.freebsd.org/~keramida/files/grfixed-8x16.fnt'
|
||||
# cd /usr/shared/syscons/keymaps
|
||||
# fetch 'http://people.freebsd.org/~keramida/files/keramida.el-iso.kbd'
|
||||
....
|
||||
|
||||
[[console-rc-conf]]
|
||||
=== Ενεργοποίηση της Ελληνικής υποστήριξης στην κονσόλα
|
||||
|
||||
Για να ορίσουμε ως προκαθορισμένη γραμματοσειρά και αντιστοιχία πληκτρολογίου αυτές που κατεβάσαμε, αρκεί να βάλουμε στο αρχείο [.filename]#/etc/rc.conf# τις παρακάτω ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
font8x16="grfixed-8x16"
|
||||
keymap="keramida.el-iso"
|
||||
....
|
||||
|
||||
Με αυτές τις ρυθμίσεις, το σύστημά μας θα χρησιμοποιεί τα αρχεία που μόλις κατεβάσαμε από την επόμενη φορά που θα ξεκινήσει. Στο FreeBSD δε χρειάζεται όμως να κάνουμε επανεκκίνηση για μια τέτοια μικρή αλλαγή. Μπορούμε απλά να τρέξουμε σε μια κονσόλα τις εντολές:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% vidcontrol -f 8x16 grfixed-8x16 < /dev/ttyv0
|
||||
% kbdcontrol -l keramida.el-iso < /dev/ttyv0
|
||||
....
|
||||
|
||||
Αυτές οι εντολές θα φορτώσουν εκείνη τη στιγμή τη νέα γραμματοσειρά κονσόλας, και τη νέα αντιστοιχία πληκτρολογίου.
|
||||
|
||||
[[shell-locale]]
|
||||
=== Ρυθμίσεις για το κέλυφος χρήστη
|
||||
|
||||
Με τις ρυθμίσεις που έχουμε κάνει ως τώρα δεν έχει ενεργοποιηθεί πλήρως η Ελληνική υποστήριξη. Κάθε πρόγραμμα που τρέχει στο FreeBSD, ακόμα και το κέλυφος χρήστη που χρησιμοποιούμε, εξαρτάται από τις τρέχουσες ρυθμίσεις "locale", για να ξέρει σε τι γλώσσα δουλεύουμε.
|
||||
|
||||
Οι προκαθορισμένες ρυθμίσεις locale υποστηρίζουν μόνο την εισαγωγή και ανάγνωση κειμένου σε Αγγλικά, οπότε πρέπει να αλλάζουμε τις ρυθμίσεις αυτές για να μπορεί το κέλυφος μας να δουλέψει σωστά με την Ελληνική γλώσσα.
|
||||
|
||||
[[shell-sh]]
|
||||
==== Ρυθμίσεις για το κέλυφος man:sh[1]
|
||||
|
||||
Αν το κέλυφος που χρησιμοποιούμε είναι το man:sh[1], πρέπει να βάλουμε στο αρχείο [.filename]#.profile# του λογαριασμού μας τις εξής ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
export LANG="el_GR.ISO8859-7"
|
||||
export LC_CTYPE="el_GR.ISO8859-7"
|
||||
export LC_COLLATE="el_GR.ISO8859-7"
|
||||
unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
|
||||
....
|
||||
|
||||
[[shell-csh]]
|
||||
==== Ρυθμίσεις για το κέλυφος man:csh[1]
|
||||
|
||||
Αν το κέλυφος που χρησιμοποιούμε είναι το man:csh[1], πρέπει να βάλουμε στο αρχείο [.filename]#.cshrc# του λογαριασμού μας τις εξής ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
setenv LANG "C"
|
||||
setenv LC_CTYPE "el_GR.ISO8859-7"
|
||||
setenv LC_COLLATE "el_GR.ISO8859-7"
|
||||
unsetenv LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
|
||||
....
|
||||
|
||||
[[shell-bash]]
|
||||
==== Ρυθμίσεις για το κέλυφος bash
|
||||
|
||||
Αν το κέλυφος που χρησιμοποιούμε είναι το Bash, πρέπει να βάλουμε στο αρχείο [.filename]#.bashrc# του λογαριασμού μας τις εξής ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
export LANG="el_GR.ISO8859-7"
|
||||
export LC_CTYPE="el_GR.ISO8859-7"
|
||||
export LC_COLLATE="el_GR.ISO8859-7"
|
||||
unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
|
||||
....
|
||||
|
||||
Επίσης, ειδικά για το Bash, πρέπει να βάλουμε και τις εξής ρυθμίσεις στο αρχείο [.filename]#.inputrc# του λογαριασμού μας:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
set convert-meta Off
|
||||
set input-meta On
|
||||
set output-meta On
|
||||
....
|
||||
|
||||
[[xorg-setup]]
|
||||
== Ρυθμίσεις για Ελληνικά στο γραφικό περιβάλλον Xorg
|
||||
|
||||
Τα πιο συνηθισμένα γραφικό περιβάλλον εργασίας σε FreeBSD βασίζονται στην πλατφόρμα Xorg. Οι ρυθμίσεις για υποστήριξη Ελληνικών σε Xorg είναι εντελώς ίδιες με αυτές που χρησιμοποιεί το περιβάλλον Xorg και σε άλλα UNIX συστήματα (π.χ. σε GNU/Linux).
|
||||
|
||||
Αρχικά, πρέπει να ρυθμίσετε το περιβάλλον Xorg έτσι ώστε να ξεκινά σωστά-ακόμη και χωρίς Ελληνικά. Για πληροφορίες σχετικά με τις πρώτες αυτές ρυθμίσεις, δείτε link:{handbook}#x11[το αντίστοιχο κεφάλαιο στο Εγχειρίδιο του FreeBSD].
|
||||
|
||||
Αφού καταφέρετε να ρυθμίσετε τα πάντα για να ξεκινά το γραφικό περιβάλλον Xorg, πρέπει να τοποθετήσετε τις παρακάτω γραμμές στο αρχείο [.filename]#/etc/X11/xorg.conf#:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
Section "InputDevice"
|
||||
Identifier "Keyboard1"
|
||||
Driver "kbd"
|
||||
Option "XkbRules" "xorg"
|
||||
Option "XkbModel" "pc105"
|
||||
Option "XkbLayout" "us,el"
|
||||
Option "XkbOptions" "grp:alt_shift_toggle"
|
||||
EndSection
|
||||
....
|
||||
|
||||
Αν στο αρχείο [.filename]#/etc/X11/xorg.conf# υπάρχει ήδη ένα τέτοιο τμήμα, μπορείτε να τροποποιήσετε το υπάρχον τμήμα. Χρησιμοποιήστε τον χαρακτήρα "`#`" για να σχολιάσετε όποιες γραμμές δε θέλετε να κρατήσετε από το αρχικό "`InputDevice`".
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Γενικά, υπάρχουν τουλάχιστον δύο διαφορετικά "`InputDevice`" τμήματα σε ένα συνηθισμένο αρχείο [.filename]#/etc/X11/xorg.conf#: ένα για το προκαθορισμένο πληκτρολόγιο κι ένα για το προκαθορισμένο ποντίκι. Προσοχή να κάνετε όποιες τροποποιήσεις έχετε κατά νου στο τμήμα το οποίο αναφέρει το πληκτρολόγιο (αυτό σημαίνει το "`Identifier "Keyboard1"`" παραπάνω).
|
||||
====
|
||||
|
||||
Με τις ρυθμίσεις που έχουμε κάνει ως τώρα δεν έχει ενεργοποιηθεί πλήρως η Ελληνική υποστήριξη. Στο FreeBSD κάθε πρόγραμμα, ακόμα και το περιβάλλον Xorg που χρησιμοποιούμε, εξαρτάται από τις τρέχουσες ρυθμίσεις "locale", για να ξέρει σε τι γλώσσα δουλεύουμε.
|
||||
|
||||
Οι προκαθορισμένες ρυθμίσεις locale υποστηρίζουν μόνο την εισαγωγή και ανάγνωση κειμένου σε Αγγλικά, οπότε πρέπει να αλλάζουμε τις ρυθμίσεις αυτές για να μπορεί το περιβάλλον Xorg να δουλέψει σωστά με την Ελληνική γλώσσα.
|
||||
|
||||
Για αυτόν τον λόγο παραμετροποιούμε το αρχείο [.filename]#.xinitrc# στο λογαριασμό μας. Πιο συγκεκριμένα θα πρέπει να προσθέσουμε τις παρακάτω γραμμές σε αυτό:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
export LANG="el_GR.ISO8859-7"
|
||||
export LC_CTYPE="el_GR.ISO8859-7"
|
||||
export LC_COLLATE="el_GR.ISO8859-7"
|
||||
....
|
||||
|
||||
Πριν ξεκινήσετε να χρησιμοποιείτε τα Χ, βεβαιωθείτε επίσης ότι έχετε τις σωστές ρυθμίσεις locale στο κέλυφος σας. Έτσι θα αποφύγετε πιθανά προβλήματα απεικόνισης Ελληνικών σε κάποιες εφαρμογές. Δείτε την ενότητα <<shell-locale>>.
|
||||
|
||||
Με αυτές τις ρυθμίσεις, το περιβάλλον Xorg θα ξεκινά με το σωστό "process environment" για να υποστηρίζει την Ελληνική γλώσσα.
|
||||
|
||||
Πολλές εφαρμογές που τρέχουν σε περιβάλλον Xorg μπορούν να ρυθμιστούν ορίζοντας μια σειρά από "X11 resources". Αυτά τα "resources" είναι, γενικά, ζευγάρια από τιμές της μορφής:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
ΌνομαResource: Τιμή του resource
|
||||
....
|
||||
|
||||
Οι τιμές αυτές ορίζονται στο αρχείο [.filename]#.Xresources# του λογαριασμού μας.
|
||||
|
||||
Για το XTerm και αντίστοιχες εφαρμογές τερματικού, μπορεί να ρυθμιστεί η γραμματοσειρά έτσι ώστε να χρησιμοποιείται μια με Ελληνική υποστήριξη, ορίζοντας τις παρακάτω τιμές στο αρχείο [.filename]#.Xresources#:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
XTerm*font: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-7
|
||||
....
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Μετά από αλλαγές στο αρχείο [.filename]#.Xresources#, δε χρειάζεται επανεκκίνηση του περιβάλλοντος Xorg. Αρκεί απλά να τρέξουμε την εντολή:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% xrdb -merge ~/.Xresources
|
||||
....
|
||||
|
||||
====
|
||||
|
||||
[[x11-fonts]]
|
||||
== Ελληνικές γραμματοσειρές για το περιβάλλον Xorg
|
||||
|
||||
Το περιβάλλον Xorg έρχεται με ένα βασικό σύνολο γραμματοσειρών σε μορφή "bitmap". Μερικές από αυτές έχουν υποστήριξη ελληνικών, είτε για την κωδικοποίηση ISO/IEC 8859-7, είτε για την κωδικοποίηση ISO/IEC 10646 (Universal Character Set). Οι βασικές bitmap γραμματοσειρές που διανέμονται με το Xorg έχουν στο τέλος από το όνομά τους την κωδικοποίηση, οπότε μπορείτε να τις βρείτε εύκολα με το εργαλείο man:xlsfonts[1]. Για να δείτε, για παράδειγμα, ποιές βασικές γραμματοσειρές υποστηρίζουν την κωδικοποίηση ISO/IEC 8859-7 μπορείτε να χρησιμοποιήσετε την εντολή:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% xlsfonts | fgrep -i iso8859-7
|
||||
....
|
||||
|
||||
Αντίστοιχα, για να βρείτε ποιές γραμματοσειρές υποστηρίζουν την κωδικοποίηση ISO/IEC 10646, οπότε μπορούν να χρησιμοποιηθούν για την απεικόνιση κειμένων με κωδικοποίηση UTF-8, μπορείτε να χρησιμοποιήσετε την εντολή:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% xlsfonts | fgrep -i iso10646
|
||||
....
|
||||
|
||||
Ακόμη περισσότερες γραμματοσειρές με υποστήριξη για απεικόνιση Ελληνικών χαρακτήρων μπορείτε να βρείτε στη συλλογή των Ports. Η κατηγορία `x11-fonts` περιέχει συλλογές γραμματοσειρών όπως οι παρακάτω:
|
||||
|
||||
* package:x11-fonts/bitstream-vera[]
|
||||
* package:x11-fonts/dejavu[]
|
||||
* package:x11-fonts/liberation-fonts-ttf[]
|
||||
* package:x11-fonts/urwfonts-ttf[]
|
||||
* package:x11-fonts/webfonts[]
|
||||
|
||||
Όλες αυτές οι γραμματοσειρές είναι σε μορφή TrueType(R). Έτσι δεν έχουν τους περιορισμούς μεγέθους που έχουν οι βασικές, bitmap γραμματοσειρές, και μπορούν να απεικονίσουν Ελληνικούς χαρακτήρες σχεδόν σε οποιοδήποτε μέγεθος, με αρκετά ικανοποιητικά αποτελέσματα.
|
||||
|
||||
Αν χρησιμοποιείτε κάποιο από τα δημοφιλή περιβάλλοντα εργασίας για Xorg, όπως το GNOME ή το KDE, οι TrueType(R) γραμματοσειρές από αυτές τις συλλογές βελτιώνουν πάρα πολύ την ποιότητα απεικόνισης σε όλες τις εφαρμογές του περιβάλλοντος εργασίας. Οπότε σίγουρα αξίζει τον κόπο να τις δοκιμάσετε.
|
||||
|
||||
[[various-apps]]
|
||||
== Ρυθμίσεις για Ελληνικά σε διάφορες εφαρμογές.
|
||||
|
||||
Για να διαβάζουμε και να γράφουμε ISO/IEC 8859-7 Ελληνικά με τον επεξεργαστή κειμένου package:editors/emacs[] θα πρέπει να προσθέσουμε στο [.filename]#.emacs# του λογαριασμού μας τις εξής ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
(setq unibyte-display-via-language-environment t)
|
||||
(if (< emacs-major-version 22)
|
||||
(set-language-environment "Greek"))
|
||||
(set-terminal-coding-system 'greek-iso-8bit)
|
||||
(set-input-mode (car (current-input-mode))
|
||||
(nth 1 (current-input-mode))
|
||||
0)
|
||||
....
|
||||
|
||||
Για να διαβάζουμε και να γράφουμε ελληνικά με τον επεξεργαστή κειμένου package:editors/vim[] σε γραφικό περιβάλλον, θα πρέπει να προσθέσουμε στο αρχείο [.filename]#.vimrc# του λογαριασμού μας τις εξής ρυθμίσεις:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
set gfs=fixedgr
|
||||
....
|
||||
|
||||
Για να διαβάζουμε και να γράφουμε ελληνικά με το πρόγραμμα ηλεκτρονικής αλληλογραφίας mutt θα πρέπει να προσθέσουμε στο [.filename]#.muttrc# το παρακάτω κομμάτι:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
set charset="greek"
|
||||
set send_charset="US-ASCII:ISO-8859-1:ISO-8859-7:UTF-8"
|
||||
....
|
||||
383
documentation/content/el/articles/linux-users/_index.adoc
Normal file
383
documentation/content/el/articles/linux-users/_index.adoc
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
---
|
||||
title: Οδηγός Γρήγορης Εκκίνησης του FreeBSD για Χρήστες Linux®
|
||||
authors:
|
||||
- author: John Ferrell
|
||||
copyright: 2008 Η Ομάδα Τεκμηρίωσης του FreeBSD
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "intel", "redhat", "linux", "unix", "general"]
|
||||
---
|
||||
|
||||
= Οδηγός Γρήγορης Εκκίνησης του FreeBSD για Χρήστες Linux(R)
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Το κείμενο αυτό έχει σκοπό να βοηθήσει στη γρήγορη εξοικείωση χρηστών Linux(R) μέσου / προχωρημένου επιπέδου με τις βασικές έννοιες του FreeBSD
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[intro]]
|
||||
== Εισαγωγή
|
||||
|
||||
Το κείμενο αυτό τονίζει τις διαφορές μεταξύ του FreeBSD και του Linux(R) ώστε μέσοι ή προχωρημένοι χρήστες του Linux(R) να μπορούν γρήγορα να προσαρμοστούν στις βασικές έννοιες του FreeBSD. Πρόκειται για μια τεχνική εισαγωγή στο FreeBSD, και δεν θα αναφερθούμε σε τυχόν "φιλοσοφικές" διαφορές μεταξύ των δύο συστημάτων.
|
||||
|
||||
Το κείμενο αυτό υποθέτει ότι έχετε ήδη εγκαταστήσει το FreeBSD. Αν δεν έχετε εγκαταστήσει το FreeBSD ή χρειάζεστε βοήθεια με την διαδικασία εγκατάστασης του, παρακαλούμε να διαβάσετε το κεφάλαιο link:{handbook}#install[Εγκαθιστώντας το FreeBSD] στο Εγχειρίδιο του FreeBSD.
|
||||
|
||||
[[shells]]
|
||||
== Κελύφη: Δεν υπάρχει Bash;
|
||||
|
||||
Όσοι έρχονται από το Linux(R) συχνά εκπλήσσονται όταν ανακαλύπτουν ότι το Bash δεν είναι το προεπιλεγμένο κέλυφος στο FreeBSD. Στην πραγματικότητα, το Bash δεν υπάρχει καν στην βασική διανομή του FreeBSD. Αντίθετα, το FreeBSD χρησιμοποιεί το man:tcsh[1] ως το προεπιλεγμένο κέλυφος. Το Bash καθώς και άλλα κελύφη που ίσως θέλετε να εγκαταστήσετε, είναι διαθέσιμα στη <<SOFTWARE, Συλλογή Πακέτων και Ports>> του FreeBSD.
|
||||
|
||||
Αν εγκαταστήσετε διαφορετικά κελύφη, μπορείτε να χρησιμοποιήσετε την εντολή man:chsh[1] για να αλλάξετε το προεπιλεγμένο κέλυφος κάποιου χρήστη. Σας συνιστούμε ωστόσο να αφήσετε το κέλυφος του `root` στο προεπιλεγμένο. Ο λόγος για αυτό είναι ότι τα κελύφη που δεν περιλαμβάνονται στην βασική διανομή του FreeBSD, εγκαθίστανται στην τοποθεσία [.filename]#/usr/local/bin# ή [.filename]#/usr/bin#. Σε περίπτωση προβλήματος, είναι πιθανόν τα συστήματα αρχείων όπου βρίσκονται τα [.filename]#/usr/local/bin# και [.filename]#/usr/bin# να μην μπορούν να προσαρτηθούν. Στην περίπτωση αυτή, ο `root` δεν θα είχε πρόσβαση στο προεπιλεγμένο του κέλυφος, εμποδίζοντας έτσι και την είσοδο του στο σύστημα. Για το λόγο αυτό, υπάρχει ένας δεύτερος λογαριασμός όμοιος με τον `root`, ο `toor`, ο οποίος δημιουργήθηκε ειδικά για να χρησιμοποιείται με κάποιο άλλο κέλυφος. Δείτε τις Συχνές Ερωτήσεις Ασφαλείας σχετικά με τον link:{faq}#TOOR-ACCOUNT[λογαριασμό toor].
|
||||
|
||||
[[software]]
|
||||
== Πακέτα και Ports: Προσθέτοντας λογισμικό στο FreeBSD
|
||||
|
||||
Εκτός από την παραδοσιακή μέθοδο εγκατάστασης λογισμικού του UNIX(R) (κατέβασμα του πηγαίου κώδικα, αποσυμπίεση του αρχείου, επεξεργασία και μεταγλώττιση), το FreeBSD προσφέρει δύο ακόμα μεθόδους για την εγκατάσταση εφαρμογών: τα πακέτα και τα ports. Για μια πλήρη λίστα όλων των διαθέσιμων πακέτων και ports, δείτε http://www.freebsd.org/ports/[εδώ].
|
||||
|
||||
[[packages]]
|
||||
=== Πακέτα
|
||||
|
||||
Τα πακέτα είναι προ-μεταγλωττισμένες εφαρμογές, θα λέγαμε το αντίστοιχο για το FreeBSD των αρχείων [.filename]#.deb# σε συστήματα Debian/Ubuntu και των αρχείων [.filename]#.rpm# σε συστήματα Red Hat/Fedora. Τα πακέτα εγκαθίστανται χρησιμοποιώντας την εντολή man:pkg_add[1]. Για παράδειγμα, η ακόλουθη εντολή εγκαθιστά τον Apache 2.2:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# pkg_add /tmp/apache-2.2.6_2.tbz
|
||||
....
|
||||
|
||||
Η χρήση της παραμέτρου `-r` οδηγεί την man:pkg_add[1] να κατεβάσει αυτόματα τόσο το πακέτο, όσο και τις εξαρτήσεις του, και να το εγκαταστήσει:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# pkg_add -r apache22
|
||||
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done.
|
||||
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done.
|
||||
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done.
|
||||
[snip]
|
||||
|
||||
To run apache www server from startup, add apache22_enable="YES"
|
||||
in your /etc/rc.conf. Extra options can be found in startup script.
|
||||
....
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Αν χρησιμοποιείτε μια "επίσημη" έκδοση του FreeBSD (6.2, 6.3, 7.0, κλπ. που γενικά μπορείτε να εγκαταστήσετε από CD-ROM) η εντολή `pkg_add -r` θα κατεβάσει τα πακέτα που φτιάχτηκαν για αυτή τη συγκεκριμένη έκδοση. Τα πακέτα αυτά _ίσως δεν περιέχουν_ τις πλέον τελευταίες εκδόσεις των εφαρμογών. Μπορείτε να χρησιμοποιήσετε την μεταβλητή περιβάλλοντος `PACKAGESITE` για να παρακάμψετε αυτή την προεπιλεγμένη συμπεριφορά. Για παράδειγμα, θέτοντας την `PACKAGESITE` στην τιμή link:ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/[ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/] θα κατεβάσετε τα πιο πρόσφατα πακέτα που υπάρχουν για τη σειρά 6.X.
|
||||
====
|
||||
|
||||
Για περισσότερες πληροφορίες σχετικά με τα πακέτα, παρακαλούμε διαβάστε την ενότητα 4.4 στο Εγχειρίδιο του FreeBSD: link:{handbook}#packages-using[Χρησιμοποιώντας το Σύστημα Packages].
|
||||
|
||||
[[ports]]
|
||||
=== Ports
|
||||
|
||||
Η δεύτερη μέθοδος για την εγκατάσταση εφαρμογών στο FreeBSD είναι η Συλλογή των Ports. Η Συλλογή των Ports είναι ένα πλαίσιο λειτουργιών που αποτελείται από [.filename]#Makefiles# και αρχεία διαφορών (patches) τα οποία έχουν δημιουργηθεί ειδικά, ώστε να είναι δυνατή η εγκατάσταση διάφορων εφαρμογών στο FreeBSD από τον πηγαίο κώδικα τους. Όταν εγκαθιστάτε ένα port, το σύστημα θα κατεβάσει τον πηγαίο κώδικα, θα εφαρμόσει όλες τις απαιτούμενες αλλαγές χρησιμοποιώντας τα patches, θα μεταγλωττίσει τον κώδικα, και τέλος θα εγκαταστήσει την εφαρμογή. Θα ακολουθήσει την ίδια διαδικασία και για οποιαδήποτε τυχόν εξαρτώμενα προγράμματα.
|
||||
|
||||
Μπορείτε να βρείτε την Συλλογή των Ports (η οποία μερικές φορές αναφέρεται και ως "δέντρο των ports"), στον κατάλογο [.filename]#/usr/ports#. Αυτό βέβαια προϋποθέτει ότι εγκαταστήσατε την Συλλογή των Ports κατά τη διάρκεια της εγκατάστασης του FreeBSD. Αν δεν το έχετε κάνει, μπορείτε να την προσθέσετε από το CD εγκατάστασης με την βοήθεια του man:sysinstall[8] ή να την κατεβάσετε από τους εξυπηρετητές του FreeBSD χρησιμοποιώντας την εντολή man:csup[1] ή την εντολή man:portsnap[8]. Μπορείτε να βρείτε λεπτομερείς οδηγίες για την εγκατάσταση της Συλλογής των Ports στην link:{handbook}#ports-using[ενότητα 4.5.1] του εγχειριδίου.
|
||||
|
||||
Η εγκατάσταση ενός port είναι γενικά τόσο απλή όσο το να εισέλθετε στον κατάλογο του και να ξεκινήσετε την διαδικασία μεταγλώττισης. Στο ακόλουθο παράδειγμα γίνεται εγκατάσταση του Apache 2.2 από την Συλλογή των Ports:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cd /usr/ports/www/apache22
|
||||
# make install clean
|
||||
....
|
||||
|
||||
Ένα σημαντικό πλεονέκτημα της χρήσης ports στην εγκατάσταση λογισμικού είναι η ικανότητα προσαρμογής των επιλογών εγκατάστασης. Για παράδειγμα, όταν εγκαθιστάτε τον Apache 2.2 από τα ports μπορείτε να ενεργοποιήσετε την επιλογή mod_ldap θέτοντας απλώς τιμή στη μεταβλητή `WITH_LDAP` του man:make[1]:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cd /usr/ports/www/apache22
|
||||
# make WITH_LDAP="YES" install clean
|
||||
....
|
||||
|
||||
Διαβάστε την ενότητα 4.5 του Εγχειριδίου του FreeBSD, link:{handbook}#ports-using[Χρησιμοποιώντας την Ports Collection], για περισσότερες πληροφορίες σχετικά με τη Συλλογή των Ports.
|
||||
|
||||
[[which]]
|
||||
=== Ports ή πακέτα, τι πρέπει να χρησιμοποιήσω;
|
||||
|
||||
Τα πακέτα είναι στην πραγματικότητα απλώς προ-μεταγλωττισμένα ports, άρα είναι περισσότερο θέμα επιλογής αν είναι επιθυμητή η εγκατάσταση από τον πηγαίο κώδικα ή από έτοιμα εκτελέσιμα. Κάθε μέθοδος έχει τα πλεονεκτήματα της:
|
||||
|
||||
.Πακέτα (έτοιμα εκτελέσιμα)
|
||||
* Πιο γρήγορη εγκατάσταση (η μεταγλώττιση μεγάλων εφαρμογών μπορεί να διαρκέσει αρκετή ώρα).
|
||||
* Δεν χρειάζεται να κατανοείτε πως γίνεται η μεταγλώττιση του λογισμικού.
|
||||
* Δεν χρειάζεται να εγκαταστήσετε μεταγλωττιστές στο σύστημα σας.
|
||||
|
||||
.Ports (πηγαίος κώδικας)
|
||||
* Ικανότητα προσαρμογής των επιλογών εγκατάστασης. (Τα πακέτα συνήθως μεταγλωττίζονται με τις προεπιλεγμένες επιλογές). Με τα ports μπορείτε να προσαρμόσετε διάφορες επιλογές, όπως την μεταγλώττιση πρόσθετων αρθρωμάτων, ή αλλαγή της προεπιλεγμένης θέσης εγκατάστασης.
|
||||
* Μπορείτε να βάλετε τις δικές σας αλλαγές (patches) αν το επιθυμείτε.
|
||||
|
||||
Αν δεν έχετε ειδικές απαιτήσεις, τα πακέτα πιθανόν θα σας καλύψουν μια χαρά. Αν ωστόσο χρειάζεται να προσαρμόσετε κάποιες επιλογές, τότε η μέθοδος των ports είναι η καλύτερη. (Και θυμηθείτε, αν χρειάζεστε προσαρμογή αλλά προτιμάτε τα πακέτα, μπορείτε μέσω της συλλογής των ports να φτιάξετε τα δικά σας προσαρμοσμένα πακέτα χρησιμοποιώντας την εντολή make`package` και αντιγράφοντας τα πακέτα που δημιουργήσατε σε άλλα μηχανήματα.)
|
||||
|
||||
[[startup]]
|
||||
== Εκκίνηση του Συστήματος: Που είναι τα run-levels;
|
||||
|
||||
Το Linux(R) χρησιμοποιεί το σύστημα εκκίνησης SysV, ενώ το FreeBSD χρησιμοποιεί το παραδοσιακό σύστημα εκκίνησης BSD. Στο σύστημα man:init[8] τύπου BSD, δεν υπάρχουν run-levels, ούτε το αρχείο [.filename]#/etc/inittab#. Αντί για αυτά, η εκκίνηση ελέγχεται από ένα script εκκίνησης, το man:rc[8]. To script [.filename]#/etc/rc# διαβάζει το αρχείο [.filename]#/etc/defaults/rc.conf# και το αρχείο [.filename]#/etc/rc.conf# για να καθορίσει ποιες υπηρεσίες πρόκειται να ξεκινήσουν. Οι υπηρεσίες αυτές ξεκινάνε με την εκτέλεση των αντίστοιχων script εκκίνησης που βρίσκονται στους καταλόγους [.filename]#/etc/rc.d/# και [.filename]#/usr/local/etc/rc.d/#. Τα scripts αυτά είναι παρόμοια με τα scripts που βρίσκονται στον κατάλογο [.filename]#/etc/init.d/# σε συστήματα Linux(R).
|
||||
|
||||
****
|
||||
_Γιατί υπάρχουν δύο τοποθεσίες για τα scripts εκκίνησης των υπηρεσιών;_ Τα scripts που βρίσκονται στον κατάλογο [.filename]#/etc/rc.d/# είναι για εφαρμογές που ανήκουν στο "βασικό" σύστημα. (Για παράδειγμα, τις man:cron[8], man:sshd[8], man:syslog[3], και άλλες.) Τα scripts που βρίσκονται στον κατάλογο [.filename]#/usr/local/etc/rc.d/# είναι για εφαρμογές που έχουν εγκατασταθεί από τους χρήστες, όπως για παράδειγμα ο Apache, το Squid, κ.λ.π.
|
||||
|
||||
_Ποια είναι η διαφορά μεταξύ του "βασικού" συστήματος και των εφαρμογών χρήστη;_ Το FreeBSD αναπτύσσεται ως ένα πλήρες λειτουργικό σύστημα. Με άλλα λόγια, ο πυρήνας, οι βιβλιοθήκες του συστήματος, οι βασικές εντολές (userland, τα προγράμματα όπως το man:ls[1], man:cat[1], man:cp[1] κλπ.), αναπτύσσονται και δημοσιεύονται μαζί, ως σύνολο. Αυτό αναφέρεται και ως "βασικό" σύστημα. Οι εφαρμογές που εγκαθίστανται από τους χρήστες, δεν ανήκουν στο "βασικό" σύστημα, και τέτοιες είναι για παράδειγμα ο Apache, το X11, ο Mozilla Firefox, κλπ. Αυτού του είδους οι εφαρμογές, γενικά εγκαθίστανται με τη χρήση της <<SOFTWARE,Συλλογής Πακέτων και Ports>> του FreeBSD. Για να ξεχωρίζουν από το υπόλοιπο "βασικό" σύστημα, οι εφαρμογές χρήστη συνήθως εγκαθίστανται σε υποκαταλόγους του [.filename]#/usr/local/#. Έτσι τα εκτελέσιμα προγράμματα των χρηστών βρίσκονται συνήθως στον κατάλογο [.filename]#/usr/local/bin/#, τα αντίστοιχα αρχεία ρυθμίσεων τους στον κατάλογο [.filename]#/usr/local/etc/#, κ.ο.κ.
|
||||
****
|
||||
|
||||
Οι υπηρεσίες ενεργοποιούνται με την προσθήκη μιας εγγραφής τύπου `ΌνομαΥπηρεσίας_enable="YES"` στο αρχείο [.filename]#/etc/rc.conf# (man:rc.conf[5]). Ρίξτε μια ματιά στο αρχείο [.filename]#/etc/defaults/rc.conf# για να δείτε τις προεπιλογές του συστήματος. Οι ρυθμίσεις που κάνουμε στο αρχείο [.filename]#/etc/rc.conf# υπερισχύουν έναντι των προεπιλογών αυτών. Επίσης, κατά την εγκατάσταση πρόσθετων εφαρμογών, βεβαιωθείτε ότι διαβάσατε την αντίστοιχη τεκμηρίωση για να βρείτε πως να ενεργοποιήσετε τυχόν σχετικές υπηρεσίες.
|
||||
|
||||
Το ακόλουθο απόσπασμα από το αρχείο [.filename]#/etc/rc.conf# ενεργοποιεί την υπηρεσία man:sshd[8] και τον Apache 2.2. Επίσης καθορίζει ότι ο Apache θα ξεκινήσει με ενεργοποιημένη τη δυνατότητα SSL.
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
# enable SSHD
|
||||
sshd_enable="YES"
|
||||
# enable Apache with SSL
|
||||
apache22_enable="YES"
|
||||
apache22_flags="-DSSL"
|
||||
....
|
||||
|
||||
Από τη στιγμή που μια υπηρεσία ενεργοποιηθεί στο αρχείο [.filename]#/etc/rc.conf#, μπορείτε να την ξεκινήσετε απευθείας από τη γραμμή εντολών (χωρίς να χρειάζεται να επανεκκινήσετε το σύστημα σας):
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /etc/rc.d/sshd start
|
||||
....
|
||||
|
||||
Αν μια υπηρεσία δεν έχει ενεργοποιηθεί στο αρχείο αυτό, μπορείτε να εξαναγκάσετε την εκκίνηση της από την γραμμή εντολών με την επιλογή `forcestart`:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /etc/rc.d/sshd forcestart
|
||||
....
|
||||
|
||||
[[network]]
|
||||
== Ρύθμιση Δικτύου
|
||||
|
||||
[[interfaces]]
|
||||
=== Διεπαφές Δικτύου
|
||||
|
||||
Αντί για το γενικό αναγνωριστικό τύπου _ethX_ που χρησιμοποιεί το Linux(R) για την αναγνώριση μιας διεπαφής δικτύου, το FreeBSD χρησιμοποιεί ως αναγνωριστικό το όνομα του προγράμματος οδήγησης ακολουθούμενο από ένα αριθμό. Η ακόλουθη έξοδος από την εντολή man:ifconfig[8] δείχνει δύο κάρτες δικτύου Intel(R) Pro 1000 (με αναγνωριστικά em0 and em1):
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% ifconfig
|
||||
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
options=b<RXCSUM,TXCSUM,VLAN_MTU>
|
||||
inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255
|
||||
ether 00:50:56:a7:70:b2
|
||||
media: Ethernet autoselect (1000baseTX <full-duplex>)
|
||||
status: active
|
||||
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
options=b<RXCSUM,TXCSUM,VLAN_MTU>
|
||||
inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255
|
||||
ether 00:50:56:a7:03:2b
|
||||
media: Ethernet autoselect (1000baseTX <full-duplex>)
|
||||
status: active
|
||||
....
|
||||
|
||||
[[ipaddress]]
|
||||
=== Ρυθμίσεις Διευθύνσεων IP
|
||||
|
||||
Μπορείτε να αναθέσετε μια διεύθυνση IP σε μια διεπαφή δικτύου με τη χρήση της εντολής man:ifconfig[8]. Για να γίνει μόνιμη ωστόσο αυτή η αλλαγή, και να μην χάνεται σε κάθε επανεκκίνηση, θα πρέπει να την περιλάβετε στο αρχείο [.filename]#/etc/rc.conf#. Στο ακόλουθο παράδειγμα φαίνεται η καταχώρηση που περιλαμβάνει το όνομα του υπολογιστή (hostname), την διεύθυνση IP, καθώς και την προεπιλεγμένη πύλη (defaultrouter):
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
hostname="server1.example.com"
|
||||
ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0"
|
||||
defaultrouter="10.10.10.1"
|
||||
....
|
||||
|
||||
Χρησιμοποιήστε την ακόλουθη καταχώρηση για να καθορίσετε ότι μια διεπαφή θα λαμβάνει ρυθμίσεις μέσω DHCP:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
hostname="server1.example.com"
|
||||
ifconfig_em0="DHCP"
|
||||
....
|
||||
|
||||
[[firewall]]
|
||||
== Firewall
|
||||
|
||||
Στο Linux(R) χρησιμοποιείται το IPTABLES το οποίο παρέχει υπηρεσίες firewall σε επίπεδο πυρήνα. Το FreeBSD παρέχει επίσης firewall μέσω του πυρήνα. Για την ακρίβεια, το FreeBSD παρέχει τρία firewalls:
|
||||
|
||||
* link:{handbook}#firewalls-ipfw[IPFIREWALL]
|
||||
* link:{handbook}#firewalls-ipf[IPFILTER]
|
||||
* link:{handbook}#firewalls-pf[PF]
|
||||
|
||||
Το IPFIREWALL ή IPFW (η εντολή χειρισμού των κανόνων του IPFW είναι η man:ipfw[8]) είναι το firewall που έχει αναπτυχθεί και συντηρείται από την ομάδα ανάπτυξης του FreeBSD. Το IPFW μπορεί να συνδυαστεί με το man:dummynet[4] για να παρέχει δυνατότητες διαμόρφωσης της κίνησης πακέτων (traffic shaping) και να εξομοιώνει διαφορετικούς τύπους συνδέσεων δικτύου.
|
||||
|
||||
Παράδειγμα ενός κανόνα του IPFW που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
ipfw add allow tcp from any to me 22 in via $ext_if
|
||||
....
|
||||
|
||||
Το IPFILTER είναι μια εφαρμογή firewall που αναπτύσσεται από τον Darren Reed. Δεν έχει φτιαχτεί ειδικά για το FreeBSD, και έχει μεταφερθεί και σε άλλα λειτουργικά, συμπεριλαμβανομένων των NetBSD, OpenBSD, SunOS, HP/UX, και Solaris.
|
||||
|
||||
Παράδειγμα ενός κανόνα για το IPFILTER που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
pass in on $ext_if proto tcp from any to any port = 22
|
||||
....
|
||||
|
||||
Η τελευταία εφαρμογή firewall, το PF, αναπτύσσεται από το OpenBSD project. Το PF δημιουργήθηκε ως αντικαταστάτης του IPFILTER, και έτσι η σύνταξη του PF είναι αρκετά παρόμοια με αυτή του IPFILTER. Το PF μπορεί να συνδυαστεί με το man:altq[4] για να παρέχει υπηρεσίες τύπου QoS.
|
||||
|
||||
Παράδειγμα κανόνα του PF που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
pass in on $ext_if inet proto tcp from any to ($ext_if) port 22
|
||||
....
|
||||
|
||||
[[updates]]
|
||||
== Αναβαθμίζοντας το FreeBSD
|
||||
|
||||
Υπάρχουν τρεις μέθοδοι για την αναβάθμιση ενός συστήματος FreeBSD: Μέσω του πηγαίου κώδικα, μέσω έτοιμων (binary) αναβαθμίσεων, και μέσω των CD εγκατάστασης.
|
||||
|
||||
Η εγκατάσταση μέσω του πηγαίου κώδικα είναι η πιο πολύπλοκη, αλλά προσφέρει και τη μεγαλύτερη δυνατή ευελιξία. Η διαδικασία αυτή περιλαμβάνει το συγχρονισμό του τοπικού αντιγράφου του πηγαίου κώδικα του FreeBSD με τον κώδικα του FreeBSD που βρίσκεται στους εξυπηρετητές CVS (Concurrent Versioning System). Από τη στιγμή που το τοπικό αντίγραφο πηγαίου κώδικα είναι ανανεωμένο, μπορείτε να μεταγλωττίσετε νέες εκδόσεις του πυρήνα και των βασικών προγραμμάτων. Για περισσότερες πληροφορίες σχετικά με το σύστημα αναβάθμισης μέσω πηγαίου κώδικα, δείτε το κεφάλαιο link:{handbook}#updating-upgrading[Ενημέρωση και Αναβάθμιση] στο Εγχειρίδιο του FreeBSD.
|
||||
|
||||
Οι έτοιμες (binary) αναβαθμίσεις, είναι παρόμοιες με τη χρήση της εντολής `yum` ή `apt-get` για την αναβάθμιση ενός συστήματος Linux(R). Η εντολή man:freebsd-update[8] θα κατεβάσει τις αναβαθμίσεις και θα τις εγκαταστήσει. Μπορείτε να καθορίσετε την αυτόματη, ανά τακτά διαστήματα εκτέλεση της, με τη χρήση του man:cron[8].
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Αν πρόκειται να χρησιμοποιήσετε το man:cron[8] για προγραμματισμένες αναβαθμίσεις, βεβαιωθείτε ότι χρησιμοποιείτε την εντολή `freebsd-update cron` στο αρχείο man:crontab[1] για να ελαχιστοποιηθεί η πιθανότητα να γίνεται ανανέωση την ίδια στιγμή από ένα μεγάλο αριθμό μηχανημάτων.
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
0 3 * * * root /usr/sbin/freebsd-update cron
|
||||
....
|
||||
|
||||
====
|
||||
|
||||
Η τελευταία επιλογή αναβάθμισης, μέσω των CD εγκατάστασης, είναι αρκετά ξεκάθαρη. Απλώς εκκινήστε από το CD εγκατάστασης και επιλέξτε την αντίστοιχη επιλογή αναβάθμισης (upgrade).
|
||||
|
||||
[[procfs]]
|
||||
== procfs: Περασμένο αλλά όχι Ξεχασμένο
|
||||
|
||||
Στο Linux(R), θα χρειαστεί να δείτε το [.filename]#/proc/sys/net/ipv4/ip_forward# για να καθορίσετε αν είναι ενεργοποιημένη η προώθηση IP (IP forwarding). Στο FreeBSD θα πρέπει να χρησιμοποιήσετε το man:sysctl[8] για να δείτε αυτή και άλλες ρυθμίσεις του συστήματος, καθώς το man:procfs[5] θεωρείται παρωχημένο σε πρόσφατες εκδόσεις του λειτουργικού. (Αν και η εντολή `sysctl` είναι επίσης διαθέσιμη και στο Linux(R)).
|
||||
|
||||
Στο παράδειγμα της προώθησης IP, θα χρησιμοποιούσαμε την ακόλουθη εντολή για να καθορίσουμε αν η δυνατότητα αυτή είναι ενεργοποιημένη σε ένα FreeBSD σύστημα:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% sysctl net.inet.ip.forwarding
|
||||
net.inet.ip.forwarding: 0
|
||||
....
|
||||
|
||||
Η επιλογή `-a` χρησιμοποιείται για να πάρουμε μια λίστα με όλες τις ρυθμίσεις του συστήματος:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% sysctl -a
|
||||
kern.ostype: FreeBSD
|
||||
kern.osrelease: 6.2-RELEASE-p9
|
||||
kern.osrevision: 199506
|
||||
kern.version: FreeBSD 6.2-RELEASE-p9 0: Thu Nov 29 04:07:33 UTC 2007
|
||||
root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
|
||||
|
||||
kern.maxvnodes: 17517
|
||||
kern.maxproc: 1988
|
||||
kern.maxfiles: 3976
|
||||
kern.argmax: 262144
|
||||
kern.securelevel: -1
|
||||
kern.hostname: server1
|
||||
kern.hostid: 0
|
||||
kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
|
||||
kern.posix1version: 200112
|
||||
...
|
||||
....
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Κάποιες από τις τιμές που δείχνει η εντολή `sysctl` είναι μόνο για ανάγνωση.
|
||||
====
|
||||
|
||||
Υπάρχουν περιπτώσεις όπου απαιτείται το procfs, όπως για παράδειγμα όταν εκτελείτε παλιότερο λογισμικό, το οποίο κάνει χρήση της εντολής man:truss[1] για την ανίχνευση των κλήσεων συστήματος, και για την link:{handbook}#linuxemu[Συμβατότητα με Εκτελέσιμα του Linux(R)]. (Αν και η Συμβατότητα με Εκτελέσιμα του Linux(R) χρησιμοποιεί το δικό της procfs, το man:linprocfs[5]). Αν χρειάζεται να προσαρτήσετε το procfs, μπορείτε να προσθέσετε την ακόλουθη εγγραφή στο αρχείο [.filename]#/etc/fstab#:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
proc /proc procfs rw,noauto 0 0
|
||||
....
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Η επιλογή `noauto` θα εμποδίσει την αυτόματη προσάρτηση του [.filename]#/proc# κατά την εκκίνηση του συστήματος.
|
||||
====
|
||||
|
||||
Προσαρτήστε κατόπιν την procfs χρησιμοποιώντας την ακόλουθη εντολή:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# mount /proc
|
||||
....
|
||||
|
||||
[[commands]]
|
||||
== Συνηθισμένες Εντολές
|
||||
|
||||
[[packageCommands]]
|
||||
=== Διαχείριση Πακέτων
|
||||
|
||||
[.informaltable]
|
||||
[cols="1,1,1", frame="none", options="header"]
|
||||
|===
|
||||
| Εντολή του Linux(R) (Red Hat/Debian)
|
||||
| Αντίστοιχη εντολή FreeBSD
|
||||
| Σκοπός
|
||||
|
||||
|`yum install package` / `apt-get install package`
|
||||
|`pkg_add -r package`
|
||||
|Εγκατάσταση πακέτου από απομακρυσμένο εξυπηρετητή
|
||||
|
||||
|`rpm -ivh package` / `dpkg -i package`
|
||||
|`pkg_add -v package`
|
||||
|Εγκατάσταση πακέτου
|
||||
|
||||
|`rpm -qa` / `dpkg -l`
|
||||
|`pkg_info`
|
||||
|Λίστα εγκατεστημένων πακέτων
|
||||
|===
|
||||
|
||||
[[systemCommands]]
|
||||
=== Διαχείριση Συστήματος
|
||||
|
||||
[.informaltable]
|
||||
[cols="1,1,1", frame="none", options="header"]
|
||||
|===
|
||||
| Εντολή Linux(R)
|
||||
| Αντίστοιχη εντολή FreeBSD
|
||||
| Σκοπός
|
||||
|
||||
|`lspci`
|
||||
|`pciconf`
|
||||
|Λίστα συσκευών PCI
|
||||
|
||||
|`lsmod`
|
||||
|`kldstat`
|
||||
|Λίστα φορτωμένων αρθρωμάτων πυρήνα
|
||||
|
||||
|`modprobe`
|
||||
|`kldload` / `kldunload`
|
||||
|Φόρτωση/Αποφόρτωση αρθρωμάτων πυρήνα
|
||||
|
||||
|`strace`
|
||||
|`truss`
|
||||
|Ανίχνευση κλήσεων συστήματος
|
||||
|===
|
||||
|
||||
[[conclusion]]
|
||||
== Συμπεράσματα
|
||||
|
||||
Ευελπιστούμε ότι αυτό το κείμενο σας παρείχε αρκετές πληροφορίες για να ξεκινήσετε με το FreeBSD. Για περισσότερες και πιο λεπτομερείς πληροφορίες, παρακαλούμε να διαβάσετε το link:{handbook}[Εγχειρίδιο του FreeBSD] το οποίο επίσης περιέχει και πολλά θέματα που δεν καλύφθηκαν καθόλου στο παρόν κείμενο.
|
||||
165
documentation/content/el/articles/mailing-list-faq/_index.adoc
Normal file
165
documentation/content/el/articles/mailing-list-faq/_index.adoc
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
---
|
||||
title: Συχνές Ερωτήσεις Σχετικά με τις Λίστες Ηλεκτρονικού Ταχυδρομείου του FreeBSD
|
||||
authors:
|
||||
- author: Η Ομάδα Τεκμηρίωσης του FreeBSD
|
||||
releaseinfo: "$FreeBSD$"
|
||||
---
|
||||
|
||||
= Συχνές Ερωτήσεις Σχετικά με τις Λίστες Ηλεκτρονικού Ταχυδρομείου του FreeBSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/authors.adoc[]
|
||||
include::shared/el/mailing-lists.adoc[lines=10..-1]
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Το άρθρο αυτό αποτελεί τις συχνές ερωτήσεις για τις λίστες ταχυδρομείου του FreeBSD. Αν ενδιαφέρεστε να βοηθήσετε σε αυτό το έργο, στείλτε ένα email στην {freebsd-doc}. Η τελευταία έκδοση αυτού του εγγράφου είναι πάντοτε διαθέσιμη στην link:{mailing-list-faq}[Δικτυακή τοποθεσία του FreeBSD]. Μπορείτε επίσης να το κατεβάσετε ως ένα μεγάλο αρχείο link:.[HTML] ή και ως απλό κείμενο, PostScript, PDF, κ.λ.π. από τον link:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/[Διακομιστή FTP του FreeBSD]. Μπορεί επίσης να θέλετε να link:https://www.FreeBSD.org/search/[ψάξετε σε αυτό το άρθρο].
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[introduction]]
|
||||
== Εισαγωγή
|
||||
|
||||
Όπως συνηθίζεται στα κείμενα των Συχνών Ερωτήσεων (FAQ), το κείμενο αυτό περιέχει τις πιο συχνές ερωτήσεις που σχετίζονται με τις λίστες ταχυδρομείου του FreeBSD (και φυσικά τις απαντάει!). Αν και ο αρχικός σκοπός των FAQ ήταν να μειώσουν το εύρος ζώνης που απαιτείται από την συνεχόμενη απάντηση των ίδιων και ίδιων ερωτήσεων, τα FAQ τελικά καθιερώθηκαν ως μια πολύ χρήσιμη αυτόνομη πηγή πληροφοριών.
|
||||
|
||||
Το κείμενο αυτό προσπαθεί να αντιπροσωπεύσει την κοινά αποδεκτή γνώμη της κοινότητας και ως τέτοιο, δεν μπορεί σε καμιά περίπτωση να θεωρηθεί ότι είναι απόλυτα __έγκυρο__. Αν ωστόσο βρείτε τεχνικά λάθη ή έχετε να προτείνετε θέματα που πρέπει να προστεθούν, παρακαλούμε στείλτε μας μια αναφορά προβλήματος (PR) ή ένα email στην {freebsd-doc}. Ευχαριστούμε!
|
||||
|
||||
=== Ποιος είναι ο σκοπός των λιστών ταχυδρομείου του FreeBSD;
|
||||
|
||||
Οι λίστες ταχυδρομείου του FreeBSD αποτελούν το βασικό κανάλι επικοινωνίας για την κοινότητα του FreeBSD. Καλύπτουν πολλές διαφορετικές περιοχές θεμάτων και ενδιαφερόντων.
|
||||
|
||||
=== Ποιο είναι το κοινό για τις λίστες ταχυδρομείου του FreeBSD;
|
||||
|
||||
Αυτό εξαρτάται από τον κανονισμό της κάθε λίστας. Μερικές λίστες είναι περισσότερο προσανατολισμένες στους προγραμματιστές. Άλλες προσανατολίζονται περισσότερο στην κοινότητα του FreeBSD ως σύνολο. Παρακαλούμε δείτε http://lists.FreeBSD.org/mailman/listinfo[αυτή τη λίστα] για την τρέχουσα περίληψη.
|
||||
|
||||
=== Είναι όλες οι λίστες του FreeBSD ανοιχτές για συμμετοχή από τον καθένα;
|
||||
|
||||
Και πάλι, αυτό εξαρτάται από τον κανονισμό της κάθε λίστας. Σας παρακαλούμε να διαβάσετε τον κανονισμό της λίστας που σας ενδιαφέρει πριν αρχίσετε να δημοσιεύετε σε αυτήν και να τον σέβεστε σε κάθε δημοσίευση σας. Αυτό βοηθάει όλους τους συμμετέχοντες να έχουν την καλύτερη δυνατή εμπειρία από τις λίστες μας.
|
||||
|
||||
Αν διαβάζοντας τους κανονισμούς για τις παραπάνω λίστες, δεν μπορείτε ακόμα να αποφασίσετε σε ποια λίστα να στείλετε την ερώτηση σας, μάλλον θα πρέπει να την στείλετε στην {freebsd-questions} (αλλά δείτε πρώτα παρακάτω).
|
||||
|
||||
Σημειώστε επίσης ότι κατά παράδοση οι λίστες είναι ανοιχτές και σε άτομα που δεν έχουν εγγραφεί σε αυτές. Αυτή η επιλογή είναι εσκεμμένη, με σκοπό να βοηθήσει τους νέους χρήστες να εισέλθουν πιο εύκολα στην κοινότητα του FreeBSD, και να ενισχύσει την ανοιχτή ανταλλαγή ιδεών. Ωστόσο, λόγω κακής χρήσης από συγκεκριμένα άτομα, κάποιες λίστες έχουν τώρα τον περιορισμό ότι κάθε μήνυμα από μη-μέλος θα πρέπει να ελέγχεται χειροκίνητα για να εξασφαλιστεί ότι είναι κατάλληλο.
|
||||
|
||||
=== Πως μπορώ να εγγραφώ;
|
||||
|
||||
Μπορείτε να χρησιμοποιήσετε την http://lists.FreeBSD.org/mailman/listinfo[διεπαφή Web του Mailman] για να γραφείτε σε οποιαδήποτε από τις δημόσιες λίστες.
|
||||
|
||||
=== Πως μπορώ να διαγραφώ;
|
||||
|
||||
Με τον ίδιο τρόπο που εγγραφήκατε. Ή μπορείτε επίσης να ακολουθήσετε τις οδηγίες που βρίσκονται στο τέλος κάθε μηνύματος που στέλνει η λίστα.
|
||||
|
||||
Σας παρακαλούμε μη στέλνετε μηνύματα διαγραφής απευθείας σε δημόσιες λίστες. Πρώτα από όλα, αυτό δεν θα επιτύχει το σκοπό σας, και δεύτερον θα εκνευρίσει τους υπάρχοντες συνδρομητές οι οποίοι θα λογομαχήσουν εναντίον σας. Πρόκειται για κλασικό λάθος κατά τη χρήση λιστών ταχυδρομείου και σας παρακαλούμε να προσπαθήσετε να το αποφύγετε.
|
||||
|
||||
=== Είναι διαθέσιμα τα αρχεία των λιστών;
|
||||
|
||||
Ναι. Μπορείτε να τα βρείτε http://docs.FreeBSD.org/mail/[εδώ], ταξινομημένα κατά θέμα.
|
||||
|
||||
=== Είναι διαθέσιμες οι λίστες σε μορφή περίληψης;
|
||||
|
||||
Ναι. Δείτε http://lists.FreeBSD.org/mailman/listinfo[τη διεπαφή web του Mailman].
|
||||
|
||||
[[etiquette]]
|
||||
== Συμπεριφορά (Etiquette) στις Λίστες
|
||||
|
||||
Η συμμετοχή στις λίστες ηλεκτρονικού ταχυδρομείου, όπως και η συμμετοχή σε οποιαδήποτε κοινότητα, απαιτεί μια κοινή βάση επικοινωνίας. Σας παρακαλούμε να κάνετε μόνο κατάλληλες δημοσιεύσεις, και να ακολουθείτε τους κοινούς κανόνες συμπεριφοράς.
|
||||
|
||||
=== Τι πρέπει να κάνω πριν από μια δημοσίευση;
|
||||
|
||||
Διαβάζοντας αυτό το κείμενο, έχετε ήδη κάνει το πιο σημαντικό βήμα. Ωστόσο, αν είστε νέος στο FreeBSD, θα πρέπει πρώτα να εξοικειωθείτε με το λογισμικό και όλη την κοινωνική ιστορία που το περιβάλλει, διαβάζοντας τα διάφορα link:https://www.FreeBSD.org/docs/books/[άρθρα και βιβλία] τα οποία είναι διαθέσιμα. Ιδιαίτερο ενδιαφέρον έχουν link:{faq}[Οι Συχνές Ερωτήσεις (FAQ) του FreeBSD], το link:{handbook}[Εγχειρίδιο του FreeBSD] καθώς και τα άρθρα link:{freebsd-questions-article}[Πως να χρησιμοποιείτε με επιτυχία τη λίστα ηλεκτρονικού ταχυδρομείου FreeBSD-questions], link:{explaining-bsd}[Περιγραφή των Συστημάτων BSD], και link:{new-users}[Για Χρήστες Νέους τόσο στο FreeBSD όσο και στο UNIX(R)].
|
||||
|
||||
Θεωρείται γενικά κακή συμπεριφορά να ρωτήσετε μια ερώτηση η οποία μπορεί να απαντηθεί από κάποιο από τα παραπάνω κείμενα. Αυτό δεν συμβαίνει επειδή οι εθελοντές που δουλεύουν σε αυτό το έργο είναι κακοί άνθρωποι, αλλά επειδή όταν έχουν απαντήσει την ίδια ερώτηση πολλές φορές, αρχίζει να τους ενοχλεί. Αυτό συμβαίνει ειδικά αν υπάρχει διαθέσιμη η απάντηση της ερώτησης. Να θυμάστε πάντα ότι σχεδόν όλη η δουλειά στο FreeBSD γίνεται από εθελοντές και τελικά είμαστε απλώς άνθρωποι.
|
||||
|
||||
=== Τι δημοσίευση μπορεί να θεωρηθεί ακατάλληλη;
|
||||
|
||||
* Η δημοσίευση πρέπει να είναι σύμφωνη με τους κανονισμούς της λίστας.
|
||||
* Οι προσωπικές επιθέσεις είναι γενικά ανεπιθύμητες. Σαν καλοί διαδικτυακοί πολίτες, θα πρέπει να προσπαθούμε να κρατάμε υψηλά επίπεδα συμπεριφοράς.
|
||||
* Το spam δεν επιτρέπεται ποτέ. Γίνεται επεξεργασία στις λίστες για να απαγορευτούν οι δημοσιεύσεις σε όσους παραβαίνουν αυτό τον κανόνα.
|
||||
|
||||
=== Ποια θεωρείται σωστή συμπεριφορά στην αποστολή μηνυμάτων στις λίστες;
|
||||
|
||||
* Παρακαλούμε να κάνετε αναδίπλωση των γραμμών κάθε 75 χαρακτήρες. Δεν χρησιμοποιούν όλοι GUI προγράμματα για να διαβάζουν το mail τους.
|
||||
* Παρακαλούμε σεβαστείτε το γεγονός ότι το εύρος ζώνης δεν είναι απεριόριστο. Δεν διαβάζει καθένας το email του μέσω συνδέσεων υψηλής ταχύτητας, έτσι αν το μήνυμα σας περιέχει κάτι σαν το περιεχόμενο του αρχείου [.filename]#config.log# ή ένα εκτεταμένο stack trace, σας παρακαλούμε να ανεβάσετε αυτές τις πληροφορίες σε κάποια δικτυακή τοποθεσία και να στείλετε ένα σύνδεσμο προς αυτές. Να θυμάστε επίσης ότι γίνεται αρχειοθέτηση αυτών των μηνυμάτων, έτσι αν στείλετε ένα τεράστιο μήνυμα θα μεγαλώσετε και το μέγεθος των αρχείων, ακόμα και όταν αυτές οι πληροφορίες δεν θα είναι πια χρήσιμες.
|
||||
* Μορφοποιήστε το μήνυμα σας ώστε να είναι ευανάγνωστο και σας παρακαλούμε ΜΗ ΦΩΝΑΖΕΤΕ!!!. Μην υποτιμάτε το αποτέλεσμα που θα έχει ένα φτωχά μορφοποιημένο μήνυμα, και αυτό δεν συμβαίνει μόνο στις λίστες του FreeBSD. Το μήνυμα σας είναι το μόνο που σας γνωστοποιεί στους υπόλοιπους ανθρώπους, και αν είναι άσχημα μορφοποιημένο, γεμάτο θαυμαστικά, θα αφήσει στους άλλους άσχημη εντύπωση για εσάς.
|
||||
* Χρησιμοποιήστε την κατάλληλη γλώσσα για τη λίστα ταχυδρομείου που πρόκειται να στείλετε μήνυμα. Μπορείτε να δείτε link:https://www.FreeBSD.org/community/mailinglists/[εδώ] τις λίστες που υπάρχουν σε γλώσσες εκτός της Αγγλικής.
|
||||
+
|
||||
Όσο αφορά τις Αγγλικές λίστες, αντιλαμβανόμαστε ότι για πολλούς η Αγγλική δεν είναι η μητρική τους γλώσσα και δείχνουμε κατανόηση. Θεωρείται κακή συμπεριφορά να κατακρίνετε όσους δεν έχουν τα Αγγλικά ως μητρική γλώσσα για λάθη γραμματικής ή ορθογραφίας. Το FreeBSD έχει μια πολύ καλή παράδοση σε αυτό το θέμα, σας παρακαλούμε να μας βοηθήσετε να τη διατηρήσουμε.
|
||||
* Παρακαλούμε χρησιμοποιήστε ένα πρόγραμμα αποστολής ταχυδρομείου (MUA) που να ακολουθεί σωστά τα πρότυπα. Πολλά από τα άσχημα μορφοποιημένα μηνύματα προέρχονται από http://www.lemis.com/email.html[κακής ποιότητας ή κακορυθμισμένα προγράμματα ταχυδρομείου]. Τα παρακάτω προγράμματα είναι γνωστό ότι στέλνουν προβληματικά μηνύματα, χωρίς εσείς να το γνωρίζετε:
|
||||
|
||||
** cc:Mail
|
||||
** Eudora(R) (παλιότερες εκδόσεις)
|
||||
** exmh
|
||||
** Microsoft(R) Exchange
|
||||
** Microsoft(R) Internet Mail
|
||||
** Microsoft(R) Outlook(R)
|
||||
** Netscape(R) (παλιότερες εκδόσεις)
|
||||
|
||||
+
|
||||
Όπως μπορείτε να δείτε, πολλά από τα προβληματικά προγράμματα προέρχονται από τον κόσμο της Microsoft. Αν είναι δυνατόν χρησιμοποιήστε ένα πρόγραμμα που να προέρχεται από το UNIX(R). Αν πρέπει να χρησιμοποιήσετε ένα πρόγραμμα σε περιβάλλον Microsoft, φροντίστε να είναι ρυθμισμένο σωστά. Προσπαθήστε να μην χρησιμοποιήσετε MIME: αρκετός κόσμος χρησιμοποιεί προγράμματα ταχυδρομείου που δεν τα πάνε πολύ καλά με το MIME.
|
||||
* Βεβαιωθείτε ότι η ώρα και η ζώνη ώρας στον υπολογιστή σας είναι σωστά ρυθμισμένα. Αυτό μπορεί να φαίνεται κάπως ανόητο, ειδικά καθώς το μήνυμα σας θα φτάσει έτσι και αλλιώς, αλλά αρκετοί άνθρωποι σε αυτές τις λίστες λαμβάνουν εκατοντάδες μηνύματα κάθε μέρα. Συχνά τα ταξινομούν κατά θέμα και ημερομηνία, έτσι αν το μήνυμα σας έρθει μετά την πρώτη απάντηση θα θεωρήσουν ότι το έχασαν και δεν θα ασχοληθούν να το ψάξουν.
|
||||
* Πολλές φορές οι πληροφορίες που πρέπει να παρέχετε περιέχουν την έξοδο προγραμμάτων όπως το man:dmesg[8], ή τα μηνύματα που εμφανίζονται στην κονσόλα, τα οποία συνήθως γράφονται στο [.filename]#/var/log/messages#. Μην προσπαθήσετε να αντιγράψετε αυτές τις πληροφορίες πληκτρολογώντας τις ξανά: όχι μόνο είναι βασανιστικό, αλλά είναι σχεδόν σίγουρο ότι θα κάνετε κάποιο λάθος. Για να στείλετε τα περιεχόμενα κάποιου αρχείου καταγραφής, είτε αντιγράψτε το αρχείο και χρησιμοποιήστε κάποιο συντάκτη κειμένου για να κόψετε τα κομμάτια που σας ενδιαφέρουν, ή κάντε αποκοπή και επικόλληση μέσα στο μήνυμα σας. Για την έξοδο προγραμμάτων όπως το `dmesg`, χρησιμοποιήστε ανακατεύθυνση της εξόδου σε ένα αρχείο και στείλτε αυτό. Για παράδειγμα:
|
||||
+
|
||||
[source,bash]
|
||||
....
|
||||
% dmesg > /tmp/dmesg.out
|
||||
....
|
||||
+
|
||||
Το παραπάνω θα ανακατευθύνει τις πληροφορίες στο αρχείο [.filename]#/tmp/dmesg.out#.
|
||||
* Όταν χρησιμοποιείτε αποκοπή και επικόλληση να έχετε υπόψη σας ότι αυτές οι λειτουργίες μπορεί να καταστρέψουν το νόημα των μηνυμάτων. Αυτό συμβαίνει ιδιαίτερα όταν στέλνετε αρχεία όπως τα [.filename]#Makefiles#, όπου το `tab` είναι σημαντικός χαρακτήρας. Πρόκειται για πολύ κοινό και ενοχλητικό πρόβλημα ειδικά σε μηνύματα που απευθύνονται στη link:https://www.FreeBSD.org/support/gnats[Βάση Δεδομένων Προβλημάτων GNATS]. Τα [.filename]#Makefiles# όπου τα tabs έχουν αλλάξει είτε σε κενά ή στον ενοχλητικό χαρακτήρα `=3B` δημιουργούν πολλά ενοχλητικά προβλήματα στους committers.
|
||||
|
||||
=== Τι πρέπει να έχω υπόψη μου όσο αφορά τη συμπεριφορά στη λίστα όταν απαντάω σε κάποιο υπάρχον μήνυμα;
|
||||
|
||||
* Παρακαλούμε να συμπεριλάβετε το σχετικό κείμενο από το αρχικό κείμενο. Περιορίστε το στο ελάχιστο, αλλά μη το παρακάνετε. Θα πρέπει κάποιος που δεν έχει δει το αρχικό μήνυμα να μπορεί να καταλάβει σε τι αναφέρεται η συζήτηση.
|
||||
+
|
||||
Αυτό είναι ιδιαίτερα σημαντικό σε μηνύματα του τύπου "Ναι και σε μένα συμβαίνει το ίδιο", όπου το αρχικό μήνυμα μπορεί να ήταν αρκετές δεκάδες ή εκατοντάδες γραμμές.
|
||||
* Χρησιμοποιήστε κάποια τεχνική με την οποία να γίνεται δυνατή η αναγνώριση του κειμένου που ανήκει στο αρχικό μήνυμα και του κειμένου που προσθέσατε. Μια συνηθισμένη σύμβαση είναι να χρησιμοποιείται το "`> `" μπροστά από το αρχικό μήνυμα. Είναι επίσης καλή ιδέα να αφήνετε κενό διάστημα μετά το "`> `" και κενές γραμμές ανάμεσα στο δικό σας και το αρχικό, ώστε το τελικό αποτέλεσμα να είναι πιο ευανάγνωστο.
|
||||
* Να βεβαιώνεστε πάντα ότι οι αναφορές στον αρχικό συγγραφέα του μηνύματος είναι σωστές. Συχνά οι άνθρωποι προσβάλλονται αν τους εμφανίζετε να έχουν γράψει λέξεις ενώ αυτό δεν συμβαίνει.
|
||||
* Παρακαλούμε μην κάνετε `top post`. Αυτό σημαίνει να μην ξεκινάτε την απάντηση σας πάνω από το κείμενο του μηνύματος στο οποίο απαντάτε.
|
||||
+
|
||||
** Απ: Γιατί αντιστρέφει τη λογική ροή της συζήτησης.
|
||||
** Ερ: Γιατί θεωρείται κακό το top posting;
|
||||
+
|
||||
(Ευχαριστούμε το Randy Bush για το ανέκδοτο.)
|
||||
|
||||
[[recurring]]
|
||||
== Επαναλαμβανόμενα Θέματα στις Λίστες Ταχυδρομείου
|
||||
|
||||
Η συμμετοχή στις λίστες ταχυδρομείου, όπως και η συμμετοχή σε κάθε κοινότητα, απαιτεί μια κοινή βάση επικοινωνίας. Πολλές από τις λίστες ταχυδρομείου προϋποθέτουν γνώση της ιστορίας του Project. Ειδικότερα, φαίνεται ότι κάποια θέματα προκύπτουν ξανά και ξανά στα νεώτερα μέλη της κοινότητας. Είναι ευθύνη του καθένα που συμμετέχει να φροντίζει ώστε τα μηνύματα του να μην εμπίπτουν σε κάποια από αυτές τις κατηγορίες. Με τον τρόπο αυτό, βοηθάτε τις λίστες ταχυδρομείου να μην ξεφεύγουν από το θέμα τους, και πιθανόν προφυλάσσετε και τον εαυτό σας από τυχόν λεκτικές επιθέσεις (flames).
|
||||
|
||||
Η καλύτερη μέθοδος για να αποφύγετε το παραπάνω πρόβλημα είναι να εξοικειωθείτε με τα http://docs.FreeBSD.org/mail/[αρχεία των λιστών] για να μπορέσετε να καταλάβετε το ιστορικό της συζήτησης. Ιδιαίτερα χρήσιμη για αυτό το σκοπό θα σας φανεί και η link:https://www.FreeBSD.org/search/#mailinglists[λειτουργία αναζήτησης της λίστας]. (Αν η μέθοδος αυτή δεν φέρει το επιθυμητό αποτέλεσμα, συμπληρώστε την με μια αναζήτηση μέσω της μηχανής αναζήτησης που προτιμάτε).
|
||||
|
||||
Όταν θα έχετε εξοικειωθεί με τα αρχεία της λίστας, όχι μόνο θα γνωρίζετε ποια θέματα έχουν συζητηθεί παλιότερα, αλλά και με ποιο τρόπο εξελίσσονται συνήθως οι συζητήσεις σε αυτή τη λίστα, ποιοι είναι οι συμμετέχοντες και σε ποιο κοινό απευθύνεται. Είναι πάντοτε καλό να γνωρίζετε εκ των προτέρων τα παραπάνω πριν στείλετε μήνυμα σε οποιαδήποτε λίστα (όχι μόνο του FreeBSD).
|
||||
|
||||
Δεν υπάρχει αμφιβολία ότι τα αρχεία έχουν μεγάλη έκταση και μερικές ερωτήσεις φαίνονται να επαναλαμβάνονται πιο συχνά από άλλες, μερικές φορές σαν απαντήσεις όπου το θέμα που αναγράφεται στο μήνυμα δεν αντιπροσωπεύει πλέον το νέο περιεχόμενο. Ωστόσο πέφτει σε σας το βάρος να κάνετε όλη την εργασία που χρειάζεται ώστε να αποφύγετε αυτά τα επαναλαμβανόμενα θέματα.
|
||||
|
||||
[[bikeshed]]
|
||||
== Τι είναι το "Bikeshed";
|
||||
|
||||
Κυριολεκτικά το `bikeshed` είναι ένα μικρό εξωτερικό καταφύγιο όπου κάποιος μπορεί να φυλάξει το δίτροχο του (υπόστεγο ποδηλάτων). Στην ορολογία του FreeBSD ωστόσο, η λέξη αυτή χρησιμοποιείται για να αναφερόμαστε σε θέματα συζήτησης που είναι τόσο απλά ώστε (σχεδόν) καθένας να μπορεί να εκφέρει μια γνώμη για αυτά - και πολύ συχνά συμβαίνει ακριβώς αυτό. Η γέννηση αυτού του όρου εξηγείται με περισσότερη λεπτομέρεια σε link:{faq}#BIKESHED-PAINTING[αυτό το κείμενο]. Θα πρέπει να κατανοείτε την έννοια αυτού του όρου πριν αρχίσετε να στέλνετε μηνύματα σε οποιαδήποτε λίστα του FreeBSD.
|
||||
|
||||
Πιο γενικά, το bikeshed είναι ένα θέμα το οποίο τείνει να δημιουργεί περισσότερες παράπλευρες συζητήσεις και λεκτικούς διαξιφισμούς, αν δεν έχετε διαβάσει σχετικά με την προϊστορία του.
|
||||
|
||||
Σας παρακαλούμε να μας βοηθήσετε να κρατήσουμε τις λίστες ταχυδρομείου όσο το δυνατόν πιο χρήσιμες γίνεται για τον περισσότερο κόσμο, προσπαθώντας να αποφύγετε τα bikesheds όποτε είναι δυνατόν. Ευχαριστούμε!
|
||||
|
||||
[[acknowledgments]]
|
||||
== Ευχαριστίες
|
||||
|
||||
`{grog}`::
|
||||
Ο αρχικός συγγραφέας του περισσότερου υλικού που αφορά τους κανονισμούς των λιστών, που προέρχονται από το άρθρο link:{freebsd-questions-article}[Πως να χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου FreeBSD-questions].
|
||||
|
||||
`{linimon}`::
|
||||
Δημιουργία του πρόχειρου αντίγραφου αυτού του FAQ.
|
||||
305
documentation/content/el/articles/nanobsd/_index.adoc
Normal file
305
documentation/content/el/articles/nanobsd/_index.adoc
Normal file
|
|
@ -0,0 +1,305 @@
|
|||
---
|
||||
title: Εισαγωγή στο NanoBSD
|
||||
authors:
|
||||
- author: Daniel Gerzo
|
||||
- author: Κυριάκος Κεντρωτής
|
||||
copyright: 2006, 2009 Η Ομάδα Τεκμηρίωσης του FreeBSD
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "general"]
|
||||
---
|
||||
|
||||
= Εισαγωγή στο NanoBSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/authors.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Το έγγραφο αυτό παρέχει πληροφορίες για τα εργαλεία του NanoBSD, τα οποία μπορούν να χρησιμοποιηθούν προκειμένου να δημιουργηθούν είδωλα του συστήματος FreeBSD για embedded εφαρμογές, κατάλληλες για χρήση από κάρτα Compact Flash (ή άλλο μέσο αποθήκευσης).
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[intro]]
|
||||
== Εισαγωγή στο NanoBSD
|
||||
|
||||
Το NanoBSD είναι ένα εργαλείο το οποίο αναπτύσσεται ενεργά από τον {phk-name}. Δημιουργεί ένα εικονικό είδωλο του συστήματος FreeBSD για embedded εφαρμογές, ιδανικό για κάρτες Compact Flash (ή άλλο μέσο αποθήκευσης).
|
||||
|
||||
Μπορεί να χρησιμοποιηθεί για να φτιαχτούν εξειδικευμένες εικόνες, σχεδιασμένες για εύκολη εγκατάσταση και συντήρηση συστημάτων τύπου "computer appliance". Τα συστήματα τέτοιου είδους έχουν το υλικό και λογισμικό τους ενοποιημένα μέσα στο προϊόν. Αυτό σημαίνει πως συχνά είναι προεγκατεστημένα όλα τα απαραίτητα προγράμματα. Η συσκευή συνδέεται σε ένα υπάρχον δίκτυο και μπορεί να λειτουργήσει (σχεδόν) αμέσως.
|
||||
|
||||
Τα βασικά χαρακτηριστικά του NanoBSD είναι:
|
||||
|
||||
* Τα ports και τα πακέτα λειτουργούν όπως στο FreeBSD - οποιοδήποτε πρόγραμμα μπορεί να εγκατασταθεί και να χρησιμοποιηθεί στο FreeBSD μπορεί να ενσωματωθεί και σε ένα είδωλο NanoBSD και να λειτουργήσει με τον ίδιο τρόπο.
|
||||
* Δε υστερεί σε λειτουργικότητα - Αν είναι εφικτό να γίνει κάτι με το FreeBSD, τότε είναι εφικτό να γίνει το ίδιο πράμα και με το NanoBSD, εκτός αν το συγκεκριμένο χαρακτηριστικό έχει σκόπιμα αφαιρεθεί από το είδωλο του NanoBSD.
|
||||
* Το NanoBSD τρέχει με το σύστημα σε κατάσταση προστασίας από εγγραφή. Μπορείτε ακόμα και να το αποσυνδέσετε από το ρεύμα την ώρα που λειτουργεί. Δεν είναι αναγκαίο να εκτελεστεί το man:fsck[8] μετά από μια άγαρμπη διακοπή λειτουργίας του συστήματος.
|
||||
* Είναι εύκολο να δημιουργηθεί και να προσαρμοστεί ένα είδωλο NanoBSD. Με τη χρήση ενός μόνο σεναρίου φλοιού και ενός αρχείου διαμόρφωσης είναι εφικτή η δόμηση προσαρμοσμένων ειδώλων που ικανοποιούν οποιαδήποτε ανάγκη.
|
||||
|
||||
[[howto]]
|
||||
== Ρύθμιση του NanoBSD
|
||||
|
||||
[[design]]
|
||||
=== Η Σχεδίαση του NanoBSD
|
||||
|
||||
Αφού γραφτεί ένα είδωλο του NanoBSD σε κάποιο αποθηκευτικό μέσο, μπορεί να χρησιμοποιηθεί για να ξεκινήσει ένα σύστημα FreeBSD. Η προκαθορισμένη διαμόρφωση του μέσου εκκίνησης αποτελείται από τρία μέρη:
|
||||
|
||||
* Δύο διαμερίσματα εκκίνησης: `code#1` και `code#2`.
|
||||
* Το διαμέρισμα ρυθμίσεων, Αυτό μπορεί να προσαρτηθεί στον κατάλογο [.filename]#/cfg# την ώρα λειτουργίας του NanoBSD.
|
||||
|
||||
Αυτά τα τρία διαμερίσματα κανονικά είναι προσαρτημένα μόνο για ανάγνωση.
|
||||
|
||||
Οι κατάλογοι [.filename]#/etc# και [.filename]#/var# είναι εικονικοί δίσκοι man:md[4] (malloc).
|
||||
|
||||
Το διαμέρισμα ρυθμίσεων μπορεί να προσαρτηθεί στον κατάλογο [.filename]#/cfg#. Περιέχει αρχεία τα οποία αντιγράφονται στον κατάλογο [.filename]#/etc#. Κατά την εκκίνηση του συστήματος το διαμέρισμα ρυθμίσεων προσαρτάται προσωρινά μόνο για ανάγνωση και αντιγράφονται τα αρχεία του στον κατάλογο [.filename]#/etc#. Οπότε για να είναι κάποια αλλαγή ρυθμίσεων πιο "μόνιμη" και να ισχύει ακόμα και μετά από επανεκκίνηση του συστήματος, πρέπει να αντιγράφεται από τον κατάλογο [.filename]#/etc# στο διαμέρισμα ρυθμίσεων, αφού αυτό προσαρτηθεί για γράψιμο στον κατάλογο [.filename]#/cfg#.
|
||||
|
||||
.Κάνοντας μόνιμες αλλαγές στο [.filename]#/etc/resolv.conf#
|
||||
[example]
|
||||
====
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# vi /etc/resolv.conf
|
||||
[...]
|
||||
# mount /cfg
|
||||
# cp /etc/resolv.conf /cfg
|
||||
# umount /cfg
|
||||
....
|
||||
====
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Το διαμέρισμα το οποίο περιέχει τον κατάλογο [.filename]#/cfg# πρέπει να προσαρτάται μόνο κατά την εκκίνηση και όταν έχουν προτεραιότητα τα αρχεία ρυθμίσεων του [.filename]#/cfg#.
|
||||
|
||||
Δεν είναι καλή ιδέα να μένει μόνιμα προσαρτημένο το διαμέρισμα [.filename]#/cfg#. Αν ένα διαμέρισμα είναι προσαρτημένο για γράψιμο και το αποθηκευτικό μέσο του NanoBSD επιτρέπει περιορισμένο αριθμό κύκλων εγγραφής (όπως π.χ. μερικές κάρτες CF), μπορεί να επηρεαστεί αρνητικά το αποθηκευτιμό μέσο επειδή ο πυρήνας γράφει κάθε λίγο στους δίσκους του συστήματος (syncer).
|
||||
====
|
||||
|
||||
=== Δημιουργία Ενός Προσαρμοσμένου Συστήματος NanoBSD
|
||||
|
||||
Το είδωλο του NanoBSD δημιουργείται από ένα απλό σενάριο κονσόλας, το [.filename]#nanobsd.sh#, το οποίο μπορεί να βρεθεί στον κατάλογο [.filename]#/usr/src/tools/nanobsd#. Αυτό το σενάριο δημιουργεί ένα είδωλο δίσκου, το οποίο μπορεί να αντιγραφεί απευθείας σε κάποιο αποθηκευτικό μεσο χρησιμοποιώντας το πρόγραμμα man:dd[1].
|
||||
|
||||
Οι απαραίτητες εντολές προκειμένου να δημιουργηθεί ένα είδωλο του NanoBSD είναι οι εξής:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cd /usr/src/tools/tools/nanobsd <.>
|
||||
# sh nanobsd.sh <.>
|
||||
# cd /usr/obj/nanobsd.full <.>
|
||||
# dd if=_.disk.full of=/dev/da0 bs=64k <.>
|
||||
....
|
||||
|
||||
<.> Αλλαγή από τον τρέχοντα κατάλογο στον βασικό κατάλογο του σεναρίου δημιουργίας του NanoBSD.
|
||||
|
||||
<.> Εκκίνηση της δημιουργίας του ειδώλου.
|
||||
|
||||
<.> Αλλαγή από τον τρέχοντα κατάλογο στον κατάλογο που περιέχει το είδωλο του NanoBSD.
|
||||
|
||||
<.> Αντιγραφή του NanoBSD σε ένα μέσο αποθήκευσης.
|
||||
|
||||
=== Προσαρμόζοντας το είδωλο του NanoBSD
|
||||
|
||||
Αυτό είναι πιθανότατα το πιο σημαντικό και πιο ενδιαφέρον χαρακτηριστικό του NanoBSD. Αυτό είναι και το μέρος της διαδικασίας ανάπτυξης του ειδώλου NanoBSD για το οποίο θα ξοδέψετε ένα μεγάλο ποσοστό του χρόνου προετοιμασίας του ειδώλου.
|
||||
|
||||
Η ακόλουθη εντολή θα κάνει το [.filename]#nanobsd.sh# να διαβάσει τις ρυθμίσεις του από το αρχείο [.filename]#myconf.nano# που βρίσκεται στο τρέχοντα κατάλογο:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# sh nanobsd.sh -c myconf.nano
|
||||
....
|
||||
|
||||
Η προσαρμογή και παραμετροποίηση του NanoBSD γίνεται συνήθως με δύο τρόπους:
|
||||
|
||||
* Επιλογές διαμόρφωσης
|
||||
* Προσαρμοσμένες συναρτήσεις
|
||||
|
||||
==== Επιλογές διαμόρφωσης
|
||||
|
||||
Οι ρυθμίσεις του NanoBSD μπορούν να χρησιμοποιηθούν για να οριστούν προσαρμοσμένες επιλογές μεταγλώττισης και εγκατάστασης του FreeBSD. Αυτές οι επιλογές επηρεάζουν τα στάδια `buildworld` και `installworld` του NanoBSD, καθώς και άλλες επιλογές της δημιουργίας του τελικού ειδώλου. Με τις κατάλληλες ρυθμίσεις το NanoBSD μπορεί να μικρύνει αρκετά σε μέγεθος· μπορεί να χωρέσει ένα πολύ μικρό υποσύνολο του βασικού FreeBSD σε χώρο μικρότερο από 64MB. Μπορείτε επίσης να χρησιμοποιήσετε τις επιλογές του NanoBSD για να δημιουργήσετε ένα είδωλο που έχει μόνο τον πυρήνα και δυο-τρία αρχεία στο βασικό σύστημα.
|
||||
|
||||
Το αρχείο ρυθμίσεων του NanoBSD περιέχει εντολές οι οποίες ορίζουν νέες τιμές για κάποια προκαθορισμένη μεταβλητή ή επεκτείνουν τις υπάρχουσες ρυθμίσεις. Οι πιο σημαντικές μεταβλητές είναι οι εξής:
|
||||
|
||||
* `NANO_NAME` - Το όνομα του ειδώλου NanoBSD που θα δημιουργηθεί (χρησιμοποιείται για να φτιάξει τα ονόματα των κατάλογων εργασίας).
|
||||
* `NANO_SRC` - Η διαδρομή του δέντρου πηγαίου κώδικα το οποίο θα χρησιμοποιηθεί για να μετγλωττιστεί το είδωλο.
|
||||
* `NANO_KERNEL` - Το όνομα του αρχείου ρυθμίσεων πυρήνα το οποίο θα χρησιμοποιηθεί για να χτιστεί ο πυρήνας του ειδώλου.
|
||||
* `CONF_BUILD` - Επιλογές που περνούν στο στάδιο `buildworld` της μεταγλώττισης του FreeBSD.
|
||||
* `CONF_INSTALL` - Επιλογές που περνούν στο στάδιο `installworld` της προετοιμασίας του ειδώλου.
|
||||
* `CONF_WORLD` - Επιλογές που περνούν και στα δύο στάδια της προετοιμασίας του ειδώλου, και στο `buildworld` και στο `installworld`.
|
||||
* `FlashDevice` - Ορίζει τον τύπο του μέσου αποθήκευσης που θα χρησιμοποιηθεί. Για περισσότερες λεπτομέρειες δείτε το αρχείο [.filename]#FlashDevise.sub#.
|
||||
|
||||
==== Προσαρμοσμένες Συναρτήσεις
|
||||
|
||||
Στο αρχείο ρύθμισης του NanoBSD μπορεί να ρυθμιστεί σχεδόν κάθε λεπτομέρεια της προετοιμασίας του ειδώλου και του τελικού ειδώλου το οποίο θα δημιουργηθεί. Χρησιμοποιώντας μικρές συναρτήσεις φλοιού, μπορούμε να ρυθμίσουμε τα πάντα. Για παράδειγμα, μπορούμε να τρέξουμε δικές μας εντολές οι οποίες παραμετροποιούν το τελικό είδωλο ως εξής:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
cust_foo () (
|
||||
echo "bar=topless" > \
|
||||
${NANO_WORLDDIR}/etc/foo
|
||||
)
|
||||
customize_cmd cust_foo
|
||||
....
|
||||
|
||||
Ένα πιο χρήσιμο παράδειγμα συνάρτησης φλοιού, η οποία ρυθμίζει κάποια παράμετρο του τελικού ειδώλου, είναι αυτό που ακολουθεί. Η συνάρτηση `cust_etc_size` αλλάζει την προεπιλεγμένη τιμή μεγέθους του καταλόγου [.filename]#/etc# από 5MB σε 30MB:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
cust_etc_size () (
|
||||
cd ${NANO_WORLDDIR}/conf
|
||||
echo 30000 > default/etc/md_size
|
||||
)
|
||||
customize_cmd cust_etc_size
|
||||
....
|
||||
|
||||
Το σενάριο φλοιού που δημιουργεί το NanoBSD έχει μερικές έτοιμες συναρτήσεις φλοιού οι οποίες εκτελούν τέτοιες επιπλέον ρυθμίσεις:
|
||||
|
||||
* `cust_comconsole` - Απενεργοποιεί το man:getty[8] στις κονσόλες VGA (οι συσκευές [.filename]#/dev/ttyv*#) και ενεργοποιεί την χρήση της σειριακής θύρας COM1 ως κονσόλα συστήματος.
|
||||
* `cust_allow_ssh_root` - Επιτρέπει την είσοδο του χρήστη `root` μέσω του man:sshd[8].
|
||||
* `cust_install_files` - Εγκαθιστά αρχεία από τον κατάλογο [.filename]#nanobsd/Files#. Σε αυτό τον κατάλογο βρίσκονται μερικά χρήσιμα σενάρια φλοιού για τη διαχείριση ενός συστήματος NanoBSD.
|
||||
|
||||
==== Προσθέτοντας Πακέτα
|
||||
|
||||
Σε ένα είδωλο NanoBSD μπορούν να προστεθούν και έτοιμα πακέτα, που έχουν φτιαχτεί από πριν χρησιμοποιώντας τη Συλλογή των Ports. Μια συνάρτηση φλοιού μπορεί να εγκαταστήσει έξτρα πακέτα την ώρα που προετοιμάζεται το είδωλο. Για παράδειγμα, η παρακάτω συνάρτηση θα εγκαταστήσει στο είδωλο όλα τα πακέτα που βρίσκονται στον κατάλογο [.filename]#/usr/src/tools/tools/nanobsd/packages#:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
install_packages () (
|
||||
mkdir -p ${NANO_WORLDDIR}/packages
|
||||
cp /usr/src/tools/tools/nanobsd/packages/* ${NANO_WORLDDIR}/packages
|
||||
chroot ${NANO_WORLDDIR} sh -c 'cd packages; pkg_add -v *;cd ..;'
|
||||
rm -rf ${NANO_WORLDDIR}/packages
|
||||
)
|
||||
|
||||
customize_cmd install_packages
|
||||
....
|
||||
|
||||
==== Παράδειγμα Αρχείου Ρυθμίσεων του NanoBSD
|
||||
|
||||
Ένα πλήρες παράδειγμα αρχείου ρυθμίσεων για το NanoBSD, με διάφορες ρυθμίσεις για τη μεταγλώττιση του FreeBSD και την προετοιμασία του τελικού ειδώλου, μπορεί να μοιάζει κάπως έτσι:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
NANO_NAME=custom
|
||||
NANO_SRC=/usr/src
|
||||
NANO_KERNEL=MYKERNEL
|
||||
NANO_IMAGES=2
|
||||
|
||||
CONF_BUILD='
|
||||
NO_KLDLOAD=YES
|
||||
NO_NETGRAPH=YES
|
||||
NO_PAM=YES
|
||||
'
|
||||
|
||||
CONF_INSTALL='
|
||||
NO_ACPI=YES
|
||||
NO_BLUETOOTH=YES
|
||||
NO_CVS=YES
|
||||
NO_FORTRAN=YES
|
||||
NO_HTML=YES
|
||||
NO_LPR=YES
|
||||
NO_MAN=YES
|
||||
NO_SENDMAIL=YES
|
||||
NO_SHAREDOCS=YES
|
||||
NO_EXAMPLES=YES
|
||||
NO_INSTALLLIB=YES
|
||||
NO_CALENDAR=YES
|
||||
NO_MISC=YES
|
||||
NO_SHARE=YES
|
||||
'
|
||||
|
||||
CONF_WORLD='
|
||||
NO_BIND=YES
|
||||
NO_MODULES=YES
|
||||
NO_KERBEROS=YES
|
||||
NO_GAMES=YES
|
||||
NO_RESCUE=YES
|
||||
NO_LOCALES=YES
|
||||
NO_SYSCONS=YES
|
||||
NO_INFO=YES
|
||||
'
|
||||
|
||||
FlashDevice SanDisk 1G
|
||||
|
||||
cust_nobeastie() (
|
||||
touch ${NANO_WORLDDIR}/boot/loader.conf
|
||||
echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf
|
||||
)
|
||||
|
||||
customize_cmd cust_comconsole
|
||||
customize_cmd cust_install_files
|
||||
customize_cmd cust_allow_ssh_root
|
||||
customize_cmd cust_nobeastie
|
||||
....
|
||||
|
||||
=== Ενημερώνοντας το NanoBSD
|
||||
|
||||
Η διαδικασία ενημέρωσης του NanoBSD είναι σχετικά απλή:
|
||||
|
||||
[.procedure]
|
||||
====
|
||||
. Δημιουργία ενός νέου ειδώλου NanoBSD, με το συνηθισμένο τρόπο.
|
||||
. Ανέβασμα του νέου ειδώλου σε μια αχρησιμοποίητη κατάτμηση μιας συσκευής που τρέχει NanoBSD.
|
||||
+
|
||||
Η πιο σημαντική διαφορά αυτού του σημείου από την αρχική εγκατάσταση του NanoBSD είναι ότι τώρα αντί του αρχείου [.filename]#\_.disk.full# (το οποίο περιέχει το είδωλο ενός ολόκληρου δίσκου), εγκαταστάθηκε το αρχείο [.filename]#_.disk.image# (το οποίο περιέχει το είδωλο μιας μόνο κατάτμησης του δίσκου).
|
||||
. Κλείσιμο και επανεκκίνηση του συστήματος από την νέα εγκατεστημένη κατάτμηση.
|
||||
. Αν όλα πάνε καλά, η αναβάθμιση τελείωσε.
|
||||
. Αν οτιδήποτε πάει στραβά, επανεκκινήστε τη συσκευή από την προηγούμενη κατάτμηση (η οποία περιέχει το παλιό είδωλο, που λειτουργεί σωστά). Έτσι μπορείτε να επαναφέρετε άμεσα το σύστημα σε λειτουργική κατάσταση. Διορθώστε οποιαδήποτε προβλήματα έχει το νέο είδωλο, και επαναλάβετε την διαδικασία.
|
||||
====
|
||||
|
||||
Για να εγκατασταθεί το νέο είδωλο σε ένα σύστημα NanoBSD, το οποίο ήδη βρίσκεται σε λειτουργία, μπορεί να χρησιμοποιηθεί είτε το σενάριο [.filename]#updatep1# είτε το [.filename]#updatep2#. Αυτά τα δύο σενάρια φλοιού βρίσκονται στον κατάλογο [.filename]#/root#.
|
||||
|
||||
Ανάλογα με τις υπηρεσίες του συστήματος στο οποίο δημιουργείται ένα είδωλο NanoBSD, μπορεί να μεταφερθεί ένα νέο είδωλο στο τελικό σύστημα με διάφορους τρόπους:
|
||||
|
||||
==== Χρησιμοποιώντας το man:ftp[1]
|
||||
|
||||
Αν σας ενδιαφέρει η καλή ταχύτητα μεταφοράς, χρησιμοποιήστε το FTP για τη μεταφορά του ειδώλου:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# ftp myhost
|
||||
get _.disk.image "| sh updatep1"
|
||||
....
|
||||
|
||||
==== Χρησιμοποιώντας το man:ssh[1]
|
||||
|
||||
Αν σας ενδιαφέρει η μεταφορά του ειδώλου να γίνει με ασφαλή τρόπο και δεν έχετε αφαιρέσει από το αρχικό είδωλο το man:ssh[1], προτιμήστε τη μεταφορά μέσω SSH:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# ssh myhost cat _.disk.image.gz | zcat | sh updatep1
|
||||
....
|
||||
|
||||
==== Χρησιμοποιώντας το man:nc[1]
|
||||
|
||||
Αν το σύστημα στο οποίο έχει δημιουργηθεί το νέο είδωλο του NanoBSD δεν τρέχει ούτε man:ftpd[8] ούτε man:sshd[8], μπορείτε να χρησιμοποιήσετε άλλα εργαλεία για τη μεταφορά, όπως το man:nc[1]:
|
||||
|
||||
[.procedure]
|
||||
====
|
||||
. Πρώτα ανοίξτε ένα εξυπηρετητή `TCP` στο σύστημα το οποίο θα παρέχει το νέο είδωλο, και ορίστε το νέο είδωλο ως είσοδο για τη μεταφορά που θα γίνει αργότερα:
|
||||
+
|
||||
[source,bash]
|
||||
....
|
||||
myhost# nc -l 2222 < _.disk.image
|
||||
....
|
||||
+
|
||||
[NOTE]
|
||||
======
|
||||
Πριν από αυτό βεβαιωθείτε ότι η θύρα που χρησιμοποιείτε για τον εξυπηρετητή μπορεί να δεχθεί εισερχόμενες συνδέσεις από το σύστημα NanoBSD προς το σύστημα του εξυπηρετητή, και δεν εμποδίζεται, για παράδειγμα, από κάποιο τείχος προστασίας ("firewall").
|
||||
======
|
||||
. Συνδεθείτε από το NanoBSD στον εξυπηρετητή, ο οποίος είναι ήδη έτοιμος να παρέχει το νέο είδωλο, και τροφοδοτείστε το σενάριο φλοιού [.filename]#updatep1# με την έξοδο του εργαλείου man:nc[1]:
|
||||
+
|
||||
[source,bash]
|
||||
....
|
||||
# nc myhost 2222 | sh updatep1
|
||||
....
|
||||
====
|
||||
424
documentation/content/el/articles/new-users/_index.adoc
Normal file
424
documentation/content/el/articles/new-users/_index.adoc
Normal file
|
|
@ -0,0 +1,424 @@
|
|||
---
|
||||
title: Για Χρήστες Νέους τόσο στο FreeBSD όσο και στο UNIX®
|
||||
authors:
|
||||
- author: Annelise Anderson
|
||||
email: andrsn@andrsn.stanford.edu
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "ibm", "microsoft", "opengroup", "general"]
|
||||
---
|
||||
|
||||
= Για Χρήστες Νέους τόσο στο FreeBSD όσο και στο UNIX(R)
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Συγχαρητήρια που εγκαταστήσατε το FreeBSD! Αυτή η εισαγωγή είναι για χρήστες νέους τόσο στο FreeBSD όσο _και_ στο Un*x-γι αυτό ξεκινά με τα βασικά. Υποθέτω ότι χρησιμοποιείτε την έκδοση 2.0.5 του FreeBSD ή κάποια νεότερη, όπως αυτές διανέμονται από την BSDi ή το FreeBSD.org, ότι το σύστημά σας (προς το παρόν) έχει ένα και μόνο χρήστη κι ότι πιθανόν να είστε αρκετά καλός στην χρήση των DOS/Windows(R) ή του OS/2(R).
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[in-and-out]]
|
||||
== Σύνδεση (Login) και Αποσύνδεση (Logout)
|
||||
|
||||
Συνδεθείτε (όταν δείτε την προτροπή `login:`) σαν τον χρήστη που δημιουργήσατε κατά την εγκατάσταση ή σαν `root`. (Η εγκατάσταση του FreeBSD ήδη 8α έχει ένα λογαριασμό για τον `root`. Ο `root` μπορεί να πάει παντού και να κάνει τα πάντα, ακόμη και να σβήσει κάποια απαραίτητα αρχεία, γι αυτό να είστε προσεκτικοί!) Τα σύμβολα % και # παρακάτω συμβολίζουν το prompt (το δικό σας μπορεί να διαφέρει), με το % να είναι ενός απλού χρήστη και το # να είναι του `root`.
|
||||
|
||||
Για να βγείτε (και να δείτε ένα καινούριο `login:` prompt) γράψτε
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# exit
|
||||
....
|
||||
|
||||
όσες φορές χρειαστεί. Ναι, πατήστε kbd:[enter] μετά τις εντολές, και να θυμάστε ότι στο UNIX(R) τα μικρά είναι διαφορετικά από τα κεφαλαία-`exit`, κι όχι `EXIT`.
|
||||
|
||||
Για να κλείσετε το μηχάνημά σας γράψτε
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /sbin/shutdown -h now
|
||||
....
|
||||
|
||||
Για να το επανεκκινήσετε
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /sbin/shutdown -r now
|
||||
....
|
||||
|
||||
ή
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /sbin/reboot
|
||||
....
|
||||
|
||||
Μπορείτε επίσης να επανεκκινήσετε το μηχάνημα πατώντας kbd:[Ctrl+Alt+Delete]. Δώστε του λίγο χρόνο για να κάνει τη δουλειά που πρέπει. Αυτό είναι ισοδύναμο με την εντολή `/sbin/reboot` σε πρόσφατες εκδόσεις του FreeBSD και είναι ένας πάρα πολύ πιο ασφαλής τρόπος, σε σχέση με το πάτημα του reset κουμπιού. Δεν θέλετε να αναγκαστείτε να τα ξαναστήσετε όλα, σωστά;
|
||||
|
||||
[[adding-a-user]]
|
||||
== Προσθέτοντας ένα Λογαριασμό Χρήστη
|
||||
|
||||
Αν δεν φτιάξατε κανένα λογαριασμό χρήστη όταν εγκαταστήσατε το σύστημα, και τώρα έχετε κάνει login σαν `root`, μάλλον είναι η κατάλληλη ώρα να φτιάξετε ένα λογαριασμό χρήστη με την εντολή
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# adduser
|
||||
....
|
||||
|
||||
Την πρώτη φορά που χρησιμοποιείτε την εντολή `adduser`, μπορεί να σας ρωτήσει για κάποιες προκαθορισμένες ρυθμίσεις που θα σώσει. Μπορεί για παράδειγμα να θέλετε να βάλετε τον προκαθορισμένο φλοιό (shell) να είναι man:csh[1] αντί για man:sh[1], αν σας προτείνει το `sh` σαν προκαθορισμένο φλοιό. Αλλιώς πατήστε απλά enter για να δεχτείτε κάθε προεπιλεγμένη τιμή. Αυτές οι προκαθορισμένες τιμές σώζονται στο αρχείο [.filename]#/etc/adduser.conf#, που μπορείτε να τις αλλάξετε αργότερα.
|
||||
|
||||
Έστω οτι δημιουργείτε ένα λογαριασμό χρήστη με όνομα `jack` και πλήρες όνομα __Jack Benimble__. Ορίστε για τον `jack` κι ένα κωδικό χρήστη (password) αν η ασφάλεια σας ενδιαφέρει (ακόμα και παιδιά που παίζουν με το πληκτρολόγιο μπορεί να είναι επικίνδυνα). Όταν σας ρωτήσει αν θέλετε να βάλετε τον `jack` και σε άλλες ομάδες (groups), γράψτε `wheel`
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
Login group is "jack". Invite jack into other groups: wheel
|
||||
....
|
||||
|
||||
Αυτό θα σας δώσει τη δυνατότητα όταν έχετε συνδεθεί στο σύστημα σαν `jack` και χρησιμοποιείτε την εντολή man:su[1] να μπορείτε να γίνετε `root`. Έτσι, δεν θα σας πειράξει ποτέ κάποιος επειδή κάνετε login σαν `root`.
|
||||
|
||||
Μπορείτε να σταματήσετε την `adduser` οποιαδήποτε στιγμή πατώντας kbd:[Ctrl+C], και στο τέλος θα έχετε μια ευκαιρία να εγκρίνετε την δημιουργία του νέου χρήστη ή να αρνηθείτε πατώντας kbd:[n]. Μια καλή ιδέα είναι επίσης να φτιάξετε ένα δεύτερο λογαριασμό χρήστη, έτσι ώστε όταν κάνετε αλλαγές σε κάποια αρχεία ρυθμίσεων του `jack`, να έχετε ένα λογαριασμό που μπορείτε να τον χρησιμοποιήσετε εύκολα σε περίπτωση που κάτι πάει στραβά.
|
||||
|
||||
Αφού το κάνετε αυτό, χρησιμοποιείστε την εντολή `exit` για να επιστρέψετε στο login prompt και συνδεθείτε σαν `jack`. Γενικά, είναι μια καλή ιδέα να κάνετε όσο το δυνατόν περισσότερες από τις δουλειές σας σαν ένας απλός χρήστης που δεν έχει την δύναμη-και το ρίσκο-του `root`.
|
||||
|
||||
Αν έχετε ήδη δημιουργήσει ένα λογαριασμό χρήστη και θέλετε αυτός ο χρήστης να μπορεί να κάνει `su` σε `root`, μπορείτε να μπείτε σαν `root` και να αλλάξετε το αρχείο [.filename]#/etc/group#, προσθέτοντας τον `jack` στην πρώτη γραμμή (το group με όνομα `wheel`). Αλλά πρώτα πρέπει να εξασκηθείτε στην χρήση του man:vi[1], του επεξεργαστή κειμένου-ή να χρησιμοποιήσετε τον πιο απλό επεξεργαστή κειμένου, τον man:ee[1], που εγκαθίσταται σε πρόσφατες εκδόσεις του FreeBSD.
|
||||
|
||||
Για να σβήσετε ένα χρήστη, χρησιμοποιήστε την εντολή `rmuser`.
|
||||
|
||||
[[looking-around]]
|
||||
== Δοκιμάζοντας Διάφορες Εντολές
|
||||
|
||||
Κάποια στιγμή που θα είστε logged in σαν απλός χρήστης, ψάξτε τριγύρω και δοκιμάστε κάποιες από τις εντολές που θα σας βοηθήσουν να βρείτε βοήθεια και πληροφορίες μέσα από το ίδιο το FreeBSD.
|
||||
|
||||
Παρακάτω θα δείτε κάποιες εντολές και τι αυτές κάνουν:
|
||||
|
||||
`id`::
|
||||
Σας δείχνει ποιος είστε!
|
||||
|
||||
`pwd`::
|
||||
Σας δείχνει που είστε-τον τρέχοντα κατάλογο.
|
||||
|
||||
`ls`::
|
||||
Δείχνει τα αρχεία που περιέχονται στον τρέχοντα κατάλογο.
|
||||
|
||||
`ls -F`::
|
||||
Δείχνει τα αρχεία που περιέχει ο τρέχοντας κατάλογος τυπώνοντας μετά το όνομα `\*` για τα εκτελέσιμα `/` για τους καταλόγους, και `@` μετά τα symbolic links.
|
||||
|
||||
`ls -l`::
|
||||
Τυπώνει τα αρχεία του τρέχοντος καταλόγου με λεπτομέρειες-μέγεθος, ημερομηνία, άδειες.
|
||||
|
||||
`ls -a`::
|
||||
Δείχνει εκτός από τα κανονικά αρχεία και τα κρυφά "dot" αρχεία. Αν είστε `root`, τα "dot" αρχεία τα δείχνει έτσι κι αλλιώς, και χωρίς την επιλογή `-a`.
|
||||
|
||||
`cd`::
|
||||
Αλλάζει τον τρέχοντα κατάλογο. Η εντολή `cd ..` ανεβαίνει στον προηγούμενο κατάλογο (σημειώστε το κενό μετά την `cd`). Η εντολή `cd /usr/local` αλλάζει τον τρέχοντα κατάλογο σε αυτόν. Η εντολή `cd ~` πηγαίνει στον αρχικό κατάλογο του χρήστη που έχει κάνει login-π.χ. στον [.filename]#/usr/home/jack#. Δοκιμάστε την εντολή `cd /cdrom`, και μετά την `ls`, για να δείτε αν το CDROM σας είναι ενεργό και δουλεύει.
|
||||
|
||||
`view filename`::
|
||||
Ας δούμε τα περιεχόμενα ενός αρχείου (με όνομα _filename_) χωρίς να το αλλάξουμε. Δοκιμάστε την εντολή `view /etc/fstab`. Δώστε `:q` για να βγείτε.
|
||||
|
||||
`cat filename`::
|
||||
Δείχνει τα περιεχόμενα του _filename_ στην οθόνη. Αν το αρχείο είναι πολύ μεγάλο, θα μπορείτε να δείτε μόνο το τέλος του. Πατήστε kbd:[ScrollLock] και χρησιμοποιείστε kbd:[up-arrow] για να μετακινηθείτε προς τα πίσω; το kbd:[ScrollLock] μπορεί να χρησιμοποιηθεί και με τις σελίδες man. Πατήστε kbd:[ScrollLock] πάλι για να σταματήσετε να μετακινείστε πάνω/κάτω. Ενδιαφέρον είναι να δοκιμάσετε την εντολή `cat` σε κάποια από τα dot αρχεία στον αρχικό σας κατάλογο- `cat .cshrc`, `cat .login`, `cat .profile`.
|
||||
|
||||
Θα παρατηρήσετε στο [.filename]#.cshrc# συντομεύσεις για κάποιες από τις επιλογές της εντολής `ls` (είναι πολύ βολικές). Μπορείτε να φτιάξετε κι άλλες συντομεύσεις αλλάζοντας το αρχείο [.filename]#.cshrc#. Μπορείτε να κάνετε αυτές τις συντομεύσεις διαθέσιμες σε όλους τους χρήστες του συστήματος αν τις βάλετε στο αρχείο με τις ρυθμίσεις συστήματος του `csh`, το [.filename]#/etc/csh.cshrc#.
|
||||
|
||||
[[getting-help]]
|
||||
== Αναζητώντας Βοήθεια και Πληροφορίες
|
||||
|
||||
Ας δούμε όμως μερικές χρήσιμες πηγές βοήθειας. Στο παρακάτω η λέξη _κείμενο_ αντιστοιχεί σε κάτι που εσείς έχετε επιλέξει να γράψετε-συνήθως το όνομα μιας εντολής ή ενός αρχείου.
|
||||
|
||||
`apropos κείμενο`::
|
||||
Τυπώνει στην οθόνη όλες τις γραμμές που περιέχουν το _κείμενο_ από την `βάση whatis`.
|
||||
|
||||
`man κείμενο`::
|
||||
Τυπώνει στην οθόνη την σελίδα man για το _κείμενο_. Η κυριότερη πηγή τεκμηρίωσης για τα συστήματα UNIX(R). Η εντολή `man ls` θα σας δείξει όλους τους τρόπους να χρησιμοποιήσετε την εντολή `ls`. Πατήστε το kbd:[Enter] για να μετακινηθείτε στο κείμενο, kbd:[Ctrl+B] για να πάτε μια σελίδα πίσω, kbd:[Ctrl+F] για να πάτε μπροστά, kbd:[q] ή kbd:[Ctrl+C] για να τερματίσετε την `man`.
|
||||
|
||||
`which κείμενο`::
|
||||
Σας λέει από ποιον κατάλογο του PATH η εντολή _κείμενο_ εκτελείται.
|
||||
|
||||
`locate κείμενο`::
|
||||
Τυπώνει όλα τα αρχεία του δίσκου που το όνομά τους περιέχει το _κείμενο_.
|
||||
|
||||
`whatis κείμενο`::
|
||||
Σας λέει τι κάνει η εντολή _κείμενο_ και ποια είναι η σελίδα man της. Γράφοντας `whatis *` θα σας δώσει αντίστοιχες πληροφορίες για όλα τα εκτελέσιμα του τρέχοντος καταλόγου.
|
||||
|
||||
`whereis κείμενο`::
|
||||
Βρίσκει το αρχείο _κείμενο_, και τυπώνει το πλήρες όνομα καταλόγου του.
|
||||
|
||||
Μάλλον θα είναι ενδιαφέρον να δοκιμάσετε την εντολή `whatis` για κάποιες κοινές και χρήσιμες εντολές όπως οι `cat`, `more`, `grep`, `mv`, `find`, `tar`, `chmod`, `chown`, `date`, και `script`. Η εντολή `more` σας δίνει τη δυνατότητα να διαβάσετε μια σελίδα κάθε φορά όπως και στο DOS, π.χ. γράφοντας `ls -l | more` ή `more filename`. Ο χαρακτήρας `\*` δουλεύει σαν μεταχαρακτήρας-π.χ., η εντολή `ls w*` θα σας δείξει όλα τα αρχεία που το όνομά τους ξεκινάει με `w`.
|
||||
|
||||
Μήπως κάποια από αυτά που είπαμε δεν δουλεύουν καλά; Τόσο η εντολή man:locate[1] όσο και η man:whatis[1] εξαρτώνται από μια βάση που ξαναφτιάχνεται μια φορά τη βδομάδα. Αν το μηχάνημά σας δεν παραμείνει ανοιχτό το σαββατοκύριακο (τρέχοντας το FreeBSD), μπορεί να θέλετε να τρέξετε εσείς τις εντολές για καθημερινή, εβδομαδιαία και μηνιαία συντήρηση που και που. Τρέξτε τις σαν `root` και δώστε τους χρόνο να τελειώσει η καθεμια πριν ξεκινήσετε την επόμενη.
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# periodic daily
|
||||
παραλείπεται η έξοδος της εντολής
|
||||
# periodic weekly
|
||||
παραλείπεται η έξοδος της εντολής
|
||||
# periodic monthly
|
||||
παραλείπεται η έξοδος της εντολής
|
||||
....
|
||||
|
||||
Αν βαρεθείτε να περιμένετε, πατήστε kbd:[Alt+F2] για να βγείτε σε ένα δεύτερο _εικονικό τερματικό_, και να κάνετε πάλι login. Έτσι κι αλλιώς, είναι ένα πολυχρηστικό, πολυδιεργασιακό λειτουργικό σύστημα. Μπορεί πάντως αυτές οι εντολές να στείλουν κάποια μηνύματα στην οθόνη σας όσο τρέχουν. Μπορείτε να γράψετε `clear` στο prompt για να καθαρίσετε την οθόνη. Μόλις τελειώσουν, μπορεί να θέλετε να κοιτάξετε τα αρχεία [.filename]#/var/mail/root# και [.filename]#/var/log/messages#.
|
||||
|
||||
Το να τρέχει κανείς τέτοιες εντολές είναι μέρος της διαχείρισης ενός συστήματος-και σαν ο μοναδικός χρήστης ενός UNIX(R) συστήματος, είστε ο διαχειριστής συστήματος του εαυτού σας. Γενικά οτιδήποτε απαιτεί να είστε `root` για να το κάνετε είναι διαχείριση του συστήματος. Τέτοιες υποχρεώσεις δεν καλύπτονται αρκετά καλά σε εκείνα τα τεράστια βιβλία που υπόσχονται να σας μάθουν UNIX(R), καθώς αυτά αφιερώνουν συνήθως πολύ χώρο στο πως θα χρησιμοποιήσετε κάποιο συγκεκριμένο γραφικό περιβάλλον. Καλύτερα να πάρετε κάποιο από τα δύο πιο σημαντικά βιβλία για διαχείριση συστημάτων, είτε το UNIX(R) System Administration Handbook του Evi Nemeth (εκδόσεις Prentice-Hall, 1995, ISBN 0-13-15051-7)-την δεύτερη έκδοση, με το κόκκινο εξώφυλο, ή το Essential System Administration του Æleen Frisch's (εκδόσεις O'Reilly & Associates, 2002, ISBN 0-596-00343-9). Εγώ (ΣΤΜ: η Annelise Anderson) χρησιμοποίησα το βιβλίο του Nemeth.
|
||||
|
||||
[[editing-text]]
|
||||
== Επεξεργασία Κειμένου
|
||||
|
||||
Για να ρυθμίσετε το σύστημά σας, πρέπει να κάνετε αλλαγές σε αρχεία κειμένου. Τα πιο πολλά από αυτά θα είναι στον κατάλογο [.filename]#/etc#. Επίσης θα χρειαστεί να κάνετε `su` σε `root` για να μπορέσετε να τα αλλάξετε. Μπορείτε να χρησιμοποιήσετε το εύκολο πρόγραμμα `ee`, αλλά τελικά θα πρέπει κάποια στιγμή να μάθετε και τον επεξεργαστή κειμένου `vi`. Υπάρχει ένας υπέροχος οδηγός για τη χρήση του vi στο αρχείο [.filename]#/usr/src/contrib/nvi/docs/tutorial# αν το έχετε εγκαταστήσει.
|
||||
|
||||
Πριν κάνετε αλλαγές σε αρχεία ρυθμίσεων, μάλλον είναι καλή ιδέα να πάρετε κάποιο αντίγραφο ασφαλείας. Έστω ότι θέλετε να κάνετε αλλαγές στο [.filename]#/etc/rc.conf#. Μπορείτε να χρησιμοποιήσετε την εντολή `cd /etc` για να πάτε στον κατάλογο [.filename]#/etc# και να γράψετε:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cp rc.conf rc.conf.orig
|
||||
....
|
||||
|
||||
επειδή η εντολή `mv` διατηρεί την αρχική ημερομηνία και τον ιδιοκτήτη ενός αρχείου. Τώρα μπορείτε να κάνετε ότι αλλαγές θέλετε στο [.filename]#rc.conf#. Αν θέλετε το αρχικό πάλι, τότε θα εκτελέσετε `mv rc.conf rc.conf.myedit` (υποθέτοντας ότι θέλετε να κρατήσετε την αλλαγμένη έκδοση) και τότε
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# mv rc.conf.orig rc.conf
|
||||
....
|
||||
|
||||
για να επαναφέρετε τα πράγματα στην προηγούμενη τους κατάσταση.
|
||||
|
||||
Για να επεξεργαστείτε ένα αρχείο, δώστε
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# vi filename
|
||||
....
|
||||
|
||||
Μετακινηθείτε στο κείμενο με τα βελάκια. Το kbd:[Esc] (escape πλήκτρο) βάζει το `vi` σε κατάσταση εντολών. Ορίστε και μερικές βασικές εντολές:
|
||||
|
||||
`x`::
|
||||
σβήνει τον χαρακτήρα που πάνω του είναι ο δείκτης (cursor)
|
||||
|
||||
`dd`::
|
||||
σβήνει ολόκληρη την γραμμή (ακόμα κι αν αναδιπλώνει στο τέλος της οθόνης)
|
||||
|
||||
`i`::
|
||||
εισάγει κείμενο στο σημείο που είναι ο δείκτης
|
||||
|
||||
`a`::
|
||||
εισάγει κείμενο μετά τον δείκτη
|
||||
|
||||
Όταν χρησιμοποιήσετε την εντολή `i` ή την `a`, μπορείτε να εισάγετε κείμενο. Πατήστε `Esc` για να επιστρέψετε σε κατάσταση εντολών, όπου μπορείτε να δώσετε εντολές όπως
|
||||
|
||||
`:w`::
|
||||
για να γράψετε τις αλλαγές σας στο δίσκο και να συνεχίσετε να επεξεργάζεστε το αρχείο
|
||||
|
||||
`:wq`::
|
||||
για να γράψετε τις αλλαγές και να βγείτε από το vi
|
||||
|
||||
`:q!`::
|
||||
για να βγείτε χωρίς να σώσετε τις αλλαγές
|
||||
|
||||
`/κείμενο`::
|
||||
για να μετακινηθείτε στην πρώτη γραμμή που εμφανίζεται το _κείμενο_-μετά μπορείτε να πατήσετε `/Enter` (το πλήκτρο enter) για να βρείτε την επόμενη γραμμή που εμφανίζεται το _κείμενο_.
|
||||
|
||||
`G`::
|
||||
για να πάτε στο τέλος του αρχείου
|
||||
|
||||
`nG`::
|
||||
για να πάτε στην γραμμή _n_ του αρχείου, όπου _n_ είναι αριθμός
|
||||
|
||||
kbd:[Ctrl+L]::
|
||||
για να ξαναζωγραφιστεί η οθόνη
|
||||
|
||||
kbd:[Ctrl+b] and kbd:[Ctrl+f]::
|
||||
για να μετακινηθείτε μια οθόνη πίσω ή μια οθόνη μπροστά, όπως και στα προγράμματα `more` και `view`.
|
||||
|
||||
Εξασκηθείτε με το `vi` στον αρχικό σας κατάλογο, δημιουργώντας ένα καινούριο αρχείο με την εντολή `vi filename`, προσθέτοντας και αφαιρώντας κείμενο, σώζοντας το αρχείο, και φορτώνοντάς το πάλι. Το `vi` μερικές φορές επιφυλλάσει εκπλήξεις, επειδή είναι αρκετά περίπλοκο πρόγραμμα, οπότε κάποια στιγμή θα κάνετε κάτι που θα κάνει κάτι αναπάντεχο. (Σε κάποιους πραγματικά αρέσει το `vi`-είναι πιο ευέλικτο από το EDIT του DOS-δοκιμάστε να βρείτε βοήθεια π.χ. για την εντολή `:r`.) Χρησιμοποιήστε το kbd:[Esc] μια ή περισσότερες φορές για να είστε σίγουροι ότι είστε σε κατάσταση εντολών και συνεχίστε από εκεί αν κάτι δεν σας πάει καλά, να σώζετε συχνά με την `:w` εντολή, και χρησιμοποιήστε την εντολή `:q!` για να βγείτε και να αρχίσετε πάλι από την αρχή (από εκεί που σας άφησε η τελευταία `:w` εντολή) όταν αυτό χρειαστεί.
|
||||
|
||||
Τώρα μπορείτε να κάνετε `cd` στον κατάλογο [.filename]#/etc#, να γίνετε `root` με την `su`, να χρησιμοποιήσετε το `vi` για να αλλάξετε το αρχείο [.filename]#/etc/group#, και να προσθέσετε ένα χρήστη στην ομάδα `wheel` έτσι ώστε να έχει δικαιώματα `root`. Απλά προσθέστε ένα κόμμα και το όνομα του χρήστη μετά το τέλος της πρώτης γραμμής του αρχείου, πατήστε kbd:[Esc], και χρησιμοποιήστε `:wq` για να σώσετε το αρχείο στο δίσκο και να βγείτε. Ισχύει αμέσως. (Δεν βάλατε κάποιο κενό μετά το κόμμα, σωστά;)
|
||||
|
||||
[[printing-files-from-dos]]
|
||||
== Εκτυπώνοντας αρχεία από το DOS
|
||||
|
||||
Σε αυτό το σημείο μάλλον δεν έχετε βάλει κάποιο εκτυπωτή να δουλεύει, οπότε ας δούμε ένα τρόπο να δημιουργήσετε ένα αρχείο από μια σελίδα man, να το αντιγράψετε σε μια δισκέττα, και τότε να το τυπώσετε από το DOS. Έστω ότι θέλετε να διαβάσετε προσεκτικά για το πως αλλάζουν οι άδειες ενός αρχείου (ένα αρκετά σημαντικό θέμα). Μπορείτε να χρησιμοποιήσετε την εντολή `man chmod` για να διαβάσετε γι αυτό το θέμα. Η εντολή
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% man chmod | col -b > chmod.txt
|
||||
....
|
||||
|
||||
θα αφαιρέσει τους κωδικούς μορφοποίησης και θα στείλει την man σελίδα στο αρχείο [.filename]#chmod.txt# αντί να την δείξει στην οθόνη σας. Τώρα βάλτε μια δισκέττα διαμορφωμένη από DOS στον οδηγό δισκέττας [.filename]#a#, χρησιμοποιήστε την εντολή `su` για να γίνετε `root`, και δώστε
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /sbin/mount -t msdosfs /dev/fd0 /mnt
|
||||
....
|
||||
|
||||
για να συνδέσετε (mount) την δισκέττα με τον κατάλογο [.filename]#/mnt#.
|
||||
|
||||
Τώρα (δεν χρειάζεται πλέον να είστε `root`, και μπορείτε να δώσετε `exit` για να επιστρέψετε στα δικαιώματα του χρήστη `jack`) μπορείτε να πάτε στον κατάλογο που δημιουργήσατε το [.filename]#chmod.txt# και να το αντιγράψετε στη δισκέτα γράφοντας:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% cp chmod.txt /mnt
|
||||
....
|
||||
|
||||
Υστερα, χρησιμοποιώντας την εντολή `ls /mnt` για να δείτε τα περιεχόμενα του καταλόγου [.filename]#/mnt#, θα πρέπει να δείτε και το αρχείο [.filename]#chmod.txt#.
|
||||
|
||||
Σίγουρα θα πρέπει να φτιάξετε κι ένα αρχείο από το [.filename]#/sbin/dmesg# γράφοντας
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% /sbin/dmesg > dmesg.txt
|
||||
....
|
||||
|
||||
και αντιγράφοντας το [.filename]#dmesg.txt# στη δισκέτα. Η εντολή `/sbin/dmesg` τυπώνει τα μηνύματα εκκίνησης, και είναι χρήσιμο να καταλάβετε τι τυπώνει, αφού δείχνει τι αναγνώρισε το FreeBSD όταν ξεκίνησε. Αν ρωτήσετε κάτι στην mailto:freebsd-questions@FreeBSD.org[freebsd-questions@FreeBSD.org] ή σε κάποια ομάδα συζήτησης του USENET-όπως για παράδειγμα "το FreeBSD δεν βρίσκει το tape drive μου, τι να κάνω;"-θα σας ζητήσουν σίγουρα την έξοδο της εντολής `dmesg`.
|
||||
|
||||
Μπορείτε τώρα να αποπροσαρτήσετε τον οδηγό δισκέττας (σαν `root`) για να βγάλετε τη δισκέττα με την εντολή
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# /sbin/umount /mnt
|
||||
....
|
||||
|
||||
και να επανεκκινήσετε το σύστημά σας σε DOS. Αντιγράψτε αυτά τα αρχεία σε ένα DOS κατάλογο, ανοίξτε τα με το DOS EDIT, το Windows(R) Notepad ή το Wordpad, ή ένα επεξεργαστή κειμένου, κάντε μια μικρή αλλαγή έτσι ώστε να πρέπει το αρχείο να σωθεί, και τυπώστε όπως συνήθως από το DOS ή τα Windows(R). Ελπίζω να δουλέψει! Οι σελίδες man τυπώνονται πολύ όμορφα αν χρησιμοποιήσετε την εντολή `print` του DOS. (Η αντιγραφή αρχείων από το FreeBSD σε ένα mounted DOS τμήμα δίσκου είναι σε μερικές περιπτώσεις επικίνδυνο πράγμα.)
|
||||
|
||||
Το να κάνετε ένα εκτυπωτή στο FreeBSD να τυπώσει απαιτεί να φτιάξετε μια κατάλληλη εγγραφή στο αρχείο [.filename]#/etc/printcap# και να δημιουργήσετε ένα spool κατάλογο στο [.filename]#/var/spool/output#. Αν ο εκτυπωτής σας είναι στην θύρα `lpt0` (αυτή που το DOS αποκαλεί `LPT1`), μπορεί απλά να χρειάζεται να πάτε στον κατάλογο [.filename]#/var/spool/output# και (σαν `root`) να δημιουργήσετε ένα υποκατάλογο [.filename]#lpd# γράφοντας: `mkdir lpd`, αν δεν υπάρχει ήδη. Τότε ο εκτυπωτής θα πρέπει να απαντάει αν είναι ανοιχτός όταν το σύστημα ξεκινάει, και οι εντολές `lp` και `lpr` θα πρέπει να στέλνουν ένα αρχείο στον εκτυπωτή. Αν το αρχείο θα τυπωθεί ή όχι, εξαρτάται από το αν ο εκτυπωτής έχει ρυθμιστεί σωστά, κάτι που καλύπτει το link:{handbook}[handbook του FreeBSD.]
|
||||
|
||||
[[other-useful-commands]]
|
||||
== Άλλες Χρήσιμες Εντολές
|
||||
|
||||
`df`::
|
||||
Δείχνει ποιες συσκευές έχουν γίνει mount και το χώρο τους.
|
||||
|
||||
`ps aux`::
|
||||
Δείχνει τις διεργασίες που τρέχουν. Η εντολή `ps ax` τυπώνει πιο συμπαγή έξοδο.
|
||||
|
||||
`rm αρχείο`::
|
||||
Σβήνει το _αρχείο_.
|
||||
|
||||
`rm -R dir`::
|
||||
Σβήνει τον κατάλογο _dir_ και όλους τους υποκαταλόγους του-προσοχή!
|
||||
|
||||
`ls -R`::
|
||||
Δείχνει τη λίστα των αρχείων του τρέχοντος καταλόγου, και όλων των υποκαταλόγων του. Εγώ παλιότερα χρησιμοποιούσα μια παραλλαγή, την `ls -AFR > where.txt`, για να παίρνω μια λίστα από όλα τα αρχεία στο [.filename]#/# και (ξεχωριστά) στο [.filename]#/usr# πριν ανακαλύψω καλύτερους τρόπους να βρίσκω αρχεία.
|
||||
|
||||
`passwd`::
|
||||
Αλλάζει τον κωδικό χρήστη σας (ή τον κωδικό χρήστη του `root`)
|
||||
|
||||
`man hier`::
|
||||
Η σελίδα man για την ιεραρχία αρχείων του UNIX(R).
|
||||
|
||||
Χρησιμοποιήστε την `find` για να βρείτε το [.filename]#filename# στο [.filename]#/usr# ή σε κάποιο υποκατάλογό του με την εντολή
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% find /usr -name "filename"
|
||||
....
|
||||
|
||||
Μπορείτε να χρησιμοποιήσετε ένα χαρακτήρα `\*` σαν μεταχαρακτήρα στο `"_filename_"` (το οποίο θα πρέπει να είναι μέσα σε διπλά εισαγωγικά) Αν πείτε στην `find` να ψάξει στο [.filename]#/# αντί για το [.filename]#/usr# θα ψάξει για το αρχείο (ή τα αρχεία) σε όλα τα ενεργά συστήματα αρχείων, συμπεριλαμβανομένου και του CDROM ή του DOS partition.
|
||||
|
||||
Ένα πολύ καλό βιβλίο που εξηγεί τις εντολές και τα εργαλεία του UNIX(R) είναι το UNIX(R) for the Impatient των Abrahams & Larson (2nd ed., Addison-Wesley, 1996). Υπάρχουν επίσης πάρα πολλές πληροφορίες για το UNIX(R) στο Διαδίκτυο.
|
||||
|
||||
[[next-steps]]
|
||||
== Επόμενα Βήματα
|
||||
|
||||
Τώρα πλέον θα πρέπει να έχετε τα εργαλεία για να μπορείτε να τα βγάζετε πέρα και να αλλάζετε αρχεία κειμένου, ώστε να μπορείτε να ρυθμίσετε τα πάντα και να δουλεύουν όπως θέλετε. Υπάρχουν πάρα πολλά χρήσιμα πράγματα στο handbook του FreeBSD (που υπάρχει πιθανόν και στον δίσκο σας) και στην link:https://www.FreeBSD.org/[κεντρική σελίδα του FreeBSD]. Μια μεγάλη πληθώρα πακέτων και ports υπάρχουν στο CDROM και στην web σελίδα. Το handbook εξηγεί καλύτερα πως μπορείτε να τα χρησιμοποιήσετε (να πάρετε το πακέτο αν υπάρχει, με την εντολή `pkg_add /cdrom/packages/All/packagename`, όπου _packagename_ είναι το όνομα αρχείου του πακέτου). Το CDROM έχει λίστες όλων των πακέτων και των ports με σύντομες περιγραφές στα αρχεία [.filename]#cdrom/packages/index#, [.filename]#cdrom/packages/index.txt#, και [.filename]#cdrom/ports/index#, με πιο λεπτομερείς περιγραφές στα αρχεία [.filename]#/cdrom/ports/\*/*/pkg/DESCR#, όπου οι χαρακτήρες `\*` αντιπροσωπεύουν υποκαταλόγους από κατηγορίες προγραμμάτων και ονόματα προγραμμάτων αντίστοιχα.
|
||||
|
||||
Αν βρίσκετε το handbook κάπως πολύπλοκο (με όλα εκείνα τα `lndir` και τα άλλα) για το πως μπορεί κάποιος να εγκαταστήσει ports από το CDROM, ας δούμε κάτι που δουλεύει:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# cp -R /cdrom/ports/comm/kermit /usr/local
|
||||
....
|
||||
|
||||
Μετά από αυτό θα πρέπει ένας κατάλογος [.filename]#/usr/local/kermit# να έχει τα ίδια αρχεία που έχει ο κατάλογος `kermit` στο CDROM.
|
||||
|
||||
Υστερα, δημιουργήστε ένα κατάλογο [.filename]#/usr/ports/distfiles# αν δεν υπάρχει ήδη, χρησιμοποιώντας την εντολή `mkdir`. Μετά ελέγξτε τον κατάλογο [.filename]#/cdrom/ports/distfiles# για ένα αρχείο με όνομα που να δείχνει ότι είναι το port που θέλετε. Αντιγράψτε αυτό το αρχείο στον κατάλογο [.filename]#/usr/ports/distfiles# (σε πρόσφατες εκδόσεις μπορείτε να παραλείψετε αυτό το βήμα, αφού το FreeBSD θα το κάνει για εσάς). Στην περίπτωση του `kermit`, δεν υπάρχει κάποιο distfile.
|
||||
|
||||
Κατόπιν αλλάξτε με `cd` στον κατάλογο [.filename]#/usr/local/kermit# που έχει το αρχείο [.filename]#Makefile#. Τρέξτε την εντολή
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
# make all install
|
||||
....
|
||||
|
||||
Κατά τη διάρκεια αυτής της διαδικασίας, το port θα χρησιμοποιήσει FTP για να πάρει οποιαδήποτε συμπιεσμένα αρχεία του χρειάζονται και δεν τα βρίσκει στο CDROM ή στον κατάλογο [.filename]#/usr/ports/distfiles#. Αν δεν έχετε ρυθμίσει κάποια σύνδεση με δίκτυο ακόμα και δεν υπάρχει κάποιο αρχείο που το port χρειάζεται στο [.filename]#/cdrom/ports/distfiles#, θα πρέπει να πάρετε το αρχείο που λείπει χρησιμοποιώντας κάποιο άλλο μηχάνημα και να το αντιγράψετε στον κατάλογο [.filename]#/usr/ports/distfiles# με κάποια δισκέττα ή χρησιμοποιώντας το DOS partition σας. Διαβάστε το [.filename]#Makefile# (με την εντολή `cat` ή την `more` ή την `view`) για να βρείτε που να πάτε (το κυρίως μέρος διανομής) για να πάρετε το αρχείο και ποιο όνομα έχει. Το όνομά του θα το αλλάξουν συνήθως τα προγράμματα του DOS, και μετά θα πρέπει όταν το αντιγράψετε στο [.filename]#/usr/ports/distfiles# να το μετονομάσετε (με την εντολή `mv`) στο αρχικό του όνομα ώστε να μπορεί να βρεθεί. (Χρησιμοποιήστε binary μεταφορές!) Τότε επιστρέψτε στον κατάλογο [.filename]#/usr/local/kermit#, βρείτε τον κατάλογο με το [.filename]#Makefile#, και δώστε `make all install` πάλι.
|
||||
|
||||
Κάτι άλλο που γίνεται με τα ports και τα πακέτα εγκαθίστανται είναι ότι κάποιο άλλο πρόγραμμα χρειάζεται. Αν η εγκατάσταση σταματήσει με ένα μήνυμα `can't find unzip` ή οτιδήποτε, θα πρέπει να εγκαταστήσετε το πακέτο ή το port του unzip πριν συνεχίσετε.
|
||||
|
||||
Αφού εγκατασταθεί, δώστε την εντολή `rehash` για να κάνετε το FreeBSD να ξαναψάξει για τα προγράμματα που είναι στο path και να ξέρει ότι υπάρχει κάπου εκεί. (Αν για πολλά προγράμματα που κάνετε `whereis` ή `which`, για να βρείτε σε ποιο κατάλογο του path είναι, βλέπετε μηνύματα λάθους `path not found`, είναι καλή ιδέα να προσθέσετε τους αντίστοιχους καταλόγους στο path που περιέχει το [.filename]#.cshrc# στον αρχικό σας κατάλογο. Το path στο UNIX(R) κάνει την ίδια δουλειά που κάνει και στο DOS, μόνο που ο τρέχον κατάλογος δεν είναι (συνήθως) στο path για λόγους ασφάλειας. Αν η εντολή που θέλετε να τρέξετε είναι στον τρέχοντα κατάλογο, πρέπει να γράψετε [.filename]#./# για να δουλέψει-χωρίς κενό μετά την παύλα.)
|
||||
|
||||
Χρήσιμο επίσης είναι και το . Μπορείτε να πάρετε την τελευταία του έκδοση από τον link:ftp://ftp.netscape.com[εξυπηρέτη FTP] του. (Το Netscape απαιτεί το X Window Σύστημα.) Υπάρχει πλέον και μια έκδοση για το FreeBSD, γι αυτό ψάξτε καλά, θα την βρείτε. Απλά χρησιμοποιήστε την εντολή `gunzip filename` και την `tar xvf filename` στο αρχείο, μετακινείστε το εκτελέσιμο στον κατάλογο [.filename]#/usr/local/bin# ή κάποιο άλλο μέρος που βάζετε τα εκτελέσιμά σας, τρέξτε `rehash`, και τότε βάλτε τις εξής εντολές στο [.filename]#.cshrc# αρχείο στον αρχικό κατάλογο κάθε χρήστη ή (πιο απλά) στο αρχείο [.filename]#/etc/csh.cshrc#, το αρχείο ρυθμίσεων συστήματος του csh:
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
|
||||
setenv XNLSPATH /usr/X11R6/lib/X11/nls
|
||||
....
|
||||
|
||||
Αυτό υποθέτει ότι το αρχείο [.filename]#XKeysymDB# και ο κατάλογος [.filename]#nls# υπάρχουν στο [.filename]#/usr/X11R6/lib/X11#. Αν δεν υπάρχουν, βρείτε τους και βάλτε τους εκεί.
|
||||
|
||||
Αν αρχικά εγκαταστήσατε το σαν port χρησιμοποιώντας το CDROM (ή πήρατε το πακέτο μέσω FTP), μην αντικαταστήσετε το αρχείο [.filename]#/usr/local/bin/netscape# με το νέο εκτελέσιμο του Netscape. Το αρχείο αυτό είναι ένα αρχείο φλοιού (shell script) που ρυθμίζει τις μεταβλητές περιβάλλοντος πριν τρέξει το Netscape. Αντί να το αντικαταστήσετε, μετονομάστε το νέο εκτελέσιμο σε [.filename]#netscape.bin# και αντικαταστήστε το παλιό εκτελέσιμο, που βρίσκεται στο [.filename]#/usr/local/netscape/netscape#.
|
||||
|
||||
[[your-working-environment]]
|
||||
== Το Περιβάλλον στο Οποίο Δουλεύετε
|
||||
|
||||
Ο φλοιός (shell) είναι το πιο σημαντικό μέρος του περιβάλλοντος εργασίας σας. Στο DOS ο συνηθισμένος φλοιός είναι το command.com. Ο φλοιός είναι αυτός που μεταφράζει τις εντολές που γράφετε στην γραμμή εντολών, και επικοινωνεί με το υπόλοιπο λειτουργικό σύστημα. Μπορείτε να γράψετε αρχεία δέσμης, σαν τα αρχεία δέσμης του DOS: μια σειρά από εντολές που θα τρέξουν χωρίς την δική σας παρεμβολή.
|
||||
|
||||
Στο FreeBSD υπάρχουν δύο προεγκατεστημένοι φλοιοί: το `csh` και το `sh`. Το `csh` είναι καλό για να κάνετε δουλειά στην γραμμή εντολών, αλλά για αρχεία δέσμης προτιμήστε το `sh` (ή το `bash`). Μπορείτε να βρείτε ποιο φλοιό τρέχετε γράφοντας `echo $SHELL`.
|
||||
|
||||
Ο φλοιός `csh` είναι αρκετά καλός, αλλά ο φλοιός `tcsh` μπορεί να κάνει ότι και το `csh` κι ακόμα περισσότερα. Υποστηρίζει, για παράδειγμα, την ανάκληση εντολών από το ιστορικό με τα βελάκια και επεξεργασία των εντολών πριν τρέξουν. Υποστηρίζει την αυτόματη συμπλήρωση των εντολών και των ονομάτων των αρχείων με χρήση του πλήκτρου kbd:[TAB] (το `csh` χρησιμοποιεί το kbd:[Esc] για τον ίδιο σκοπό), και υποστηρίζει την γρήγορη εναλλαγή μεταξύ δύο καταλόγων με την εντολή `cd -`. Είναι, επίσης, πολύ πιο εύκολο να ρυθμίσετε την προτροπή του φλοιού με το `tcsh`. Το `tcsh` έχει κι άλλα χρήσιμα χαρακτηριστικά, που θα κάνουν τη ζωή σας αρκετά πιο εύκολη.
|
||||
|
||||
Είναι εύκολο να εγκαταστήσετε ένα καινούριο φλοιό σε τρία βήματα:
|
||||
|
||||
[.procedure]
|
||||
====
|
||||
. Εγκαταστήστε το φλοιό σαν port ή πακέτο, όπως θα κάνατε και για κάθε άλλο πακέτο. Χρησιμοποιήστε την εντολή `rehash` και την `which tcsh` (υποθέτοντας ότι στήνετε το `tcsh`) για να σιγουρευτείτε ότι εγκαταστήθηκε.
|
||||
. Σαν `root`, αλλάξτε το αρχείο [.filename]#/etc/shells#, προσθέτοντας μια γραμμή στο αρχείο με τον καινούριο φλοιό. Σε αυτή την περίπτωση απλά προσθέστε μια γραμμή που λέει [.filename]#/usr/local/bin/tcsh# και σώστε το αρχείο. (Κάποια ports μπορεί να το κάνουν αυτόματα αυτό για σας.)
|
||||
. Χρησιμοποιήστε την `chsh` εντολή για να αλλάξετε το φλοιό σας στο `tcsh` μόνιμα, ή γράψτε `tcsh` στο prompt για να αλλάξετε προσωρινά το φλοιό σας χωρίς να κάνετε login ξανά.
|
||||
====
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Μπορεί να είναι επικίνδυνο να αλλάξετε το φλοιό του `root` σε κάτι διαφορετικό από `sh` ή `csh` σε κάπως παλιότερες εκδόσεις του FreeBSD και σε πολλές άλλες εκδόσεις του UNIX(R). Μπορεί να μην έχετε ένα φλοιό που να δουλεύει όταν το σύστημα ξεκινήσει σε κατάσταση ενός χρήστη (single user mode). Η λύση είναι να χρησιμοποιείτε την εντολή `su -m` για να γίνετε `root`, που θα σας δώσει ένα `tcsh` φλοιό σαν `root`, αφού το ποιος είναι ο φλοιός είναι μέρος του περιβάλλοντος. Μπορείτε να κάνετε μόνιμη μια τέτοια αλλαγή προσθέτοντας στο [.filename]#.tcshrc# σας μια συντόμευση
|
||||
|
||||
[.programlisting]
|
||||
....
|
||||
alias su su -m
|
||||
....
|
||||
====
|
||||
|
||||
Όταν το `tcsh` ξεκινάει, διαβάζει το αρχείο [.filename]#/etc/csh.cshrc# και ύστερα το [.filename]#/etc/csh.login#, όπως κάνει και το `csh`. Επίσης διαβάζει από τον αρχικό σας κατάλογο το αρχείο [.filename]#.login# καθώς και το αρχείο [.filename]#.cshrc# επίσης, εκτός κι αν υπάρχει το αρχείο [.filename]#.tcshrc#. Αυτό μπορείτε να το φτιάξετε, αντιγράφοντας το αρχείο [.filename]#.cshrc# στο [.filename]#.tcshrc#.
|
||||
|
||||
Τώρα που εγκαταστήσατε το `tcsh`, μπορείτε να αλλάξετε και το prompt σας. Μπορείτε να βρείτε πιο πολλές λεπτομέρειες στην man σελίδα του `tcsh`, αλλά ας δούμε μια γραμμή που μπορείτε να βάλετε στο [.filename]#.tcshrc# αρχείο σας που θα σας λέει πόσες εντολές έχετε γράψει, τι ώρα είναι, και σε ποιον κατάλογο είστε. Επίσης περιέχει ένα χαρακτήρα `>` αν είστε απλός χρήστης, ή ένα χαρακτήρα # αν είστε `root`, κάτι που έτσι κι αλλιώς το κάνει το `tsch`.
|
||||
|
||||
set prompt = "%h %t %~ %# "
|
||||
|
||||
Αυτό μπορεί να πάει στο ίδιο μέρος που υπάρχει η παλιά set prompt γραμμή αν υπάρχει, ή κάτω από την "if($?prompt) then" αν δεν υπάρχει. Μετατρέψτε την παλιά σε σχόλιο, ώστε να μπορείτε να επιστρέψετε στο παλιό σας prompt αν το προτιμάτε. Μην ξεχάσετε στην καινούρια γραμμή τα κενά και τα εισαγωγικά. Μπορείτε να κάνετε το tcsh να ξαναδιαβάσει το [.filename]#.tcshrc# γράφοντας `source .tcshrc`.
|
||||
|
||||
Μπορείτε να δείτε μια λίστα με τις μεταβλητές περιβάλλοντος που υπάρχουν γράφοντας `env` στο prompt σας. Το αποτέλεσμα περιέχει τον προκαθορισμένο επεξεργαστή κειμένου σας, τον pager, και τον τύπο του τερματικού σας, ανάμεσα σε πολλά άλλα πράγματα. Μια χρήσιμη εντολή αν έχετε συνδεθεί από μακριά και δεν μπορείτε να τρέξετε κάποιο πρόγραμμα, επειδή ο τύπος τερματικού δεν το επιτρέπει, είναι η εντολή `setenv TERM vt100`.
|
||||
|
||||
[[other]]
|
||||
== Διάφορα
|
||||
|
||||
Σαν `root`, μπορείτε να αποσυνδέσετε το CDROM με την εντολή `/sbin/umount /cdrom`, να βγάλετε το δίσκο από τον οδηγό, να βάλετε ένα καινούριο και να το συνδέσετε με την εντολή `/sbin/mount_cd9660 /dev/cd0a /cdrom` υποθέτοντας ότι `cd0a` είναι το όνομα της συσκευής του οδηγού CDROM. Οι πιο πρόσφατες εκδόσεις του FreeBSD σας αφήνουν να συνδέσετε το CDROM γράφοντας απλά `/sbin/mount /cdrom`.
|
||||
|
||||
Το live σύστημα-το δεύτερο CDROM από τους δίσκους εγκατάστασης του FreeBSD- μπορεί να φανεί χρήσιμο αν έχετε περιορισμένο χώρο. Το τι υπάρχει στο live σύστημα διαφέρει από έκδοση σε έκδοση. Μπορείτε να δοκιμάσετε να παίξετε ακόμα και παιχνίδια από το CDROM. Αυτό απαιτεί να χρησιμοποιήσετε την εντολή `lndir`, που εγκαθίσταται με το σύστημα X Window, για να πείτε στα προγράμματα που να βρουν τα απαραίτητα αρχεία, γιατί βρίσκονται στο σύστημα αρχείων του [.filename]#/cdrom# αντί για το [.filename]#/usr# και τους υποκαταλόγους του, που συνήθως βρίσκονται. Διαβάστε την man σελίδα της lndir με `man lndir`.
|
||||
|
||||
[[comments-welcome]]
|
||||
== Τα Σχόλιά Σας
|
||||
|
||||
Αν χρησιμοποιήσετε αυτό τον οδηγό θα με ενδιέφερε να ξέρω που δεν ήταν αρκετά σαφής και τι παρέλειψα το οποίο πιστεύετε ότι θα έπρεπε να περιέχει, κι ακόμη πόσο σας βοήθησε. Να ευχαριστήσω τον Eugene W. Stark, καθηγητή της επιστήμης της πληροφορικής στο SUNY-Stony Brook, και τον John Fieber για τα σχόλιά τους που με βοήθησαν πολύ.
|
||||
|
||||
Annelise Anderson, mailto:andrsn@andrsn.stanford.edu[andrsn@andrsn.stanford.edu]
|
||||
262
documentation/content/el/articles/problem-reports/_index.adoc
Normal file
262
documentation/content/el/articles/problem-reports/_index.adoc
Normal file
|
|
@ -0,0 +1,262 @@
|
|||
---
|
||||
title: Γράφοντας Αναφορές Προβλημάτων για το FreeBSD
|
||||
authors:
|
||||
- author: Dag-Erling Smørgrav
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "cvsup", "ibm", "intel", "sparc", "sun", "general"]
|
||||
---
|
||||
|
||||
= Γράφοντας Αναφορές Προβλημάτων για το FreeBSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/el/mailing-lists.adoc[lines=10..-1]
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Αυτό το άρθρο περιγράφει πως να μορφοποιήσετε και να στείλετε μια αναφορά προβλήματος στην ομάδα ανάπτυξης του FreeBSD.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[pr-intro]]
|
||||
== Εισαγωγή
|
||||
|
||||
Μια από τις πιο αποκαρδιωτικές εμπειρίες που μπορεί κάποιος να έχει σαν χρήστης ενός προγράμματος είναι να στείλει μια αναφορά προβλήματος μόνο και μόνο για να δει να την κλείνουν απότομα με μια σύντομη και απότομη εξήγηση όπως π.χ. "αυτό δεν είναι πρόβλημα" ή "λάθος PR". Κατά παρόμοιο τρόπο, μια από τις πιο αποκαρδιωτικές εμπειρίες ενός προγραμματιστή είναι να κατακλύζεται από αναφορές προβλημάτων που δεν είναι πραγματικά προβλήματα αλλά αιτήσεις για βοήθεια και υποστήριξη ή αναφορές που περιέχουν λίγες έως καθόλου πληροφορίες σχετικά με το πρόβλημα και πως μπορεί κάποιος να το αναπαράγει.
|
||||
|
||||
Αυτό το κείμενο είναι μια προσπάθεια να περιγράψουμε πως μπορείτε να γράφετε καλές αναφορές προβλημάτων. Τι είναι, θα αναρωτιέστε, μια καλή αναφορά προβλήματος; Λοιπόν, για να είμαστε ακριβείς, μια καλή αναφορά προβλήματος είναι αυτή που μπορεί να αναλυθεί και να τη χειριστεί κάποιος γρήγορα, με αποτέλεσμα την ικανοποίηση τόσο του αποστολέα όσο και του προγραμματιστή που την ανέλαβε.
|
||||
|
||||
Το κυριότερο μέρος αυτού του άρθρου αναφέρεται στις αναφορές προβλημάτων του FreeBSD. Τα πιο πολλά από όσα θα πούμε εδώ ισχύουν όμως και γενικότερα, για πολλά άλλα πράγματα.
|
||||
|
||||
Αυτό το άρθρο είναι οργανωμένο θεματικά κι όχι χρονολογικά, οπότε είναι πιο σωστό να το διαβάσετε ολόκληρο πριν στείλετε κάποια αναφορά προβλήματος και όχι να το χρησιμοποιήσετε σαν οδηγό, βήμα προς βήμα.
|
||||
|
||||
[[pr-when]]
|
||||
== Πότε να στείλετε μια αναφορά προβλήματος
|
||||
|
||||
Υπάρχουν πολλοί τύποι προβλημάτων, και δεν αξίζουν όλοι μια αναφορά προβλήματος. Φυσικά κανείς δεν είναι τέλειος, και θα υπάρξουν φορές που θα έχετε πειστεί ότι βρήκατε κάποιο πρόβλημα σε ένα πρόγραμμα, όταν στην πραγματικότητα θα έχετε καταλάβει λάθος τη σύνταξη μιας εντολής ή θα έχετε κάνει κάποιο τυπογραφικό λάθος σε ένα αρχείο ρυθμίσεων (αν κι αυτό μερικές φορές είναι ενδεικτικό κακής ή λειψής τεκμηρίωσης ή ακόμα και κακής διαχείρισης λαθών από κάποια εφαρμογή). Ακόμα, υπάρχουν περιπτώσεις που το να στείλετε κάποια αναφορά προβλήματος _δεν είναι_ σωστή κίνηση και το μόνο που μπορεί να πετύχει είναι να ενοχλήσει ή εσάς ή τους προγραμματιστές. Από την άλλη όμως, υπάρχουν περιπτώσεις που μπορεί να είναι καλή σκέψη να στείλετε μια αναφορά προβλήματος για κάτι που δεν είναι bug-μια βελτίωση ή μια αίτηση για κάποιο νέο χαρακτηριστικό, για παράδειγμα.
|
||||
|
||||
Τότε λοιπόν, πώς μπορείτε να αποφασίσετε αν κάτι είναι πρόβλημα ή όχι; Ένας απλός κανόνας είναι ότι το πρόβλημά σας _δεν_ είναι bug αν μπορεί να εκφραστεί σαν ερώτηση (συνήθως της μορφής "Πώς κάνω το Χ;" ή "Πού μπορώ να βρω το Ψ;"). Δεν είναι πάντα τόσο άσπρο-μαύρο τα πράγματα βέβαια, αλλά ο κανόνας της ερώτησης καλύπτει την μεγαλύτερη πλειοψηφία των περιπτώσεων. Αν αυτό που ψάχνετε είναι κάποια απάντηση, ίσως είναι καλύτερα να στείλετε την ερώτησή σας στην {freebsd-questions}.
|
||||
|
||||
Κάποιες περιπτώσεις που πιθανόν να είναι καλή ιδέα να στείλετε μια αναφορά προβλήματος για κάτι που δεν είναι bug, είναι:
|
||||
|
||||
* Αιτήσεις για μελλοντικές βελτιώσεις. Είναι γενικά καλή ιδέα να δοκιμάσετε να συζητήσετε πρώτα τέτοιες ιδέες σε κάποια λίστα ηλεκτρονικού ταχυδρομείου πριν στείλετε μια αναφορά προβλήματος.
|
||||
* Ειδοποίηση για ενημερωμένες εκδόσεις προγραμμάτων (κυρίως ports, αλλά και μέρη του βασικού συστήματος που συντηρούνται από τρίτους, όπως το BIND και τα διάφορα GNU εργαλεία).
|
||||
+
|
||||
Όταν ένα πακέτο δεν είναι υπό την άμεση επίβλεψη ενός επίσημου υπεύθυνου (η τιμή του `MAINTAINER` είναι `ports@FreeBSD.org`) μπορεί οποιοσδήποτε committer ή άλλος ενδιαφερόμενος να διαχειριστεί αυτές τις ειδοποιήσεις. Μπορεί, ακόμη, να σας ζητηθεί και κάποιο patch για ενημερωθεί το πακέτο. Αν έχετε ήδη φτιάξει κάποιο patch, καλό είναι να το συμπεριλάβετε κι αυτό στην αναφορά προβλήματος που θα στείλετε. Έτσι αυξάνονται οι πιθανότητες να το δει κάποιος committer που ενδιαφέρεται και να χειριστεί αυτή την αναφορά προβλήματος πιο σύντομα.
|
||||
+
|
||||
Όταν ένα πακέτο είναι υπό την επίβλεψη κάποιου, συνήθως δεν είναι ιδιαίτερα χρήσιμες οι αναφορές που απλώς ανακοινώνουν μια καινούρια έκδοση από τον συγγραφέα του πηγαίου κώδικα του πακέτου. Συνήθως το ξέρει ήδη ο υπεύθυνος του πακέτου για το FreeBSD, ή έχει συνεργαστεί με τον συγγραφέα του πηγαίου κώδικα για τη νέα έκδοση, ή δοκιμάζει το πακέτο για να δει ότι όλα εξακολουθούν να δουλεύουν, κοκ.
|
||||
+
|
||||
Όπως και να 'χει, είναι καλή ιδέα να ακολουθήσετε τη διαδικασία από το link:{porters-handbook}#port-upgrading[Porter's Handbook].
|
||||
|
||||
Ένα bug που δεν μπορεί κανείς να το αναπαράγει είναι πολύ δύσκολο να διορθωθεί. Αν το bug εμφανίστηκε μια φορά μόνο και δεν μπορείτε να το αναπαράγετε εσείς, και φαινομενικά δεν εμφανίζεται σε κανέναν άλλο, είναι πολύ μικρές οι πιθανότητες να μπορεί κάποιος προγραμματιστής να το ανακαλύψει και να καταλάβει τί είναι αυτό που προκαλεί το λάθος. Αυτό δεν σημαίνει πως δεν συμβαίνει, αλλά σημαίνει πως η πιθανότητα να οδηγήσει η αναφορά σας στην λύση του προβλήματος είναι πάρα πολύ μικρή, και μάλλον είναι καλύτερο να σταματήσετε να ασχολείστε με το θέμα. Ακόμα χειρότερα, κάποιες φορές αυτού του είδους τα προβλήματα οφείλονται σε προβλήματα του υλικού (χαλασμένους σκληρούς δίσκους ή επεξεργαστές που υπερθερμαίνονται). Πρέπει πάντοτε πριν στέλνετε μια αναφορά προβλήματος, όταν φυσικά είναι δυνατόν να γίνει κάτι τέτοιο, να προσπαθείτε να αποκλείσετε τέτοιες περιπτώσεις.
|
||||
|
||||
Για να αποφασίσετε σε ποιά κατηγορία προβλημάτων ανήκει η αναφορά σας, πρέπει να έχετε κατά νου τα διάφορα μέρη του λογισμικού από το οποίο αποτελείται το FreeBSD:
|
||||
|
||||
* Ο κώδικας του βασικού συστήματος που έχει γραφτεί και συντηρείται από την ομάδα του FreeBSD. Σε αυτή την κατηγορία λογισμικού ανήκουν ο πυρήνας, η βιβλιοθήκη της C, και οι οδηγοί συσκευών (κατηγορία `kern`), τα εργαλεία γραμμής εντολών του βασικού συστήματος (κατηγορία `bin`), οι σελίδες βοήθειας και η τεκμηρίωση του FreeBSD (κατηγορία `docs`), και ο ιστότοπος του FreeBSD (κατηγορία `www`). Όλα τα προβλήματα με κάποιο από αυτά τα μέρη του FreeBSD πρέπει να αναφέρονται στην ομάδα ανάπτυξης του FreeBSD.
|
||||
* Ο κώδικας του βασικού συστήματος που έχει γραφτεί και συντηρείται από τρίτους αλλά έχει ενσωματωθεί στο FreeBSD κι έχει προσαρμοστεί σε αυτό. Παραδείγματα τέτοιων προγραμμάτων είναι το bind, ο μεταγλωττιστής man:gcc[1] και το man:sendmail[8]. Τα περισσότερα προβλήματα με κάποιο από αυτά τα προγράμματα πρέπει να αναφέρονται στην ομάδα ανάπτυξης του FreeBSD. Σε μερικές περιπτώσεις μπορεί να χρειαστεί να αναφερθούν στους αρχικούς συγγραφείς του αντίστοιχου προγράμματος· ειδικά αν το πρόβλημα δεν εμφανίζεται μόνο στο FreeBSD. Οι πιο συνηθισμένες κατηγορίες για τις αναφορές προβλημάτων σχετικά με αυτά τα προγράμματα είναι οι `bin` και `gnu`.
|
||||
* Άλλες εφαρμογές, οι οποίες δεν είναι μέρος του βασικού συστήματος του FreeBSD, αλλά υποστηρίζονται ως μέρος της Συλλογής των Ports (κατηγορία `ports`). Η συντριπτική πλειοψηφία αυτών των εφαρμογών δεν έχει γραφτεί από την ομάδα του FreeBSD. Αυτό που παρέχεται από το FreeBSD είναι απλά η δυνατότητα να εγκατασταθούν αυτές οι εφαρμογές (με μερικές χρήσιμες αλλά όσο το δυνατόν λιγότερες ή μικρότερες σε έκταση αλλαγές) σε ένα σύστημα FreeBSD. Οπότε πρέπει να αναφέρετε οποιοδήποτε πρόβλημα έχουν αυτές οι εφαρμογές στην ομάδα του FreeBSD κυρίως όταν πιστεύετε ότι το πρόβλημα εμφανίζεται μόνο στο FreeBSD. Σε αντίθετη περίπτωση είναι καλύτερη ιδέα να αναφέρεται το πρόβλημα στον αρχικό συγγραφέα του αντίστοιχου προγράμματος.
|
||||
|
||||
Τέλος, ελέγξτε ότι η αναφορά που στέλνετε αφορά ένα πρόβλημα το οποίο υπάρχει ακόμα. Μερικές φορές είναι κάπως ενοχλητικό για έναν προγραμματιστή να παίρνει ειδοποιήσεις για ένα πρόβλημα το οποίο έχει ήδη διορθωθεί.
|
||||
|
||||
Αν το πρόβλημα που αντιμετωπίζετε αφορά το βασικό σύστημα και δεν έχετε ενημερωθεί ήδη για τις τελευταίες εκδόσεις του FreeBSD, διαβάστε το τμήμα link:{faq}#LATEST-VERSION[εκδόσεις του FreeBSD] στη Λίστα Συχνών Ερωτήσεων του FreeBSD. Η ομάδα του FreeBSD μπορεί να συντηρεί μόνο ένα ορισμένο (μικρό) αριθμό κλάδων ανάπτυξης του FreeBSD. Δε μπορεί να διορθώνει προβλήματα για οποιαδήποτε έκδοση του FreeBSD. Οπότε αν αναφέρετε ότι έχετε πρόβλημα με μια πολύ παλιά έκδοση του συστήματος, η πιο πιθανή απάντηση που θα πάρετε θα είναι να αναβαθμίσετε το σύστημά σας σε μια έκδοση που υποστηρίζεται επίσημα από την ομάδα του FreeBSD και να κάνετε δοκιμές για να δείτε αν το πρόβλημα έχει ήδη διορθωθεί ή υπάρχει ακόμη. Η Ομάδα Ασφάλειας του FreeBSD συντηρεί και ενημερώνει μια http://www.freebsd.org/security/[λίστα εκδόσεων του FreeBSD που υποστηρίζονται επίσημα].
|
||||
|
||||
Αν το πρόβλημα που αντιμετωπίζετε αφορά ένα πακέτο, τότε πρέπει κατ' αρχήν να ενημερώσετε τα Ports σας στην τελευταία έκδοση της Συλλογής των Ports και να δείτε αν το πρόβλημα υπάρχει ακόμα. Οι εφαρμογές που περιέχονται στη Συλλογή των Ports αλλάζουν πολύ γρήγορα. Λόγω του γρήγορου ρυθμού με τον οποίο ενημερώνονται είναι πρακτικά αδύνατον για την ομάδα του FreeBSD να υποστηρίξει οποιαδήποτε παλιότερη έκδοση των Ports. Αυτό σημαίνει ότι τα προβλήματα που έχουν οι παλιές εκδόσεις κάποιων προγραμμάτων απλά δε γίνεται να διορθωθούν.
|
||||
|
||||
[[pr-prep]]
|
||||
== Προετοιμασία
|
||||
|
||||
Είναι καλή ιδέα να κάνετε πάντα μια μικρή έρευνα πριν να στείλετε κάποια αναφορά προβλήματος. Μπορεί το πρόβλημά σας να το έχει ήδη αναφέρει και κάποιος άλλος. Μπορεί να είναι θέμα συζητήσεων σε κάποια λίστα ηλεκτρονικού ταχυδρομείου ή να ήταν πρόσφατα. Μπορεί ακόμα, να είναι ήδη διορθωμένο το πρόβλημα σε κάποια έκδοση νεώτερη από αυτή που τρέχετε. Πρέπει λοιπόν να ελέγχετε όλα τα προφανή σημεία, πριν να στείλετε μια αναφορά προβλήματος. Για το FreeBSD αυτό σημαίνει:
|
||||
|
||||
* Την link:{faq}[λίστα] με τις πιο συχνές ερωτήσεις (FAQ) για το FreeBSD. Η λίστα αυτή παρέχει απαντήσεις σε μια μεγάλη ποικιλία ερωτήσεων, όπως αυτές που αφορούν link:{faq}#hardware[το υλικό], link:{faq}#applications[τις εφαρμογές] και τις link:{faq}#kernelconfig[ρυθμίσεις του πυρήνα].
|
||||
* Οι link:{handbook}#eresources-mail[λίστες ηλεκτρονικού ταχυδρομείου]-αν δεν έχετε γραφτεί σε κάποια από αυτές, μπορείτε να χρησιμοποιήσετε το http://www.FreeBSD.org/search/#mailinglists[αρχείο] στις σελίδες του FreeBSD για να αναζητήσετε πληροφορίες σχετικές με το πρόβλημα. Αν το πρόβλημά σας δεν έχει συζητηθεί στις λίστες είναι, γενικά, καλή ιδέα να στείλετε ένα γράμμα στις λίστες ηλεκτρονικού ταχυδρομείου και να περιμένετε λίγες μέρες μήπως κάποιος βρει κάτι που εσείς δεν προσέξατε.
|
||||
* Προαιρετικά, όλο το δίκτυο. Χρησιμοποιήστε την αγαπημένη σας μηχανή αναζήτησης για να βρείτε πληροφορίες σχετικά με το πρόβλημα. Έτσι μπορεί να βρείτε ακόμη και αναφορές από λίστες ηλεκτρονικού ταχυδρομείου ή ομάδες συζητήσεων που δεν ξέρατε ότι υπάρχουν ή δεν σκεφτήκατε να ψάξετε.
|
||||
* Ύστερα μπορείτε να αναζητήσετε σχετικές αναφορές στην http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[βάση αναφορών του FreeBSD] (GNATS). Αν το πρόβλημά σας δεν είναι πρόσφατο ή αρκετά περίεργο, είναι πολύ πιθανόν να έχει ήδη στείλει κάποιος άλλος μια αναφορά.
|
||||
* Το πιο σημαντικό από όλα όμως είναι να δείτε μήπως η τεκμηρίωση του FreeBSD περιέχει κάποια λύση στο πρόβλημά σας.
|
||||
+
|
||||
Για το βασικό σύστημα του FreeBSD πρέπει να μελετήσετε προσεκτικά τις οδηγίες που περιέχει το αρχείο [.filename]#/usr/src/UPDATING# στο σύστημά σας ή αυτές που περιέχει η τελευταία έκδοση του αρχείου, η οποία είναι διαθέσιμη στη διεύθυνση: http://www.FreeBSD.org/cgi/cvsweb.cgi/src/UPDATING[http://www.FreeBSD.org/cgi/cvsweb.cgi/src/UPDATING]. (Αυτό το αρχείο περιέχει κρίσιμες πληροφορίες για αναβάθμιση από μια έκδοση του FreeBSD σε κάποια άλλη-ειδικά για τις εκδόσεις του FreeBSD-CURRENT).
|
||||
+
|
||||
Αν το πρόβλημα εμφανίζεται σε κάτι που εγκαταστάθηκε ως μέρος της Συλλογής των Ports του FreeBSD, τα αντίστοιχα αρχεία με πληροφορίες είναι τα: [.filename]#/usr/ports/UPDATING# (για πληροφορίες σχετικά με συγκεκριμένα πακέτα), [.filename]#/usr/ports/CHANGES# (για αλλαγές που αφορούν όλη την Συλλογή των Ports). Κι αυτά τα αρχεία είναι διαθέσιμα μέσω CVSweb, στις διευθύνσεις http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/UPDATING[http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/UPDATING] και http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/CHANGES[http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/CHANGES] αντίστοιχα.
|
||||
|
||||
[[pr-writing]]
|
||||
== Γράφοντας αναφορές προβλημάτων
|
||||
|
||||
Τώρα που έχετε αποφασίσει ότι αξίζει να γράψετε κάποια αναφορά προβλήματος, και ότι όντως είναι κάποιο πρόβλημα του FreeBSD αυτό που θέλετε να περιγράψετε, είναι ώρα να γράψετε την αναφορά. Πριν μπούμε σε λεπτομέρειες σχετικά με το πρόγραμμα που χρησιμοποιείται για να γράφονται και να στέλνονται οι αναφορές προβλημάτων, ας δούμε μερικά κόλπα που θα σας βοηθήσουν να στείλετε χρήσιμες αναφορές.
|
||||
|
||||
== Κόλπα για να γράφετε χρήσιμες αναφορές προβλημάτων
|
||||
|
||||
* _Μην αφήνετε κενή την γραμμή "Synopsis"._ Οι αναφορές προβλημάτων στέλνονται σε μια λίστα ηλεκτρονικού ταχυδρομείου, η οποία προωθεί την αναφορά σας σε ανθρώπους σε όλο τον κόσμο (όπου το κείμενο της γραμμής "Synopsis" χρησιμοποιείται ως θέμα του μηνύματος), αλλά και σε μια βάση δεδομένων. Οποιοσδήποτε προσπαθήσει αργότερα να δει μια λίστα με τις αναφορές προβλημάτων μπορεί να αγνοήσει εντελώς την αναφορά σας αν δεν έχει θέμα. Να έχετε κατα νου σας ότι οι αναφορές μένουν σε αυτή τη βάση μέχρι κάποιος να ασχοληθεί μαζί τους και να τις κλείσει. Μια ανώνυμη αναφορά, χωρίς κανένα θέμα, συνήθως, χάνεται στο θόρυβο.
|
||||
* _Μη χρησιμοποιείτε αταίριαστες περιγραφές στη γραμμή "Synopsis"._ Μην θεωρείτε ότι οποιοσδήποτε διαβάσει την αναφορά σας θα έχει και το κατάλληλο υπόβαθρο για να καταλάβει τι λέτε, οπότε όσο περισσότερες λεπτομέρειες συμπεριλάβετε τόσο καλύτερα είναι. Για παράδειγμα, η αναφορά και το πρόβλημα που στέλνετε ποιο μέρος του συστήματός σας αφορά; Το πρόβλημα εμφανίζεται μόνο κατά τη διάρκεια της εγκατάστασης ή και μετά; Για παράδειγμα, δείτε πόσο πιο καλά είναι αν αντί να γράψετε `Synopsis: portupgrade is broken` γίνετε πιο περιγραφικοί `Synopsis: port sysutils/portupgrade coredumps on -current`. (Ειδικά στην περίπτωση των ports είναι πολύ χρήσιμο να υπάρχει τόσο η κατηγορία όσο και το όνομα του port στη γραμμή της σύνοψης).
|
||||
* _Αν έχετε κάποιο patch, πείτε το._ Είναι πολύ ππιο πιθανό να ασχοληθεί κάποιος με μια αναφορά προβλήματος που περιλαμβάνει και κάποιο patch από ότι με κάποια που απλά αναφέρει το πρόβλημα. Αν η αναφορά σας περιλαμβάνει κάποιο patch τότε είναι καλή ιδέα να προσθέσετε το κείμενο `[patch]` στην αρχή της "Synopsis" σας. (Παρόλο που δεν είναι υποχρεωτικό να χρησιμοποιήσετε ακριβώς αυτό το κείμενο, συνήθως αυτό χρησιμοποιούν οι περισσότεροι μέχρι σήμερα.)
|
||||
* _Αν είστε εσείς ο υπεύθυνος για τη συντήρηση κάποιου μέρους του κώδικα, πείτε το._ Αν είναι δική σας ευθύνη η συντήρηση κάποιου μέρους του κώδικα του FreeBSD (για παράδειγμα είστε ο MAINTAINER κάποιου port), δεν είναι άσχημη ιδέα να προσθέσετε το κείμενο `[maintainer update]` στην αρχή της "Synopsis" σας. Οπωσδήποτε όμως να θυμηθείτε να θέσετε την τιμή του "Class" της αναφοράς σας σε `maintainer-update`. Έτσι όποιο μέλος της ομάδας ανάπτυξης ασχοληθεί με την αναφορά σας δε θα χρειάζεται να ελέγξει αν όντως εσείς είστε ο maintainer.
|
||||
* _Να είστε ακριβείς & συγκεκριμένοι._ Όσο περισσότερες πληροφορίες γράψετε σχετικά με το πρόβλημα που αντιμετωπίζετε, τόσο αυξάνονται οι πιθανότητες να πάρετε μια χρήσιμη και σωστή απάντηση.
|
||||
|
||||
** Συμπεριλάβετε την έκδοση του FreeBSD που χρησιμοποιείτε (παρακάτω θα δούμε πως υπάρχει συγκεκριμένο μέρος που μπορείτε να το γράψετε αυτό) και ποιας αρχιτεκτονικής είναι το μηχάνημά σας. Είναι ιδιαίτερα χρήσιμο να γράψετε αν τρέχετε κάποια επίσημη έκδοση (π.χ. από ένα CDROM ή κάποια που κατεβάσατε από το δίκτυο) ή αν το σύστημα σας το ενημερώνετε με το man:cvsup[1] (κι αν ναι, πόσο πρόσφατα το ενημερώσατε). Αν χρησιμοποιείτε το FreeBSD-CURRENT, αυτό είναι και το πρώτο πράγμα που θα σας ρωτήσει κάποιος, επειδή οι αλλαγές και οι διορθώσεις (ειδικά για τα σημαντικά προβλήματα) γίνονται, γενικά, πολύ γρήγορα και συχνά. Οι χρήστες του FreeBSD-CURRENT πρέπει να τις παρακολουθούν με προσοχή και να ενημερώνουν συχνά το σύστημά τους.
|
||||
** Συμπεριλάβετε και τις ρυθμίσεις που περιέχει το αρχείο [.filename]#make.conf# στο σύστημά σας. Σημειώστε πως η χρήση της επιλογής `-O2` του man:gcc[1] είναι γνωστή πηγή προβλημάτων. Παρόλο που η ομάδα ανάπτυξης του FreeBSD δεν θα 'λεγε όχι σε patches που να διορθώνουν αυτά τα προβλήματα είναι γενικά απρόθυμη στο να αναζητά τις αιτίες τέτοιων προβλημάτων επειδή δεν έχει το χρόνο ή το ανθρώπινο δυναμικό να το κάνει. Αν τα προβλήματά σας οφείλονται σε αυτό το πρόβλημα των optimizations μπορεί να σας απαντήσουν ότι δεν υποστηρίζεται αυτός ο τρόπος χρήσης του FreeBSD.
|
||||
** Αν το πρόβλημά σας αφορά τον πυρήνα, τότε να είστε προετοιμασμένοι να δώσετε και τις εξής έξτρα πληροφορίες. (Δεν είναι ανάγκη να τις συμπεριλάβετε έτσι κι αλλιώς, αφού το μόνο που θα καταφέρετε είναι να αυξήσετε χωρίς λόγο το χώρο που απαιτεί η βάση προβλημάτων στο δίσκο, αλλά δεν είναι κακή ιδέα να συμπεριλάβετε μόνο τα μέρη που θεωρείτε σχετικά):
|
||||
|
||||
*** τις ρυθμίσεις του πυρήνα σας (και ποιές συσκευές έχετε εγκατεστημένες στο μηχάνημά σας)
|
||||
*** αν έχετε ενεργοποιημένες επιλογές debugging στον πυρήνα σας (όπως π.χ. την επιλογή `WITNESS`) κι αν ναι αν το πρόβλημα συνεχίζει να υπάρχει αφαιρώντας αυτές τις επιλογές
|
||||
*** ένα backtrace, αν μπορέσατε να καταγράψετε κάποιο
|
||||
*** αν έχετε διαβάσει προσεκτικά το αρχείο [.filename]#src/UPDATING# κι αν το πρόβλημά σας αναφέρεται ή όχι σε αυτό (είναι σίγουρο ότι κάποιος θα σας ρωτήσει γι αυτό)
|
||||
*** αν μπορείτε να τρέξετε κάποιο άλλο πυρήνα σαν προσωρινή λύση (έτσι αποκλείονται προβλήματα με το υλικό, όπως δίσκοι που άρχισαν να χαλάνε ή επεξεργαστές που υπερθερμαίνονται, που μπορεί να σας μπερδέψουν και να νομίσετε ότι έχει πρόβλημα ο πυρήνας)
|
||||
|
||||
** Αν έχετε πρόβλημα με κάποιο port, τότε να έχετε διαθέσιμες τις εξής πληροφορίες. (Δεν είναι ανάγκη να τις συμπεριλάβετε έτσι κι αλλιώς, αλλά δεν είναι κακή ιδέα να συμπεριλάβετε μόνο τα μέρη που θεωρείτε σχετικά):
|
||||
|
||||
*** ποια ports έχετε εγκαταστήσει
|
||||
*** μεταβλητές του περιβάλλοντος που μπορεί να επηρεάζουν τις προκαθορισμένες ρυθμίσεις του συστήματος στο αρχείο [.filename]#bsd.port.mk#, όπως π.χ. η μεταβλητή περιβάλλοντος `PORTSDIR`
|
||||
*** αν έχετε διαβάσει το αρχείο [.filename]#ports/UPDATING# κι αν το πρόβλημά σας αναφέρεται ή όχι σε αυτό (είναι σίγουρο ότι κάποιος θα σας ρωτήσει γι αυτό)
|
||||
|
||||
* _Αποφύγετε τις ασαφείς αιτήσεις για νέα χαρακτηριστικά._ Οι αναφορές της μορφής "στ' αλήθεια, κάποιος πρέπει να υλοποιήσει κάτι που να κάνει το τάδε ή το δείνα" δεν είναι πολύ σίγουρο ότι θα τύχουν καλύτερης αντιμετώπισης από τις αναφορές που περιγράφουν συγκεκριμένες αλλαγές. Να θυμάστε ότι ο κώδικας είναι διαθέσιμος σε όλους, οπότε αν θέλετε κάποιο νέο χαρακτηριστικό ο καλύτερος τρόπος να το δείτε να υλοποιείται σαν μέρος του FreeBSD είναι να το φτιάξετε εσείς. Πολλές φορές μάλιστα είναι προτιμότερο να ρωτήσετε στην `freebsd-questions` παρά να δημιουργήσετε μια καινούρια εγγραφή στη βάση αναφορών προβλημάτων.
|
||||
* _Σιγουρευτείτε ότι δεν έχει στείλει ήδη κάποιος άλλος μια παρόμοια αναφορά._ Παρόλο που το έχουμε ξαναπεί αυτό, αξίζει να το αναφέρουμε πάλι εδώ. Χρειάζεται μόνο ένα λεπτό για να ανοίξετε ένα φυλλομετρητή και να χρησιμοποιήσετε τη μηχανή αναζήτησης αναφορών προβλημάτων του FreeBSD στη διεύθυνση http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query]. (Φυσικά, όλοι έχουμε ξεχάσει κάποιες φορές να το κάνουμε αυτό.)
|
||||
* _Αποφύγετε τις επικίνδυνες αιτήσεις._ Αν η αναφορά σας επηρεάζει ένα μέρος του κώδικα για το οποίο υπήρξαν διαφωνίες στο παρελθόν, μάλλον πρέπει εκτός από τα patches που θα ετοιμάσετε να είστε προετοιμασμένοι και για να δικιολογήσετε τις αλλαγές σας, εξηγώντας γιατί είναι "Σωστό να Γίνουν". Όπως είπαμε και πιο πριν, μια προσεκτική αναζήτηση στα αρχεία των λιστών ηλεκτρονικού ταχυδρομείου στη διεύθυνση http://www.FreeBSD.org/search/#mailinglists[http://www.FreeBSD.org/search/#mailinglists] είναι πάντα καλός τρόπος να προετοιμαστείτε για τέτοιες καταστάσεις.
|
||||
* _Να είστε ευγενικοί._ Σχεδόν όλοι όσοι πρόκειται να ασχοληθούν με την αναφορά σας για κάποιο πρόβλημα είναι εθελοντές. Σε κανέναν δεν αρέσει να τους λένε τι να κάνουν όταν ήδη κάνουν το ίδιο πράγμα εδώ και καιρό για λόγους που δεν έχουν σχέση με οικονομικές απολαβές. Είναι καλό να το έχετε κατά νου αυτό όταν ασχολείστε με προγράμματα Ανοιχτού Λογισμικού ή Λογισμικού Ελεύθερου Κώδικα.
|
||||
|
||||
== Πριν αρχίσετε
|
||||
|
||||
Αν χρησιμοποιείτε το πρόγραμμα man:send-pr[1], σιγουρευτείτε ότι η μεταβλητή περιβάλλοντος `VISUAL` (ή η μεταβλητή περιβάλλοντος `EDITOR` αν δεν είναι ορισμένη η `VISUAL`) έχει κάποια λογική τιμή.
|
||||
|
||||
Ελέγξτε επίσης ότι η αποστολή ηλεκτρονικής αλληλογραφίας λειτουργεί σωστά. Το πρόγραμμα man:send-pr[1] χρησιμοποιεί μηνύματα ηλεκτρονικής αλληλογραφίας για την αποστολή και την παρακολούθηση των αναφορών προβλημάτων. Αν δε μπορείτε να στείλετε μηνύματα ηλεκτρονικής αλληλογραφίας από το μηχάνημα στο οποίο χρησιμοποιείτε το πρόγραμμα man:send-pr[1], το μήνυμά σας και η αναφορά δε θα φτάσει ποτέ στη βάση αναφορών προβλημάτων του FreeBSD. Για λεπτομέρειες σχετικά με τη ρύθμιση της ηλεκτρονικής αλληλογραφίας στο FreeBSD δείτε το κεφάλαιο περί "Ηλεκτρονικής Αλληλογραφίας" στο Εγχειρίδιο του FreeBSD στη διεύθυνση link:{handbook}#mail[Electronic Mail].
|
||||
|
||||
Σιγουρευτείτε ότι το πρόγραμμα αλληλογραφίας το οποίο χρησιμοποιείτε δεν θα αλλάξει ούτε το περιεχόμενο ούτε τη μορφή του κειμένου που στέλνετε πριν αυτό φτάσει στο σύστημα GNATS του FreeBSD. Πιο συγκεκριμένα, αν το πρόγραμμα αλληλογραφίας σας αποφασίζει αυτόματα για το μήκος κάθε γραμμής κειμένου, αλλάζει τους χαρακτήρες στηλοθέτη με κενά ή επεμβαίνει στους χαρακτήρες αλλαγής γραμμής, τότε κάθε patch που στέλνετε μπορεί να είναι εντελώς άχρηστο. Από την άλλη, στα πεδία της αναφοράς προβλήματος τα οποία περιέχουν απλό κείμενο είναι πιο βολικό να έχει περίπου 70 στήλες η κάθε γραμμή. Έτσι διαβάζεται πιο εύκολα το κείμενο της αναφοράς μέσα από το web interface μας.
|
||||
|
||||
Παρόμοια προσοχή χρειάζεται και όταν, αντί για το εργαλείο man:send-pr[1], χρησιμοποιείτε τη φόρμα υποβολής αναφορών που έχει η ιστοσελίδα μας. Η αντιγραφή και επικόλληση κειμένου μπορεί να επηρεάσει τη μορφοποίηση του κειμένου. Σε μερικές περιπτώσεις μπορεί να χρειαστεί ακόμα και το εργαλείο man:uuencode[1] για να είστε σίγουροι ότι ένα patch φτάνει ως εμάς χωρίς αλλαγές.
|
||||
|
||||
Τέλος, αν η αναφορά σας περιέχει μεγάλα αρχεία ή αρκετό κείμενο, ίσως είναι καλύτερα να την προετοιμάσετε σε ένα ξεχωριστό αρχείο και να την αποθηκεύσετε πριν προσπαθήσετε να τη στείλετε. Αν δεν πετύχει η αποστολή της αναφοράς, δε θα ριψοκινδυνέψετε να χαθεί ότι έχετε γράψει μέχρι εκείνη τη στιγμή. Η φόρμα αποστολής μέσω web είναι συχνά πηγή τέτοιων προβλήματων.
|
||||
|
||||
== Επισυνάπτοντας patches ή αρχεία
|
||||
|
||||
Το πρόγραμμα man:send-pr[1] έχει την δυνατότητα να επισυνάψει αρχεία σε μια αναφορά προβλήματος. Μπορείτε να επισυνάψετε όσα αρχεία θέλετε, αρκεί το καθένα να έχει μοναδικό βασικό όνομα (το όνομα του αρχείου χωρίς την διαδρομή). Απλά χρησιμοποιήστε την παράμετρο `-a` στην γραμμή εντολών για να καταδείξετε τα ονόματα των αρχείων που θέλετε να επισυνάψετε:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% send-pr -a /var/run/dmesg -a /tmp/errors
|
||||
....
|
||||
|
||||
Δεν χρειάζεται να ανησυχείτε για τα αρχεία που δεν είναι κείμενο. Θα κωδικοποιηθούν κατάλληλα για να μην τα αλλάξει το πρόγραμμα αποστολής ηλεκτρονικής αλληλογραφίας που χρησιμοποιείτε.
|
||||
|
||||
Αν μαζί με την αναφορά στείλετε και κάποιο patch, φροντίστε να χρησιμοποιήσετε την επιλογή `-c` ή την `-u` στην εντολή man:diff[1] για να δημιουργήσετε ένα context ή unified αρχείο διαφορών, και μην ξεχάσετε να σημειώσετε τις ακριβείς εκδόσεις των αρχείων που αλλάξατε έτσι ώστε οι προγραμματιστές που θα διαβάσουν την αναφορά σας να μπορούν να κάνουν τις ίδιες αλλαγές εύκολα. Για τα προβλήματα που αφορούν τον πυρήνα ή τα εργαλεία του βασικού συστήματος είναι προτιμότερο το patch σας να βασίζεται στο FreeBSD-CURRENT (το HEAD branch του CVS) αφού όλες οι αλλαγές πρέπει πρώτα να γίνονται σε αυτό το branch για να δοκιμαστούν. Αφού περάσει κάποιος καιρός κι οι αλλαγές δοκιμαστούν αρκετά μόνο τότε ενσωματώνονται/μεταφέρονται οι αλλαγές στο FreeBSD-STABLE branch.
|
||||
|
||||
Αν ενσωματώσετε το patch σας στην αναφορά, αντί να το στείλετε σαν επισύναψη, προσέξτε αρκετά γιατί ένα αρκετά συχνό πρόβλημα είναι πως πολλά προγράμματα ηλεκτρονικής αλληλογραφίας έχουν την τάση να μετατρέπουν τους στηλοθέτες σε κενά, κάτι που καταστρέφει εντελώς οτιδήποτε αποτελεί μέρος κάποιου Makefile.
|
||||
|
||||
Μη στέλνετε τα patches σας ως επισυνάψεις με την κωδικοποίηση `Content-Transfer-Encoding: quoted-printable`. Αυτή η κωδικοποίηση αλλάζει κάποιους χαρακτήρες με αποτέλεσμα να είναι άχρηστο ολόκληρο το patch.
|
||||
|
||||
Γενικά, πάντως, δεν τρέχει τίποτα αν ενσωματώσετε κάποιο μικρό patch στην αναφορά σας-ειδικά αν είναι φανερό πως διορθώνει το πρόβλημα που περιγράφεται στην αναφορά. Τα πιο μεγάλα patches, κυρίως κώδικας που μπορεί να απαιτεί λεπτομερή ανάλυση και δοκιμές πριν γίνει commit, είναι καλύτερα να τα ανεβάζετε σε κάποιο web ή ftp server και να περιλαμβάνετε στην αναφορά σας το URL για να τα βρίσκει ο αναγνώστης της αναφοράς αντί να ενσωματώνετε το ίδιο το patch. Πολλές φορές τα patches καταστρέφονται όταν είναι μέρος ενός email, ειδικά όταν περνούν από το πρόγραμμα GNATS, κι όσο πιο μεγάλο είναι το patch τόσο πιο δύσκολο θα είναι για όποιον ενδιαφέρεται να το διορθώσει για να το δοκιμάσει. Ένα άλλο καλό που έχει η διανομή ενός patch μέσω web ή ftp είναι ότι μπορείτε να αλλάξετε το patch χωρίς να χρειάζεται να το ξαναστείλετε όλο σαν μέρος μιας απάντησης στην αρχική αναφορά. Τα μεγάλα patches αυξάνουν μόνιμα το μέγεθος της βάσης αναφορών, αφού ακόμη κι όταν διορθωθεί ένα πρόβλημα και κλείσει η αντίστοιχη αναφορά προβλήματος δε σβήνεται τίποτα από τη βάση αναφορών, αλλά απλά σημειώνεται ως `closed`.
|
||||
|
||||
Μην ξεχνάτε επίσης ότι, αν δεν το δηλώσετε ρητά στην αναφορά που θα στείλετε ή στο ίδιο το patch, οποιεσδήποτε αλλαγές στείλετε θεωρείται αυτόματα ότι είναι διαθέσιμες κάτω από τους ίδιους όρους και με την ίδια άδεια που έχει η έκδοση του κάθε αρχείου που έχετε τροποποιήσει.
|
||||
|
||||
== Συμπληρώνοντας την φόρμα της αναφοράς
|
||||
|
||||
Όταν τρέξετε το πρόγραμμα man:send-pr[1] θα δείτε μια φόρμα αναφοράς. Η φόρμα της αναφοράς αποτελείται από μια σειρά πεδίων. Κάποια από αυτά είναι είναι προσυμπληρωμένα. Κάποια άλλα έχουν σχόλια που εξηγούν τον σκοπό τους ή αναφέρουν τις αποδεκτές τιμές. Μην ανησυχείτε για τα σχόλια, αφού έτσι κι αλλιώς θα αφαιρεθούν αυτόματα αν δεν τα αλλάξετε ή δεν τα σβήσετε.
|
||||
|
||||
Στην κορυφή της φόρμας, κάτω από τις γραμμές που αρχίζουν με `SEND-PR:` υπάρχουν οι επικεφαλίδες ενός γράμματος. Συνήθως δεν χρειάζετε να κάνετε κάποια αλλαγή σε αυτές, εκτός κι αν στέλνετε την αναφορά από κάποιο μηχάνημα το οποίο μπορεί να στείλει email αλλά δεν μπορεί να λάβει, που θα πρέπει να προσέξετε οι γραμμές `From:` και `Reply-To:` να έχουν την πραγματική σας email διεύθυνση. Μπορείτε φυσικα να στείλετε στον εαυτό σας ή κάποιον άλλο ένα αντίγραφο της αναφοράς προβλήματος προσθέτοντας τις κατάλληλες `Cc:` γραμμές.
|
||||
|
||||
Μετά θα δείτε μια σειρά από πεδία μιας γραμμής:
|
||||
|
||||
* _Submitter-Id:_ Μην το αλλάξετε αυτό. Η προκαθορισμένη τιμή του, `current-users`, είναι σωστή ακόμα κι αν χρησιμοποιείτε το FreeBSD-STABLE.
|
||||
* _Originator:_ Αυτό το πεδίο είναι κανονικά προσυμπληρωμένο με το όνομα του τρέχοντος χρήστη. Αν αυτό δεν είναι σωστό, παρακαλώ συμπληρώστε την τιμή αυτού του πεδίου με το πραγματικό σας όνομα και προαιρετικά την email διεύθυνσή σας μέσα σε < και >.
|
||||
* _Organization:_ Αυτό το πεδίο δεν χρησιμοποιείται για τίποτα σημαντικό.
|
||||
* _Confidential:_ Αυτό το πεδίο είναι προσυμπληρωμένο με `no`. Δεν έχει νόημα να το αλλάξετε σε κάτι άλλο, αφού δεν υπάρχουν εμπιστευτικές αναφορές προβλημάτων στο FreeBSD-η συλλογή των προβλημάτων είναι ανοιχτή και διαθέσιμη μέσω CVSup για όλο τον κόσμο.
|
||||
* _Synopsis:_ Συμπληρώστε αυτό με μια σύντομη και ακριβή περιγραφή του προβλήματος. Η synopsis χρησιμοποιείται σαν το θέμα στα email τα σχετικά με την αναφορά, καθώς και σε λίστες αναφορών και περιλήψεις. Οι αναφορές προβλήματος με περίεργες περιγραφές στο πεδίο αυτό συνήθως αγνοούνται.
|
||||
+
|
||||
Όπως είπαμε παραπάνω, αν η αναφορά σας περιλαμβάνει κάποιο patch καλό είναι να ξεκινήσετε την γραμμή της σύνοψης με το κείμενο `[patch]`. Αν πάλι είστε ο υπεύθυνος (maintainer) για κάποιο μέρος του κώδικα, καλό είναι να προσθέσετε στη σύνοψη το κείμενο `[maintainer update]` και να θέσετε την τιμή της επικεφαλίδας "Class" σε `maintainer-update`.
|
||||
* _Severity:_ Μπορεί να πάρει τιμή `non-critical`, `serious` ή `critical`. Μην αντιδράτε υπερβολικά. Αποφύγετε να χαρακτηρίζετε τις αναφορές σας `critical` εκτός κι αν είναι όντως μεγάλης σημασίας (π.χ. `root` exploit, κάποιο panic που μπορεί να αναπαραχθεί εύκολα) ή `serious` εκτός κι αν είναι κάτι που αφορά πολλούς χρήστες (προβλήματα με συγκεκριμένους οδηγούς συσκευών ή εργαλεία του συστήματος). Δεν είναι απαραίτητο πως οι προγραμματιστές του FreeBSD θα ασχοληθούν πιο νωρίς με το πρόβλημά σας αν υπερβάλλετε για την σημασία του επειδή υπάρχει πολύς κόσμος που το κάνει αυτό-μάλιστα, υπάρχουν προγραμματιστές που αγνοούν εντελώς αυτό το πεδίο και το επόμενο, ακριβώς επειδή αυτοί που στέλνουν τις αναφορές έχουν την τάση να υπερεκτιμούν τα προβλήματά τους.
|
||||
* _Priority:_ Μπορεί να πάρει τιμή `low`, `medium` ή `high`. Προτεραιότητα `high` πρέπει να δίνεται μόνο σε αναφορές προβλημάτων τα οποία επηρεάζουν πρακτικά όλους τους χρήστες του FreeBSD και `medium` στα προβλήματα που αφορούν ένα μεγάλο αριθμό χρηστών.
|
||||
* _Category:_ Επιλέξτε μια από τις ακόλουθες κατηγορίες (από το αρχείο http://www.FreeBSD.org/cgi/cvsweb.cgi/src/gnu/usr.bin/send-pr/categories[http://www.FreeBSD.org/cgi/cvsweb.cgi/src/gnu/usr.bin/send-pr/categories]):
|
||||
|
||||
** `advocacy:` αναφορές σχετικές με την δημόσια εικόνα του FreeBSD. Χρησιμοποιείται σπάνια.
|
||||
** `alpha:` αναφορές σχετικές με την πλατφόρμα Alpha platform.
|
||||
** `amd64:` αναφορές σχετικά με προβλήματα της πλατφόρμας AMD64.
|
||||
** `bin:` αναφορές σχετικές με προγράμματα στο βασικό σύστημα.
|
||||
** `conf:` αναφορές σχετικές με αρχεία ρυθμίσεων, προκαθορισμένες τιμές, κλπ.
|
||||
** `docs:` αναφορές σχετικές με τις manual pages ή γενικά την τεκμηρίωση.
|
||||
** `gnu:` αναφορές σχετικές με προγράμματα GNU, όπως π.χ. man:gcc[1] ή man:grep[1].
|
||||
** `i386:` αναφορές σχετικές με την πλατφόρμα i386 platform.
|
||||
** `ia64:` αναφορές σχετικές με την πλατφόρμα ia64.
|
||||
** `java:` αναφορές σχετικές με την υλοποίηση της Εικονικής Μηχανής Java(TM). (Οι αναφορές για πακέτα τα οποία απλά απαιτούν τη Java(TM) για να τρέξουν καταχωρούνται στην κατηγορία `ports`.)
|
||||
** `kern:` αναφορές για τον πυρήνα.
|
||||
** `misc:` οτιδήποτε δεν ταιριάζει σε κάποια από τις υπόλοιπες κατηγορίες. (Σημειώστε πως είναι εύκολο να χαθεί μια αναφορά σε αυτή την κατηγορία.)
|
||||
** `ports:` αναφορές σχετικές με τα ports.
|
||||
** `powerpc:` αναφορές σχετικές με την πλατφόρμα PowerPC.
|
||||
** `sparc64:` αναφορές σχετικές με την πλατφόρμα SPARC.
|
||||
** `standards:` αναφορές σχετικές με την συμβατότητα με τα διάφορα Πρότυπα.
|
||||
** `threads:` αναφορές σχετικές με την υλοποίηση των threads στο FreeBSD (ειδικά στο FreeBSD-CURRENT).
|
||||
** `usb:` αναφορές σχετικά με το υποσύστημα USB του FreeBSD και την υποστήριξη συσκευών USB.
|
||||
** `www:` αλλαγές ή βελτιώσεις στην δικτυακή σελίδα του FreeBSD.
|
||||
|
||||
* _Class:_ Για το πεδίο αυτό, επιλέξτε μια από τις παρακάτω τιμές:
|
||||
|
||||
** `sw-bug:` software bugs.
|
||||
** `doc-bug:` λάθη στην τεκμηρίωση.
|
||||
** `change-request:` ιδέες και αιτήσεις για πρόσθετα χαρακτηριστικά ή αλλαγές σε υπάρχοντα.
|
||||
** `update:` ενημερώσεις των ports ή άλλων προγραμμάτων που φτιάχνονται από τρίτους.
|
||||
** `maintainer-update:` ενημερώσεις σε ports για τα οποία συντηρείτε εσείς.
|
||||
|
||||
* _Release:_ Η έκδοση του FreeBSD που χρησιμοποιείτε. Αυτό το πεδίο συμπληρώνεται αυτόματα από την man:send-pr[1] και χρειάζεται να το αλλάξετε μόνο στην περίπτωση που στέλνετε μια αναφορά προβλήματος από άλλο μηχάννημα, κι όχι από αυτό που έχει το πρόβλημα.
|
||||
|
||||
Τέλος, υπάρχει μια σειρά από πεδία με περισσότερες από μια γραμμές το καθένα:
|
||||
|
||||
* _Environment:_ Εδώ πρέπει να περιγράφεται, με όσο το δυνατόν μεγαλύτερη ακρίβεια, το περιβάλλον στο οποίο παρατηρήσατε το πρόβλημα. Αυτό περιλαμβάνει την έκδοση του λειτουργικού συστήματος, την έκδοση του συγκεκριμένου προγράμματος ή αρχείου που έχει το πρόβλημα και οποιαδήποτε άλλα χαρακτηριστικά από το σύστημα και τις ρυθμίσεις του θεωρείτε σημαντικά, άλλα εγκατεστημένα προγράμματα που πιστεύετε ότι πιθανόν έχουν σχέση με το πρόβλημα, κλπ-πολύ απλά, οτιδήποτε χρειάζεται να ξέρει ένας προγραμματιστής για να εξομοιώσει με ακρίβεια το περιβάλλον στο οποίο εμφανίζεται το πρόβλημα.
|
||||
* _Description:_ Μια πλήρης και ακριβής περιγραφή του προβλήματος που αντιμετωπίζετε. Προσπαθείστε να αποφύγετε εικασίες σχετικά με την αιτία του προβλήματος εκτός κι αν είστε σίγουροι ότι βρίσκετε σε σωστό δρόμο, καθώς μπορεί να οδηγήσετε κάποιο προγραμματιστή να κάνει λάθος υποθέτοντας κάποια πράγματα που δεν είναι σωστά.
|
||||
* _How-To-Repeat:_ Μια περίληψη των ενεργειών που χρειάζονται για να αναπαράγει κάποιος το πρόβλημα.
|
||||
* _Fix:_ Κατά προτίμηση κάποιο patch ή τουλάχιστον κάτι που ξεπερνά/αποφεύγει το πρόβλημα (κάτι που όχι μόνο βοηθά όποιον έχει το ίδιο πρόβλημα να το αποφύγει, αλλά μπορεί ακόμη και να βοηθήσει κάποιον προγραμματιστή να καταλάβει την πραγματική αιτία του προβλήματος). Αν δεν έχετε βέβαια κάποια ιδέα, μπορείτε πάντα να αφήσετε αυτό το πεδίο κενό. Είναι πολύ καλύτερα από το να κάνετε απλώς εικασίες.
|
||||
|
||||
== Στέλνοντας την αναφορά
|
||||
|
||||
Όταν τελειώσετε με το γράψιμο, την συμπλήρωση της φόρμας, και σώσετε το κείμενο της αναφοράς σε ένα αρχείο, το πρόγραμμα man:send-pr[1] θα σας δείξει μια προτροπή `s)end, e)dit or a)bort?`. Μπορείτε τότε να πατήσετε `s` για να συνεχίσετε και να σταλεί η αναφορά, `e` για να ξεκινήσετε πάλι τον κειμενογράφο σας, ή `a` για να εγκαταλείψετε. Αν επιλέξετε το τελευταίο, το κείμενο της αναφοράς σας θα παραμείνει στο δίσκο (η man:send-pr[1] θα γράψει το όνομα του αρχείου πριν τερματίσει), οπότε μπορείτε να το επεξεργαστείτε με την ησυχία σας αργότερα ή να το μεταφέρετε σε κάποιο σύστημα με καλύτερη σύνδεση δικτύου, πριν να το στείλετε με την επιλογή `-F` της man:send-pr[1]:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
% send-pr -f ~/my-problem-report
|
||||
....
|
||||
|
||||
Αυτή η εντολή θα διαβάσει μια αναφορά προβλήματος από το αρχείο, θα κάνει κάποιους ελέγχους στα περιεχόμενα, θα σβήσει τα σχόλια και στείλει την αναφορά.
|
||||
|
||||
[[pr-followup]]
|
||||
== Απαντήσεις
|
||||
|
||||
Μόλις η αναφορά σας καταχωρηθεί, θα πάρετε μια απάντηση μέσω email που θα περιλαμβάνει τον αριθμό που έχει σχετιστεί με την αναφορά σας και μια διεύθυνση URL όπου μπορείτε να διαβάσετε την αναφορά και την κατάστασή της. Με λίγη τύχη, κάποιος θα ενδιαφερθεί για την αναφορά σας και θα προσπαθήσει να λύσει το πρόβλημα ή τουλάχιστον, ανάλογα με την περίπτωση, να σας εξηγήσει γιατί δεν είναι πρόβλημα. Θα ειδοποιήστε αυτόματα για κάθε αλλαγή στην κατάσταση της αναφοράς, και θα παίρνετε αντίγραφα μέσω αλληλογραφίας με οποιαδήποτε σχόλια ή patches στέλνει κάποιος σαν απάντηση στην αναφορά σας.
|
||||
|
||||
Αν κάποιος σας ζητήσει επιπλέον πληροφορίες ή θυμηθείτε κάτι ή ανακαλύψετε κάτι που δεν έχετε αναφέρει στην αρχική σας αναφορά, τότε χρησιμοποιήστε έναν από τους ακόλουθους τρόπους για να στείλετε συμπληρωματικές πληροφορίες:
|
||||
|
||||
* Ο πιο εύκολος τρόπος είναι να ακολουθήσετε το σύνδεσμο στην σελίδα της αναφοράς, την οποία μπορείτε να βρείτε από τη http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query[σελίδα αναζήτησης των αναφορών]. Αν ακολουθήσετε το σύνδεσμο που έχει στο κάτω μέρος η σελίδα θα ανοίξει το πρόγραμμα αλληλογραφίας σας με το σωστό αποστολέα και το σωστό θέμα (αρκεί ο φυλλομετρητής σας υποστηρίζει την εκτέλεση εξωτερικών προγραμμάτων).
|
||||
* Εναλλακτικά μπορείτε να στείλετε απλά ένα μήνυμα στη διεύθυνση {bugfollowup}, προσέχοντας να βάλετε το σωστό αριθμό αναφοράς στο θέμα έτσι ώστε να τον βρει το σύστημα παρακολούθησης αναφορών του FreeBSD και να ξέρει σε ποιά αναφορά πρέπει να επισυνάψει το μήνυμά σας.
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
Αν _δεν_ συμπεριλάβετε το σωστό αριθμό αναφοράς στο θέμα, το πρόγραμμα GNATS που οργανώνει τις αναφορές σε κατηγορίες θα μπερδευτεί και θα ανοίξει μια νέα αναφορά την οποία μετά αναθέτει στον διαχειριστή του συστήματος GNATS. Έτσι η απάντησή σας θα μείνει αφανής μέχρι να ψάξει κάποιος για αναφορές που είναι καταχωρημένες λάθος και να τις ξεκαθαρίσει, κάτι που μπορεί να γίνει μετά από μέρες ή και ολόκληρες εβδομάδες.
|
||||
|
||||
Λάθος τρόπος:
|
||||
[.programlisting]
|
||||
....
|
||||
Subject: that PR I sent
|
||||
....
|
||||
|
||||
Σωστός τρόπος:
|
||||
[.programlisting]
|
||||
....
|
||||
Subject: Re: ports/12345: compilation problem with foo/bar
|
||||
....
|
||||
====
|
||||
|
||||
Αν η αναφορά προβλήματος παραμένει στην κατάσταση "open" παρόλο που το πρόβλημα έχει σταματήσει να εμφανίζεται πλέον, απλώς στείλτε μια απάντηση στην αναφορά (με τον τρόπο που αναφέραμε παραπάνω), εξηγώντας πως ή πότε διορθώθηκε το πρόβλημα.
|
||||
|
||||
[[pr-further]]
|
||||
== Αναφορές
|
||||
|
||||
Παρακάτω θα βρείτε κάποιες πηγές που είναι σχετικές με το θέμα των αναφορών προβλήματος. Δεν είναι μια πλήρης ή επαρκής λίστα, φυσικά.
|
||||
|
||||
* http://www.chiark.greenend.org.uk/~sgtatham/bugs.html[How to Report Bugs Effectively]-μια πολύ καλή έκθεση από τον Simon G. Tatham που περιγράφει πως μπορείτε να γράφετε χρήσιμες αναφορές προβλήματων (όχι μόνο για το FreeBSD).
|
||||
* link:{pr-guidelines}[Problem Report Handling Guidelines]-χρήσιμες πληροφορίες για τον τρόπο με τον οποίο χειρίζεται τις αναφορές προβλημάτων η ομάδα ανάπτυξης του FreeBSD
|
||||
360
documentation/content/el/articles/releng/_index.adoc
Normal file
360
documentation/content/el/articles/releng/_index.adoc
Normal file
|
|
@ -0,0 +1,360 @@
|
|||
---
|
||||
title: Η Οργάνωση των Εκδόσεων του FreeBSD
|
||||
authors:
|
||||
- author: Murray Stokely
|
||||
email: murray@FreeBSD.org
|
||||
webpage: https://people.FreeBSD.org/~murray/
|
||||
releaseinfo: "$FreeBSD$"
|
||||
trademarks: ["freebsd", "intel", "general"]
|
||||
---
|
||||
|
||||
= Η Οργάνωση των Εκδόσεων του FreeBSD
|
||||
:doctype: article
|
||||
:toc: macro
|
||||
:toclevels: 1
|
||||
:icons: font
|
||||
:sectnums:
|
||||
:sectnumlevels: 6
|
||||
:source-highlighter: rouge
|
||||
:experimental:
|
||||
:xrefstyle: full
|
||||
:toc-title: Πίνακας Περιεχομένων
|
||||
:table-caption: Πίνακας
|
||||
:figure-caption: Σχήμα
|
||||
:example-caption: Παράδειγμα
|
||||
|
||||
include::shared/authors.adoc[]
|
||||
include::shared/releases.adoc[]
|
||||
include::shared/el/teams.adoc[lines=21..-1]
|
||||
include::shared/el/mailing-lists.adoc[lines=10..-1]
|
||||
include::shared/el/urls.adoc[]
|
||||
|
||||
[.abstract-title]
|
||||
Περίληψη
|
||||
|
||||
Αυτό το άρθρο περιγράφει την αντιμετώπιση και οργάνωση της ομάδας ανάπτυξης του FreeBSD, όσον αφορά στην προετοιμασία ποιοτικών εκδόσεων του Λειτουργικού Συστήματος FreeBSD. Εξηγεί με λεπτομέρεια την μεθοδολογία που χρησιμοποιείται για τις επίσημες εκδόσεις του FreeBSD και περιγράφει τα εργαλεία που είναι διαθέσιμα σε όσους ενδιαφέρονται να παράγουν παραμετροποιημένες εκδόσεις του FreeBSD για εσωτερική ή εμπορική χρήση και ανάπτυξη προϊόντων.
|
||||
|
||||
'''
|
||||
|
||||
toc::[]
|
||||
|
||||
[[introduction]]
|
||||
== Εισαγωγή
|
||||
|
||||
Η ανάπτυξη του FreeBSD είναι μια πολύ ανοιχτή διαδικασία. Το FreeBSD αποτελείται από συνεισφορές χιλιάδων ανθρώπων από όλο τον κόσμο. Η ομάδα του FreeBSD παρέχει πρόσβαση μέσω ανώνυμου CVS[1] σε όλους, έτσι ώστε να μπορεί όποιος θέλει να δει μηνύματα log, διαφορές (patches) που έχουν τα διάφορα development branches, και άλλα χαρακτηριστικά που βοηθούν την ανάπτυξη, τα οποία προκύπτουν από την χρήση ενός αυστηρού συστήματος διαχείρισης κώδικα. Αυτό αποτέλεσε και τον πιο σημαντικό παράγοντα έλξης για ένα μεγάλο αριθμό από ταλαντούχους προγραμματιστές από όλο τον κόσμο στο FreeBSD. Είναι προφανές, βέβαια, πως πολύ σύντομα θα είχε γίνει εντελώς χαοτική η κατάσταση αν είχαν όλοι, από όλο τον κόσμο, πρόσβαση να γράψουν στον κώδικα. Γι' αυτό, μόνο μια "επιλεγμένη" ομάδα από περίπου 300 άτομα έχουν πρόσβαση να γράψουν στο CVS repository. Αυτοί οι _committers[6]_ είναι υπεύθυνοι για το μεγαλύτερο μέρος της ανάπτυξηςς που γίνεται στο FreeBSD. Μια _κεντρική-ομάδα[7]_ (core team) από διακεκριμένους προγραμματιστές εκλέγεται για να παρέχει κάποιου είδους καθοδήγηση και μια κατεύθυνση στο σύνολο των committers.
|
||||
|
||||
Οι ταχύτατοι ρυθμοί ανάπτυξης του `FreeBSD` δεν αφήνουν και πολύ χρόνο για το ξεκαθάρισμα του συστήματος ανάπτυξης σε μια έκδοση με ποιότητα που να αξίζει να χρησιμοποιείται ευρέως. Για να λυθεί αυτό το δίλλημα, η ανάπτυξη γίνεται ταυτόχρονα σε δυο παράλληλα μονοπάτια. Ο κύριος κορμός ανάπτυξης είναι ο _HEAD_ ή _trunk_ στο CVS repository μας, γνωστός και ως "FreeBSD-CURRENT", ή "-CURRENT" εν συντομία.
|
||||
|
||||
Ένας πιο σταθερός κορμός συντηρείται, γνωστός με το όνομα "FreeBSD-STABLE" ή πιο σύντομα "-STABLE". Και οι δυο κορμοί είναι αποθηκευμένοι στο κύριο CVS repository, στην Καλιφόρνια, και αντιγράφονται μέσω CVSup[2] σε mirrors παντού στον κόσμο. Το FreeBSD-CURRENT[8] είναι η "πρώτη σειρά" της ανάπτυξης του FreeBSD καθώς σε αυτό γίνονται πρώτα όλες οι καινούριες αλλαγές. Το FreeBSD-STABLE είναι ο κορμός ανάπτυξης από τον οποίο φτιάχνονται οι εκδόσεις. Οι αλλαγές εισέρχονται σε αυτόν, τον δεύτερο κορμό ανάπτυξης, με πιο αργό ρυθμό, αφού πρώτα (σύμφωνα με την πολιτική μας) δοκιμαστούν στο FreeBSD-CURRENT και έχουν εξεταστεί πολύ καλά.
|
||||
|
||||
Κατά την περίοδο που μεσολαβεί από τη μια έκδοση στην επόμενη, φτιάχνονται καθημερινά snapshots από τα μηχανήματα της ομάδας του FreeBSD και είναι διαθέσιμες από τον εξυπηρετητή `ftp://stable.FreeBSD.org/`. Η μεγάλη διαθεσιμότητα των εκτελέσιμων snapshots, καθώς και η τάση της κοινότητας των χρηστών μας να ενημερώνουν τα μηχανήματά τους με τις πρόσφατες -STABLE εκδόσεις μέσω CVSup και "`make world`"[8] βοηθούν να κρατιέται το FreeBSD-STABLE σε μια πολύ αξιόπιστη κατάσταση ακόμα και πριν αρχίσει ο κύκλος των ελέγχων ποιότητας ακριβώς πριν από την διάθεση μιας έκδοσης του FreeBSD.
|
||||
|
||||
Συνεχώς στέλνονται από τους χρήστες μας αναφορές προβλημάτων και αιτήσεις για καινούρια χαρακτηριστικά, κατά τη διάρκεια του κύκλου της κάθε έκδοσης. Οι αναφορές προβλημάτων εισάγονται στην βάση GNATS[9] μέσω e-mail, με την εφαρμογή man:send-pr[1], ή μέσω του web-interface που παρέχεται στην διεύθυνση http://www.FreeBSD.org/send-pr/[http://www.FreeBSD.org/send-pr/]. Εκτός από τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου με θέμα τα τεχνικά χαρακτηριστικά του FreeBSD υπάρχει και η λίστα {freebsd-qa}, η οποία παρέχει ένα φόρουμ για συζητήσεις σχετικά με τις λεπτομέρειες της "οργάνωσης των εκδόσεων".
|
||||
|
||||
Για να εξυπηρετηθούν οι πιο συντηρητικοί χρήστες μας, με έκδοση του FreeBSD 4.3 αρχίσαμε να χρησιμοποιούμε ξεχωριστούς κορμούς εκδόσεων. Αυτοί οι κορμοί δημιουργούνται λίγο πρίν φτιαχτεί η τελική έκδοση. Μετά την ανακοίνωση της έκδοσης, μόνο πολύ σημαντικές αλλαγές και προσθήκες σχετικές με την ασφάλεια γίνονται στον κορμό της έκδοσης. Εκτός από την δυνατότητα αναβάθμισης μέσω CVS, εκτελέσιμα patchkits φτιάχνονται για να μπορούν να αναβαθμίσουν τα συστήματά τους όσοι χρησιμοποιούν τις εκδόσεις __RELENG``_X_Y``__.
|
||||
|
||||
Το <<release-proc>> εξηγεί με λεπτομέρειες τα διάφορα στάδια της διαδικασίας που βρίσκεται πίσω από κάθε έκδοση, μέχρι και τα βήματα που οδηγούν στην μεταγλώττιση του συστήματος και το <<release-build>> εξηγεί την ίδια τη διαδικασία της μεταγλώττισης. Το <<extensibility>> περιγράφει πως μπορεί να επεκταθεί το βασικό σύστημα από τρίτους και το <<lessons-learned>> περιγράφει κάποια από τα πράγματα που μάθαμε από την διαδικασία έκδοσης του FreeBSD 4.4. Τέλος, το <<future>> παρουσιάζει κάποιες από τις κατευθύνσεις που θέλουμε να πάρει η ανάπτυξη στο μέλλον.
|
||||
|
||||
[[release-proc]]
|
||||
== Η Διαδικασία Δημιουργίας μιας Έκδοσης
|
||||
|
||||
Οι νέες εκδόσεις του FreeBSD φτιάχνονται από τον -STABLE κορμό ανάπτυξης περίπου κάθε τέσσερεις μήνες. Η διαδικασία προετοιμασίας μιας έκδοσης ξεκινάει σχεδόν 45 μέρες πριν την αναμενόμενη ημερομηνία έκδοσης, όταν ο υπεύθυνος εκδόσεων του FreeBSD στέλνει ένα γράμμα στις λίστες των προγραμματιστών για να υπενθυμίσει στους προγραμματιστές ότι έχουν 15 μέρες καιρό να κάνουν όποιες αλλαγές θέλουν, πριν το πάγωμα του κώδικα. Μέσα σε αυτό τον καιρό, πολλοί προγραμματιστές κάνουν μια σειρά από αλλαγές που έχουν μείνει πλέον γνωστές ως "ξεκαθαρίσματα MFC". Ο όρος MFC σημαίνει "Merge From CURRENT" και περιγράφει την διαδικασία προσαρμογής του κώδικα μιας δοκιμασμένης αλλαγής από τον -CURRENT πειραματικό κορμό ανάπτυξης στον σταθερό -STABLE κορμό.
|
||||
|
||||
=== Έλεγχος Κώδικα
|
||||
|
||||
Τριάντα ημέρες πριν την αναμενόμενη ημερομηνία έκδοσης, ο κώδικας του repository εισέρχεται σε μια περίοδο "καθυστέρησης". Κατά τη διάρκεια αυτής της περιόδου, όλες οι αλλαγές στον -STABLE κορμό πρέπει να έχουν την έγκριση της `{re}`. Οι αλλαγές που επιτρέπονται σε αυτή την περίοδο που διαρκεί 15 ημέρες είναι:
|
||||
|
||||
* Διορθώσεις γνωστών προβλημάτων.
|
||||
* Ενημερώσεις στην τεκμηρίωση.
|
||||
* Αλλαγές σχετικές με την ασφάλεια.
|
||||
* Μικρές αλλαγές στους οδηγούς συσκευών, όπως π.χ. η προσθήκη των IDs νέων συσκευών.
|
||||
* Οποιαδήποτε άλλη αλλαγή πιστεύει η ομάδα ανάπτυξης ότι πρέπει να γίνει, με το αναμενόμενο πάντα ρίσκο.
|
||||
|
||||
Μετά τις πρώτες 15 μέρες καθυστέρησης, φτιάχνεται μια _δοκιμαστική έκδοση_ για να χρησιμοποιηθεί σαν δοκιμή της τελικής έκδοσης και ο κώδικας εισέρχεται σε μια περίοδο "παγώματος". Πλέον είναι πολύ πιο δύσκολο να γίνουν νέες αλλαγές στο σύστημα, εκτός κι αν διορθώνουν κάποιο πολύ σοβαρό bugή κάποιο πρόβλημα ασφάλειας. Κατά τη διάρκεια του παγώματος του κώδικα, τουλάχιστον μία δοκιμαστική έκδοση φτιάχνεται κάθε εβδομάδα, μέχρι να είναι έτοιμη η τελική έκδοση. Τις ημέρες ακριβώς πριν την τελική έκδοση, η ομάδα που είναι υπεύθυνη για τις εκδόσεις είναι σε συνεχή επικοινωνία με την ομάδα ασφάλειας, την ομάδα συντήρησης της τεκμηρίωσης, και την ομάδα συντήρησης των ports, για να βεβαιωθούν πως όλα τα απαραίτητα κομμάτια για μια πλήρη έκδοση είναι διαθέσιμα.
|
||||
|
||||
=== Λίστα Ελέγχου της Τελικής Έκδοσης
|
||||
|
||||
Όταν αρκετές δοκιμαστικές εκδόσεις έχουν γίνει διαθέσιμες, έχουν δοκιμαστεί από αρκετό κόσμο και όλα τα σοβαρά θέματα έχουν αναλυθεί, η τελική έκδοση μπορεί να αρχίσει.
|
||||
|
||||
==== Δημιουργία του Κορμού Έκδοσης
|
||||
|
||||
Όπως περιγράψαμε στην εισαγωγή, οι κορμοί `RELENG_X_Y` είναι μια σχετικά νέα προσθήκη στην μεθοδολογία των εκδόσεών μας. Το πρώτο βήμα στην δημιουργία αυτού του κορμού είναι να βεβαιωθείτε ότι δουλεύετε με την τελευταία έκδοση του πηγαίου κώδικα από τον `RELENG_X` κορμό _από τον οποίο_ θα φτιάξετε το νέο κορμό.
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
/usr/src# cvs update -rRELENG_4 -P -d
|
||||
....
|
||||
|
||||
Το επόμενο βήμα είναι να δημιουργήσετε μια _ετικέτα_ (tag) στο σημείο εκκίνησης του κορμού, ώστε να μπορείτε να δείτε τις διαφορές με την αρχή του κορμού εύκολα στο μέλλον με το CVS:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
/usr/src# cvs rtag -rRELENG_4 RELENG_4_8_BP src
|
||||
....
|
||||
|
||||
Και τότε μπορείτε να δημιουργήσετε το νέο κορμό με:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
/usr/src# cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src
|
||||
....
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
__Οι ετικέτες ``RELENG_*`` είναι δεσμευμένες για χρήση από τους CVS-meisters και την ομάδα των εκδόσεων.__
|
||||
====
|
||||
|
||||
Ο όρος "_ετικέτα_ " είναι ορολογία του CVS. Σημαίνει ένα όνομα που καθορίζει μια συγκεκριμένη έκδοση του κώδικα στο χρόνο. Χρησιμοποιώντας ετικέτες στον πηγαίο κώδικα βοηθάμε όποιον φτιάξει στο μέλλον εκδόσεις του FreeBSD να βρίσκει και να χρησιμοποιεί ακριβώς τον ίδιο κώδικα που χρησιμοποιήθηκε για τις επίσημες εκδόσεις της Ομάδας του FreeBSD.
|
||||
|
||||
[[versionbump]]
|
||||
==== Αυξάνοντας τον Αριθμό Έκδοσης
|
||||
|
||||
Πριν μπει η ετικέτα, μεταγλωττιστεί και ετοιμαστεί η τελική έκδοση, πρέπει να γίνουν αλλαγές στα παρακάτω αρχεία για να περιέχουν τον σωστό αριθμό έκδοσης για το FreeBSD:
|
||||
|
||||
* [.filename]#doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml#
|
||||
* [.filename]#doc/en_US.ISO8859-1/books/porters-handbook/book.xml#
|
||||
* [.filename]#doc/shared/xml/freebsd.ent#
|
||||
* [.filename]#src/Makefile.inc1#
|
||||
* [.filename]#src/UPDATING#
|
||||
* [.filename]#src/gnu/usr.bin/groff/tmac/mdoc.local#
|
||||
* [.filename]#src/release/Makefile#
|
||||
* [.filename]#src/release/doc/en_US.ISO8859-1/shared/xml/release.dsl#
|
||||
* [.filename]#src/release/doc/shared/examples/Makefile.relnotesng#
|
||||
* [.filename]#src/release/doc/shared/xml/release.ent#
|
||||
* [.filename]#src/shared/examples/cvsup/standard-supfile#
|
||||
* [.filename]#src/sys/conf/newvers.sh#
|
||||
* [.filename]#src/sys/sys/param.h#
|
||||
* [.filename]#src/usr.sbin/pkg_install/add/main.c#
|
||||
* [.filename]#www/en/docs.xml#
|
||||
* [.filename]#www/en/cgi/ports.cgi#
|
||||
* [.filename]#ports/Tools/scripts/release/config#
|
||||
|
||||
Οι σημειώσεις έκδοσης και τα αρχεία με τις διορθώσεις της τελευταίας στιγμής πρέπει επίσης να προσαρμοστούν στην νέα έκδοση (στον κορμό της έκδοσης) και να επεξεργαστούν κατάλληλα (στους δύο κορμούς stable και current):
|
||||
|
||||
* [.filename]#src/release/doc/en_US.ISO8859-1/relnotes/common/new.xml#
|
||||
* [.filename]#src/release/doc/en_US.ISO8859-1/errata/article.xml#
|
||||
|
||||
Η εφαρμογή Sysinstall πρέπει επίσης να ενημερωθεί με τον σωστό αριθμό των ports και το χώρο του δίσκου που απαιτείται για την Συλλογή των Ports. Αυτές οι πληροφορίες υπάρχουν στο αρχείο [.filename]#src/release/sysinstall/dist.c#.
|
||||
|
||||
Αφού ολοκληρωθεί η προετοιμασία της νέας επίσημης έκδοσης, πρέπει να ενημερώσετε μερικά αρχεία για να ενημερώσετε τον κόσμο για τη νέα έκδοση του FreeBSD.
|
||||
|
||||
* [.filename]#www/en/includes.xsl#
|
||||
* [.filename]#www/en/includes.xml#
|
||||
* [.filename]#www/es/includes.xml#
|
||||
* [.filename]#www/en/releases/*#
|
||||
* [.filename]#src/shared/misc/bsd-family-tree#
|
||||
|
||||
==== Δημιουργία των Ετικετών της Έκδοσης
|
||||
|
||||
Όταν η τελική έκδοση είναι έτοιμη, η παρακάτω εντολή θα δημιουργήσει την ετικέτα `RELENG_4_8_0_RELEASE`.
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
/usr/src# cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src
|
||||
....
|
||||
|
||||
Οι υπεύθυνοι της Τεκμηρίωσης και των Ports είναι αυτοί που πρέπει να δημιουργήσουν τις ετικέτες `RELEASE_4_8_0` στα κατάλληλα δέντρα πηγαίου κώδικα.
|
||||
|
||||
Μερικές φορές, μπορεί να χρειαστεί να γίνουν κάποιες αλλαγές τελευταία στιγμή _μετά_ την τοποθέτηση των ετικετών. Γενικά, δεν είναι δύσκολο να γίνει κάτι τέτοιο αφού το CVS επιτρέπει να μετακινήσει κάποιος τις ετικέτες με εντολές όπως `cvs tag -d tagname filename`. Είναι πολύ σημαντικό όμως αυτές οι αλλαγές της τελευταίας στιγμής να σημειωθούν με τις σωστές ετικέτες για την συγκεκριμένη έκδοση. Οι επίσημες εκδόσεις του FreeBSD πρέπει να είναι πάντα εύκολο να αναπαραχθούν. Τοπικές αλλαγές στο περιβάλλον του μηχανικού των εκδόσεων δεν επιτρέπονται.
|
||||
|
||||
[[release-build]]
|
||||
== Μεταγλώττιση της Έκδοσης
|
||||
|
||||
Οι "εκδόσεις" του FreeBSD μπορούν να μεταγλωττιστούν από οποιονδήποτε έχει ένα σχετικά γρήγορο μηχάνημα και πρόσβαση στο repository του πηγαίου κώδικα. (Όλοι έχουν αυτή τη δυνατότητα, αφού παρέχουμε πρόσβαση μέσω ανώνυμου CVS! Δείτε το Εγχειρίδιο του FreeBSD για περισσότερες λεπτομέρειες.) Η μόνη ειδική απαίτηση είναι να υπάρχει υποστήριξη στον πυρήνα σας για την συσκευή man:vn[4]. (Στο -CURRENT, αυτή η συσκευή έχει αντικατασταθεί από την νέα συσκευή δίσκου βασισμένου σε μνήμη man:md[4].) Αν η συσκευή δεν είναι ενσωματωμένη στον πυρήνα σας, τότε ο κατάλληλος οδηγός θα φορτωθεί αυτόματα όταν εκτελεστεί η εντολή man:vnconfig[8] κατά τη διάρκεια της φάσης ετοιμασίας του μέσου εκκίνησης. Όλα τα εργαλεία που χρειάζονται για να μεταγλωττίσετε μια έκδοση είναι διαθέσιμα σε μορφή πηγαίου κώδικα στον κατάλογο [.filename]#src/release#. Αυτά τα εργαλεία έχουν ως σκοπό να παρέχουν ότι χρειάζεται για να χτίζονται οι εκδόσεις του FreeBSD με ένα συνεπή και συγκεκριμένο τρόπο. Μια πλήρης έκδοση μπορεί να μεταγλωττιστεί χρησιμοποιώντας αυτά τα εργαλεία με μια και μόνο εντολή, συμπεριλαμβανομένης και της δημιουργίας ενός ISO αρχείου κατάλληλο για να καεί σε CDROM, οι δισκέττες εκκίνησης, καθώς και ο κατάλληλος εγκατάστασης μέσω FTP. Αυτή η εντολή είναι φυσική η `make release`.
|
||||
|
||||
=== Η εντολή `make release`
|
||||
|
||||
Για να μεταγλωττίσετε επιτυχώς μια έκδοση, πρέπει πρώτα να υπάρχουν τα κατάλληλα αρχεία μέσα στον κατάλογο [.filename]#/usr/obj#. Μπορείτε να τα δημιουργήσετε είτε με την εντολή `make world` ή απλά `make buildworld`. Για να πετύχει επίσης η μεταγλώττιση της έκδοσης πρέπει να δώσετε τις κατάλληλες τιμές και σε κάποιες μεταβλητές:
|
||||
|
||||
* `CHROOTDIR` - Ο κατάλογος που θα χρησιμοποιηθεί σαν περιβάλλον chroot για όλη την μεταγλώττιση της έκδοσης.
|
||||
* `BUILDNAME` - Το όνομα της έκδοσης που θα μεταγλωττίσετε.
|
||||
* `CVSROOT` - Ο κατάλογος στον οποίο βρίσκεται το CVS repository.
|
||||
* `RELEASETAG` - Η ετικέτα CVS που αντιστοιχεί στην έκδοση την οποία θέλετε να μεταγλωττίσετε.
|
||||
|
||||
Αν δεν έχετε ήδη πρόσβαση σε κάποιο τοπικό CVS repository με τον κώδικα του FreeBSD, μπορείτε πάντα να φτιάξετε το δικό σας τοπικό CVS mirror με το link:{handbook}#synching[CVSup]. Υπάρχει ένα supfile, στο αρχείο [.filename]#/usr/shared/examples/cvsup/cvs-supfile#, το οποίο μπορείτε να χρησιμοποιήσετε για να αντιγράψετε το CVS repository του FreeBSD στο δικό σας τοπικό mirrror.
|
||||
|
||||
Αν παραλείψετε την ετικέτα `RELEASETAG`, τότε θα μεταγλωττιστεί μια πλήρης έκδοση από την κορυφή του `HEAD` (δηλ. του -CURRENT) κορμού. Οι εκδόσεις που φτιάχνονται από αυτόν τον κορμό, συνήθως αναφέρονται σαν "-CURRENT snapshots".
|
||||
|
||||
Υπάρχουν και πολλές άλλες μεταβλητές που μπορούν να χρησιμοποιηθούν για να παραμετροποιήσετε την έκδοσή σας. Οι πιο πολλές από αυτές τις μεταβλητές περιγράφονται στην κορυφή του αρχείου [.filename]#src/release/Makefile#. Η ακριβής εντολή που χρησιμοποιήθηκε για να φτιαχτεί η επίσημη έκδοση 4.7 του FreeBSD (x86 πλατφόρμα) ήταν:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
make release CHROOTDIR=/local3/release \
|
||||
BUILDNAME=4.7-RELEASE \
|
||||
CVSROOT=/host/cvs/usr/home/ncvs \
|
||||
RELEASETAG=RELENG_4_7_0_RELEASE
|
||||
....
|
||||
|
||||
Το [.filename]#Makefile# που χρησιμοποιείται για να μεταγλωττίζονται οι εκδόσεις μπορεί να χωριστεί σε αρκετά ξεχωριστά μεταξύ τους βήματα.
|
||||
|
||||
* Δημιουργία ενός καθαρού περιβάλλοντος σε μια ξεχωριστή ιεραρχία καταλόγων με την εντολή "`make installworld`".
|
||||
* Εξαγωγή από το CVS μιας καινούριας έκδοσης του πηγαίου κώδικα του συστήματος, της τεκμηρίωσης και των ports μέσα στην ιεραρχία καταλόγων μεταγλώττισης της έκδοσης.
|
||||
* Ρυθμίσεις των αρχείων στον κατάλογο [.filename]#/etc# και [.filename]#/dev# μέσα στο περιβάλλον chroot.
|
||||
* Εκτέλεση της εντολής `chroot` μέσα στην ιεραρχία καταλόγων που ετοιμάστηκε, για να μην μπορεί το εξωτερικό περιβάλλον να επηρεάσει τη μεταγλώττιση της έκδοσης.
|
||||
* Εκτέλεση της εντολής `make world` μέσα στο περιβάλλον chroot.
|
||||
* Μεταγλώττιση των εκτελέσιμων που είναι σχετικά με το σύστημα Kerberos.
|
||||
* Μεταγλώττιση του πυρήνα [.filename]#GENERIC#.
|
||||
* Δημιουργία ενός τελικού καταλόγου στον οποίο θα μεταγλωττιστούν και θα αποθηκευθούν οι εκτελέσιμες μορφές των τελικών πακέτων.
|
||||
* Μεταγλώττιση και εγκατάσταση των εργαλείων που χρειάζονται για την προετοιμασία της έκδοσης και τη μετατροπή της τεκμηρίωσης από τον πηγαίο κώδικα (SGML) σε html και αρχεία κειμένου που θα συνοδεύουν την έκδοση.
|
||||
* Μετατροπή και εγκατάσταση της τεκμηρίωσης (εγχειρίδια χρήστη, εισαγωγικά κείμενα, σημειώσεις έκδοσης, λίστες συμβατότηταςς υλικού, κλπ.)
|
||||
* Μεταγλώττιση των "συμπιεσμένων" (crunched) εκτελέσιμων που θα χρησιμοποιηθούν στις δισκέττες εγκατάστασης.
|
||||
* Δημιουργία των πακέτων της εγκατάστασης και των πακέτων πηγαίου κώδικα.
|
||||
* Δημιουργία των μέσων εκκίνησης και της δισκέττας "fixit".
|
||||
* Δημιουργία της ιεραρχίας καταλόγων για την εγκατάσταση μέσω FTP.
|
||||
* _(προαιρετικά)_ Δημιουργία των ISO αρχείων για μέσα CDROM/DVD media.
|
||||
|
||||
Για περισσότερες πληροφορίες σχετικά με την διαδικασία δημιουργίας μιας έκδοσης, δείτε την σελίδα τεκμηρίωσης man:release[7].
|
||||
|
||||
=== Μεταγλώττιση των XFree86
|
||||
|
||||
Το γραφικό περιβάλλον XFree86 είναι ένα σημαντικό κομμάτι κάθε έκδοσης για πολλούς χρήστες που θέλουν το FreeBSD για σταθμούς εργασίας. Πριν την έκδοση 4.6-RELEASE του FreeBSD, οι επίσημες εκδόσεις του FreeBSD χρησιμοποιούσαν την έκδοση 3._X_ των XFree86. Ο πιο εύκολος τρόπος να μεταγλωττίσετε αυτές τις εκδόσεις είναι να χρησιμοποιήσετε το πρόγραμμα [.filename]#src/release/scripts/X11/build_x.sh#. Αυτό το πρόγραμμα απαιτεί να είναι ήδη στημένα στο σύστημά σας τόσο το περιβάλλον XFree86 όσο και η γλώσσα Tcl/Tk. Μετά την μεταγλώττιση των κατάλληλων X servers, το πρόγραμμα θα πακετάρει όλα τα αρχεία σε συλλογές αρχείων που περιμένει να βρει το man:sysinstall[8] μέσα στον κατάλογο [.filename]#XF86336# στο μέσο εγκατάστασης.
|
||||
|
||||
Ξεκινώντας με την έκδοση 4.6-RELEASE του FreeBSD, το man:sysinstall[8] εγκαθιστά την έκδοση 4._X_ των XFree86, σαν κανονικά πακέτα. Αυτά μπορεί να είναι είτε τα πακέτα που δημιούργησε το cluster των ports ή οποιαδήποτε άλλα πακέτα που έχουν δημιουργηθεί από ένα ports tree με την κατάλληλη ετικέτα.
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Είναι πολύ σημαντικό να αφαιρέσετε από το αρχείο [.filename]#/etc/make.conf# οποιεσδήποτε τοπικές ρυθμίσεις έχετε κάνει. Για παράδειγμα, δεν είναι καλή ιδέα να διανέμετε εκτελέσιμα που έχουν μεταγλωττιστεί σε κάποιο συγκεκριμένο σύστημα με ορισμένη την τιμή της μεταβλητής `CPUTYPE` για βελτιστοποίηση των εκτελέσιμων για κάποιο συγκεκριμένο επεξεργαστή.
|
||||
====
|
||||
|
||||
=== Προγράμματα Τρίτων ("ports")
|
||||
|
||||
Η http://www.FreeBSD.org/ports[Συλλογή των Ports του FreeBSD] είναι μια συλλογή με περισσότερα από {numports} προγράμματα από τρίτους, που είναι διαθέσιμα για FreeBSD. Οι `{portmgr}` είναι υπεύθυνοι για την συντήρηση ενός δέντρου από πηγαίο κώδικα για τα ports, που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν τα πακέτα με τα προγράμματα που συνοδεύουν τις επίσημες εκδόσεις του FreeBSD.
|
||||
|
||||
Η διαδικασία συντήρησης της συλλογής των ports είναι κάτι που δεν μπορούμε να καλύψουμε εδώ. Ένα ξεχωριστό άρθρο, με τίτλο link:{releng-packages}[Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους], καλύπτει αυτό το θέμα.
|
||||
|
||||
=== Αρχεία ISO της Έκδοσης
|
||||
|
||||
Ξεκινώντας με την έκδοση 4.4 του FreeBSD, η Ομάδα Ανάπτυξης του FreeBSD αποφάσισε να διανέμει και τα τέσσερα ISO αρχεία που πρώτα πουλούσαν οι εταιρείες _BSDi/Wind River Systems/FreeBSD Mall_ στις "επίσημες" διανομές CDROM που έκαναν. Κάθε ένα από τα τέσσερα ISO αρχεία πρέπει να περιέχει ένα αρχείο [.filename]#README.TXT# που περιγράφει τα περιεχόμενα του δίσκου, κι ένα αρχείο [.filename]#CDROM.INF# που περιέχει μετα-πληροφορίες για να μπορεί το πρόγραμμα man:sysinstall[8] να ελέγξει και να χρησιμοποιήσει αυτό το δίσκο, καθώς κι ένα αρχείο [.filename]#filename.txt# που παρέχει μια λίστα αρχείων του CDROM. Αυτή η λίστα μπορεί να δημιουργηθεί πολύ απλά, ως εξής:
|
||||
|
||||
[source,bash]
|
||||
....
|
||||
/stage/cdrom# find . -type f | sed -e 's/^\.\///' | sort > filename.txt
|
||||
....
|
||||
|
||||
Οι συγκεκριμένες απαιτήσεις για κάθε ένα από αυτά τα CD περιγράφονται παρακάτω:
|
||||
|
||||
==== Δίσκος 1
|
||||
|
||||
Ο πρώτος δίσκος είναι σχεδόν αποκλειστικά αποτέλεσμα της εντολής `make release`. Οι μόνες αλλαγές που πρέπει να γίνουν στον κατάλογο [.filename]#disc1# είναι η προσθήκη του κατάλογου [.filename]#tools#, των XFree86, και όσο το δυνατόν περισσότερων πακέτων μπορούν να χωρέσουν στο δίσκο. Ο κατάλογος [.filename]#tools# περιέχει εργαλεία που επιτρέπουν σε χρήστες άλλων λειτουργικών συστημάτων να φτιάξουν τις δισκέττες εκκίνησης. Αυτός ο πρώτος δίσκος πρέπει να φτιάχνεται bootable έτσι ώστε να μπορούν οι χρήστες των μοντέρνων υπολογιστών να αποφεύγουν το στάδιο δημιουργίας των δισκεττών εκκίνησης.
|
||||
|
||||
Αν μια διαφορετική έκδοση των XFree86 θα διανέμεται με την έκδοση αυτή, πρέπει να ενημερωθεί το πρόγραμμα man:sysinstall[8] για την νέα θέση και οι οδηγίες εγκατάστασης. Ο σχετικός κώδικας υπάρχει στον κατάλογο [.filename]#src/release/sysinstall# στον -STABLE κορμό ή στον κατάλογο [.filename]#src/usr.sbin/sysinstall# στον -CURRENT κορμό. Συγκεκριμένα, τα αρχεία [.filename]#dist.c#, [.filename]#menus.c#, και [.filename]#config.c# θα χρειαστεί να ενημερωθούν.
|
||||
|
||||
==== Δίσκος 2
|
||||
|
||||
Ο δεύτερος δίσκος είναι επίσης αποτέλεσμα της εντολής `make release` κατά ένα μεγάλο μέρος. Αυτός ο δίσκος περιέχει ένα "live filesystem" που μπορεί να χρησιμοποιηθεί από το man:sysinstall[8] για να εξεταστούν προβλήματα σε μια εγκατάσταση του FreeBSD. Κι αυτός ο δίσκος πρέπει να είναι bootable. Θα πρέπει επίσης να περιέχει ένα συμπιεσμένο αντίγραφο του CVS repository στον κατάλογο [.filename]#CVSROOT# και δείγματα από εμπορικά προγράμματα στον κατάλογο [.filename]#commerce#.
|
||||
|
||||
==== Δίσκοι 3 και 4
|
||||
|
||||
Οι υπόλοιποι δυο δίσκοι περιέχουν επιπρόσθετα πακέτα λογισμικού για το FreeBSD. Τα πακέτα θα πρέπει να είναι ομαδοποιημένα, έτσι ώστε κάθε πακέτο να είναι στον ίδιο δίσκο με όλα τα πακέτα από τα οποία εξαρτάται για να εγκατασταθεί και να τρέξει. Περισσότερες πληροφορίες για την δημιουργία αυτών των δίσκων αναφέρονται στο άρθρο link:.[Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους].
|
||||
|
||||
[[distribution]]
|
||||
== Διανομή των Εκδόσεων
|
||||
|
||||
[[dist-ftp]]
|
||||
=== Εξυπηρετητές FTP
|
||||
|
||||
Όταν η έκδοση είναι έτοιμη, έχει δοκιμαστεί εκτενώς, και έχει πακεταριστεί για διανομή, ο κύριος FTP εξυπηρετητής πρέπει να ενημερωθεί. Οι επίσημοι εξυπηρετητές FTP του FreeBSD είναι όλοι mirrors ενός κύριου εξυπηρετητή στον οποίο έχουν πρόσβαση μόνο άλλοι FTP εξυπηρετητές. Αυτός ο εξυπηρετητής είναι γνωστός ως `ftp-master`. Όταν η έκδοση είναι έτοιμη, πρέπει να ενημερωθούν τα παρακάτω αρχεία στον `ftp-master`:
|
||||
|
||||
[.filename]#/pub/FreeBSD/index.html#::
|
||||
Μια απλή web σελίδα που περιέχει δείκτες σε διάφορους σημαντικούς FTP καταλόγους για την τρέχουσα έκδοση του FreeBSD.
|
||||
|
||||
[.filename]#/pub/FreeBSD/releases/arch/X.Y-RELEASE/#::
|
||||
Ο κατάλογος από τον οποίο μπορούν να γίνουν εγκαταστάσεις μέσω FTP, όπως τον έχει προετοιμάσει η εντολή `make release`.
|
||||
|
||||
[.filename]#/pub/FreeBSD/ports/arch/packages/packages-X.Y-release/#::
|
||||
Όλα τα προμεταγλωττισμένα πακέτα για την τρέχουσα έκδοση.
|
||||
|
||||
[.filename]#/pub/FreeBSD/releases/arch/X.Y-RELEASE/tools#::
|
||||
Μια συμβολική συντόμευση για τον κατάλογο [.filename]#../../../tools#.
|
||||
|
||||
[.filename]#/pub/FreeBSD/releases/arch/X.Y-RELEASE/packages#::
|
||||
Μια συμβολική συντόμευση για τον κατάλογο [.filename]#../../../ports/i386/packages-X.Y-release#.
|
||||
|
||||
[.filename]#/pub/FreeBSD/releases/arch/ISO-IMAGES/X.Y/X.Y-*.iso#::
|
||||
Τα αρχεία ISO.
|
||||
|
||||
Για περισσότερες πληροφορίες σχετικά με την οργάνωση των mirror διανομής FTP του FreeBSD, παρακαλώ δείτε το άρθρο link:{hubs}[Φτιάχνοντας ένα FreeBSD mirror].
|
||||
|
||||
Μπορεί να πάρει αρκετές ώρες από την στιγμή που θα ενημερωθεί ο `ftp-master` μέχρι να ενημερωθούν στην πλειοψηφία τους τα πρώτου επιπέδου FTP mirror με την νέα έκδοση. Επιβάλλεται οι υπεύθυνοι έκδοσης να συνεννοηθούν με την {freebsd-hubs} πριν ανακοινώσουν την γενική διαθεσιμότητα της νέας έκδοσης στους εξυπηρετητές FTP.
|
||||
|
||||
[[dist-cdrom]]
|
||||
=== Μαζική Αναπαραγωγή των CD-ROM
|
||||
|
||||
Θα συμπληρωθεί σύντομα: Συμβουλές για την αποστολή των ISO αρχείων του FreeBSD σε κάποιον που μπορεί να κάνει μαζική αναπαραγωγή, και μέτρα ελέγχου ποιότητας που μπορούν να παρθούν.
|
||||
|
||||
[[extensibility]]
|
||||
== Επεκτασιμότητα
|
||||
|
||||
Παρόλο που το FreeBSD είναι ένα πλήρες λειτουργικό σύστημα, δεν υπάρχει κάτι που να σας αναγκάζει να χρησιμοποιήσετε το σύστημα ακριβώς όπως το έχουμε πακετάρει εμείς για διανομή. Έχουμε προσπαθήσει να σχεδιάσουμε το σύστημα έτσι που να είναι όσο το δυνατόν πιο επεκτάσιμο, για να είναι εύκολο να χρησιμοποιηθεί σαν βάση πάνω στην οποία άλλα εμπορικά προϊόντα να μπορούν να στηριχθούν. Ο μόνος "κανόνας" που έχουμε σχετικά με αυτό είναι πως αν σχεδιάζετε να διανείμετε το FreeBSD με μεγάλης κλίμακας αλλαγές, σας ενθαρρύνουμε να τεκμηριώσετε τις αλλαγές σας. Η κοινότητα του FreeBSD μπορεί μόνο να βοηθήσει στην υποστήριξη αυτών που χρησιμοποιούν το λογισμικό ακριβώς όπως το διανέμουμε εμείς. Ενθαρρύνουμε και δεχόμαστε κάθε αλλαγή που προωθεί την ανάπτυξη πιο εξελιγμένων εργαλείων εγκατάστασης και διαχείρισης, για παράδειγμα, αλλά δεν θα πρέπει να περιμένει κανείς να μπορούμε να απαντήσουμε και ερωτήσεις σχετικά με κάτι τέτοιο.
|
||||
|
||||
=== Δημιουργία Προσαρμοσμένων Δισκεττών Εκκίνησης.
|
||||
|
||||
Πολλές εγκαταστάσεις έχουν πολύπλοκες απαιτήσεις που μπορεί με τη σειρά τους να απαιτούν την προσθήκη περισσότερων οδηγών ή εργαλείων χρήστη στις δισκέττες εγκατάστασης. Ο "μπακάλικος" τρόπος να το κάνετε αυτό είναι να κάνετε τις αλλαγές σας στον κατάλογο που έχει ετοιμάσει μετά το τέλος της η διαδικασία `make release`:
|
||||
|
||||
* Περάστε τα patches σας ή προσθέστε τα επιπλέον αρχεία μέσα στον κατάλογο chroot της έκδοσης.
|
||||
* `rm ${CHROOTDIR}/usr/obj/usr/src/release/release.[59]`
|
||||
* Μεταγλωττίστε πάλι το man:sysinstall[8], τον πυρήνα, ή όποια άλλα προγράμματα έχουν επηρεαστεί από τις αλλαγές σας.
|
||||
* `chroot ${CHROOTDIR} ./mk floppies`
|
||||
|
||||
Οι νέες δισκέττες εγκατάστασης θα δημιουργηθούν στον κατάλογο [.filename]#${CHROOTDIR}/R/stage/floppies#.
|
||||
|
||||
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το make target [.filename]#boot.flp#, ή μπορείτε να τρέξετε απευθείας το script που δημιουργεί τα συστήματα αρχείων [.filename]#src/release/scripts/doFS.sh#.
|
||||
|
||||
Μπορείτε επίσης να κανονίσετε ώστε δικές σας αλλαγές να περαστούν με μορφή patch στην έκδοση όπως θα φτιάχνεται, δίνοντας τιμή στην μεταβλητή `LOCAL_PATCH` όταν τρέξετε την εντολή `make release`.
|
||||
|
||||
=== Προγραμματίζοντας το `sysinstall`
|
||||
|
||||
Το εργαλείο εγκατάστασης και ρύθμισης του FreeBSD, το man:sysinstall[8], μπορεί να προγραμματιστεί για να κάνει πιο εύκολες τις αυτοματοποιημένες εγκαταστάσεις σε πολλά μηχανήματα. Αυτό το χαρακτηριστικό του προγράμματος μπορεί να χρησιμοποιηθεί σε συνδυασμό με το PXE[13] της Intel για να ξεκινήσει η εγκατάσταση από το δίκτυο, ή σε συνδυασμό με προσαρμοσμένες δισκέττες εκκίνησης κι ένα sysinstall script. Ένα παράδειγμα από τέτοιο sysinstall script μπορείτε να βρείτε στο αρχείο [.filename]#src/release/sysinstall/install.cfg#.
|
||||
|
||||
[[lessons-learned]]
|
||||
== Μαθήματα που Πήραμε από την Έκδοση 4.4 του FreeBSD
|
||||
|
||||
Η διαδικασία ετοιμασίας της έκδοσης 4.4 του FreeBSD ξεκίνησε επίσημα την 1η Αυγούστου 2001. Μετά από αυτή την ημερομηνία, όλες οι αλλαγές στον κορμό `RELENG_4` του FreeBSD έπρεπε να έχουν έγκριση από την `{re}`. Η πρώτη δοκιμαστική έκδοση για την αρχιτεκτονική x86 έγινε διαθέσιμη στις 16 Αυγούστου, κι ακολουθήθηκε από 4 ακόμα δοκιμαστικές εκδόσεις που οδήγησαν στην τελική έκδοση στις 18 του Σεπτέμβρη. Ο υπεύθυνος ασφάλειας έπαιξε σημαντικό ρόλο κατά την διάρκεια της τελευταίας εβδομάδας καθώς κάποια προβλήματα ασφάλειας βρέθηκαν σε προηγούμενες, δοκιμαστικές εκδόσεις. Συνολικά, πάνω από _500_ email στάλθηκαν στην `{re}` σε διάστημα μικρότερο από ένα μήνα.
|
||||
|
||||
Η κοινότητα των χρηστών μας έκανε σαφές ότι η ασφάλεια και η σταθερότητα μιας έκδοσης δεν θά 'πρεπε να θυσιάζεται για κανενός είδους προθεσμίες ή ημερομηνίες που έχουν τεθεί σαν στόχοι από πριν. Το FreeBSD έχει μεγαλώσει δραματικά κατά τη διάρκεια της ζωής του σαν σύστημα, και η ανάγκη για συγκεκριμένη πολιτική και οργάνωση για την δημιουργία νέων εκδόσεων είναι πλέον φανερή περισσότερο από ποτέ. Αυτή η ανάγκη θα γίνει ακόμα πιο σημαντική καθώς το FreeBSD θα αρχίσει να μεταφέρεται σε νέες πλατφόρμες.
|
||||
|
||||
[[future]]
|
||||
== Μελλοντικές Κατευθύνσεις
|
||||
|
||||
Είναι ζωτικής σημασίας οι πρακτικές και η οργάνωση της διαδικασίας δημιουργίας των εκδόσεών μας να συμβαδίζουν με την συνεχώς αυξανόμενη βάση των χρηστών μας. Με βάση αυτή τη σκέψη εργαζόμαστε σκληρά για να τεκμηριώσουμε την διαδικασία παραγωγής των εκδόσεων του FreeBSD.
|
||||
|
||||
* _Παράλληλη εκτέλεση_ - Μερικά μέρη της μεταγλώττισης μιας εγκατάστασης μπορούν να γίνουν "πολύ παράλληλα". Τα πιο πολλά από τα στάδια είναι I/O intensive, οπότε η ύπαρξη πολλών υψηλής-ταχύτητας δίσκων είναι πιο σημαντική από τηνν χρήση πολλών επεξεργαστών για να επιταχυνθεί κάπως η διαδικασία του `make release`. Αν διαφορετικοί δίσκοι χρησιμοποιηθούν για τμήματα της ιεραρχίας του man:chroot[2] περιβάλλοντος, τότε το CVS checkout των καταλόγων [.filename]#ports# και [.filename]#doc# μπορεί να γίνει ταυτόχρονα με την εντολή `make world` στον άλλο δίσκο. Χρησιμοποιώντας μια `RAID` λύση (hardware ή software) μπορεί να μειώσει δραστικά τον συνολικό χρόνο που χρειάζεται να μεταγλωττιστεί μια πλήρης έκδοση.
|
||||
* _Μεταγλώττιση εκδόσεων για διαφορετικές αρχιτεκτονικές_ - Θέλετε να μεταγλωττίσετε μια έκδοση για IA-64 ή Alpha σε κάποιον x86 επεξεργαστή? `make TARGET=ia64 release`.
|
||||
* _Δοκιμές για λάθη_ - Χρειαζόμαστε καλύτερα εργαλεία για αυτόματο έλεγχο ορθότητας στο FreeBSD.
|
||||
* _Εργαλεία Εγκατάστασης_ - Το πρόγραμμά μας για την εγκατάσταση του FreeBSD έχει ξεπεράσει προ πολλού τον αναμενόμενο χρόνο ζωής του. Υπάρχουν διάφορες ομάδες που εργάζονται για να υλοποιήσουν κάποιον άλλο, πιο μοντέρνο μηχανισμό εγκατάστασης. Μια από τις πιο υποσχόμενες, είναι η ομάδα libh[5] που στοχεύει στην υλοποίηση ενός έξυπνου, νέου τρόπου πακεταρίσματος λογισμικού και ενός GUI προγράμματος εγκατάστασης.
|
||||
|
||||
[[ackno]]
|
||||
== Ευχαριστίες
|
||||
|
||||
Θα ήθελα να ευχαριστήσω τον Jordan Hubbard, που μου έδωσε την ευκαιρία να πάρω κάποια από την ευθύνη της έκδοσης 4.4 του FreeBSD, καθώς και για όλη την δουλειά που έχει κάνει εδώ και χρόνια για να είναι το FreeBSD αυτό που είναι σήμερα. Φυσικά, η έκδοση δεν θα ήταν ποτέ δυνατόν να ολοκληρωθεί χωρίς όλη την σχετική με την έκδοση δουλειά που έκαναν οι {asami-name}, {steve-name}, {bmah-name}, {nik-name}, {obrien-name}, {kris-name}, {jhb-name} και όλοι οι υπόλοιποι που ασχολούνται με την ανάπτυξη του FreeBSD. Θέλω επίσης να ευχαριστήσω τους {rgrimes-name}, {phk-name}, και όλους τους άλλους που εργάστηκαν για να φτιάξουν τα εργαλεία για τις εκδόσεις στις πρώτες μέρες της δημιουργίας του FreeBSD. Αυτό το άρθρο έχει επηρεαστεί από κείμενα σχετικά με την οργάνωση των εκδόσεων από το CSRG[14], την Ομάδα του NetBSD[11], και την πρόταση για μια διαδικασία οργάνωσης των εκδόσεων του John Baldwin[12].
|
||||
|
||||
[[biblio]]
|
||||
== Αναφορές
|
||||
|
||||
(1) CVS - Concurrent Versions System link:http://www.cvshome.org[http://www.cvshome.org]
|
||||
|
||||
(2) CVSup - The CVS-Optimized General Purpose Network File Distribution System http://www.polstra.com/projects/freeware/CVSup[http://www.polstra.com/projects/freeware/CVSup]
|
||||
|
||||
(3) http://bento.FreeBSD.org[http://bento.FreeBSD.org]
|
||||
|
||||
(4) FreeBSD Ports Collection http://www.FreeBSD.org/ports[http://www.FreeBSD.org/ports]
|
||||
|
||||
(5) The libh Project http://www.FreeBSD.org/projects/libh/[http://www.FreeBSD.org/projects/libh/]
|
||||
|
||||
(6) link:{contributors}#staff-committers[FreeBSD Committers]
|
||||
|
||||
(7) link:{contributors}#staff-core[FreeBSD Core-Team]
|
||||
|
||||
(8) link:{handbook}[FreeBSD Handbook]
|
||||
|
||||
(9) GNATS: The GNU Bug Tracking System http://www.gnu.org/software/gnats[http://www.gnu.org/software/gnats]
|
||||
|
||||
(10) FreeBSD PR Statistics http://www.FreeBSD.org/prstats/[http://www.FreeBSD.org/prstats/]
|
||||
|
||||
(11) NetBSD Developer Documentation: Release Engineering http://www.NetBSD.org/developers/releng/index.html[http://www.NetBSD.org/developers/releng/index.html]
|
||||
|
||||
(12) John Baldwin's FreeBSD Release Engineering Proposal http://people.FreeBSD.org/\~jhb/docs/releng.txt[http://people.FreeBSD.org/~jhb/docs/releng.txt]
|
||||
|
||||
(13) PXE Jumpstart Guide link:{pxe}[PXE Guide]
|
||||
|
||||
(14) Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic: http://docs.FreeBSD.org/44doc/papers/releng.html[The Release Engineering of 4.3BSD]
|
||||
Loading…
Add table
Add a link
Reference in a new issue