---
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,shell]
....
# pkg_add /tmp/apache-2.2.6_2.tbz
....

Η χρήση της παραμέτρου `-r` οδηγεί την man:pkg_add[1] να κατεβάσει αυτόματα τόσο το πακέτο, όσο και τις εξαρτήσεις του, και να το εγκαταστήσει:

[source,shell]
....
# 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,shell]
....
# cd /usr/ports/www/apache22
# make install clean
....

Ένα σημαντικό πλεονέκτημα της χρήσης ports στην εγκατάσταση λογισμικού είναι η ικανότητα προσαρμογής των επιλογών εγκατάστασης. Για παράδειγμα, όταν εγκαθιστάτε τον Apache 2.2 από τα ports μπορείτε να ενεργοποιήσετε την επιλογή mod_ldap θέτοντας απλώς τιμή στη μεταβλητή `WITH_LDAP` του man:make[1]:

[source,shell]
....
# 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,shell]
....
# /etc/rc.d/sshd start
....

Αν μια υπηρεσία δεν έχει ενεργοποιηθεί στο αρχείο αυτό, μπορείτε να εξαναγκάσετε την εκκίνηση της από την γραμμή εντολών με την επιλογή `forcestart`:

[source,shell]
....
# /etc/rc.d/sshd forcestart
....

[[network]]
== Ρύθμιση Δικτύου

[[interfaces]]
=== Διεπαφές Δικτύου

Αντί για το γενικό αναγνωριστικό τύπου _ethX_ που χρησιμοποιεί το Linux(R) για την αναγνώριση μιας διεπαφής δικτύου, το FreeBSD χρησιμοποιεί ως αναγνωριστικό το όνομα του προγράμματος οδήγησης ακολουθούμενο από ένα αριθμό. Η ακόλουθη έξοδος από την εντολή man:ifconfig[8] δείχνει δύο κάρτες δικτύου Intel(R) Pro 1000 (με αναγνωριστικά em0 and em1):

[source,shell]
....
% 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,shell]
....
% sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 0
....

Η επιλογή `-a` χρησιμοποιείται για να πάρουμε μια λίστα με όλες τις ρυθμίσεις του συστήματος:

[source,shell]
....
% 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,shell]
....
proc                /proc           procfs  rw,noauto       0       0
....

[NOTE]
====
Η επιλογή `noauto` θα εμποδίσει την αυτόματη προσάρτηση του [.filename]#/proc# κατά την εκκίνηση του συστήματος.
====

Προσαρτήστε κατόπιν την procfs χρησιμοποιώντας την ακόλουθη εντολή:

[source,shell]
....
# 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] το οποίο επίσης περιέχει και πολλά θέματα που δεν καλύφθηκαν καθόλου στο παρόν κείμενο.
