# pkg_add /tmp/apache-2.2.6_2.tbz
εδώ.
Τα πακέτα είναι προ-μεταγλωττισμένες εφαρμογές, θα λέγαμε το αντίστοιχο για το FreeBSD των αρχείων .deb σε συστήματα Debian/Ubuntu και των αρχείων .rpm σε συστήματα Red Hat/Fedora. Τα πακέτα εγκαθίστανται χρησιμοποιώντας την εντολή pkg_add(1). Για παράδειγμα, η ακόλουθη εντολή εγκαθιστά τον Apache 2.2:
# pkg_add /tmp/apache-2.2.6_2.tbz
Η χρήση της παραμέτρου -r
οδηγεί την pkg_add(1) να κατεβάσει αυτόματα τόσο το πακέτο, όσο και τις εξαρτήσεις του, και να το εγκαταστήσει:
# 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.
Αν χρησιμοποιείτε μια "επίσημη" έκδοση του FreeBSD (6.2, 6.3, 7.0, κλπ. που γενικά μπορείτε να εγκαταστήσετε από CD-ROM) η εντολή |
Για περισσότερες πληροφορίες σχετικά με τα πακέτα, παρακαλούμε διαβάστε την ενότητα 4.4 στο Εγχειρίδιο του FreeBSD: Χρησιμοποιώντας το Σύστημα Packages.
Η δεύτερη μέθοδος για την εγκατάσταση εφαρμογών στο FreeBSD είναι η Συλλογή των Ports. Η Συλλογή των Ports είναι ένα πλαίσιο λειτουργιών που αποτελείται από Makefiles και αρχεία διαφορών (patches) τα οποία έχουν δημιουργηθεί ειδικά, ώστε να είναι δυνατή η εγκατάσταση διάφορων εφαρμογών στο FreeBSD από τον πηγαίο κώδικα τους. Όταν εγκαθιστάτε ένα port, το σύστημα θα κατεβάσει τον πηγαίο κώδικα, θα εφαρμόσει όλες τις απαιτούμενες αλλαγές χρησιμοποιώντας τα patches, θα μεταγλωττίσει τον κώδικα, και τέλος θα εγκαταστήσει την εφαρμογή. Θα ακολουθήσει την ίδια διαδικασία και για οποιαδήποτε τυχόν εξαρτώμενα προγράμματα.
Μπορείτε να βρείτε την Συλλογή των Ports (η οποία μερικές φορές αναφέρεται και ως "δέντρο των ports"), στον κατάλογο /usr/ports. Αυτό βέβαια προϋποθέτει ότι εγκαταστήσατε την Συλλογή των Ports κατά τη διάρκεια της εγκατάστασης του FreeBSD. Αν δεν το έχετε κάνει, μπορείτε να την προσθέσετε από το CD εγκατάστασης με την βοήθεια του sysinstall(8) ή να την κατεβάσετε από τους εξυπηρετητές του FreeBSD χρησιμοποιώντας την εντολή csup(1) ή την εντολή portsnap(8). Μπορείτε να βρείτε λεπτομερείς οδηγίες για την εγκατάσταση της Συλλογής των Ports στην ενότητα 4.5.1 του εγχειριδίου.
Η εγκατάσταση ενός port είναι γενικά τόσο απλή όσο το να εισέλθετε στον κατάλογο του και να ξεκινήσετε την διαδικασία μεταγλώττισης. Στο ακόλουθο παράδειγμα γίνεται εγκατάσταση του Apache 2.2 από την Συλλογή των Ports:
# cd /usr/ports/www/apache22
# make install clean
Ένα σημαντικό πλεονέκτημα της χρήσης ports στην εγκατάσταση λογισμικού είναι η ικανότητα προσαρμογής των επιλογών εγκατάστασης. Για παράδειγμα, όταν εγκαθιστάτε τον Apache 2.2 από τα ports μπορείτε να ενεργοποιήσετε την επιλογή mod_ldap θέτοντας απλώς τιμή στη μεταβλητή WITH_LDAP
του make(1):
# cd /usr/ports/www/apache22
# make WITH_LDAP="YES" install clean
Διαβάστε την ενότητα 4.5 του Εγχειριδίου του FreeBSD, Χρησιμοποιώντας την Ports Collection, για περισσότερες πληροφορίες σχετικά με τη Συλλογή των Ports.
Τα πακέτα είναι στην πραγματικότητα απλώς προ-μεταγλωττισμένα ports, άρα είναι περισσότερο θέμα επιλογής αν είναι επιθυμητή η εγκατάσταση από τον πηγαίο κώδικα ή από έτοιμα εκτελέσιμα. Κάθε μέθοδος έχει τα πλεονεκτήματα της:
Πιο γρήγορη εγκατάσταση (η μεταγλώττιση μεγάλων εφαρμογών μπορεί να διαρκέσει αρκετή ώρα).
Δεν χρειάζεται να κατανοείτε πως γίνεται η μεταγλώττιση του λογισμικού.
Δεν χρειάζεται να εγκαταστήσετε μεταγλωττιστές στο σύστημα σας.
Ικανότητα προσαρμογής των επιλογών εγκατάστασης. (Τα πακέτα συνήθως μεταγλωττίζονται με τις προεπιλεγμένες επιλογές). Με τα ports μπορείτε να προσαρμόσετε διάφορες επιλογές, όπως την μεταγλώττιση πρόσθετων αρθρωμάτων, ή αλλαγή της προεπιλεγμένης θέσης εγκατάστασης.
Μπορείτε να βάλετε τις δικές σας αλλαγές (patches) αν το επιθυμείτε.
Αν δεν έχετε ειδικές απαιτήσεις, τα πακέτα πιθανόν θα σας καλύψουν μια χαρά. Αν ωστόσο χρειάζεται να προσαρμόσετε κάποιες επιλογές, τότε η μέθοδος των ports είναι η καλύτερη. (Και θυμηθείτε, αν χρειάζεστε προσαρμογή αλλά προτιμάτε τα πακέτα, μπορείτε μέσω της συλλογής των ports να φτιάξετε τα δικά σας προσαρμοσμένα πακέτα χρησιμοποιώντας την εντολή make`package` και αντιγράφοντας τα πακέτα που δημιουργήσατε σε άλλα μηχανήματα.)
Το Linux® χρησιμοποιεί το σύστημα εκκίνησης SysV, ενώ το FreeBSD χρησιμοποιεί το παραδοσιακό σύστημα εκκίνησης BSD. Στο σύστημα init(8) τύπου BSD, δεν υπάρχουν run-levels, ούτε το αρχείο /etc/inittab. Αντί για αυτά, η εκκίνηση ελέγχεται από ένα script εκκίνησης, το rc(8). To script /etc/rc διαβάζει το αρχείο /etc/defaults/rc.conf και το αρχείο /etc/rc.conf για να καθορίσει ποιες υπηρεσίες πρόκειται να ξεκινήσουν. Οι υπηρεσίες αυτές ξεκινάνε με την εκτέλεση των αντίστοιχων script εκκίνησης που βρίσκονται στους καταλόγους /etc/rc.d/ και /usr/local/etc/rc.d/. Τα scripts αυτά είναι παρόμοια με τα scripts που βρίσκονται στον κατάλογο /etc/init.d/ σε συστήματα Linux®.
Οι υπηρεσίες ενεργοποιούνται με την προσθήκη μιας εγγραφής τύπου ΌνομαΥπηρεσίας_enable="YES"
στο αρχείο /etc/rc.conf (rc.conf(5)). Ρίξτε μια ματιά στο αρχείο /etc/defaults/rc.conf για να δείτε τις προεπιλογές του συστήματος. Οι ρυθμίσεις που κάνουμε στο αρχείο /etc/rc.conf υπερισχύουν έναντι των προεπιλογών αυτών. Επίσης, κατά την εγκατάσταση πρόσθετων εφαρμογών, βεβαιωθείτε ότι διαβάσατε την αντίστοιχη τεκμηρίωση για να βρείτε πως να ενεργοποιήσετε τυχόν σχετικές υπηρεσίες.
Το ακόλουθο απόσπασμα από το αρχείο /etc/rc.conf ενεργοποιεί την υπηρεσία sshd(8) και τον Apache 2.2. Επίσης καθορίζει ότι ο Apache θα ξεκινήσει με ενεργοποιημένη τη δυνατότητα SSL.
# enable SSHD sshd_enable="YES" # enable Apache with SSL apache22_enable="YES" apache22_flags="-DSSL"
Από τη στιγμή που μια υπηρεσία ενεργοποιηθεί στο αρχείο /etc/rc.conf, μπορείτε να την ξεκινήσετε απευθείας από τη γραμμή εντολών (χωρίς να χρειάζεται να επανεκκινήσετε το σύστημα σας):
# /etc/rc.d/sshd start
Αν μια υπηρεσία δεν έχει ενεργοποιηθεί στο αρχείο αυτό, μπορείτε να εξαναγκάσετε την εκκίνηση της από την γραμμή εντολών με την επιλογή forcestart
:
# /etc/rc.d/sshd forcestart
Αντί για το γενικό αναγνωριστικό τύπου ethX που χρησιμοποιεί το Linux® για την αναγνώριση μιας διεπαφής δικτύου, το FreeBSD χρησιμοποιεί ως αναγνωριστικό το όνομα του προγράμματος οδήγησης ακολουθούμενο από ένα αριθμό. Η ακόλουθη έξοδος από την εντολή ifconfig(8) δείχνει δύο κάρτες δικτύου Intel® Pro 1000 (με αναγνωριστικά em0 and em1):
% 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
Μπορείτε να αναθέσετε μια διεύθυνση IP σε μια διεπαφή δικτύου με τη χρήση της εντολής ifconfig(8). Για να γίνει μόνιμη ωστόσο αυτή η αλλαγή, και να μην χάνεται σε κάθε επανεκκίνηση, θα πρέπει να την περιλάβετε στο αρχείο /etc/rc.conf. Στο ακόλουθο παράδειγμα φαίνεται η καταχώρηση που περιλαμβάνει το όνομα του υπολογιστή (hostname), την διεύθυνση IP, καθώς και την προεπιλεγμένη πύλη (defaultrouter):
hostname="server1.example.com" ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0" defaultrouter="10.10.10.1"
Χρησιμοποιήστε την ακόλουθη καταχώρηση για να καθορίσετε ότι μια διεπαφή θα λαμβάνει ρυθμίσεις μέσω DHCP:
hostname="server1.example.com" ifconfig_em0="DHCP"
Στο Linux® χρησιμοποιείται το IPTABLES το οποίο παρέχει υπηρεσίες firewall σε επίπεδο πυρήνα. Το FreeBSD παρέχει επίσης firewall μέσω του πυρήνα. Για την ακρίβεια, το FreeBSD παρέχει τρία firewalls:
Το IPFIREWALL ή IPFW (η εντολή χειρισμού των κανόνων του IPFW είναι η ipfw(8)) είναι το firewall που έχει αναπτυχθεί και συντηρείται από την ομάδα ανάπτυξης του FreeBSD. Το IPFW μπορεί να συνδυαστεί με το dummynet(4) για να παρέχει δυνατότητες διαμόρφωσης της κίνησης πακέτων (traffic shaping) και να εξομοιώνει διαφορετικούς τύπους συνδέσεων δικτύου.
Παράδειγμα ενός κανόνα του IPFW που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH:
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:
pass in on $ext_if proto tcp from any to any port = 22
Η τελευταία εφαρμογή firewall, το PF, αναπτύσσεται από το OpenBSD project. Το PF δημιουργήθηκε ως αντικαταστάτης του IPFILTER, και έτσι η σύνταξη του PF είναι αρκετά παρόμοια με αυτή του IPFILTER. Το PF μπορεί να συνδυαστεί με το altq(4) για να παρέχει υπηρεσίες τύπου QoS.
Παράδειγμα κανόνα του PF που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH:
pass in on $ext_if inet proto tcp from any to ($ext_if) port 22
Υπάρχουν τρεις μέθοδοι για την αναβάθμιση ενός συστήματος FreeBSD: Μέσω του πηγαίου κώδικα, μέσω έτοιμων (binary) αναβαθμίσεων, και μέσω των CD εγκατάστασης.
Η εγκατάσταση μέσω του πηγαίου κώδικα είναι η πιο πολύπλοκη, αλλά προσφέρει και τη μεγαλύτερη δυνατή ευελιξία. Η διαδικασία αυτή περιλαμβάνει το συγχρονισμό του τοπικού αντιγράφου του πηγαίου κώδικα του FreeBSD με τον κώδικα του FreeBSD που βρίσκεται στους εξυπηρετητές CVS (Concurrent Versioning System). Από τη στιγμή που το τοπικό αντίγραφο πηγαίου κώδικα είναι ανανεωμένο, μπορείτε να μεταγλωττίσετε νέες εκδόσεις του πυρήνα και των βασικών προγραμμάτων. Για περισσότερες πληροφορίες σχετικά με το σύστημα αναβάθμισης μέσω πηγαίου κώδικα, δείτε το κεφάλαιο Ενημέρωση και Αναβάθμιση στο Εγχειρίδιο του FreeBSD.
Οι έτοιμες (binary) αναβαθμίσεις, είναι παρόμοιες με τη χρήση της εντολής yum
ή apt-get
για την αναβάθμιση ενός συστήματος Linux®. Η εντολή freebsd-update(8) θα κατεβάσει τις αναβαθμίσεις και θα τις εγκαταστήσει. Μπορείτε να καθορίσετε την αυτόματη, ανά τακτά διαστήματα εκτέλεση της, με τη χρήση του cron(8).
Αν πρόκειται να χρησιμοποιήσετε το cron(8) για προγραμματισμένες αναβαθμίσεις, βεβαιωθείτε ότι χρησιμοποιείτε την εντολή 0 3 * * * root /usr/sbin/freebsd-update cron |
Η τελευταία επιλογή αναβάθμισης, μέσω των CD εγκατάστασης, είναι αρκετά ξεκάθαρη. Απλώς εκκινήστε από το CD εγκατάστασης και επιλέξτε την αντίστοιχη επιλογή αναβάθμισης (upgrade).
Στο Linux®, θα χρειαστεί να δείτε το /proc/sys/net/ipv4/ip_forward για να καθορίσετε αν είναι ενεργοποιημένη η προώθηση IP (IP forwarding). Στο FreeBSD θα πρέπει να χρησιμοποιήσετε το sysctl(8) για να δείτε αυτή και άλλες ρυθμίσεις του συστήματος, καθώς το procfs(5) θεωρείται παρωχημένο σε πρόσφατες εκδόσεις του λειτουργικού. (Αν και η εντολή sysctl
είναι επίσης διαθέσιμη και στο Linux®).
Στο παράδειγμα της προώθησης IP, θα χρησιμοποιούσαμε την ακόλουθη εντολή για να καθορίσουμε αν η δυνατότητα αυτή είναι ενεργοποιημένη σε ένα FreeBSD σύστημα:
% sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 0
Η επιλογή -a
χρησιμοποιείται για να πάρουμε μια λίστα με όλες τις ρυθμίσεις του συστήματος:
% 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
...
Κάποιες από τις τιμές που δείχνει η εντολή |
Υπάρχουν περιπτώσεις όπου απαιτείται το procfs, όπως για παράδειγμα όταν εκτελείτε παλιότερο λογισμικό, το οποίο κάνει χρήση της εντολής truss(1) για την ανίχνευση των κλήσεων συστήματος, και για την Συμβατότητα με Εκτελέσιμα του Linux®. (Αν και η Συμβατότητα με Εκτελέσιμα του Linux® χρησιμοποιεί το δικό της procfs, το linprocfs(5)). Αν χρειάζεται να προσαρτήσετε το procfs, μπορείτε να προσθέσετε την ακόλουθη εγγραφή στο αρχείο /etc/fstab:
proc /proc procfs rw,noauto 0 0
Η επιλογή |
Προσαρτήστε κατόπιν την procfs χρησιμοποιώντας την ακόλουθη εντολή:
# mount /proc
Εντολή του Linux® (Red Hat/Debian) | Αντίστοιχη εντολή FreeBSD | Σκοπός |
---|---|---|
|
| Εγκατάσταση πακέτου από απομακρυσμένο εξυπηρετητή |
|
| Εγκατάσταση πακέτου |
|
| Λίστα εγκατεστημένων πακέτων |
Εντολή Linux® | Αντίστοιχη εντολή FreeBSD | Σκοπός |
---|---|---|
|
| Λίστα συσκευών PCI |
|
| Λίστα φορτωμένων αρθρωμάτων πυρήνα |
|
| Φόρτωση/Αποφόρτωση αρθρωμάτων πυρήνα |
|
| Ανίχνευση κλήσεων συστήματος |
Ευελπιστούμε ότι αυτό το κείμενο σας παρείχε αρκετές πληροφορίες για να ξεκινήσετε με το FreeBSD. Για περισσότερες και πιο λεπτομερείς πληροφορίες, παρακαλούμε να διαβάσετε το Εγχειρίδιο του FreeBSD το οποίο επίσης περιέχει και πολλά θέματα που δεν καλύφθηκαν καθόλου στο παρόν κείμενο.