diff --git a/de_DE.ISO8859-1/books/handbook/boot/chapter.xml b/de_DE.ISO8859-1/books/handbook/boot/chapter.xml
index 91931165cd..aa2eae742b 100644
--- a/de_DE.ISO8859-1/books/handbook/boot/chapter.xml
+++ b/de_DE.ISO8859-1/books/handbook/boot/chapter.xml
@@ -1,1110 +1,1106 @@
Hans-ChristianEbkeÜbersetzt von FreeBSDs BootvorgangÜbersichtbootenBootstrapDas Starten des Computers und das Laden des Betriebssystems
wird im Allgemeinen als Bootstrap-Vorgang
bezeichnet, oder einfach als Booten. FreeBSDs
Bootvorgang ermöglicht große Flexibilität, was
das Anpassen dessen anbelangt, was passiert, wenn das System
gestartet wird. Es kann zwischen verschiedenen Betriebssystemen,
die auf demselben Computer installiert sind oder verschiedenen
Versionen desselben Betriebssystems oder installierten Kernels
gewählt werden.Dieses Kapitel zeigt die zur Verfügung stehenden
Konfigurationsmöglichkeiten und wie man den Bootvorgang anpasst.
Dies schließt alles ein, bis der Kernel gestartet worden ist,
der dann alle Geräte gefunden hat und &man.init.8; gestartet hat.
Falls Sie sich nicht ganz sicher sind, wann dies passiert:
Es passiert, wenn die Farbe des Textes während des Bootvorgangs
von weiß zu Hellgrau wechselt.Dieses Kapitel informiert über folgende Punkte:Die Komponenten des FreeBSD-Bootvorgangs und deren
Interaktion.Die Optionen, mit denen Sie den FreeBSD-Bootvorgang steuern
können.Wie Geräte mit &man.device.hints.5; konfiguriert
werden.nur x86Dieses Kapitel erklärt den Bootvorgang von FreeBSD auf
Intel X86 Plattformen.Das Problem des BootensWenn der Computer eingeschaltet wird und das Betriebssystem
gestartet werden soll, entsteht ein interessantes Dilemma, denn der
Computer weiß per Definition nicht, wie er irgendetwas tut, bis
das Betriebssystem gestartet wurde. Das schließt das Starten von
Programmen, die sich auf der Festplatte befinden, ein. Wenn nun
der Computer kein Programm von der Festplatte starten kann, sich
das Betriebssystem aber dummerweise genau dort befindet, wie
wird es dann gestartet?Dieses Problem ähnelt einer Geschichte des Barons von
Münchhausen. Dort war eine Person in einen Sumpf gefallen
und hat sich selbst an den Riemen seiner Stiefel (engl.
bootstrap) herausgezogen. In den
jungen Jahren des Computerzeitalters wurde mit dem Begriff
Bootstrap dann die Technik das Betriebssystem zu laden bezeichnet
und wurde hinterher mit booten abgekürzt.BIOSBasic Input/Output SystemBIOSAuf x86-Plattformen ist das BIOS (Basic Input/Output System)
dafür verantwortlich, das Betriebssystem zu laden. Dazu
liest das BIOS den Master Bootsektor (MBR; Master Boot Record)
aus, der sich an einer bestimmten Stelle auf der
Festplatte/Diskette befinden muss. Das BIOS kann den MBR
selbstständig laden und ausführen und geht davon aus,
dass dieser die restlichen Dinge, die für das Laden des
Betriebssystems notwendig sind, selbst oder mit Hilfe des BIOS
erledigen kann.Master Boot Record (MBR)Boot ManagerBoot LoaderDer Code innerhalb des MBRs wird für gewöhnlich als
Boot-Manager bezeichnet, insbesondere, wenn
eine Interaktion mit dem Anwender stattfindet. Ist dies der Fall,
verwaltet der Boot-Manager zusätzlichen Code im ersten
Track der Platte oder in Dateisystemen
anderer Betriebssysteme. (Boot-Manager werden manchmal auch als
Boot Loader bezeichnet, unter FreeBSD wird
dieser Begriff aber für eine spätere Phase des
Systemstarts verwendet.) Zu den bekanntesten Boot-Managern
gehören boot0 (der auch als
Boot Easy bekannte
Standard-Boot-Manager von &os;), Grub,
GAG, sowie
LILO.
(Von diesen Boot-Managern hat nur boot0
innerhalb des MBRs Platz.)Falls nur ein Betriebssystem installiert ist, ist der
Standard MBR ausreichend. Dieser MBR sucht nach dem ersten
bootbaren Slice (das dabei als active
gekennzeichnet ist) auf dem Laufwerk und führt den dort
vorhandenen Code aus, um das restliche Betriebssystem zu
laden. Der von &man.fdisk.8; in der Voreinstellung
installierte MBR ist ein solcher MBR und basiert auf
/boot/mbr.Falls mehrere Betriebssysteme installiert sind, sollte
man einen anderen Boot-Manager installieren, der eine Liste der
verfügbaren Betriebssysteme anzeigt und einen wählen
lässt, welches man booten möchte. Der nächste
Abschnitt beschreibt zwei Boot-Manager mit diesen
Fähigkeiten.Das restliche FreeBSD-Bootstrap-System ist in drei Phasen
unterteilt. Die erste Phase wird vom MBR durchgeführt, der
gerade genug Funktionalität besitzt um den Computer in
einen bestimmten Status zu verhelfen und die zweite Phase zu
starten. Die zweite Phase führt ein wenig mehr Operationen
durch und startet schließlich die dritte Phase, die das Laden
des Betriebssystems abschließt. Der ganze Prozess wird in drei
Phasen durchgeführt, weil der PC Standard die Größe
der Programme, die in Phase eins und zwei ausgeführt
werden, limitiert. Durch das Verketten der durchzuführenden
Aufgaben wird es FreeBSD möglich, ein sehr flexibles
Ladeprogramm zu besitzen.KernelinitAls nächstes wird der Kernel gestartet, der zunächst nach
Geräten sucht und sie für den Gebrauch
initialisiert. Nach dem Booten des Kernels übergibt dieser
die Kontrolle an den Benutzer Prozess &man.init.8;, der erst
sicherstellt, dass alle Laufwerke benutzbar sind und die
Ressourcen Konfiguration auf Benutzer Ebene startet. Diese
wiederum mountet Dateisysteme, macht die Netzwerkkarten für
die Kommunikation mit dem Netzwerk bereit und startet generell
alle Prozesse, die auf einem FreeBSD-System normalerweise beim
Hochfahren gestartet werden.Boot-Manager und Boot-PhasenBoot ManagerDer Boot-ManagerMaster Boot Record (MBR)Der Code im MBR oder im Boot-Manager wird manchmal auch
als stage zero des Boot-Prozesses
bezeichnet. Dieser Abschnitt beschreibt zwei der weiter
oben erwähnten Boot-Manager:
boot0 sowie
LILO.Der boot0 Boot-Manager:Der vom FreeBSD-Installationsprogramm oder &man.boot0cfg.8;
in der Voreinstelung installierte Master Boot Record (MBR)
basiert auf /boot/boot0.
Bei boot0 handelt es sich um ein
sehr einfaches Programm, da im MBR lediglich
446 Bytes verfügbar sind, weil der restliche Platz
für die Partitionstabelle sowie den
0x55AA-Identifier
am Ende des MBRs benötigt wird. Falls Sie
boot0 verwenden und mehrere
Betriebssysteme auf Ihrer Festplatte installiert haben, werden
Sie beim Starten des Computers eine Anzeige ähnlich der
folgenden sehen:boot0-ScreenshotF1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2Diverse Betriebssysteme, insbesondere &windows;,
überschreiben den MBR ungefragt mit ihrem
eigenen. Falls einem dies passiert sein sollte, kann man mit
folgendem Kommando den momentanen MBR durch den FreeBSD-MBR
ersetzen:&prompt.root; fdisk -B -b /boot/boot0 GerätBei Gerät handelt es sich
um das Gerät, von dem gebootet wird, also beispielsweise
ad0 für die erste IDE-Festplatte,
ad2 für die erste IDE-Festplatte
am zweiten IDE-Controller, da0
für die erste SCSI-Festplatte, usw. Diese Einstellungen
können aber über &man.boot0cfg.8; angepasst
werden.Der LILO-Boot-Manager:Damit dieser Boot-Manager auch FreeBSD booten kann, starten
Sie zuerst Linux und fügen danach folgende Zeilen in die
Konfigurationsdatei /etc/lilo.conf
ein:other=/dev/hdXY
table=/dev/hdX
loader=/boot/chain.b
label=FreeBSDDabei müssen Sie die primäre Partition von FreeBSD
sowie dessen Platte im Linux-Format angeben. Dazu ersetzen Sie
X durch die Linux-Bezeichnung der
Platte und Y durch die von Linux
verwendete Partitionsnummer. Wenn Sie ein
SCSI-Laufwerk verwenden, müssen Sie
/dev/sd anstelle von
/dev/hd verwenden. Die Zeile
kann weggelassen werden,
wenn beide Betriebssysteme auf der gleichen Platte installiert
sind. Geben Sie danach /sbin/lilo -v
ein, um Ihre Änderungen zu übernehmen. Achtung Sie
dabei besonders auf etwaige Fehlermeldungen.Phase Eins, /boot/boot1 und Phase Zwei,
/boot/boot2Im Prinzip sind die erste und die zweite Phase Teile
desselben Programms, im selben Bereich auf der
Festplatte. Aufgrund von Speicherplatz-Beschränkungen
wurden sie aufgeteilt, aber man installiert sie eigentlich
generell zusammen. Beide werden entweder vom Installer oder
von bsdlabel aus der kombinierten
Datei /boot/boot kopiert.Beide Phasen befinden sich außerhalb des Dateisystems
im Bootsektor des Boot-Slices, wo boot0 oder ein anderer Boot-Manager
ein Programm erwarten, das den weiteren Bootvorgang
durchführen kann. Die Anzahl der dabei verwendeten
Sektoren wird durch die Größe von
/boot/boot bestimmt.boot1 ist ein sehr einfaches
Programm, da es nur 512 Bytes groß sein darf, und es
besitzt gerade genug Funktionalität, um FreeBSDs
bsdlabel, das Informationen über
den Slice enthält, auszulesen, und um
boot2 zu finden und
auszuführen.boot2 ist schon ein wenig
umfangreicher und besitzt genügend Funktionalität, um
Dateien in FreeBSDs Dateisystem zu finden. Außerdem hat es
eine einfache Schnittstelle, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen.Da der Loader einen
weitaus größeren Funktionsumfang hat und eine schöne
und einfach zu bedienende Boot-Konfigurations-Schnittstelle zur
Verfügung stellt, wird er gewöhnlich von
boot2 anstatt des Kernels
gestartet. Früher war es jedoch dazu da den Kernel direkt
zu starten.boot2-Screenshot>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Um das installierte
boot1 und boot2 zu
ersetzen, benutzt man &man.bsdlabel.8;:&prompt.root; bsdlabel -B disksliceWobei Slice das Laufwerk und die Slice
darstellt, von dem gebootet wird, beispielsweise
ad0s1 für die erste Slice
auf der ersten IDE-Festplatte.Dangerously Dedicated ModeWenn man nur den Festplatten-Namen, also
z.B. ad0, in &man.bsdlabel.8;
benutzt wird eine "dangerously dedicated disk" erstellt,
ohne Slices. Das ist ein Zustand, den man meistens nicht
hervorrufen möchte. Aus diesem Grund sollte man ein
&man.bsdlabel.8;-Kommando noch einmal prüfen, bevor
man Return betätigt.Phase drei, /boot/loaderboot-loaderDer boot-loader ist der letzte von drei Schritten im
Bootstrap-Prozess und kann im Dateisystem normalerweise unter
/boot/loader gefunden werden.Der Loader soll eine benutzerfreundliche
Konfigurations-Schnittstelle sein mit einem einfach zu
bedienenden eingebauten Befehlssatz, ergänzt durch einen
umfangreichen Interpreter mit einem komplexeren
Befehlssatz.Loader AblaufDer Loader sucht während seiner Initialisierung
nach Konsolen und Laufwerken, findet heraus, von welchem
Laufwerk er gerade bootet, und setzt dementsprechend
bestimmte Variablen. Dann wird ein Interpreter gestartet,
der Befehle interaktiv oder von einem Skript empfangen
kann.loaderloader KonfigurationDanach liest der Loader die Datei
/boot/loader.rc aus, welche ihn
standardmäßig anweist
/boot/defaults/loader.conf zu lesen, wo
sinnvolle Standardeinstellungen für diverse Variablen
festgelegt werden und wiederum
/boot/loader.conf für lokale
Änderungen an diesen Variablen ausgelesen
wird. Anschließend arbeitet dann
loader.rc entsprechend dieser Variablen
und lädt die ausgewählten Module und den
gewünschten Kernel.In der Voreinstellung wartet der Loader
10 Sekunden lang auf eine Tastatureingabe und bootet den
Kernel, falls keine Taste betätigt wurde. Falls doch
eine Taste betätigt wurde wird dem Benutzer eine
Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu
bedienenden Befehlssatz entgegen, der es dem Benutzer
erlaubt, Änderungen an Variablen vorzunehmen, Module zu
laden, alle Module zu entladen oder schließlich zu booten
bzw. neu zu booten.Die eingebauten Befehle des LoadersHier werden nur die gebräuchlichsten Befehle
bearbeitet. Für eine erschöpfende Diskussion aller
verfügbaren Befehle konsultieren Sie bitte
&man.loader.8;.autoboot SekundenEs wird mit dem Booten des Kernels fortgefahren,
falls keine Taste in der gegebenen Zeitspanne
betätigt wurde. In der gegebenen Zeitspanne, Vorgabe
sind 10 Sekunden, wird ein Countdown angezeigt.boot
-optionsKernelnameBewirkt das sofortige Booten des Kernels mit den
gegebenen Optionen, falls welche angegeben wurden, und
mit den angegebenen Kernel, falls denn einer angegeben
wurde. Das übergeben eines Kernelnamens ist nur
nach einem unload-Befehl anwendbar,
andernfalls wird der zuvor verwendete Kernel benutzt.boot-confBewirkt die automatische Konfiguration der Module,
abhängig von den entsprechenden Variablen. Dieser
Vorgang ist identisch zu dem Vorgang, den der Bootloader
ausführt und daher nur sinnvoll, wenn zuvor
unload benutzt wurde und Variablen
(gewöhnlich kernel) verändert
wurden.help
ThemaZeigt die Hilfe an, die zuvor aus der Datei
/boot/loader.help gelesen
wird. Falls index als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.include Dateiname
…Verarbeitet die angegebene Datei. Das Einlesen und
Interpretieren geschieht Zeile für Zeile und wird im Falle eines
Fehlers umgehend unterbrochen.load TypDateinameLädt den Kernel, das Kernel-Modul, oder die Datei
des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden
der Datei übergeben.ls PfadListet die Dateien im angegebenen Pfad auf, oder das
root-Verzeichnis(/), falls kein Pfad angegeben
wurde. Die Option bewirkt, dass die
Dateigrössen ebenfalls angezeigt werden.lsdev Listet alle Geräte auf, für die Module geladen
werden können. Die Option bewirkt
eine detailreichere Ausgabe.lsmod Listet alle geladenen Module auf. Die Option
bewirkt eine detailreichere
Ausgabe.more DateinameZeigt den Dateinhalt der angegebenen Datei an, wobei
eine Pause alle LINES Zeilen gemacht
wird.rebootBewirkt einen umgehenden Neustart des Systems.set Variableset
Variable=WertSetzt die Umgebungsvariablen des Loaders.unloadEntlädt sämtliche geladenen Module.Beispiele für die Loader BedienungHier ein paar praktische Beispiele für die Bedienung
des Loaders.
- Single-User Modus
- Um den gewöhnlichen Kernel im Single-User Modus zu
+ Um den gewöhnlichen Kernel im Single-User ModusSingle-User Modus zu
starten:boot -sUm alle gewöhnlichen Kernelmodule zu entladen und dann
nur den alten (oder jeden beliebigen anderen) Kernel zu
laden:
-
- kernel.old
- unloadload kernel.oldEs kann kernel.GENERIC verwendet
werden, um den allgemeinen Kernel zu bezeichnen, der
- vorinstalliert wird. kernel.old
+ vorinstalliert wird. kernel.oldkernel.old
bezeichnet den Kernel, der vor dem aktuellen installiert
war (falls man einen neuen Kernel kompiliert und
installiert hat zum Beispiel).Der folgende Befehl lädt die gewöhnlichen Module mit
einem anderen Kernel:unloadset kernel="kernel.old"boot-confFolgendes lädt ein Kernelkonfigurations-Skript (ein
automatisiertes Skript, dass dasselbe tut, was der
Benutzer normalerweise von Hand an der Eingabeaufforderung
durchführen würde):load -t userconfig_script /boot/kernel.confJoseph J.BarbishContributed by BenedictReuschlingÜbersetzt von Willkommmensbildschirme während des BootvorgangsDie Willkommmensbildschirme erzeugen einen visuell viel
ansprechenderen Bootvorgang im Vergleich zu den herkömmlichen
Bootmeldungen. Diese Bildschirme werden entweder bis zu einem
Konsolen-Login-Prompt oder dem eines X-Display Managers
angezeigt.Es existieren zwei grundlegende Umgebungen in &os;. Die erste
ist die altbekannte, auf virtuellen Konsolen basierte Kommandozeile.
Nachdem das System den Bootvorgang abgeschlossen hat, wird ein
Anmeldebildschirm auf der Konsole anzeigt. Die zweite Umgebung
ist die graphische X11-Desktop Umgebung. Nachdem X11 und eine der Graphischen Oberflächen, wie
GNOME, KDE, oder
XFce installiert wurden, kann der
X11-Desktop über das Kommando startx
gestartet werden.Manche Benutzer ziehen den graphischen Anmeldebildschirm von X11
dem traditionellen, textbasierten Anmeldeprompt vor. Display-Manager
wie XDM für &xorg;,
gdm für
GNOME und kdm
für KDE (und viele weitere aus der
Ports-Sammlung) bieten einen graphischen statt dem konsolenbasierten
Anmeldebildschirm. Nach einer erfolgreichen Anmeldung kann der
Benutzer die graphische Oberfläche verwenden.In der Kommandozeilen-Umgebung würde der Willkommensbildschirm
alle Erkennungsmeldungen des Bootvorgangs und die Startmeldungen von
Diensten verstecken, bevor der Anmeldebildschirm erscheint. In der
X11-Umgebung erhalten die Anwender einen klareren visuellen Eindruck
des Startvorgangs, ähnlich zu dem, den µsoft; &windows;
(oder ein nicht-Unix-artiger Systemtyp) zur Verfügung
stellt.Willkommensbildschirm-FunktionalitätDie Willkommensbildschirm-Funktionalität unterstützt
nur 256-Farben Bitmaps (.bmp), ZSoft
PCX (.pcx) oder
TheDraw (.bin) Dateien.
Zusätzlich muss die Willkommensbildschirm-Datei eine
Auflösung von 320 mal 200 Pixeln oder weniger besitzen, damit
Standard-VGA Geräte damit arbeiten können.Um grössere Bilder bis zu einer maximalen Auflösung
von 1024 mal 768 Pixeln zu verwenden, muss Unterstützung
für VESA in &os; enthalten sein. Dies kann
durch das Laden des VESA-Moduls während
des Systemstarts geschehen, oder durch Hinzufügen der
VESA-Kernelkonfigurationsoption und
anschliessendem Bau des Kernels (Lesen Sie dazu ). Die
VESA-Unterstützung ermöglicht es den
Benutzern, Willkommensbildschirme als Vollbild anzuzeigen, die den
gesamten Bildschirm ausfüllen.Wenn der Willkommensbildschirm beim Bootvorgang angezeigt wird,
kann dieser jederzeit mit einem beliebigen Tastendruck ausgeschaltet
werden.Der Willkommensbildschirm ist standardmässig so
eingestellt, dass er als Bildschirmschoner ausserhalb von X11
verwendet wird. Nach einer bestimmten Zeit der Untätigkeit
wird der Willkommensbildschirm angezeigt und wechselt durch
verschiedene Stufen der Intensität von hell zu einem
sehr dunklen Bild und wieder zurück. Dieses Verhalten des
Standard-Willkommensbildschirms (Screen-Saver) kann durch
hinzufügen einer saver=-Zeile in
/etc/rc.conf geändert werden. Die Option
saver= besitzt mehrere eingebaute Screen-Saver,
aus denen man wählen kann, und deren komplette Liste in der
&man.splash.4;-Manualpage enthalten ist. Der Standard-Screen-Saver
ist warp. Beachten Sie, dass sich die
saver=-Option in
/etc/rc.conf nur auf virtuelle Konsolen
bezieht. Sie hat keinen Effekt auf X11-Display-Manager.Ein paar Nachrichten des Bootloaders und ganz besonders das
Menü mit den Bootoptionen und dem Warte-Countdown werden
zur Bootzeit angezeigt, selbst wenn der Willkommensbildschirm
aktiviert ist.Dateien mit Beispiel-Willkommensbildschirmen können von
der Galerie auf http://artwork.freebsdgr.orgb heruntergeladen werden.
Durch die Installation des Ports sysutils/bsd-splash-changer können
Willkommensbildschirme von einer zufällig ausgewählten
Sammlung von Bildern bei jedem Neustart angezeigt werden.Aktivieren der Willkommensbildschirm-FunktionalitätDie Willkommensbildschirm-Datei (.bmp,
.pcx oder .bin) muss
im Wurzelverzeichnis, z.B. /boot abgelegt werden.Für die Standard-Auflösung (256-Farben, 320 mal
200 Pixel oder weniger) beim Booten bearbeiten Sie die Datei
/boot/loader.conf, so dass diese die
folgenden Zeilen enthält:splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"Für grössere Video-Auflösungen bis zum Maximum
von 1024 mal 768 Pixeln ändern Sie die Datei
/boot/loader.conf, damit diese die folgenden
Zeilen enthält:vesa_load="YES"
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"Das Beispiel oben nimmt an, dass
/boot/splash.bmp
als Willkommensbildschirm verwendet wird. Wenn eine
PCX-Datei verwendet werden soll, benutzen Sie
die folgenden Zeilen, inklusive der
vesa_load="YES"-Zeile, abhängig von der
Auflösung.splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"In der Version 8.3 kann als weitere Option ascii-Kunst im
TheDraw
Format verwendet werden.splash_txt="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bin"Wie das Beispiel oben demonstriert, ist der Dateiname nicht auf
splash beschränkt. Es ist beliebig, so lange
es den Dateityp BMP oder PCX
besitzt, z.B.
splash_640x400.bmp
oder
blue_wave.pcx.Weitere interessante Optionen für
loader.conf sind:beastie_disable="YES"Diese Option verhindert die Anzeige des Menüs mit
den Bootoptionen, aber der Countdown ist immer noch aktiv.
Selbst wenn das Bootmenü deaktiviert ist, kann
während des Countdowns eine der korrespondierenden
Optionen ausgewählt werden.loader_logo="beastie"Dies ersetzt die Standardanzeige des Wortes
&os;. Stattdessen wird wie in der Vergangenheit
auf der rechten Seite des Bootmenüs das bunte Beastie-Logo
angezeigt.Für weitere Informationen lesen Sie die Manualpages
&man.splash.4;, &man.loader.conf.5; und &man.vga.4;.Kernel Interaktion während des BootprozessesKernelboot interactionWenn der Kernel einmal geladen ist, entweder durch den Loader (die Standardmethode) oder
durch boot2 (den Loader
umgehend), verhält sich gemäß seiner Boot-Flags, falls es
welche gibt.Kernel Boot-FlagsKernelbootflagsEs folgt eine Auflistung der gebräuchlichsten
Boot-Flags:Bewirkt, dass der Benutzer während der
Kernel-Initialisierung gefragt wird, welches Gerät als
Root-Dateisystem gemounted werden soll.Es wird von CD-ROM gebootet.UserConfig, das Boot-Zeit Konfigurationsprogramm,
wird gestartet.Bewirkt den Start des Single-User Modus.Zeigt mehr Informationen während des Starten des
Kernels an.Andere Boot-Flags sind in der Hilfeseite
&man.boot.8; erläutert.TomRhodesBeigetragen von Konfiguration von Gerätendevice.hintsDer Boot-Loader liest während des Systemstarts die Datei
&man.device.hints.5;, die Variablen, auch device hints
genannt, zur Konfiguration von Geräten enthält.Die Variablen können auch mit Kommandos in der Phase 3 des Boot-Loaders bearbeitet
werden. Neue Variablen werden mit set gesetzt,
unset löscht schon definierte Variablen und
show zeigt Variablen an. Variablen aus
/boot/device.hints können zu diesem Zeitpunkt
überschrieben werden. Die hier durchgeführten Änderungen
sind nicht permanent und beim nächsten Systemstart nicht mehr
gültig.Nach dem Systemstart können alle Variablen mit &man.kenv.1;
angezeigt werden.Pro Zeile enthält /boot/device.hints eine
Variable. Kommentare werden, wie üblich, durch
# eingeleitet. Die verwendete Syntax
lautet:hint.driver.unit.keyword="value"Der Boot-Loader verwendet die nachstehende Syntax:set hint.driver.unit.keyword=valueDer Gerätetreiber wird mit driver,
die Nummer des Geräts mit unit
angegeben. keyword ist eine Option aus
der folgenden Liste:: Gibt den Bus, auf dem sich das
Gerät befindet, an.: Die Startadresse des
I/O-Bereichs.: Gibt die zu verwendende
Unterbrechungsanforderung (IRQ) an.: Die Nummer des DMA Kanals.: Die physikalische Speicheradresse des
Geräts.: Setzt verschiedene
gerätespezifische Optionen.: Deaktiviert das Gerät, wenn
der Wert auf 1 gesetzt wird.Ein Gerätetreiber kann mehr Optionen, als die hier
beschriebenen, besitzen oder benötigen. Schlagen Sie die
Optionen bitte in der Online-Hilfe des Treibers nach. Weitere
Informationen erhalten Sie in &man.device.hints.5;, &man.kenv.1;,
&man.loader.conf.5; und &man.loader.8;.Init: Initialisierung der Prozess-KontrolleinitNachdem der Kernel den Bootprozess abgeschlossen hat,
übergibt er die Kontrolle an den Benutzer-Prozess
&man.init.8;. Dieses Programm befindet sich in
/sbin/init, oder dem Pfad, der durch die
Variable init_path im Loader
spezifiziert wird.Der automatische Reboot-VorgangDer automatische Reboot-Vorgang stellt sicher, dass alle
Dateisysteme des Systems konsistent sind. Falls dies nicht der
Fall ist und die Inkonsistenz nicht durch
&man.fsck.8; behebbar ist, schaltet
&man.init.8; das System in den Single-User Modus, damit der
Systemadministrator sich des Problems annehmen kann.Der Single-User ModusSingle-User ModusKonsoleDas Schalten in diesen Modus kann erreicht werden durch den automatischen
Reboot-Vorgang, durch das Booten mit der Option
oder das Setzen der
boot_single Variable in
Loader.Weiterhin kann der Single-User Modus aus dem Mehrbenutzermodus heraus durch
den Befehl &man.shutdown.8; ohne die reboot
() oder halt () Option
erreicht werden.Falls die System-Konsole (console) in
/etc/ttys auf insecure
(dt.: unsicher) gesetzt ist, fordert das System allerdings zur
Eingabe des Passworts von root auf,
bevor es den Single-User Modus aktiviert.Auf insecure gesetzte Konsole in
/etc/ttys# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecureEine Konsole sollte auf insecure
gesetzt sein, wenn die physikalische Sicherheit der Konsole
nicht gegeben ist und sichergestellt werden soll, dass nur
Personen, die das Passwort von root kennen,
den Single-User Modus benutzen können. Es bedeutet nicht,
dass die Konsole "unsicher" laufen wird. Daher sollte man
insecure wählen, wenn man auf Sicherheit
bedacht ist, nicht secure.MehrbenutzermodusMehrbenutzermodusStellt &man.init.8; fest, dass das Dateisystem
in Ordnung ist, oder der Benutzer den Single-User Modus beendet,
schaltet das System in den Mehrbenutzermodus, in dem dann die
Ressourcen Konfiguration des Systems gestartet wird.Ressourcen Konfiguration, rc-Dateienrc-DateienDas Ressourcen Konfigurationssystem (engl.
resource configuration, rc)
liest seine Standardkonfiguration von
/etc/defaults/rc.conf und
System-spezifische Details von
/etc/rc.conf. Dann mountet es die
Dateisysteme gemäß /etc/fstab, startet
die Netzwerkdienste, diverse System Daemons und führt
schließlich die Start-Skripten der lokal installierten
Anwendungen aus.Die &man.rc.8; Handbuch Seite ist eine gute Quelle für
Informationen über das Ressourcen Konfigurationssystem und
ebenso über die Skripte an sich.Der Shutdown-VorgangshutdownIm Falle eines regulären Herunterfahrens durch
&man.shutdown.8; führt &man.init.8;
/etc/rc.shutdown aus, sendet dann
sämtlichen Prozessen ein TERM Signal und
schließlich ein KILL Signal an alle Prozesse,
die sich nicht schnell genug beendet haben.FreeBSD-Systeme, die Energieverwaltungsfunktionen
unterstützen, können Sie mit dem Kommando
shutdown -p now ausschalten. Zum Neustart des
Systems benutzen Sie shutdown -r now. Das
Kommando &man.shutdown.8; kann nur von root oder
Mitgliedern der Gruppe operator benutzt
werden. Sie können auch die Kommandos &man.halt.8; und
&man.reboot.8; verwenden. Weitere Informationen finden Sie in den
Hilfeseiten der drei Kommandos.Unter FreeBSD müssen Sie die
&man.acpi.4;-Unterstützung im Kernel aktivieren oder das Modul
geladen haben, damit Sie die Energieverwaltungsfunktionen benutzen
können.
diff --git a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml
index 7af2b8c6b8..0437b781b6 100644
--- a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml
+++ b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.xml
@@ -1,3490 +1,3438 @@
JimMockUmstrukturiert und aktualisiert von JordanHubbardIm Original von Poul-HenningKampJohnPolstraNikClaytonMartinHeinenÜbersetzt von &os; aktualisierenÜbersicht&os; wird zwischen einzelnen Releases ständig weiter
entwickelt. Manche Leute bevorzugen die offiziellen Release-Versionen,
während andere wiederum lieber auf dem aktuellen Stand der
Entwicklung bleiben möchten. Wie dem auch sei, sogar offizielle
Release-Versionen werden oft mit Sicherheitsaktualisierungen und
anderen kritischen Fehlerbereinigungen versorgt. Unabhängig von
der eingesetzten Version bringt &os; alle nötigen Werkzeuge mit,
um ihr System aktuell zu halten und es innerhalb verschiedener
Versionen zu aktualisieren. Dieses Kapitel hilft Ihnen bei der
Entscheidung, ob Sie mit dem Entwicklungssystem Schritt halten oder
ein Release verwenden wollen. Die zugrundeliegenden Werkzeuge um
Ihr System aktuell zu halten werden ebenfalls vorgestellt.Nachdem Sie dieses Kapitel gelesen haben, werden Siewissen, welche Werkzeuge verwendet werden können, um das
System und die Port-Sammlung zu aktualisieren.wissen, wie Sie Ihr System mit
freebsd-update,
CVSup,
CVS oder
CTM
aktualisieren.wissen, wie man das aktuell installierte System mit einer
ursprünglichen Version vergleicht.wissen, wie Sie ihre Dokumentation mit
CVSup oder Dokumentations-Ports
aktuell halten können.den Unterschied zwischen den beiden Entwicklungszweigen
&os.stable; und &os.current; kennen.Wissen, wie Sie das komplette Basissystem mit make
buildworld neu bauen und installieren.Bevor Sie dieses Kapitel lesen, sollten SieIhr Netzwerk richtig konfiguriert haben
() undwissen, wie Sie Software Dritter installieren
().Im gesamten Kapitel wird der Befehl cvsup
verwendet, um die &os; Quellen zu beziehen und zu aktualisieren. Um es
zu verwenden, benötigen Sie einen Port oder ein Paket wie
net/cvsup (falls Sie den
graphischen cvsup-Client nicht benötigen,
können Sie auch nur den Port
net/cvsup-without-gui installieren).
Alternativ können Sie auch &man.csup.1; verwenden, das bereits
Teil des Basissystems ist.TomRhodesGeschrieben von ColinPercivalBasierend auf bereitgestellten Mitschriften von BenedictReuschlingÜbersetzt von &os;-UpdateUpdating and Upgradingfreebsd-updateupdating-upgradingDas Einspielen von Sicherheitsaktualisierungen ist ein wichtiger
Bestandteil bei der Wartung von Computersoftware, besonders wenn es um
das Betriebssystem geht. Für lange Zeit war dieser Prozess unter
&os; nicht einfach. Fehlerbehebungen mussten auf den Quellcode
angewendet werden, danach wurde der Code zu neuen Binärdateien
übersetzt und schliesslich mussten diese Dateien neu installiert
werden.Das ist seit längerem nicht mehr der Fall, da &os; jetzt ein
Werkzeug namens freebsd-update enthält. Dieses
Werkzeug bringt zwei getrennte Funktionen mit sich. Die erste Funktion
ermöglicht die Anwendung von Sicherheitsaktualisierungen im
Binärformat auf das &os; Basissystem, ohne dieses neu zu
übersetzen und zu installieren. Die zweite Funktion
unterstützt Aktualisierungen zwischen Haupt- und
Unterversionen.Binäre Aktualisierungen sind für alle Architekturen und
Releases verfügbar, die aktuell vom &os; Security Team betreut
werden. Vor
der Aktualisierung auf eine neue Release-Version sollten die aktuellen
Ankündigungen zu dem Release gelesen werden, da diese wichtige
Informationen zu der gewünschten Version enthalten. Diese
Ankündigungen finden Sie unter dem folgenden Link: .Wenn eine crontab existiert, welche die
Eigenschaften von freebsd-update verwendet, muss diese
deaktiviert werden, bevor die folgende Aktion gestartet wird.Die KonfigurationsdateiManche Anwender möchten sicherlich Einstellungen in der
Standard-Konfigurationsdatei unter
/etc/freebsd-update.conf vornehmen, um
bessere Kontrolle über den
gesamten Prozess zu besitzen. Die Optionen sind sehr gut dokumentiert,
jedoch benötigen die folgenden ein paar zusätzliche
Erklärungen:# Components of the base system which should be kept updated.
Components src world kernelDieser Parameter kontrolliert, welche Teile von &os; auf dem
aktuellen Stand gehalten werden sollen. Die Voreinstellung ist es, den
Quellcode zu aktualisieren, das gesamte Basissystem sowie den Kernel.
Die Komponenten sind die gleichen wie während der Installation,
also würde beispielsweise das hinzufügen von
world/games an dieser Stelle es erlauben,
Aktualisierungen für Spiele anzuwenden.
Die Verwendung von src/bin erlaubt es, den
Quellcode in src/bin aktuell zu
halten.Die beste Einstellung ist, diese Option so zu belassen, da eine
Änderung es bedingt, dass man als Benutzer jede Komponente
auflisten muss, die aktualisiert werden soll. Dies könnte
katastrophale Folgen nach sich ziehen, da der Quellcode und die
Binärdateien dadurch nicht mehr synchron wären.# Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePathsFügen Sie Pfade wie /bin oder /sbin hinzu, um diese speziellen
Verzeichnisse während des Aktualisierungsprozesses unberührt
zu lassen. Diese Option kann verwendet werden, um zu verhindern, dass
freebsd-update lokale Änderungen
überschreibt.# Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profileAktualisieren Sie Konfigurationsdateien in den angegebenen
Verzeichnissen nur, wenn diese nicht geändert wurden. Jegliche
Änderung, die der Benutzer daran vorgenommen hat, wird die
automatische Aktualisierung dieser Dateien ungültig machen.
Es gibt eine weitere Option KeepModifiedMetadata,
die freebsd-update instruiert, die Änderungen
während der Zusammenführung zu speichern.# When upgrading to a new &os; release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /var/named/etc/Eine Liste von Verzeichnissen mit Konfigurationsdateien, in denen
freebsd-update Zusammenführungen versuchen
soll. Dieser Verschmelzungsprozess von Dateien ist eine Serie von
&man.diff.1;-Korrekturen, ähnlich wie &man.mergemaster.8; mit
weniger Optionen. Die Änderungen werden entweder akzeptiert,
öffnen einen Editor oder freebsd-update bricht
ab. Wenn Sie im Zweifel sind, sichern Sie das /etc Verzeichnis und akzeptieren einfach
die Änderungen. Lesen Sie , um
Informationen über das mergemaster-Kommando
zu erhalten.# Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-updateIn diesem Verzeichnis werden alle Korrekturen und temporären
Dateien abgelegt. Für Fälle in denen der Anwender eine
Versionsaktualisierung vornimmt, sollte diesem Verzeichnis mindestens
ein Gigabyte Festplattenspeicher zur Verfügung stehen.# When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents noWenn dies auf yes gesetzt ist, wird
freebsd-update annehmen, dass die
Components-Liste vollständig ist und nicht
versuchen, Änderungen ausserhalb dieser Liste zu tätigen.
Tatsächlich wird freebsd-update versuchen, jede
Datei zu aktualisieren, die zu der Components-Liste
gehört.SicherheitsaktualisierungenSicherheitsaktualisierungen sind auf einer entfernten Maschine
abgelegt und können durch das folgende Kommando heruntergeladen
und installiert werden:&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update installWenn irgendeine Änderung auf den Kernel angewendet wurde
benötigt das System einen Neustart. Wenn alles gut verlaufen ist,
sollte das System aktualisiert sein und
freebsd-update kann als nächtlicher
&man.cron.8;-Job ablaufen. Ein Eintrag in der Datei
/etc/crontab ist für diese Aufgabe
ausreichend:@daily root freebsd-update cronDieser Eintrag besagt, dass einmal am Tag
freebsd-update ausgeführt wird. Auf diese
Weise kann freebsd-update nur durch die Verwendung
des -Arguments prüfen, ob Aktualisierungen
vorliegen. Wenn Korrekturen existieren, werden diese automatisch auf
die lokale Festplatte heruntergeladen, aber nicht eingespielt. Der
root-Benutzer bekommt eine Nachricht, damit dieser
die Korrekturen manuell installiert.Sollte irgendetwas schief gelaufen sein, kann
freebsd-update den letzten Satz von Änderungen
mit dem folgenden Befehl zurückrollen:&prompt.root; freebsd-update rollbackSobald dieser Vorgang abgeschlossen ist, sollte das System neu
gestartet werden, wenn der Kernel oder ein beliebiges Kernelmodul
geändert wurde. Dies ermöglicht es &os;, die neuen
Binärdateien in den Hauptspeicher zu laden.Das freebsd-update-Werkzeug kann nur den
GENERIC-Kernel automatisch aktualisieren. Wenn
ein selbstkonfigurierter Kernel verwendet wird, muss dieser neu
erstellt und installiert werden, nachdem
freebsd-update den Rest der Aktualisierungen
durchgeführt hat. Allerdings wird
freebsd-update den
GENERIC-Kernel in /boot/GENERIC erkennen und aktualisieren
(falls dieser existiert), sogar dann, wenn dies nicht der
aktuell verwendete Kernel des Systems ist.Es ist eine gute Idee, immer eine Kopie des
GENERIC-Kernels in /boot/GENERIC aufzubewahren. Das wird
bei der Diagnose von verschiedenen Problemen eine grosse Hilfe sein,
sowie bei der Durchführung von Versionsaktualisierungen mit
freebsd-update, wie in beschrieben ist.Solange die Standardkonfiguration in
/etc/freebsd-update.conf nicht geändert
wurde, wird freebsd-update die aktualisierten
Quellcodedateien des Kernels zusammen mit dem Rest der Neuerungen
installieren. Die erneute Übersetzung und Installation ihres
neuen, selbstkonfigurierten Kernels kann dann auf die übliche
Art und Weise durchgeführt werden.Die Aktualisierungen, die über
freebsd-update verteilt werden, betreffen nicht
immer den Kernel. Es ist nicht notwendig, den selbstkonfigurierten
Kernel neu zu erstellen, wenn die Kernelquellen nicht durch die
Ausführung von freebsd-update install
geändert wurden. Allerdings wird
freebsd-update auf alle Fälle die Datei
/usr/src/sys/conf/newvers.sh aktualisieren.
Der aktuelle Patch-Level (angegeben durch die
-p-Nummer, die von dem Kommando uname
-r ausgegeben wird) wird aus dieser Datei ausgelesen.
Die Neuinstallation des selbstkonfigurierten Kernels, selbst wenn
sich daran nichts geändert hat, erlaubt es &man.uname.1;, den
aktuellen Patch-Level des Systems korrekt wiederzugeben. Dies ist
besonders hilfreich, wenn mehrere Systeme gewartet werden, da es
eine schnelle Einschätzung der installierten Aktualisierungen in
jedem einzelnen System ermöglicht.Aktualisierungen an Haupt- und UnterversionenDieser Prozess entfernt alte Objekt-Dateien und Bibliotheken, was
dazu führt, dass die meisten Anwendungen von Drittherstellern
nicht mehr funktionieren. Es wird empfohlen, dass alle installierten
Ports entweder entfernt und neu installiert oder zu einem späteren
Zeitpunkt mittels ports-mgmt/portupgrade aktualisiert werden.
Die meisten Anwender werden wahrscheinlich einen Testlauf mittels des
folgenden Kommandos durchführen wollen:&prompt.root; portupgrade -afDies sorgt dafür, dass alles korrekt neu installiert wird.
Beachten Sie, dass das Setzen der
BATCH-Umgebungsvariable auf yes
während dieses Prozesses auf jede Eingabe mit
ja antwortet, was es nicht mehr notwendig macht,
manuell eingreifen zu müssen.Wenn ein selbstkonfigurierter Kernel verwendet wird, ist der
Aktualisierungsprozess ein kleines bisschen aufwändiger. Eine
Kopie des GENERIC-Kernels wir benötigt und
sollte in /boot/GENERIC abgelegt
sein. Wenn der GENERIC-Kernel nicht bereits im
System vorhanden ist, kann dieser über eine der folgenden Methoden
bezogen werden:Wenn ein eigener Kernel genau einmal gebaut wurde, ist der
Kernel im Verzeichnis /boot/kernel.old in Wirklichkeit der
GENERIC-Kernel. Benennen Sie einfach dieses
Verzeichnis in /boot/GENERIC um.Angenommen, direkter Zugriff auf die Maschine ist möglich,
so kann eine Kopie des GENERIC-Kernels von den
CD-ROM-Medien installiert werden. Legen Sie die Installations-CD
ein und benutzen Sie die folgenden Befehle:&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERICErsetzen Sie X.Y-RELEASE
mit der richtigen Version der Veröffentlichung, die Sie
verwenden. Der GENERIC-Kernel wird
standardmässig in /boot/GENERIC installiert.Falls alle obigen Schritte fehlschlagen, kann der
GENERIC-Kernel folgendermassen aus den Quellen
neu gebaut und installiert werden:&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/bootDamit dieser Kernel als GENERIC-Kernel von
freebsd-update erkannt wird, darf die
GENERIC-Konfigurationsdatei in keiner Weise
geändert worden sein. Es wird ebenfalls empfohlen, dass
dieser ohne irgendwelche speziellen Optionen erstellt wird
(bevorzugt mit einer leeren
/etc/make.conf).Der Neustart in den GENERIC-Kernel ist zu
diesem Zeitpunkt nicht notwendig.Aktualisierungen an Haupt- und Unterversionen können
durchgeführt werden, wenn man freebsd-update
eine Release-Version als Ziel übergibt. Beispielsweise wird das
folgende Kommando das System auf &os; 8.1 aktualisieren:&prompt.root; freebsd-update -r 8.1-RELEASE upgradeNachdem das Kommando empfangen wurde, überprüft
freebsd-update die Konfigurationsdatei und das
aktuelle System, um die nötigen Informationen für die
Systemaktualisierung zu sammeln. Eine Bildschirmausgabe wird anzeigen,
welche Komponenten erkannt und welche nicht erkannt wurden.
Zum Beispiel:Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? yAn diesem Punkt wird freebsd-update versuchen,
alle notwendigen Dateien für die Aktualisierung herunter zu laden.
In manchen Fällen wird der Benutzer mit Fragen konfrontiert, um
festzustellen, was installiert werden soll oder auf welche Art und
Weise fortgesetzt werden soll.Wenn ein selbstkonfigurierter Kernel benutzt wird, produziert der
vorherige Schritt eine Warnung ähnlich zu der folgenden:WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"Diese Warnung kann an dieser Stelle problemlos ignoriert
werden. Der aktualisierte GENERIC-Kernel wird als
ein Zwischenschritt im Aktualisierungsprozess verwendet.Nachdem alle Korrekturen auf das lokale System heruntergeladen
wurden, werden diese nun eingespielt. Dieser Prozess kann eine gewisse
Zeit in Anspruch nehmen, abhängig von der Geschwindigkeit und
Auslastung der Maschine. Konfigurationsdateien werden ebenfalls
zusammengefügt - dieser Teil der Prozedur benötigt einige
Benutzereingaben, da eine Datei möglicherweise von Hand
zusammengefasst werden muss oder ein Editor erscheint auf dem
Bildschirm zum manuellen bearbeiten. Die Ergebnisse von jeder
erfolgreichen Zusammenfassung werden dem Benutzer angezeigt,
während der Prozess weiterläuft. Eine fehlgeschlagene oder
ignorierte Zusammenfassung wird den Prozess sofort beenden. Benutzer
sollten eine Sicherung von /etc
anlegen und wichtige Dateien später manuell vereinen,
beispielsweise master.passwd oder
group.Das System ist noch nicht verändert worden, alle Korrekturen
und Vereinigungen sind in einem anderen Verzeichnis vorgenommen
worden. Wenn alle Korrekturen erfolgreich eingespielt, alle
Konfigurationsdateien zusammengefügt wurden und es den Anschein
hat, dass der Prozess problemlos verlaufen wird, müssen die
Änderungen vom Anwender noch angewendet werden.Sobald dieser Prozess abgeschlossen ist, können die
Aktualisierungen über das folgende Kommando auf die Platte
geschrieben werden:&prompt.root; freebsd-update installDer Kernel und die Module werden zuerst aktualisiert. Zu diesem
Zeitpunkt muss die Maschine neu gestartet werden. Wenn das System
einen selbstkonfigurierten Kernel verwendet, benutzen Sie das
&man.nextboot.8;-Kommando, um den Kernel für den nächsten
Neustart auf /boot/GENERIC zu
setzen (welcher aktualisiert wurde):&prompt.root; nextboot -k GENERICBevor mit dem GENERIC-Kernel das System neu
gestartet wird, vergewissern Sie sich, dass alle notwendigen Treiber
für ihr System enthalten sind, um korrekt zu starten (und
schliessen Sie ihn ans Netzwerk an, falls auf die Maschine, die
aktualisiert wird, von der Ferne aus zugegriffen wird). Achten Sie
besonders darauf, dass wenn der vorherige selbstkonfigurierte Kernel
Funktionalität beinhaltet, die von Kernelmodulen zur
Verfügung gestellt wurde, dass diese temporär in den
GENERIC-Kernel über die Datei
/boot/loader.conf übernommen werden.
Sie sollten ebenfalls nicht benötigte Dienste, eingehängte
Platten, verbundene Netzlaufwerke, usw. deaktivieren, bis der
Aktualisierungsprozess abgeschlossen ist.Die Maschine sollte nun mit dem aktualisierten Kernel neu
gestartet werden:&prompt.root; shutdown -r nowSobald das System wieder hochgefahren wurde, muss
freebsd-update erneut gestartet werden. Der Zustand
des Prozesses wurde zuvor gesichert und deshalb wird
freebsd-update nicht von vorne beginnen, jedoch alle
alten Shared-Libraries und Objektdateien löschen. Um zu diesem
Zustand zu gelangen, setzen Sie das folgende Kommando ab:&prompt.root; freebsd-update installAbhängig davon, ob irgendwelche Bibliotheksversionen
erhöht wurden, kann es sein, dass nur zwei Installationsphasen
anstatt drei durchlaufen werden.Nun muss alle Drittanbieter-Software neu erstellt und neu
installiert werden. Dies ist notwendig, da die installierte Software
möglicherweise Abhängigkeiten zu Bibliotheken enthält,
die während der Aktualisierung entfernt wurden. Der ports-mgmt/portupgrade-Befehl kann verwendet
werden, um diesen Vorgang zu automatisieren. Die folgenden Kommandos
können verwendet werden, um diesen Prozess zu starten:&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -afSobald dies abgeschlossen ist, beenden Sie den
Aktualisierungsprozess mit einem letzten Aufruf von
freebsd-update. Geben Sie den folgenden Befehl ein,
um alle losen Enden des Aktualisierungsprozesses miteinander zu
verknüpfen:&prompt.root; freebsd-update installWenn der GENERIC-Kernel temporär
Verwendung fand, ist dies der richtige Zeitpunkt, einen neuen,
selbstkonfigurierten Kernel zu bauen und über die übliche
Methode zu installieren.Booten Sie anschliessend die Maschine in die neue &os;-Version.
Der Prozess ist damit abgeschlossen.Vergleich des SystemzustandsDas freebsd-update-Werkzeug kann verwendet
werden, um den Zustand der installierten &os;-Version gegenüber
einer bekannten und funktionierenden Kopie zu vergleichen. Diese
Option vergleicht die aktuelle Version von Systemwerkzeugen,
Bibliotheken und Konfigurationsdateien. Um diesen Vergleich zu
starten, geben Sie den folgenden Befehl ein:&prompt.root; freebsd-update IDS >> outfile.idsObwohl der Befehlsname IDS lautet, sollte er
in keiner Weise als Ersatz für ein Intrusion Detection System
wie security/snort angesehen
werden. Da freebsd-update seine Daten auf Platte
ablegt, ist die Möglichkeit von Verfälschungen
offensichtlich. Obwohl diese Möglichkeit durch die Verwendung
von kern.securelevel oder die Ablage von
freebsd-update auf einem Nur-Lese Dateisystem,
wenn es gerade nicht gebraucht wird, eingedämmt werden kann,
besteht eine bessere Lösung darin, das System gegen ein
gesichertes Medium, wie eine DVD oder einen
externen, separat aufbewahrten
USB-Plattenspeicher, zu vergleichen.Das System wird jetzt untersucht und eine Liste von Dateien
ausgegeben, zusammen mit deren &man.sha256.1;-Hashwerten, sowohl der
von der Release-Version bekannte Wert als auch der des aktuell
installierten Systems. Das ist der Grund dafür, warum die Ausgabe
an die Datei outfile.ids geschickt wurde. Es
scrollt zu schnell vorbei, um diese mit den Augen zu vergleichen und
bald wird auch der Konsolenpuffer damit überfüllt.Diese Zeilen sind dazu noch extrem lang, aber das Ausgabeformat
kann sehr einfach verarbeitet werden. Um beispielsweise eine Liste von
allen Dateien zu erhalten, die sich vom aktuellen Release
unterscheiden, geben Sie das folgende Kommando ein:&prompt.root; cat outfile.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.confDiese Ausgabe wurde abgeschnitten, es existieren noch viel mehr
Dateien dazu. Manche dieser Dateien besitzen ganz
selbstverständliche Veränderungen,
/etc/passwd wurde beispielsweise geändert,
um Benutzer zum System hinzuzufügen. In manchen Fällen kann
es anderen Dateien wie Kernelmodule geben, welche sich geändert
haben, weil freebsd-update diese aktualisiert hat.
Um bestimmte Dateien oder Verzeichnisse auszuschliessen, hängen
Sie diese an die IDSIgnorePaths-Option in
/etc/freebsd-update.conf an.Diese Vorgehensweise kann als Teil einer ausgeklügelten
Aktualisierungsmethode benutzt werden, unabhängig von der zuvor
angesprochenen Variante.TomRhodesGeschrieben von ColinPercivalBasierend auf bereitgestellten Mitschriften von BenedictReuschlingÜbersetzt von Portsnap: Ein Werkzeug zur Aktualisierung der Ports-SammlungUpdating and UpgradingPortsnapUpdating and UpgradingDas Basissystem von &os; enthält auch ein Programm zum
Aktualisieren der Ports-Sammlung: das &man.portsnap.8; Werkzeug. Wenn
es ausgeführt wird, verbindet es sich mit einem entfernten Rechner,
überprüft den Sicherungsschlüssel und lädt eine neue
Kopie der Ports-Sammlung herunter. Der Schlüssel wird dazu
verwendet, um die Integrität aller heruntergeladenen Dateien zu
prüfen und um sicherzustellen, dass diese unterwegs nicht
verändert wurden. Um die aktuellsten Dateien der Ports-Sammlung
herunter zu laden, geben Sie das folgende Kommando ein:&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.Dieses Beispiel zeigt, dass &man.portsnap.8; mehrere Korrekturen
für die aktuellen Ports-Daten gefunden und verifiziert hat. Es
zeigt auch, dass das Programm zuvor schon einmal gestartet wurde.
Wäre es das erste Mal, würde nur die Ports-Sammlung
heruntergeladen werden.Wenn &man.portsnap.8; erfolgreich die
fetch-Operation abgeschlossen hat, befinden sich die
Ports-Sammlung und die dazugehörigen Korrekturen auf dem lokalen
System, welches die Überprüfung bestanden hat. Wenn Sie
portsnap das erste Mal ausgeführt haben,
müssen Sie den Befehl portsnap extract
verwenden, um die Ports-Sammlung zu installieren:&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...Um Ihre bereits installierte Ports-Sammlung zu aktualisieren,
verwenden Sie hingegen den Parameter update:&prompt.root; portsnap updateDer Prozess ist jetzt abgeschlossen und Anwendungen können
mittels der aktuellen Ports-Sammlung installiert oder aktualisiert
werden.Die Operationen fetch und
extract oder update können
auch nacheinander ausgeführt werden, wie im folgenden Beispiel
gezeigt:&prompt.root; portsnap fetch updateDieser Befehl lädt die aktuelle Version der Ports-Sammlung
herunter und aktualisiert anschließend Ihre lokale Version
im Verzeichnis /usr/ports.BenedictReuschlingÜbersetzt von Aktualisieren der DokumentationssammlungUpdating and UpgradingDocumentationUpdating and UpgradingNeben dem Basissystem und der Ports-Sammlung ist die Dokumentation
ein wichtiger Bestandteil des &os; Betriebssystems. Obwohl eine aktuelle
Version der &os; Dokumentation jederzeit auf der &os; Webseite verfügbar
ist, verfügen manche Benutzer nur über eine langsame oder
überhaupt keine Netzwerkverbindung. Glücklicherweise gibt es
mehrere Möglichkeiten, die Dokumentation, welche mit jeder Version
ausgeliefert wird, zu aktualisieren, indem eine lokale Kopie der
aktuellen &os;-Dokumentationssammlung verwendet wird.Verwenden von CVSup um die Dokumentation zu aktualisierenDie Quellen und die installierte Kopie der &os; Dokumentation
kann mittels CVSup aktualisiert werden,
indem ein ähnlicher Mechanismus angewendet wird, wie derjenige
für die Betriebssystemquellen (vergleichen Sie mit ). Dieser Abschnitt beschreibt:Wie die Dokumentations-Werkzeugsammlung installiert wird,
welche die Werkzeuge enthält, die nötig sind, um die
&os; Dokumentation aus den Quellen neu zu erstellen.Wie man eine Kopie der Dokumentationsquellen nach /usr/doc herunterlädt, unter
Verwendung von CVSup.Wie man die &os; Dokumentation aus den Quellen baut und unter
/usr/share/doc
installiert.Manche der Optionen zum Erstellen, die vom System zum Bauen der
Dokumentation unterstützt werden, z.B. die Optionen welche nur
ein paar der unterschiedlichen Sprachübersetzungen der
Dokumentation erstellen oder die Optionen, die ein bestimmtes
Ausgabeformat auswählen.CVSup und die Werkzeugsammlung der Dokumentation
installierenDie &os; Dokumentation aus dem Quellen zu erstellen benötigt
eine ziemlich grosse Anzahl an Werkzeugen. Diese Werkzeuge sind nicht
Teil des &os; Basissystems, da sie eine grosse Menge an Plattenplatz
verbrauchen und nicht von allen &os;-Anwendern benötigt werden.
Sie sind nur für diejenigen Benutzer notwendig, die aktiv an neuer
Dokumentation fü &os; schreiben oder häufig ihre
Dokumentation aus den Quellen bauen lassen.Alle benötigten Werkzeuge sind als Teil der Ports-Sammlung
verfügbar. Der Port textproc/docproj dient als Masterport, der
vom &os; Documentation Project entwickelt wurde, um die initiale
Installation und zukünftige Aktualisierungen dieser Werkzeuge zu
vereinfachen.Wenn Sie die Dokumentation nicht als &postscript; oder PDF
benötigen, können Sie alternativ die Installation des
textproc/docproj-nojadetex-Ports
in Erwägung ziehen. Diese Version der
Dokumentations-Werkzeugsammlung enthält alles ausser das
teTeX-Textsatzsystem.
teTeX ist eine sehr grosse Sammlung an
Werkzeugen, deshalb ist es vernünftig, deren Installation
auszulassen, wenn die Ausgabe von PDF nicht unbedingt gebraucht
wird.Für weitere Informationen über das Installieren und
Verwenden von CVSup, lesen Sie CVSup verwenden.Die Dokumentationsquellen aktualisierenDas Programm CVSup kann eine saubere
Kopie der Dokumentationsquellen holen, indem es die Datei
/usr/share/examples/cvsup/doc-supfile als
Konfigurationsvorlage verwendet. Der Standard-Host zum Aktualisieren
ist auf einen Platzhalterwert im doc-supfile
gesetzt, aber &man.cvsup.1; akzeptiert auch einen Hostnamen über
die Kommandozeile. Somit können die Dokumentationsquellen von
einem der CVSup-Server geholt werden, indem
man eingibt:&prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfileÄndern Sie cvsup.FreeBSD.org auf
den Ihnen am nächsten gelegenen
CVSup-Server. Eine vollständige Liste
von Spiegelservern finden Sie unter .Es dauert eine Weile, wenn die Dokumentationsquellen das allererste
Mal heruntergeladen werden. Lassen Sie es laufen, bis es fertig
ist.Zukünftige Aktualisierungen der Dokumentationsquellen
können Sie über den gleichen Befehl bekommen. Das Programm
CVSup lädt und kopiert nur diejenigen
Aktualisierungen herunter, die seit seinem letzten Aufruf hinzugekommen
sind. Deshalb sollte jeder weitere Aufruf von
CVSup nach dem Ersten wesentlich schneller
abgeschlossen sein.Nachdem die Quellen einmal ausgecheckt wurden, besteht ein anderer
Weg, die Dokumentation zu aktualisieren, darin, das
Makefile im Verzeichnis /usr/doc anzupassen. Durch setzen von
SUP_UPDATE, SUPHOST und
DOCSUPFILE in der Datei
/etc/make.conf ist es jetzt möglich,
folgendes zu tun:&prompt.root; cd /usr/doc
&prompt.root; make updateEin typischer Satz dieser &man.make.1;-Optionen für
/etc/make.conf ist:SUP_UPDATE= yes
SUPHOST?= cvsup.freebsd.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfileDas Setzen des Werts von SUPHOST und
DOCSUPFILE auf ?= erlaubt es,
diese in der Kommandozeile von make zu überschreiben. Diese
Methode wird empfohlen, um Optionen zu make.conf
hinzuzufügen, um zu verhindern, dass man die Datei jedes Mal
bearbeiten muss, um einen anderen Wert für die Option
auszuprobieren.Einstellbare Optionen der DokumentationsquellenDas System zum aktualisieren und erstellen der &os;-Dokumentation
unterstützt ein paar Optionen, welche den Prozess der
Aktualisierung von Teilen der Dokumentation oder einer bestimmten
Übersetzung erleichtert. Diese Optionen lassen sich entweder
systemweit in der Datei /etc/make.conf setzen,
oder als Kommandozeilenoptionen, die dem &man.make.1;-Werkzeug
übergeben werden.Die folgenden Optionen sind ein paar davon:DOC_LANGEine Liste von Sprachen und Kodierungen, die gebaut und
installiert werden sollen, z.B.
en_US.ISO8859-1, um nur die englische
Dokumentation zu erhalten.FORMATSEin einzelnes Format oder eine Liste von Ausgabeformaten, das
gebaut werden soll. Momentan werden html,
html-split, txt,
ps, pdf,
und rtf unterstützt.SUPHOSTDer Hostname des CVSup-Servers,
der verwendet werden soll, um Aktualisierungen zu holen.DOCDIRWohin die Dokumentation installiert werden soll. Der
Standardpfad ist /usr/share/doc.Für weitere make-Variablen, die als systemweite Optionen
in &os; unterstützt werden, lesen Sie &man.make.conf.5;.Für weitere make-Variablen, die vom System zum Erstellen der
&os;-Dokumentation unterstützt werden, lesen Sie die Fibel für neue
Mitarbeiter des &os;-Dokumentationsprojekts.Die &os;-Dokumentation aus den Quellen installierenWenn ein aktueller Schnappschuss der Dokumentationsquellen nach
/usr/doc heruntergeladen wurde,
ist alles bereit für eine Aktualisierung der bestehenden
Dokumentation.Eine komplette Aktualisierung aller Sprachoptionen, definiert durch
die DOC_LANG Makefile-Option, kann durch folgende
Eingabe erreicht werden:&prompt.root; cd /usr/doc
&prompt.root; make install cleanWenn make.conf mit den richtigen Optionen
DOCSUPFILE, SUPHOST und
SUP_UPDATE eingerichtet wurde, kann der
Installationsschritt mit einer Aktualisierung der Dokumentationsquellen
kombiniert werden, indem man eingibt:&prompt.root; cd /usr/doc
&prompt.root; make update install cleanWenn nur eine Aktualisierung einer bestimmten Sprache
gewünscht wird, kann &man.make.1; in einem sprachspezifischen
Unterverzeichnis von /usr/doc
aufgerufen werden, z.B.:&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make update install cleanDie zu installierenden Ausgabeformate können durch das Setzen
der make-Variablen FORMATS angegeben werden,
z.B.:&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install cleanMarcFonvieilleBasierend auf der Arbeit von Verwendung von Dokumentations-PortsUpdating and Upgradingdocumentation packageUpdating and UpgradingIm vorherigen Abschnitt wurde eine Methode gezeigt, wie die
&os;-Dokumentation aus den Quellen gebaut werden kann. Allerdings sind
quellbasierte Aktualisierungen möglicherweise nicht für alle
&os;-Systeme geeignet oder praktikabel. Das Erstellen der
Dokumentationsquellen benötigt eine grosse Anzahl an Werkzeugen,
Programmen und Hilfsmitteln, die documentation
toolchain, ein gewisser Grad an Vertrautheit mit
CVS und ausgecheckte Quellen von einem
Repository, sowie ein paar manuelle Schritte, um diese ausgecheckten
Quellen zu bauen. In diesem Abschnitt wird eine alternative Art und
Weise vorgestellt, wie man die installierte Kopie der
&os;-Dokumentation aktualisieren kann. Diese Methode verwendet die
Ports-Sammlung und erlaubt es:vorgefertigte Schnappschüsse der Dokumentation herunter zu
laden und zu installieren, ohne vorher irgendetwas lokal zu
erstellen (dadurch ist es nicht mehr notwendig, den kompletten
Werkzeugkasten der Dokumentation zu installieren).die Dokumentationsquellen herunterzuladen und durch das
Ports-System erstellen zu lassen (was die Schritte zum Auschecken
und Erstellen etwas erleichtert).Diese beiden Methoden der Aktualisierung der &os;-Dokumentation
werden durch eine Menge von Dokumentations-Ports
unterstützt, die von &a.doceng; monatlich aktualisiert wird.
Diese sind in der Ports-Sammlung unter der virtuellen Kategorie, docs genannt,
gelistet.Erstellen und Installieren von Dokumentations-PortsDie Dokumentations-Ports nutzen das Ports-System, um das
Erstellen von Dokumentation wesentlich einfacher zu machen. Es
automatisiert den Prozess des Auscheckens der Dokumentationsquellen,
aufrufen von &man.make.1; mit den passenden Umgebungsvariablen und
Kommandozeilenoptionen und macht die Installation und Deinstallation
von Dokumentation so einfach wie die Installation von jedem anderen
Port oder Paket.Als zusätzliche Eigenschaft zeichnen sie eine
Abhängigkeit zum
Dokumentations-Werkzeugsatz auf, wenn die
Dokumentations-Ports lokal erstellt werden, weshalb dieser auch
automatisch mitinstalliert wird.Die Dokumentations-Ports sind wie folgt organisiert:Es existiert ein Master-Port, misc/freebsd-doc-en, in dem alle
Dateien zu den Dokumentations-Ports abgelegt sind. Es dient als
Basis für alle Dokumentations-Ports. Als Voreinstellung
wird nur die englische Dokumentation gebaut.Es gibt einen Alles-in-Einem-Port, misc/freebsd-doc-all, welcher die
komplette Dokumentation in allen verfügbaren Sprachen
erstellt und installiert.Schliesslich gibt es noch einen sogenannten slave
port für jede Übersetzung, z.B.: misc/freebsd-doc-hu für
Dokumentation in ungarischer Sprache. All diese benötigen
den Master-Port und installieren die übersetzte
Dokumentation in der entsprechenden Sprache.Um einen Dokumentations-Port aus den Quellen zu installieren,
geben Sie das folgende Kommando (als root)
ein:&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install cleanAuf diese Weise wird die englische Dokumentation gebaut und als
getrenntes HTML-Format im Verzeichnis /usr/local/share/doc/freebsd installiert
(genau wie unter zu
finden).Gebräuchliche Schalter und OptionenEs gibt viele Optionen, um das Standarderhalten der
Dokumentations-Ports zu verändern. Im Folgenden sind nur ein
paar davon aufgeführt:WITH_HTMLErlaubt das Erstellen im HTML-Format: eine einzige
HTML-Datei pro Dokument. Die formatierte Dokumentation wird
als Datei mit dem Namen article.html
gespeichert, oder, je nachdem, als
book.html, zuzuüglich der
Bilder.WITH_PDFErlaubt das Erstellen von &adobe; Portable Document
Format, für die Verwendung mit &adobe; &acrobat.reader;,
Ghostscript oder anderen
PDF-Betrachtern. Die formatierte Dokumentation wird als Datei
mit dem Namen article.pdf oder, soweit
angemessen, als book.pdf
gespeichert.DOCBASEWohin die Dokumentation installiert werden soll. Der
Standardpfad ist /usr/local/share/doc/freebsd.Beachten Sie, dass sich der Standardpfad von dem
Verzeichnis unterscheidet, das von der
CVSup-Methode verwendet wird.
Das liegt daran, dass ein Port installiert wird und diese
üblicherweise im Verzeichnis /usr/local abgelegt werden.
Durch setzen der PREFIX-Variablen kann
dieses Verhalten geändert werden.Es folgt ein kurzes Beispiel, wie die Variablen verwendet
werden, um die oben erwähnte ungarische Dokumentation als
Portable Document Format zu installieren:&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install cleanVerwendung von Dokumentations-PaketenDas Erstellen der Dokumentations-Ports aus den Quellen, wie im
vorherigen Abschnitt beschrieben, benötigt die lokale
Installation der Dokumentations-Werkzeugsammlung und ein wenig
Festplattenspeicher für das Bauen der Ports. Sollten die
Ressourcen zum Bauen der Dokumentations-Werkzeugsammlung nicht zur
Verfügung stehen, oder weil das erstellen zuviel Plattenplatz
benötigen würde, ist es trotzdem möglich, bereits
zuvor gebaute Schnappschüsse der Dokumentations-Ports zu
installieren.&a.doceng; erstellt monatliche Schnappschüsse der
Dokumentations-Pakete von &os;. Diese Binärpakete können
mit jedem der mitgelieferten Paketwerkzeuge installiert werden,
beispielsweise &man.pkg.add.1;, &man.pkg.delete.1; und so
weiter.Wenn Binärpakete zu Einsatz kommen, wird die
&os;-Dokumentation in allen verfügbaren
Formaten in der gegebenen Sprache installiert.Zum Beispiel installiert das folgende Kommando das aktuelle,
vorgefertigte Paket der ungarischen Dokumentation:&prompt.root; pkg_add -r hu-freebsd-docPakete haben das folgende Namensformat, welches sich von dem
Namen des dazugehörigen Ports unterscheidet:
lang-freebsd-doc.
lang entspricht hier der Kurzform des
Sprachcodes, z.B. hu für Ungarisch, oder
zh_cn für vereinfachtes Chinesisch.Dokumentations-Ports aktualisierenUm einen zuvor installierten Dokumentations-Port zu aktualisieren,
kann jedes Werkzeug, das auch zum Aktualisieren von Ports verwendet
wird, eingesetzt werden. Beispielsweise aktualisiert das folgende
Kommando die installierte ungarische Dokumentation mittels des
Programms ports-mgmt/portupgrade indem nur Pakete
verwendet werden sollen:&prompt.root; portupgrade -PP hu-freebsd-docEinem Entwicklungszweig folgen-CURRENT-STABLEFreeBSD besitzt zwei Entwicklungszweige: &os.current; und
&os.stable;. Dieser Abschnitt beschreibt beide Zweige und
erläutert, wie Sie Ihr System auf dem aktuellen Stand
eines Zweiges halten. Zuerst wird &os.current; vorgestellt, dann
&os.stable;.&os.current;Beachten Sie im Folgenden, dass &os.current; die Spitze
der Entwicklung von &os; ist. Benutzer von &os.current; sollten
über sehr gute technische Fähigkeiten verfügen und
in der Lage sein, schwierige Probleme alleine zu lösen. Wenn
&os; neu für Sie ist, überlegen Sie sich genau, ob Sie
&os.current; benutzen wollen.Was ist &os.current;?Snapshot&os.current; besteht aus den neuesten Quellen des
FreeBSD-Systems. Es enthält Sachen, an denen gerade
gearbeitet wird, experimentelle Änderungen und
Übergangsmechanismen, die im nächsten offiziellen
Release der Software enthalten sein können oder nicht.
Obwohl &os.current; täglich von vielen Entwicklern gebaut
wird, gibt es Zeiträume, in denen sich das System nicht
bauen lässt. Diese Probleme werden so schnell wie
möglich gelöst, aber ob Sie mit &os.current;
Schiffbruch erleiden oder die gewünschten Verbesserungen
erhalten, kann von dem Zeitpunkt abhängen, an dem Sie sich
den Quelltext besorgt haben!Wer braucht &os.current;?&os.current; wird hauptsächlich für 3
Interessengruppen zur Verfügung gestellt:Entwickler, die an einem Teil des Quellbaums arbeiten und
daher über die aktuellen Quellen verfügen
müssen.Tester, die bereit sind, Zeit in das Lösen von
Problemen zu investieren und sicherstellen, dass
&os.current; so stabil wie möglich bleibt. Weiterhin
Leute, die Vorschläge zu Änderungen oder der
generellen Entwicklung von &os; machen und Patches
bereitstellen, um diese Vorschläge zu realisieren.Für Leute, die die Entwicklung im Auge behalten
wollen, oder die Quellen zu Referenzzwecken (zum Beispiel
darin lesen, aber nicht verwenden) benutzen wollen. Auch diese
Gruppe macht Vorschläge oder steuert Quellcode
bei.Was &os.current; nicht ist!Der schnellste Weg, neue Sachen vor dem offiziellen
Release auszuprobieren. Bedenken Sie, dass der erste,
der die neuen Sachen ausprobiert, auch der erste ist, der die
neuen Fehler findet.Ein schneller Weg, um an Fehlerbehebungen (engl.
bug fixes) zu kommen. Jede
Version von &os.current; führt mit gleicher
Wahrscheinlichkeit neue Fehler ein, mit der sie alte
behebt.In irgendeiner Form offiziell
unterstützt. Wir tun unser Bestes, um Leuten
aus den drei legitimen Benutzergruppen von
&os.current; zu helfen, aber wir haben einfach nicht
die Zeit, technische Unterstützung zu
erbringen. Das kommt nicht daher, dass wir kleinliche,
gemeine Leute sind, die anderen nicht helfen wollen (wenn
wir das wären, würden wir &os; nicht machen), wir
können einfach nicht jeden Tag Hunderte Nachrichten
beantworten und an &os; arbeiten! Vor
die Wahl gestellt, &os; zu verbessern oder jede Menge Fragen
zu experimentellem Code zu beantworten, haben sich die
Entwickler für ersteres entschieden.Benutzen von &os.current;
-
- -CURRENT
- benutzen
- Es ist essentiell, die Mailinglisten
- &a.current.name; und &a.svn-src-head.name; zu lesen. Wenn Sie
+ &a.current.name; und &a.svn-src-head.name;-CURRENTbenutzen zu lesen. Wenn Sie
&a.current.name; nicht lesen, verpassen Sie
die Kommentare anderer über den momentanen Zustand des
Systems und rennen demzufolge in viele bekannte Probleme, die
schon gelöst sind. Noch kritischer ist, dass Sie wichtige
Bekanntmachungen verpassen, die erhebliche Auswirkungen
auf die Stabilität Ihres Systems haben können.In der &a.svn-src-head.name; Mailingliste sehen Sie zu jeder
Änderung das Commit-Log, das Informationen zu
möglichen Seiteneffekten enthält.Um diese Listen zu abonnieren (oder zu lesen)
besuchen Sie bitte die Seite &a.mailman.lists.link;.
Weitere Informationen erhalten Sie, wenn Sie dort
auf die gewünschte Liste klicken. Wenn Sie daran
interessiert sind, die Änderungen am gesamten Quellbaum
mit zu verfolgen, schlagen wir vor, die Liste
&a.svn-src-all.name; zu abonnieren.Beschaffen Sie sich die Quellen von einem
&os;-Spiegel. Sie haben
dazu zwei Möglichkeiten:
-
- cvsup
-
-
- cron
-
-
- -CURRENT
- mit CVSup
- synchronisieren
-
-
Benutzen Sie das Programm
- cvsup
+ cvsupcvsup
mit der Datei standard-supfile
aus dem Verzeichnis
/usr/share/examples/cvsup.
Dies ist die empfohlene Methode, da Sie die ganzen
Quellen nur einmal herunterladen und danach nur noch
Änderungen beziehen. Viele lassen
cvsup aus cron
heraus laufen, um ihre Quellen automatisch auf Stand
zu bringen. Sie müssen die obige Sup-Datei
- anpassen und cvsup
+ anpassen und cvsup-CURRENTmit CVSup synchronisieren
in Ihrer Umgebung konfigurieren.Die standard-supfile-Beispieldatei
ist dafür vorgesehen, einen bestimmten
Sicherheitszweig zu verfolgen und nicht &os.current;. Sie
müssen diese Datei bearbeiten und die folgende
Zeile:*default release=cvs tag=RELENG_X_Ydurch diese ersetzen:*default release=cvs tag=.Lesen Sie den Abschnitt über CVS Tags im Handbuch, um eine
genaue Beschreibung von verwendbaren Tags zu
erhalten.
-
- -CURRENT
- mit CTM synchronisieren
-
-
- CTM
+ CTM-CURRENTmit CTM synchronisieren
kommt in Frage, wenn Sie
über eine schlechte Internet-Anbindung (hoher Preis
oder nur E-Mail Zugriff) verfügen. Der Umgang mit
CTM ist allerdings recht
mühsam und Sie können beschädigte Dateien
erhalten. Daher wird es selten benutzt, was wiederum
dazu führt, dass es über längere Zeit
nicht funktioniert. Wir empfehlen jedem mit einem
9600 bps oder schnellerem Modem,
CVSup
zu benutzen.Wenn Sie die Quellen einsetzen und nicht nur darin
lesen wollen, besorgen Sie sich bitte die
kompletten Quellen von &os.current; und
nicht nur ausgesuchte Teile. Der Grund hierfür ist,
dass die verschiedenen Teile der Quellen voneinander
abhängen. Es ist ziemlich sicher, dass Sie in
Schwierigkeiten geraten, wenn Sie versuchen, nur einen Teil
der Quellen zu übersetzen.
-
- -CURRENT
- übersetzen
-
-
Sehen Sie sich das Makefile in
/usr/src genau an, bevor Sie
- &os.current; übersetzen. Wenn Sie
+ &os.current; übersetzen-CURRENTübersetzen. Wenn Sie
&os; das erste Mal aktualisieren, sollten Sie sowohl
einen Kernel als auch das
System neu installieren.
Lesen Sie bitte die Mailingliste &a.current;
und /usr/src/UPDATING, um über
Änderungen im Installationsverfahren, die manchmal
vor der Einführung eines neuen Releases notwendig sind,
informiert zu sein.Seien Sie aktiv! Wenn Sie &os.current; laufen lassen,
wollen wir wissen, was Sie darüber denken, besonders
wenn Sie Verbesserungsvorschläge oder Fehlerbehebungen
haben. Verbesserungsvorschläge, die Code enthalten,
werden übrigens begeistert entgegengenommen.&os.stable;Was ist &os.stable;?-STABLE&os.stable; ist der Entwicklungszweig, auf dem Releases
erstellt werden. Dieser Zweig ändert sich langsamer als
&os.current; und alle Änderungen hier sollten zuvor in
&os.current; ausgetestet sein. Beachten Sie, dass dies
immer noch ein Entwicklungszweig ist und
daher zu jedem Zeitpunkt die Quellen von &os.stable; verwendbar
sein können oder nicht. &os.stable; ist Teil des
Entwicklungsprozesses und nicht für Endanwender
gedacht.Wer braucht &os.stable;?Wenn Sie den FreeBSD-Entwicklungsprozess, besonders im
Hinblick auf das nächste Release, verfolgen oder
dazu beitragen wollen, sollten Sie erwägen, &os.stable; zu
benutzen.Auch wenn sicherheitsrelevante Fehlerbehebungen in den
&os.stable; Zweig einfließen, müssen Sie deswegen
noch lange nicht &os.stable; verfolgen. Jeder der FreeBSD
Sicherheitshinweise beschreibt für jedes betroffene Release,
Das stimmt nicht ganz. Obwohl wir alte FreeBSD
Releases für einige Jahre unterstützen, können
wir sie nicht ewig unterstützen. Eine vollständige
Beschreibung der Sicherheitspolitik für alte FreeBSD
Releases entnehmen Sie bitte http://www.FreeBSD.org/security/.
wie sie einen sicherheitsrelevanten Fehler beheben.
Wenn Sie den Entwicklungszweig aus Sicherheitsgründen
verfolgen wollen, bedenken Sie, dass Sie neben
Fehlerbehebungen auch eine Vielzahl unerwünschter
Änderungen erhalten werden.Obwohl wir versuchen sicherzustellen, dass der
&os.stable; Zweig sich jederzeit übersetzen lässt
und läuft, können wir dafür keine Garantie
übernehmen. Auch wenn Neuentwicklungen in &os.current;
stattfinden, ist es jedoch so, dass mehr Leute
&os.stable; benutzen als &os.current; und es daher unvermeidlich
ist, dass Fehler und Grenzfälle erst in &os.stable;
auffallen.Aus diesen Gründen empfehlen wir Ihnen
nicht, blindlings &os.stable; zu benutzen.
Es ist wichtig, dass Sie &os.stable; zuerst sorgfältig
in einer Testumgebung austesten, bevor Sie Ihre Produktion
auf &os.stable; migrieren.Wenn Sie dies nicht leisten können, empfehlen wir Ihnen,
das aktuelle FreeBSD-Release zu verwenden. Benutzen Sie dann den
binären Update-Mechanismus, um auf neue Releases
zu migrieren.Benutzen von &os.stable;
-
- -STABLE
- benutzen
- Lesen Sie Mailingliste &a.stable.name;, damit Sie über
- Abhängigkeiten beim Bau von &os.stable; und Sachen, die
+ Abhängigkeiten beim Bau von &os.stable;-STABLEbenutzen und Sachen, die
besondere Aufmerksamkeit erfordern, informiert sind.
Umstrittene Fehlerbehebungen oder Änderungen werden von
den Entwicklern auf dieser Liste bekannt gegeben. Dies
erlaubt es den Benutzern, Einwände gegen die
vorgeschlagenen Änderungen vorzubringen.Abonnieren Sie die passende
SVN-Liste für den jeweiligen
Branch, den Sie verfolgen. Wenn Sie beispielsweise den Zweig
7-STABLE verfolgen, lesen Sie die &a.svn-src-stable-7.name;.
Dort sehen Sie zu jeder Änderung das Commit-Log, das
Informationen zu möglichen Seiteneffekten
enthält.Um diese Listen oder andere Listen zu abonnieren
besuchen Sie bitte die Seite &a.mailman.lists.link;.
Weitere Informationen erhalten Sie, wenn Sie dort
auf die gewünschte Liste klicken. Wenn Sie daran
interessiert sind, Änderungen am gesamten Quellbaum zu
verfolgen, dann empfehlen wir, dass Sie &a.svn-src-all.name;
abonnieren.Wenn Sie ein neues System installieren und dazu einen
der monatlich aus &os.stable; erzeugten Snapshots verwenden
wollen, sollten Sie zuerst die Snapshot Website auf
aktuelle Informationen überprüfen. Alternativ
können Sie auch das neueste &os.stable;-Release von
den Spiegeln beziehen
und Ihr System nach den folgenden Anweisungen
aktualisieren.Wenn Sie schon ein älteres Release von &os;
und das System mit dem Quellcode aktualisieren wollen,
benutzen Sie einen der &os;-Spiegel. Sie haben
dazu zwei Möglichkeiten:
-
- cvsup
-
-
- cron
-
-
- -STABLE
- mit CVSup
- synchronisieren
-
-
Benutzen Sie das Programm
- cvsup
- mit der Datei stable-supfile
+ cvsupcvsup
+ mit der Datei stable-supfile-STABLEmit CVSup synchronisieren
aus dem Verzeichnis
/usr/share/examples/cvsup.
Dies ist die empfohlene Methode, da Sie die ganzen
Quellen nur einmal herunterladen und danach nur noch
Änderungen beziehen. Viele lassen
cvsup aus cron
heraus laufen, um ihre Quellen automatisch auf Stand
zu bringen. Sie müssen das oben erwähnte
supfile anpassen und cvsup konfigurieren.
-
- -STABLE
- mit CTM synchronisieren
-
-
Benutzen Sie
- CTM. Wenn Sie über
+ CTM-STABLEmit CTM synchronisieren. Wenn Sie über
keine schnelle und billige Internet-Anbindung
verfügen, sollten Sie diese Methode in Betracht
ziehen.Benutzen Sie cvsup oder
ftp, wenn Sie schnellen Zugriff auf die
Quellen brauchen und die Bandbreite keine Rolle spielt,
andernfalls benutzen Sie
CTM.
-
- -STABLE
- übersetzen
-
-
- Bevor Sie &os.stable; übersetzen, sollten Sie sich
+ Bevor Sie &os.stable; übersetzen-STABLEübersetzen, sollten Sie sich
das Makefile in
/usr/src genau anschauen. Wenn Sie
&os; das erste Mal aktualisieren, sollten Sie sowohl
einen Kernel als auch das
System neu installieren.
Lesen Sie bitte die Mailingliste &a.stable;
und /usr/src/UPDATING, um über
Änderungen im Installationsverfahren, die manchmal
vor der Einführung eines neuen Releases notwendig sind,
informiert zu sein.Synchronisation der QuellenSie können eine Internet-Verbindung (oder E-Mail) dazu
nutzen, Teile von &os;, wie die Quellen zu einzelnen Projekten, oder
das Gesamtsystem, aktuell zu halten. Dazu bieten wir die Dienste
AnonymousCVS,
CVSup und
CTM an.Obwohl es möglich ist, nur Teile des Quellbaums zu
aktualisieren, ist die einzige unterstütze Migrationsprozedur,
den kompletten Quellbaum zu aktualisieren und alles, das
heißt das Userland (z.B. alle Programme in
/bin und /sbin) und die
Kernelquellen, neu zu übersetzen. Wenn Sie nur einen Teil der
Quellen, zum Beispiel nur den Kernel oder nur die Programme aus dem
Userland, aktualisieren, werden Sie oft Probleme haben, die von
Übersetzungsfehlern über Kernel-Panics bis hin zu
Beschädigungen Ihrer Daten reichen können.CVSanonymousAnonymous CVS und
CVSup benutzen die
Pull-Methode
Von engl. to pull =
ziehen. Der Client holt sich bei dieser
Methode die Dateien ab., um die Quellen zu aktualisieren. Im Fall von
CVSup ruft der Benutzer oder ein
cron-Skript cvsup auf, das
wiederum mit einem cvsupd Server interagiert, um
Ihre Quellen zu aktualisieren. Mit beiden Methoden erhalten Sie
aktuelle Updates zu einem genau von Ihnen bestimmten Zeitpunkt. Sie
können die Prozedur auf bestimmte Dateien oder Verzeichnisse
einschränken, so dass Sie nur die Updates bekommen, die
für Sie von Interesse sind. Die Updates werden zur Laufzeit,
abhängig von den Sachen, die Sie schon haben und den Sachen, die
Sie haben wollen, auf dem Server generiert. Anonymous
CVS ist eine Erweiterung von
CVS, die es Ihnen erlaubt, Änderungen
direkt aus einem entfernten CVS-Repository zu ziehen.
Anonymous CVS ist leichter zu handhaben
als CVSup, doch ist letzteres sehr viel
effizienter.CTMIm Gegensatz dazu vergleicht CTM Ihre
Quellen nicht mit denen auf einem Server. Stattdessen läuft auf
dem Server ein Skript, das Änderungen an Dateien gegenüber
seinem vorigen Lauf bemerkt, die Änderungen komprimiert, mit
einer Sequenznummer versieht und für das Verschicken per E-Mail
kodiert (es werden nur druckbare ASCII-Zeichen verwendet). Wenn Sie
diese CTM-Deltas erhalten haben, können Sie sie
mit &man.ctm.rmail.1; benutzen, welches die Deltas dekodiert,
verifiziert und dann die Änderungen an Ihren Quellen vornimmt.
Dieses Verfahren ist viel effizienter als
CVSup und erzeugt auch weniger Last auf
unseren Servern, da es die
Push-Methode
Von engl. to push =
schieben. Der Server schickt dem Client die
Dateien. verwendet.Es gibt natürlich noch weitere Unterschiede, die Sie
beachten sollten. Wenn Sie unabsichtlich Teile Ihres Archivs
löschen, wird das von CVSup
wie Anonymous CVS erkannt
und repariert. Wenn sich fehlerhafte Dateien in Ihrem Quellbaum
befinden, löschen Sie diese einfach und synchronisieren erneut.
CTM leistet das nicht,
wenn Sie Teile des Quellbaums gelöscht haben und keine Sicherung
besitzen, müssen Sie von neuem, das heißt vom letzten
Basis-Delta, starten und die Änderungen wieder
mit CTM nachziehen.Das komplette Basissystem neu bauenBau des BasissystemsWenn Sie Ihren lokalen Quellbaum mit einer bestimmten FreeBSD
Version (&os.stable;, &os.current;, usw.) synchronisiert haben,
können Sie diesen benutzen, um das System neu zu
bauen.Erstellen Sie eine Sicherungskopie!Es kann nicht oft genug betont werden, wie wichtig es ist, Ihr
System zu sichern, bevor Sie die nachfolgenden
Schritte ausführen. Obwohl der Neubau des Systems eine
einfache Aufgabe ist, wenn Sie sich an die folgende Anleitung
halten, kann es dennoch vorkommen, dass Sie einen Fehler machen,
oder dass Ihr System nicht mehr bootet, weil andere Entwickler
Fehler in den Quellbaum eingeführt haben.Stellen Sie sicher, dass Sie eine Sicherung erstellt haben
und über eine Fixit-Floppy oder eine startfähige CD
verfügen. Wahrscheinlich werden Sie die Startmedien
nicht benötigen, aber gehen Sie auf Nummer sicher!Abonnieren Sie die richtige MailinglisteMailinglisteDie &os.stable; und &os.current; Zweige befinden sich in
ständiger Entwicklung. Die Leute, die zu
&os; beitragen, sind Menschen und ab und zu machen sie
Fehler.Manchmal sind diese Fehler harmlos und lassen Ihr System eine
Warnung ausgeben. Die Fehler können allerdings auch
katastrophal sein und dazu führen, dass Sie Ihr System
nicht mehr booten können, Dateisysteme beschädigt
werden oder Schlimmeres passiert.Wenn solche Probleme auftauchen, wird ein
heads up an die passende Mailingliste geschickt, welches
das Problem erklärt und die betroffenen Systeme benennt. Eine
all clear Meldung wird versendet, wenn das
Problem gelöst ist.Wenn Sie &os.stable; oder &os.current; benutzen und nicht die
Mailinglisten &a.stable; beziehungsweise &a.current; lesen, bringen
Sie sich nur unnötig in Schwierigkeiten.Finger weg von make worldÄltere Dokumentationen empfehlen, das Kommando
make world für den Neubau.
Das Kommando überspringt wichtige Schritte. Setzen
Sie es nur ein, wenn Sie wissen was Sie tun. In fast
allen Fällen ist make world
falsch, benutzen Sie stattdessen die nachstehende
Anleitung.Richtig aktualisierenUm Ihr System zu aktualisieren, sollten Sie zuerst
/usr/src/UPDATING lesen, und
eventuelle, für Ihre Quellcodeversion nötigen
Aufgaben erledigen, bevor Sie das System bauen. Danach
aktualisieren Sie Ihr System mit den folgenden
Schritten.Bei den hier dargestellten Aktualisierungsschritten wird davon
ausgegangen, dass Sie momentan eine alte &os;-Version verwenden, die
aus einem alten Compiler, Kernel, sowie einem alten Basissystem und
veralteten Konfigurationsdateien besteht. Mit
Basissystem sind hier die zentralen Binärdateien,
Bibliotheken und Entwicklerdateien gemeint. Der Compiler ist Teil
des Basissystems, beinhaltet aber ein paar
Besonderheiten.Es wird ausserdem davon ausgegangen, dass Sie bereits die Quellen
für ein neues System bezogen haben. Falls die Quellen in dem
vorliegenden System zu alt sind, lesen Sie ,
um detaillierte Hilfe über die Aktualisierung der Quellen zu
erhalten.Die Aktualisierung des Systems aus den Quellen ist ein wenig
ausgetüftelter als es zunächst den Anschein hat. Die
Entwickler von &os; haben es über die Jahre für Nötig
befunden, den vorgeschlagenen Ablauf ziemlich stark zu
verändern, da neue Arten von unvermeidlichen Abhängigkeiten
mit der Zeit ans Licht kamen. Der übrige Teil dieses Abschnitts
beschreibt die Überlegungen hinter der aktuell empfohlenen
Aktualisierungsreihenfolge.Jede erfolgreiche Aktualisierung muss sich mit den folgenden
Sachverhalten auseinandersetzen:Der alte Compiler ist möglicherweise nicht in der Lage,
den neuen Kernel zu übersetzen (alte Compiler besitzen
manchmal Fehler). Deshalb sollte der neue Kernel mit dem neuen
Compiler übersetzt werden. Ganz besonders muss darauf
geachtet werden, dass der neue Compiler vor dem neuen Kernel
gebaut wird. Das bedeutet nicht unbedingt, dass der neue
Compiler auch installiert werden muss, bevor
der neue Kernel gebaut wird.Das neue Basissystem benötigt eventuell neue
Eigenschaften des Kernels. Also muss der neue Kernel installiert
sein, bevor das neue Basissystem installiert wird.Diese ersten beiden Sachverhalte sind die Grundlage für die
zentrale Sequenz von buildworld,
buildkernel,
installkernel und
installworld, die in den folgenden
Abschnitten beschrieben wird. Dies ist keine vollständige Liste
all der Gründe, warum Sie den aktuell empfohlenen Prozess der
Aktualisierung bevorzugen sollten. Ein paar der weniger
naheliegenden Gründe sind im folgenden aufgezählt:Das alte Basissystem wird möglicherweise nicht korrekt
mit dem neuen Kernel funktionieren, weshalb Sie das neue
Basissystem sofort nach der Installation des neuen Kernels
installieren müssen.Manche Änderungen an der Konfiguration müssen
erledigt worden sein, bevor das neue Basissystem installiert wird,
jedoch können andere die Funktionalität des alten
Basissystems beeinträchtigen. Aus diesem Grund sind zwei
verschiedene Schritte notwendig, um eine Aktualisierung der
Konfiguration durchzuführen.Der Aktualisierungsprozess ersetzt zum Grossteil Dateien oder
fügt neue hinzu, bestehende Dateien werden nicht
gelöscht. In wenigen Ausnahmefällen kann dies Probleme
verursachen. Aus diesem Grund wird der Aktualisierungsprozess
manchmal bestimmte Dateien zum manuellen Löschen vorschlagen.
Dies wird eventuell in der Zukunft automatisch
durchgeführt.Diese Bedenken haben zu der folgenden Reihenfolge geführt.
Beachten Sie, dass der genaue Ablauf für bestimmte
Aktualisierungen zusätzliche Schritte nach sich zieht, jedoch
sollte der Kernprozess davon nicht beeinträchtigt werden:make
buildworldDieser Schritt übersetzt zuerst den neuen Compiler und
ein paar damit zusammenhängende Werkzeuge und verwendet dann
den neuen Compiler, um den Rest des Basissystems zu erstellen.
Das Ergebnis landet dann in /usr/obj.make
buildkernelStatt dem alten Ansatz, &man.config.8; und
&man.make.1; zu verwenden, nutzt dieser den
neuen Compiler, der in /usr/obj abgelegt ist.
Das schützt Sie vor falschen
Compiler-Kernel-Kombinationen.make
installkernelPlatziert den neuen Kernel und Kernelmodule auf der Platte,
was es erlaubt, mit dem frisch aktualisierten Kernel zu
starten.Starten Sie das System neu in den Single-User-Modus.Der Single-User-Modus minimiert Probleme mit der
Aktualisierung von Programmen, die bereits gestartet sind. Ebenso
minimiert es Probleme, die mit der Verwendung des alten
Basissystems und des neuen Kernels zu tun haben
könnten.mergemaster Dieser Schritt aktualisiert ein paar initiale
Konfigurationsdateien als Vorbereitung für das neue
Basissystem. Beispielsweise fügt es neue Benutzergruppen
zum System oder neue Benutzernamen in die Passwortdatenbank hinzu.
Dies wird oftmals benötigt, wenn neue Gruppen oder bestimmte
Systembenutzerkonten seit der letzten Aktualisierung hinzu gekommen
sind, so dass der installworld-Schritt
in der Lage ist, auf dem neu installierten System die Benutzer
oder Systemgruppennamen ohne Probleme zu verwenden.make
installworldKopiert das Basissystem aus /usr/obj. Sie haben jetzt den
neuen Kernel und das neue Basissystem auf der Festplatte.mergemasterSie können nun die verbleibenden Konfigurationsdateien
aktualisieren, da Sie nun das neue Basissystem auf der Platte
haben.Starten Sie das System neu.Ein kompletter Systemneustart ist notwendig, um den neuen
Kernel und das neue Basissystem mit den neuen
Konfigurationsdateien zu laden.Beachten Sie, dass wenn Sie von einem Release des gleichen
&os;-Zweigs auf ein aktuelleres Release des gleichen Zweigs, z.B.
von 7.0 auf 7.1, aktualisieren, dann ist diese Vorgehensweise nicht
unbedingt notwendig, da Sie nur sehr unwahrscheinlich in
ungünstige Kombinationen zwischen Compiler, Kernel, Basissystem
und den Konfigurationsdateien geraten werden. Die ältere
Vorgehensweise von make
world, gefolgt von der Erstellung
und Installation des neuen Kernels funktioniert möglicherweise
gut genug, um kleinere Aktualisierungen vorzunehmen.Wenn Sie allerdings zwischen Hauptversionen aktualisieren wollen
und befolgen diese Schritte nicht, sollten Sie sich auf Probleme
gefasst machen.Es ist auch wichtig zu wissen, dass viele Aktualisierungen, z.B.
von 4.X auf 5.0, viele spezielle und
zusätzliche Schritte benötigt, wie beispielsweise das
umbennen oder löschen von speziellen Dateien vor installworld.
Lesen Sie die Datei /usr/src/UPDATING
gründlich, besonders am Ende, wo die aktuell vorgeschlagene
Aktualisierungssequenz explizit aufgelistet ist.Diese Prozedur hat sich mit der Zeit weiterentwickelt, da die
Entwickler es für unmöglich erachtet haben, bestimmte
Arten von Kombinationsproblemen vollständig auszuschliessen.
Hoffentlich wird die aktuelle Aktualisierungsprozedur für lange
Zeit stabil bleiben.Als Zusammenfassung ist hier nochmal die aktuell vorgeschlagene
Vorgehensweise für die Aktualisierung von &os; aus den Quellen
aufgelistet:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowEs gibt einige, sehr seltene Situationen, in denen Sie
mergemaster -p zusätzlich
ausführen müssen, bevor Sie das System mit
buildworld bauen. Diese Situationen
werden in UPDATING beschrieben. Solche
Situationen treten aber in der Regel nur dann auf, wenn Sie
Ihr &os;-System um eine oder mehrere Hauptversionen
aktualisieren.Nachdem installkernel erfolgreich
abgeschlossen wurde, starten Sie das System im Single-User-Modus
(etwa durch die Eingabe von boot -s am
Loaderprompt). Danach führen Sie die folgenden Anweisungen
aus:&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; adjkerntz -i
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootLesen Sie bitte weiterDie obige Vorschrift ist nur eine
Gedächtnisstütze. Um die einzelnen
Schritte zu verstehen, lesen Sie bitte die
folgenden Abschnitte, insbesondere wenn Sie
einen angepassten Kernel erstellen.Lesen Sie /usr/src/UPDATINGBevor Sie etwas anderes tun, lesen Sie bitte
/usr/src/UPDATING (oder die entsprechende
Datei, wenn Sie den Quellcode woanders installiert haben). Die
Datei enthält wichtige Informationen zu Problemen, auf die Sie
stoßen könnten oder gibt die Reihenfolge vor, in der Sie
bestimmte Kommandos laufen lassen müssen. Die Anweisungen in
UPDATING sind aktueller als die in diesem
Handbuch. Im Zweifelsfall folgen Sie bitte den Anweisungen aus
UPDATING.Das Lesen von UPDATING ersetzt nicht das
Abonnieren der richtigen Mailingliste. Die beiden Voraussetzungen
ergänzen sich, es reicht nicht aus, nur eine zu
erfüllen.Überprüfen Sie
/etc/make.confmake.confÜberprüfen Sie die Dateien
/usr/share/examples/etc/make.conf
und /etc/make.conf. Die erste enthält
Vorgabewerte, von denen die meisten auskommentiert sind. Um diese
während des Neubaus des Systems zu nutzen, tragen Sie die
Werte in /etc/make.conf ein. Beachten Sie,
dass alles, was Sie in /etc/make.conf
eintragen, bei jedem Aufruf von make angezogen
wird. Es ist also klug, hier etwas Sinnvolles einzutragen.Typischerweise wollen Sie die Zeilen, die
CFLAGS und NO_PROFILE
enthalten, aus
/usr/share/examples/etc/make.conf
nach /etc/make.conf übertragen und dort
aktivieren.Sehen Sie sich auch die anderen Definitionen, wie
COPTFLAGS oder NOPORTDOCS an
und entscheiden Sie, ob Sie diese aktivieren wollen.Aktualisieren Sie die Dateien in /etcDas Verzeichnis /etc enthält den
Großteil der Konfigurationsdateien des Systems und Skripten,
die beim Start des Systems ausgeführt werden. Einige dieser
Skripten ändern sich bei einer Migration auf eine neue
FreeBSD-Version.Einige der Konfigurationsdateien, besonders
/etc/group, werden für den Normalbetrieb
des Systems gebraucht.Es gab Fälle, in denen das Kommando
make installworld auf bestimmte
Accounts oder Gruppen angewiesen war, die aber während
der Aktualisierung fehlten. Demzufolge kam es zu Problemen
bei der Aktualisierung. In einigen Fällen prüft
make buildworld ob die Accounts oder
Gruppen vorhanden sind.Ein Beispiel dafür trat beim Anlegen des Benutzers
smmsp auf. Die Installationsprozedur
schlug an der Stelle fehl, an der &man.mtree.8;
versuchte, /var/spool/clientmqueue
anzulegen.Um dieses Problem zu umgehen,rufen Sie &man.mergemaster.8;
prä-buildworld-Modus auf, der mit aktiviert
wird. In diesem Modus werden nur Dateien verglichen, die für
den Erfolg von buildworld oder
installworld essentiell sind.Wenn Sie besonders paranoid sind, sollten Sie Ihr System nach
Dateien absuchen, die der Gruppe, die Sie umbenennen oder
löschen, gehören:&prompt.root; find / -group GID -printDas obige Kommando zeigt alle Dateien an, die der Gruppe
GID (dies kann entweder ein
Gruppenname oder eine numerische ID sein) gehören.Wechseln Sie in den Single-User-ModusSingle-User-ModusSie können das System im Single-User-Modus
übersetzen. Abgesehen davon, dass dies etwas schneller
ist, werden bei der Installation des Systems viele wichtige Dateien,
wie die Standard-Systemprogramme, die Bibliotheken und
Include-Dateien, verändert. Sie bringen sich in
Schwierigkeiten, wenn Sie diese Dateien auf einem laufenden System
verändern, besonders dann, wenn zu dieser Zeit Benutzer auf
dem System aktiv sind.MehrbenutzermodusEine andere Methode übersetzt das System im
Mehrbenutzermodus und wechselt für die Installation in den
Single-User-Modus. Wenn Sie diese Methode benutzen wollen, warten
Sie mit den folgenden Schritten, bis der Bau des Systems fertig
ist und Sie mit installkernel oder
installworld installieren wollen.Als Superuser können Sie mit dem folgenden Kommando ein
laufendes System in den Single-User-Modus bringen:&prompt.root; shutdown nowAlternativ können Sie das System mit der Option
single user in den Single-User-Modus booten.
Danach geben Sie die folgenden Befehle ein:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aDie Kommandos überprüfen die Dateisysteme,
hängen / wieder beschreibbar ein,
hängen dann alle anderen UFS Dateisysteme aus
/etc/fstab ein und aktivieren den
Swap-Bereich.Zeigt Ihre CMOS-Uhr die lokale Zeit und nicht GMT an, dies
erkennen Sie daran, dass &man.date.1; die
falsche Zeit und eine falsche Zeitzone anzeigt, setzen Sie das
folgende Kommando ab:&prompt.root; adjkerntz -iDies stellt sicher, dass Ihre Zeitzone richtig
eingestellt ist. Ohne dieses Kommando werden Sie
vielleicht später Probleme bekommen.Entfernen Sie /usr/objDie neu gebauten Teile des Systems werden in der Voreinstellung
unter /usr/obj gespeichert. Die Verzeichnisse
dort spiegeln die Struktur unter
/usr/src.Sie können den make buildworld Prozess
beschleunigen, indem Sie dieses Verzeichnis entfernen. Dies
erspart Ihnen zudem einigen Ärger aufgrund von
Abhängigkeiten.Einige Dateien unter /usr/obj sind
vielleicht durch die -Option
(siehe &man.chflags.1;) schreibgeschützt, die vor dem
Löschen entfernt werden muss.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Übersetzen der Quellen des BasissystemsSichern der AusgabenFür den Fall, dass etwas schief geht, sollten Sie
die Ausgaben von &man.make.1; in einer Datei sichern, damit Sie
eine Kopie der Fehlermeldung besitzen. Das mag Ihnen nicht
helfen, den Fehler zu finden, kann aber anderen helfen, wenn Sie
Ihr Problem in einer der &os;-Mailinglisten schildern.Dazu können Sie einfach das Kommando &man.script.1;
benutzen, dem Sie beim Aufruf als Parameter den Dateinamen
für die Ausgaben mitgeben. Setzen Sie das Kommando
unmittelbar vor dem Neubau ab und geben Sie
exit ein, wenn der Bau abgeschlossen
ist:&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… Ausgaben des Kommandos …
&prompt.root; exit
Script done, …Sichern Sie die Ausgaben nicht in /tmp,
da dieses Verzeichnis beim nächsten Boot aufgeräumt
werden kann. Ein geeigneteres Verzeichnis ist
/var/tmp, wie im vorigen Beispiel gezeigt,
oder das Heimatverzeichnis von root.Übersetzen des BasissystemsWechseln Sie in das Verzeichnis, in dem die Quellen liegen
(in der Voreinstellung ist das
/usr/src):&prompt.root; cd /usr/srcmakeZum Neubau der Welt benutzen Sie &man.make.1;. Dieses
Kommando liest ein Makefile, das Anweisungen
enthält, wie die Programme, aus denen &os; besteht, zu bauen
sind und in welcher Reihenfolge diese zu bauen sind.Ein typischer Aufruf von make sieht wie
folgt aus:&prompt.root; make -x -DVARIABLEtargetIn diesem Beispiel ist
eine Option, die
Sie an &man.make.1; weitergeben wollen. Eine Liste gültiger
Optionen finden Sie in der &man.make.1; Manualpage.Das Verhalten eines Makefiles wird von
Variablen bestimmt. Mit
setzen Sie
eine Variable. Diese Variablen sind dieselben, die auch in
/etc/make.conf gesetzt werden, dies ist nur
ein alternativer Weg, Variablen zu setzen.Um zu verhindern, dass die profiled
Bibliotheken gebaut werden, rufen Sie make wie
folgt auf:&prompt.root; make -DNO_PROFILE targetDieser Aufruf entspricht dem folgenden Eintrag in
/etc/make.conf:NO_PROFILE= true # Avoid compiling profiled librariesJedes Makefile definiert einige
Ziele, die festlegen, was genau zu tun ist. Mit
target wählen Sie eins dieser
Ziele aus.Einige Ziele im Makefile sind nicht
für den Endanwender gedacht, sondern unterteilen den
Bauprozess in eine Reihe von Einzelschritten.Im Regelfall müssen Sie &man.make.1; keine Parameter
mitgeben, so dass Ihre Kommandozeile wie folgt aussehen
wird:&prompt.root; make targettarget steht dabei für
die verschiedenen Ziele. Das erste Ziel sollte immer
buildworld sein.Mit buildworld wird ein kompletter
Baum unterhalb von /usr/obj gebaut, der mit
installworld, einem weiteren Ziel, auf
dem System installiert werden kann.Über separate Optionen zu verfügen, ist aus
mehreren Gründen nützlich. Erstens
können Sie das System auf einem laufenden System bauen, da die
Bauprozedur abgekapselt vom Rest des Systems ist. Das System
lässt sich im Mehrbenutzermodus ohne negative
Seiteneffekte bauen. Die Installation mit
installworld sollte aber immer noch im
Single-User-Modus erfolgen.Zweitens können Sie NFS benutzen, um mehrere Maschinen
in Ihrem Netzwerk zu aktualisieren. Wenn Sie die Maschinen
A, B und C
aktualisieren wollen, lassen sie make
buildworld und make installworld auf
A laufen. Auf den Maschinen B
und C können Sie die
Verzeichnisse /usr/src und
/usr/obj von A einhängen
und brauchen dort nur noch make installworld
auszuführen, um die Bauresultate zu installieren.Obwohl das Ziel world noch
existiert, sollten Sie es wirklich nicht mehr benutzen.Um das System zu bauen, setzen Sie das folgende Kommando
ab:&prompt.root; make buildworldMit können Sie
make anweisen, mehrere Prozesse zu starten.
Besonders effektiv ist das auf Mehrprozessor-Systemen. Da aber
der Übersetzungsprozess hauptsächlich von IO statt
der CPU bestimmt wird, ist diese Option auch auf
Einprozessor-Systemen nützlich.Auf einem typischen Einprozessor-System können Sie den
folgenden Befehl absetzen:&prompt.root; make -j4 buildworld&man.make.1; wird dann bis zu vier Prozesse gleichzeitig
laufen lassen. Erfahrungsberichte aus den Mailinglisten zeigen,
dass dieser Aufruf typischerweise den besten
Geschwindigkeitsgewinn bringt.Wenn Sie ein Mehrprozessor-System besitzen und SMP in Ihrem
Kernel konfiguriert ist, probieren Sie Werte zwischen 6 und 10
aus.LaufzeitenBau des BasissystemsLaufzeitenDie Laufzeit eines Baus wird von vielen Faktoren
beeinflusst, ein aktuelles System benötigt aber etwa
zwei Stunden um &os.stable; zu bauen. Der Bau von
&os.current; dauert etwas länger.Übersetzen und Installation des KernelsKernelÜbersetzenUm das Beste aus Ihrem System zu holen, sollten Sie einen neuen
Kernel kompilieren. Praktisch gesehen ist das sogar notwendig, da
sich einige Datenstrukturen geändert haben und Programme wie
&man.ps.1; oder &man.top.1; nur mit einem Kernel zusammen arbeiten,
der auch zu dem entsprechenden Quellcode passt.Am einfachsten und sichersten bauen Sie dazu den
GENERIC Kernel. Obwohl der
GENERIC Kernel vielleicht nicht alle
Ihre Geräte unterstützt, sollte er alles enthalten,
um das System in den Single-User-Modus zu booten. Dies ist auch
ein guter Test, um zu sehen, dass das System
ordnungsgemäß funktioniert. Nachdem Sie mit
GENERIC gebootet und sichergestellt haben,
dass Ihr System funktioniert, können Sie einen neuen
Kernel mit Ihrer Konfigurationsdatei bauen.In aktuellen &os;-Versionen müssen Sie das
Basissystem neu bauen,
bevor Sie einen neuen Kernel erstellen.Wenn Sie einen angepassten Kernel erstellen wollen und
bereits über eine Konfigurationsdatei verfügen,
geben Sie diese, wie im folgenden Beispiel gezeigt, auf der
Kommandozeile an:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELWenn kern.securelevel einen Wert
größer als 1 besitzt
und der Kernel mit noschg
oder ähnlichen Optionen geschützt ist, müssen Sie
installkernel im Einbenutzermodus
ausführen. Wenn das nicht der Fall ist, sollten die beiden
Kommandos problemlos im Mehrbenutzermodus laufen. Weitere
Informationen über kern.securelevel finden
Sie in &man.init.8; und &man.chflags.1; erläutert Optionen, die
Sie auf Dateien setzen können.Booten Sie in den Single-User-ModusSingle-User-ModusUm zu prüfen, ob der neue Kernel funktioniert, sollten Sie
in den Single-User-Modus booten. Folgen Sie dazu der Anleitung aus
.Installation des SystemsNun können Sie das neue System mit
installworld installieren.
Rufen Sie dazu das folgende Kommando auf:&prompt.root; cd /usr/src
&prompt.root; make installworldWenn Sie mit dem make buildworld Kommando
Variablen verwendet haben, müssen Sie dieselben Variablen
auch bei dem make installworld Kommando
angeben. Auf die anderen Optionen trifft das nur bedingt zu:
darf mit installworld
nicht benutzt werden.Sie haben zum Bauen die folgende Kommandozeile
verwendet:&prompt.root; make -DNO_PROFILE buildworldBei der Installation setzen Sie dann das folgende Kommando
ab:&prompt.root; make -DNO_PROFILE installworldWürden Sie die Variable bei der Installation weglassen,
so würde das System versuchen, die profiled
Bibliotheken, die aber gar nicht gebaut wurden, zu
installieren.Aktualisieren der von make installworld
ausgelassenen DateienNeue oder geänderte Konfigurationsdateien aus einigen
Verzeichnissen, besonders /etc,
/var und /usr werden bei
der Installationsprozedur nicht berücksichtigt.Sie können diese Dateien mit &man.mergemaster.8;
aktualisieren. Alternativ können Sie das auch manuell
durchführen, obwohl wir diesen Weg nicht empfehlen. Egal
welchen Weg Sie beschreiten, sichern Sie vorher den Inhalt von
/etc für den Fall, dass etwas schief
geht.TomRhodesBeigetragen von mergemastermergemasterDas Bourne-Shell Skript &man.mergemaster.8; hilft Ihnen dabei,
die Unterschiede zwischen den Konfigurationsdateien in
/etc und denen im Quellbaum unter
/usr/src/etc zu finden.
mergemaster ist der empfohlene Weg, Ihre
Systemkonfiguration mit dem Quellbaum abzugleichen.Rufen Sie mergemaster einfach auf und
schauen Sie zu. Ausgehend von / wird
mergemaster einen virtuellen Root-Baum
aufbauen und darin die neuen Konfigurationsdateien ablegen.
Diese Dateien werden dann mit den auf Ihrem System installierten
verglichen. Unterschiede zwischen den Dateien werden im
&man.diff.1;-Format dargestellt. Neue oder geänderte Zeilen
werden mit gekennzeichnet. Zeilen die
gelöscht oder ersetzt werden, sind mit einem
gekennzeichnet. Das Anzeigeformat wird in
&man.diff.1; genauer erklärt.&man.mergemaster.8; zeigt Ihnen jede geänderte Datei an
und Sie haben die Wahl, die neue Datei (in
mergemaster wird sie temporäre Datei
genannt) zu löschen, sie unverändert zu installieren,
den Inhalt der neuen Datei mit dem Inhalt der alten Datei
abzugleichen, oder die &man.diff.1; Ausgabe noch einmal zu
sehen. Sie können die aktuelle Datei auch
überspringen, sie wird dann noch einmal angezeigt, nachdem
alle anderen Dateien abgearbeitet wurden. Sie erhalten Hilfe,
wenn Sie bei der Eingabeaufforderung von
mergemaster ein ?
eingeben.Wenn Sie die temporäre Datei löschen, geht
mergemaster davon aus, dass Sie Ihre
aktuelle Datei behalten möchten. Wählen Sie die Option
bitte nur dann, wenn Sie keinen Grund sehen, die aktuelle Datei
zu ändern.Wenn Sie die temporäre Datei installieren, wird Ihre
aktuelle Datei mit der neuen Datei überschrieben. Sie
sollten alle unveränderten Konfigurationsdateien auf diese
Weise aktualisieren.Wenn Sie sich entschließen den Inhalt beider Dateien
abzugleichen, wird ein Texteditor aufgerufen, indem Sie beide
Dateien nebeneinander betrachten können. Mit der Taste
l übernehmen Sie die aktuelle Zeile der
links dargestellten Datei, mit der Taste r
übernehmen Sie die Zeile der rechts dargestellten Datei.
Das Ergebnis ist eine Datei, die aus Teilen der beiden
ursprünglichen Dateien besteht und installiert werden kann.
Dieses Verfahren wird gewöhnlich bei veränderten
Dateien genutzt.Haben Sie sich entschieden die Differenzen noch einmal
anzuzeigen, zeigt Ihnen &man.mergemaster.8; dieselbe Ausgabe, die
Sie gesehen haben, bevor die Eingabeaufforderung ausgegeben
wurde.Wenn &man.mergemaster.8; alle Systemdateien abgearbeitet hat,
werden weitere Optionen abgefragt. Sie werden unter
Umständen gefragt, ob Sie die Passwort-Datei neu bauen
lassen wollen. Am Ende haben Sie die Möglichkeit, den Rest
der temporären Dateien zu löschen.Manueller Abgleich der KonfigurationsdateienWenn Sie den Abgleich lieber selbst ausführen wollen,
beachten Sie bitte, dass Sie nicht einfach die Dateien aus
/usr/src/etc nach /etc
kopieren können. Einige dieser Dateien müssen zuerst
installiert werden, bevor sie benutzt werden
können. Das liegt daran, dass
/usr/src/etc keine exakte Kopie von
/etc ist. Zudem gibt es Dateien, die sich
in /etc befinden aber nicht in
/usr/src/etc.Wenn Sie, wie empfohlen, mergemaster
benutzen, können Sie direkt in den nächsten
Abschnitt
wechseln.Am einfachsten ist es, wenn Sie die neuen Dateien in ein
temporäres Verzeichnis installieren und sie nacheinander auf
Differenzen zu den bestehenden Dateien durchsehen.Sichern Sie die Inhalte von /etcObwohl bei dieser Prozedur keine Dateien in
/etc automatisch verändert werden,
sollten Sie dessen Inhalt an einen sicheren Ort
kopieren:&prompt.root; cp -Rp /etc /etc.oldMit wird rekursiv kopiert und
erhält die Attribute der kopierten
Dateien, wie Zugriffszeiten und Eigentümer.Sie müssen die neuen Dateien in einem temporären
Verzeichnis installieren. /var/tmp/root ist
eine gute Wahl für das temporäre Verzeichnis, in dem
auch noch einige Unterverzeichnisse angelegt werden
müssen.&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionDie obigen Kommandos bauen die nötige
Verzeichnisstruktur auf und installieren die neuen Dateien in
diese Struktur. Unterhalb von /var/tmp/root
wurden einige leere Verzeichnisse angelegt, die Sie am besten wie
folgt entfernen:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullIm obigen Beispiel wurde die Fehlerausgabe nach
/dev/null umgeleitet, um die Warnungen
über nicht leere Verzeichnisse zu unterdrücken./var/tmp/root enthält nun alle
Dateien, die unterhalb von / installiert
werden müssen. Sie müssen nun jede dieser Dateien mit
den schon existierenden Dateien vergleichen.Einige der installierten Dateien unter
/var/tmp/root beginnen mit einem
..
Als dieses Kapitel verfasst wurde, waren das nur die
Startdateien für die Shells in
/var/tmp/root/ und
/var/tmp/root/root/. Abhängig davon,
wann Sie dieses Handbuch lesen, können mehr Dateien dieser
Art existieren. Verwenden Sie ls -a um
sicherzustellen, dass Sie alle derartigen Dateien
finden.Benutzen Sie &man.diff.1; um Unterschiede zwischen zwei
Dateien festzustellen:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsDas obige Kommando zeigt Ihnen die Unterschiede zwischen der
installierten Version von /etc/shells und
der neuen Version in /var/tmp/root/etc/shells.
Entscheiden Sie anhand der Unterschiede, ob
Sie beide Dateien abgleichen oder die neue Version über die
alte kopieren wollen.Versehen Sie das temporäre Verzeichnis mit einem
ZeitstempelWenn Sie das System oft neu bauen, müssen Sie
/etc genauso oft aktualisieren. Dies kann
mit der Zeit sehr lästig werden.Sie können das Verfahren beschleunigen, wenn Sie sich
eine Kopie der Dateien behalten, die Sie zuletzt nach
/etc installiert haben. Das folgende
Verfahren zeigt Ihnen, wie das geht.Folgen Sie der normalen Prozedur um das System zu
bauen. Wenn Sie /etc und die anderen
Verzeichnisse aktualisieren wollen, geben Sie dem
temporären Verzeichnis einen Namen, der das aktuelle
Datum enthält. Wenn Sie dies zum Beispiel am
14. Februar 1998 durchführten, hätten Sie die
folgenden Kommandos abgesetzt:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionGleichen Sie die Änderungen entsprechend der
Anleitung von oben ab.Wenn Sie fertig sind, entfernen Sie das Verzeichnis
/var/tmp/root-19980214nicht.Wenn Sie nun neue Quellen heruntergeladen und gebaut
haben, folgen Sie bitte Schritt 1. Wenn Sie zwischen den
Updates eine Woche gewartet haben, haben Sie nun ein
Verzeichnis mit dem Namen
/var/tmp/root-19980221.Sie können nun die Unterschiede, die sich in einer
Woche ergeben haben, sehen, indem Sie &man.diff.1; rekursiv
anwenden:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Üblicherweise sind die Differenzen, die Sie jetzt
sehen, kleiner als die Differenzen zwischen
/var/tmp/root-19980221/etc und
/etc. Da die angezeigten Differenzen
kleiner sind, ist es jetzt einfacher den Abgleich der
Dateien durchzuführen.Sie können nun das älteste der beiden
/var/tmp/root-* Verzeichnisse
entfernen:&prompt.root; rm -rf /var/tmp/root-19980214Wiederholen Sie diesen Prozess jedes Mal wenn Sie
Dateien in /etc abgleichen
müssen.Mit &man.date.1; können Sie den Verzeichnisnamen
automatisch erzeugen:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`Das System neu startenSie sind nun am Ende der Prozedur angelangt. Nachdem Sie sich
davon überzeugt haben, dass Ihr System funktioniert,
starten Sie Ihr System mit &man.shutdown.8; neu:&prompt.root; shutdown -r nowEndeHerzlichen Glückwunsch! Sie haben gerade erfolgreich Ihr
&os; System aktualisiert.Es ist übrigens leicht einen Teil des Systems
wiederherzustellen, für den Fall, dass Ihnen ein kleiner
Fehler unterlaufen ist. Wenn Sie beispielsweise während des
Updates oder Abgleichs /etc/magic aus Versehen
gelöscht haben, wird &man.file.1; nicht mehr funktionieren.
In diesem Fall können Sie das Problem mit dem folgenden
Kommando beheben:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installFragenMuss ich wirklich immer alles neu bauen, wenn sich
etwas geändert hat?Darauf gibt es keine einfache Antwort. Was zu tun ist,
hängt von den Änderungen ab. Es lohnt
wahrscheinlich nicht, alles neu zu bauen, wenn sich bei einem
CVSup-Lauf nur die folgenden
Dateien geändert haben:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkIn diesem Fall können Sie in die entsprechenden
Unterverzeichnisse wechseln und dort make all
install ausführen. Wenn sich allerdings etwas
Wichtiges, wie src/lib/libc/stdlib,
geändert hat, sollten Sie die Welt oder
mindestens die statisch gelinkten Teile des Systems (sowie
Ihre statisch gelinkten Ergänzungen) neu bauen.Letztendlich ist das Ihre Entscheidung. Sie sind
vielleicht damit zufrieden, das System alle zwei Wochen neu
zu bauen und in der Zwischenzeit die anfallenden
Änderungen zu sammeln. Wenn Sie sich zutrauen, alle
Abhängigkeiten zu erkennen, bauen Sie vielleicht auch
nur die geänderten Sachen neu.Das hängt natürlich auch noch davon ab, wie oft
Sie ein Update durchführen wollen und ob Sie &os.stable;
oder &os.current; benutzen.Der Bau bricht mit vielen
Signal 11-FehlernSignal 11 (oder anderen
Signalnummern) ab. Was ist da passiert?Normalerweise zeigen diese Meldungen Hardwarefehler an.
Ein Neubau der Welt ist ein guter Belastungstest für
Ihre Hardware und zeigt oft Probleme mit dem Speicher auf.
Dies äußert sich darin, dass der Compiler
mit dem Erhalt von seltsamen Signalen abbricht.Es liegt garantiert ein Hardwarefehler vor, wenn ein
neuer Übersetzungslauf an einer anderen Stelle
abbricht.In diesem Fall können Sie nur einzelne Komponenten
Ihres Systems tauschen, um zu bestimmen, welche Komponente den
Fehler verursacht.Kann ich /usr/obj löschen, wenn
ich fertig bin?Kurze Antwort: Ja.In /usr/obj werden alle Dateien
abgelegt, die während der Übersetzungsphase erstellt
wurden. Dieses Verzeichnis wird in einem der ersten Schritte
der Bauprozedur entfernt. Es macht daher
wenig Sinn, dieses Verzeichnis zu behalten und Sie setzen
eine Menge Plattenplatz, momentan ungefähr 2 GB,
frei, wenn Sie es löschen.Wenn Sie allerdings genau wissen, was Sie tun, können
Sie diesen Schritt bei make buildworld
auslassen. Nachfolgende Bauprozeduren werden dadurch erheblich
schneller, da die meisten Quelldateien nicht mehr neu
übersetzt werden. Dafür können aber subtile
Abhängigkeitsprobleme entstehen, die dazu führen,
dass der Bau auf merkwürdige Weise abbrechen kann.
Dies führt häufig zu unnötigen Diskussionen auf
den &os; Mailinglisten, wenn sich jemand über einen
kaputten Bau beschwert, aber nicht sieht, dass er
Probleme hat, weil er eine Abkürzung genommen hat.Kann ein abgebrochener Bau weitergeführt
werden?Das hängt davon ab, wieweit der Bauprozess
fortgeschritten ist.Üblicherweise werden
essentielle Werkzeuge, wie &man.gcc.1; und &man.make.1;,
und die Systembibliotheken während des Bauprozesses
neu erstellt (dies ist aber keine allgemein gültige
Regel). Die neu erstellen Werkzeuge und Bibliotheken werden
dann benutzt, um sich selbst noch einmal zu bauen, und wieder
installiert. Anschließend wird das Gesamtsystem mit
den neu erstellten Systemdateien gebaut.Wenn Sie sich im letzten Schritt befinden und Sie wissen,
dass Sie dort sind, weil Sie durch die Ausgaben, die Sie
ja sichern, der Bauprozedur gesehen haben, können Sie
mit ziemlicher Sicherheit den Bau weiterführen:… Fehler beheben …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allDiese Variablen verhindern,
dass make buildworld die vorher erstellten
Dateien löscht.Das Sie sich im letzten Schritt der Bauprozedur
befinden, erkennen Sie daran, dass Sie in der Ausgabe die
folgenden Zeilen finden:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------Wenn Sie diese Meldung nicht finden, oder sich nicht sicher
sind, dann ist es besser, noch einmal ganz von Vorne
anzufangen.Wie kann ich den Bauprozess beschleunigen?Bauen Sie im Single-User-Modus.Legen Sie /usr/src und
/usr/obj in getrennte Dateisysteme auf
unterschiedliche Festplatten. Benutzen Sie nach
Möglichkeit auch getrennte Platten-Controller.Noch besser ist es, diese Dateisysteme auf mehrere
Festplatten mit &man.ccd.4; zu verteilen.Bauen Sie die profiled-Bibliotheken,
die Sie wahrscheinlich sowieso nicht brauchen, nicht.
/etc/make.conf sollte dazu
NO_PROFILE=true enthalten.Setzen Sie die CFLAGS in
/etc/make.conf auf . Die Optimierungsstufe
ist deutlich langsamer und die
Performance-Unterschiede zwischen und
sind vernachlässigbar klein.
veranlasst den Compiler Pipes
anstelle von Dateien für die Kommunikation zu
benutzen. Dies spart einige Plattenzugriffe, geht aber
auf Kosten des Speichers.Benutzen Sie
, um
mehrere Prozesse parallel laufen zu lassen.
Normalerweise beschleunigt dies den Bauprozess
unabhängig davon, ob Sie ein Einprozessor- oder
Mehrprozessorsystem einsetzen.Sie können das Dateisystem
/usr/src mit der Option
einhängen. Dies
verhindert, dass die Zugriffszeiten der Dateien
aktualisiert werden (eine Information, die Sie vielleicht
gar nicht brauchen).&prompt.root; mount -u -o noatime /usr/srcDas Beispiel geht davon aus, dass sich
/usr/src auf einem separaten
Dateisystem befindet. Wenn das nicht der Fall ist,
weil das Verzeichnis beispielsweise Teil des
/usr Dateisystems ist,
müssen Sie anstelle von
/usr/src den Mountpoint des
Dateisystems angeben.Das Dateisystem, in dem sich
/usr/obj befindet, kann mit der
Option eingehangen werden. Dies
bewirkt, dass Schreibzugriffe auf die Platte
asynchron stattfinden, das heißt ein Schreibzugriff
ist sofort beendet, die Daten werden allerdings erst einige
Sekunden später geschrieben. Dadurch können
Schreibzugriffe zusammengefasst werden, was einen
erheblichen Geschwindigkeitszuwachs mit sich bringen
kann.Beachten Sie, dass dies Ihr Dateisystem
anfälliger für Fehler macht. Im Fall eines
Stromausfalls besteht eine erhöhte
Wahrscheinlichkeit, dass das Dateisystem beim
Start der Maschine zerstört ist.Wenn sich /usr/obj auf einem
extra Dateisystem befindet, ist das kein Problem. Wenn
sich allerdings auf diesem Dateisystem noch andere
wertvolle Daten befinden, stellen Sie sicher, dass
Sie aktuelle Sicherungen besitzen.&prompt.root; mount -u -o async /usr/objErsetzen Sie /usr/obj durch
den Mountpoint des entsprechenden Dateisystems, wenn es
sich nicht auf einem eigenen Dateisystem
befindet.Was mache ich, wenn etwas nicht funktioniert?Stellen Sie sicher, dass sich in Ihrer Umgebung
keine Reste eines vorherigen Baus befinden. Das geht ganz
einfach:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirJa, make cleandir muss wirklich
zweimal aufgerufen werden.Nachdem Sie aufgeräumt haben, starten Sie den
Bauprozess wieder mit make
buildworld.Wenn Sie immer noch Probleme haben, schicken Sie die
Fehlermeldungen und die Ausgabe von uname
-a an die Mailingliste &a.de.questions;. Bereiten
Sie sich darauf vor, weitere Fragen zu Ihrer Umgebung zu
beantworten.AntonShterenlikhtBasiert auf Notizen von Veraltete Dateien, Verzeichnisse und Bibliotheken
löschenVeraltete Dateien, Verzeichnisse und Bibliotheken
löschenAufgrund der ständigen Weiterentwicklung von &os; kann es
dazu kommen, dass Dateien (und deren Inhalte) obsolet werden, weil
deren Funktionalität entweder in anderen Dateien implementiert
wurde, sich die Versionsnummer der Bibliothek geändert hat
oder deren Funktion nicht mehr benötigt wird. Dies kann
sowohl Dateien und Verzeichnis, aber auch Bibliotheken betreffen.
Diese veralteten Dateien sollten daher entfernt werden, bevor Sie
Ihr System aktualisieren. Der Vorteil für den Benutzer ist
darin zu sehen, dass dessen System (sowie dessen Backup) von
nicht mehr benötigten Dateien gereinigt wird. Falls die
obsolete Bibliothek Sicherheits- oder Stabilitätsprobleme
aufweist, sollte das System ebenfalls aktualisiert werden, um
Ihr System sicher zu halten und/oder durch die fehlerhafte
Bibliothek verursachte Systemabstürze zu vermeiden. Veraltete
Dateien, Verzeichnisse und Bibliotheken sind in der Datei
/usr/src/ObsoleteFiles.inc aufgelistet. Die
folgenden Anweisungen sollen Ihnen dabei helfen, diese Dateien
während der Systemaktualisierung zu entfernen.Im Folgenden wird angenommen, dass Sie den Anweisungen von
folgen. Nachdem Sie
make installworld
sowie mergemaster erfolgreich ausgeführt
haben, sollten Sie Ihr System auf veraltete Dateien und
Bibliotheken hin überprüfen:&prompt.root; cd /usr/src
&prompt.root; make check-oldWerden dabei veraltete Dateien gefunden, können diese
im nächsten Schritt entfernt werden:&prompt.root; make delete-oldWeitere interessante Targets finden sich in der Datei
/usr/src/Makefile.Bei jeder Datei wird nachgefragt, ob Sie diese wirklich
löschen wollen. Es ist aber auch möglich, alle
Dateien automatisch löschen zu lassen. Dies erreichen Sie,
indem Sie die Umgebungsvariable
BATCH_DELETE_OLD_FILES entsprechend
setzen:&prompt.root; make -DBATCH_DELETE_OLD_FILES delete-oldAlternativ können Sie auch den folgenden Befehl
einsetzen (und jeweils die Antwort yes
an die einzelnen Abfragen weiterreichen):&prompt.root; yes | make delete-oldWarnungDas Löschen veralteter Dateien kann dazu führen,
dass Programme, die auf diese Dateien angewiesen sind, nicht mehr
funktionieren. Dies gilt insbesondere für veraltete
Bibliotheken. In den meisten Fällen ist es dann notwendig,
Programme, Ports und Bibliotheken, welche die veraltete
Bibliothek verwenden, neu zu bauen, bevor Sie den Befehl
make
delete-old-libs
ausführen.Die Ports-Sammlung enthält Werkzeuge, die Ihnen beim
Prüfen von Bibliothek-Abhängigkeiten helfen können:
sysutils/libchk
sowie sysutils/bsdadminscripts.Veraltete Bibliotheken können zu Konflikten mit neueren
Bibliotheken führen und beispielsweise folgende
Meldungen verursachen:/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5Um diese Probleme zu lösen, müssen Sie zuerst
herausfinden, welcher Port die Bibliothek installiert hat:&prompt.root; pkg_info -W /usr/local/lib/libtiff.so
/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
&prompt.root; pkg_info -W /usr/local/lib/libXext.so
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1Danach deinstallieren Sie den Port und bauen ihn neu, um ihn
danach erneut zu installieren. Dieser Vorgang kann durch den
Einsatz der Werkzeuge ports-mgmt/portmaster oder ports-mgmt/portupgrade automatisiert
werden. Nachdem Sie alle Ports erfolgreich neu gebaut haben
(und Sie daher keine veralteten Bibliotheken mehr verwenden)
können Sie die veralteten Bibliotheken endgültig
entfernen:&prompt.root; make delete-old-libsMikeMeyerBeigetragen von Installation mehrerer MaschinenWenn Sie mehrere Maschinen besitzen, die Sie alle auf dem
gleichen Stand halten wollen, ist es eine Verschwendung von
Ressourcen, die Quellen auf jeder Maschine vorzuhalten und zu
übersetzen. Die Lösung dazu ist, eine Maschine den
Großteil der Arbeit durchführen zu lassen und den anderen
Maschinen das Ergebnis mit NFS zur Verfügung zu stellen. Dieser
Abschnitt zeigt Ihnen wie das geht.VoraussetzungenStellen Sie zuerst eine Liste der Maschinen zusammen, die auf
demselben Stand sein sollen. Wir nennen diese Maschinen die
Baugruppe. Jede dieser Maschinen kann mit
einem eigenen Kernel laufen, doch sind die Programme des Userlands
auf allen Maschinen gleich. Wählen Sie aus der Baugruppe eine
Maschine aus, auf der der Bau durchgeführt wird, den
Bau-Master. Dies sollte eine Maschine sein,
die über die nötigen Ressourcen für
make buildworld und
make installworld verfügt.
Sie brauchen auch eine
Testmaschine, auf der Sie die Updates testen,
bevor Sie sie in Produktion installieren. Dies sollte eine
Maschine, eventuell der Bau-Master, sein, die über einen
längeren Zeitraum nicht zur Verfügung stehen kann.Alle Maschinen der Baugruppe müssen
/usr/obj und /usr/src von
derselben Maschine an gleichem Ort einhängen. Idealerweise
befinden sich die beiden Verzeichnisse auf dem Bau-Master auf
verschiedenen Festplatten, sie können allerdings auch auf dem
Bau-Master über NFS zur Verfügung gestellt werden. Wenn
Sie mehrere Baugruppen haben, sollte sich
/usr/src auf einem Bau-Master befinden und
über NFS für den Rest der Maschinen zur Verfügung
gestellt werden.Stellen Sie sicher, dass
/etc/make.conf und
/etc/src.conf auf allen Maschinen einer
Baugruppe mit der Datei des Bau-Masters übereinstimmt. Der
Bau-Master muss jeden Teil des Systems bauen, den irgendeine
Maschine der Baugruppe benötigt. Auf dem Bau-Master
müssen in /etc/make.conf alle zu bauenden
Kernel mit der Variablen KERNCONF bekannt gegeben
werden. Geben Sie dabei den Kernel des Bau-Masters zuerst an.
Für jeden zu bauenden Kernel muss auf dem Bau-Master die
entsprechende Konfigurationsdatei unter
/usr/src/sys/arch/conf
abgelegt werden.Installation des BasissystemsNach diesen Vorbereitungen können Sie mit dem Bau
beginnen. Bauen Sie auf dem Bau-Master, wie in beschrieben, den Kernel und die Welt,
installieren Sie aber nichts. Wechseln Sie auf die Testmaschine
und installieren Sie den gerade gebauten Kernel. Wenn diese
Maschine /usr/src und
/usr/obj über NFS bekommt, müssen
Sie das Netzwerk im Single-User-Modus aktivieren und die beiden
Dateisysteme einhängen. Am einfachsten ist dies, wenn Sie
auf der Testmaschine ausgehend vom Mehrbenutzermodus mit
shutdown now in den Single-User-Modus wechseln.
Sie können dann mit der normalen Prozedur den neuen Kernel
und das System installieren und anschließend
mergemaster laufen lassen. Wenn Sie damit
fertig sind, können Sie die Maschine wieder in den
Mehrbenutzermodus booten.Nachdem Sie sichergestellt haben, dass die Testmaschine
einwandfrei funktioniert, wiederholen Sie diese Prozedur für
jede Maschine in der Baugruppe.Die Ports-SammlungDasselbe Verfahren können Sie auch für die
Ports-Sammlung anwenden. Zuerst müssen alle Maschinen einer
Baugruppe /usr/ports von derselben Maschine
über NFS zur Verfügung gestellt bekommen. Setzen Sie
dann ein Verzeichnis für die Quellen auf, das sich alle
Maschinen teilen. Dieses Verzeichnis können Sie in
/etc/make.conf mit der Variablen
DISTDIR angeben. Das Verzeichnis sollte
für den Benutzer beschreibbar sein, auf den der Benutzer
root vom NFS Subsystem abgebildet wird. Jede
Maschine sollte noch WRKDIRPREFIX auf ein
lokales Bauverzeichnis setzen. Wenn Sie vorhaben, Pakete zu bauen
und zu verteilen, sollten Sie PACKAGES auf ein
Verzeichnis mit den gleichen Eigenschaften wie
DISTDIR setzen.
diff --git a/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml b/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml
index 9c004f9636..a237bc4d53 100644
--- a/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml
+++ b/de_DE.ISO8859-1/books/handbook/introduction/chapter.xml
@@ -1,1291 +1,1210 @@
JimMockNeu zusammengestellt, umstrukturiert und um
Abschnitte erweitert durch SaschaEdelburgÜbersetzt von EinführungÜbersichtHerzlichen Dank für Ihr Interesse an &os;! Das
folgende Kapitel behandelt verschiedene Aspekte des
&os; Projects wie dessen geschichtliche Entwicklung,
dessen Ziele oder dessen Entwicklungsmodell.Nach dem Durcharbeiten des Kapitels wissen Sie über
folgende Punkte Bescheid:Wo &os; im Vergleich zu anderen Betriebssystemen
stehtDie Geschichte des &os; ProjectsDie Ziele des &os; ProjectsDie Grundlagen des
&os;-Open-Source-EntwicklungsmodellsUnd natürlich wo der Name &os;
herrührtWillkommen bei &os;!4.4BSD-Lite&os; ist ein auf 4.4BSD-Lite basierendes Betriebssystem
für Intel (x86 und &itanium;), AMD64
und Sun &ultrasparc; Rechner. An
Portierungen zu anderen Architekturen wird derzeit gearbeitet.
Mehr zu Geschichte von &os; können Sie im kurzen geschichtlichen Abriss zu &os;
oder im Abschnitt Das aktuelle
&os;-Release nachlesen.
Falls Sie das &os; Project unterstützen wollen
(mit Quellcode, Hardware- oder Geldspenden), sollten Sie den
Artikel
&os; unterstützen lesen.Was kann &os;?&os; hat zahlreiche bemerkenswerte Eigenschaften.
Um nur einige zu nennen:Präemptives MultitaskingPräemptives Multitasking mit
dynamischer Prioritätsanpassung zum reibungslosen und
ausgeglichenen Teilen der Systemressourcen zwischen
Anwendungen und Anwendern, selbst unter schwerster
Last.MehrbenutzerbetriebDer Mehrbenutzerbetrieb von
&os; erlaubt es, viele Anwender gleichzeitig am System
mit verschiedenen Aufgaben arbeiten zu lassen.
Beispielsweise Geräte wie Drucker oder Bandlaufwerke,
die sich nur schwerlich unter allen Anwendern des Systems
oder im Netzwerk teilen lassen, können durch Setzen
von Verwendungsbeschränkungen auf Benutzer oder
Benutzergruppen wichtige Systemressourcen vor
Überbeanspruchung schützen.TCP/IP-NetzwerkfähigkeitHervorragende
TCP/IP-Netzwerkfähigkeit mit
Unterstützung von Industriestandards wie SCTP, DHCP,
NFS, NIS, PPP, SLIP, IPsec und IPv6. Das heißt,
Ihr &os;-System kann in einfachster Weise mit anderen
Systemen interagieren. Zudem kann es als Server-System im
Unternehmen wichtige Aufgaben übernehmen,
beispielsweise als NFS- oder E-Mail-Server oder es kann
Ihren Betrieb durch HTTP- und FTP-Server beziehungsweise
durch Routing und Firewalling Internet-fähig machen.SpeicherschutzDer Speicherschutz stellt sicher,
dass Anwendungen (oder Anwender) sich nicht gegenseitig
stören. Stürzt eine Anwendung ab, hat das
keine Auswirkung auf andere Prozesse.&os; ist ein
32-Bit-Betriebssystem
(64-Bit auf &itanium;, AMD64,
und &ultrasparc;) und wurde als solches von Grund auf
neu entworfen.X-Window-SystemDas X-Window-System (X11R7) als
Industriestandard bietet eine grafische Benutzeroberfläche
(GUI). Minimale Voraussetzung zur Verwendung ist
lediglich eine Grafikkarte und ein Bildschirm, die beide
den VGA-Modus unterstützen.BinärkompatibilitätLinuxBinärkompatibilitätSCOBinärkompatibilitätSVR4BinärkompatibilitätBSD/OSBinärkompatibilitätNetBSDBinärkompatibilität mit
vielen unter verschiedenen Betriebssystemen erstellten
Programmen wie Linux, SCO, SVR4, BSDI und NetBSD.Tausende von sofort
lauffähigen Anwendungen sind aus den
Ports- und
Packages-Sammlungen für &os;
verfügbar. Warum mühselig im Netz Software
suchen, wenn sie bereits hier vorhanden ist?Tausende zusätzliche leicht zu
portierende Anwendungen sind über das
Internet zu beziehen. &os; ist Quellcode-kompatibel
mit den meisten kommerziellen &unix; Systemen. Daher
bedürfen Anwendungen häufig nur geringer oder
gar keiner Anpassung, um auf einem &os;-System zu
kompilieren.virtueller SpeicherSeitenweise anforderbarer Virtueller
Speicher und der merged VM/buffer
cache-Entwurf bedient effektiv den großen
Speicherhunger mancher Anwendungen bei gleichzeitigem
Aufrechterhalten der Bedienbarkeit des Systems für
weitere Benutzer.Symmetrisches Multi-Processing (SMP)SMP-Unterstützung für
MehrprozessorsystemeKompilerCKompilerC++KompilerFORTRANEin voller Satz von C,
C++ und Fortran-
Entwicklungswerkzeugen. Viele
zusätzliche Programmiersprachen für Wissenschaft
und Entwicklung sind aus der Ports- und Packages-Sammlung
zu haben.QuellcodeQuellcode für das gesamte
System bedeutet größtmögliche Kontrolle
über Ihre Umgebung. Warum sollte man sich durch
proprietäre Lösungen knebeln und sich auf Gedeih
und Verderb der Gnade eines Herstellers ausliefern, wenn
man doch ein wahrhaft offenes System haben kann?Umfangreiche
Online-Dokumentation.4.4BSD-LiteComputer Systems Research Group (CSRG)U.C. Berkeley&os; basiert auf dem 4.4BSD-Lite-Release der Computer
Systems Research Group (CSRG) der Universität von
Kalifornien in Berkeley und führt die namhafte
Tradition der Entwicklung von BSD-Systemen fort.
Zusätzlich zu der herausragenden Arbeit der CSRG hat das
&os; Project tausende weitere Arbeitsstunden investiert,
um das System zu verfeinern und maximale Leistung und
Zuverlässigkeit bei Alltagslast zu bieten. Während
viele kommerzielle Riesen Probleme haben PC-Betriebssysteme
mit derartigen Funktionen, Leistungpotential und
Zuverlässigkeit anzubieten, kann &os; damit schon
jetzt aufwarten! Die Anwendungsmöglichkeiten von &os; werden nur
durch Ihre Vorstellungskraft begrenzt. Von
Software-Entwicklung bis zu Produktionsautomatisierung, von
Lagerverwaltung über Abweichungskorrektur bei Satelliten;
Falls etwas mit kommerziellen &unix; Produkten machbar ist, dann
ist es höchstwahrscheinlich auch mit &os;
möglich. &os; profitiert stark von tausenden
hochwertigen Anwendungen aus wissenschaftlichen Instituten und
Universitäten in aller Welt. Häufig sind diese
für wenig Geld oder sogar kostenlos zu bekommen.
Kommerzielle Anwendungen sind ebenso verfügbar und es
werden täglich mehr.Durch den freien Zugang zum Quellcode von &os; ist es
in unvergleichbarer Weise möglich, das System für
spezielle Anwendungen oder Projekte anzupassen. Dies ist
mit den meisten kommerziellen Betriebssystemen einfach nicht
möglich. Beispiele für Anwendungen, die unter
&os; laufen, sind:Internet-Dienste: Die robuste
TCP/IP-Implementierung in &os; macht es zu einer
idealen Plattform für verschiedenste
Internet-Dienste, wie zum Beispiel:FTP-ServerFTP-ServerHTTP-ServerHTTP-Server (Standard-Web-Server oder mit
SSL-Verschlüsselung)IPv4- und IPv6-RoutingFirewallNATFirewalls und NAT-Gateways
(IP-Masquerading)E-MailE-Mail-ServerUsenetUsenet-News und Foren (BBS)Zum Betreiben von &os; reicht schon ein
günstiger 386-PC. Wenn es das Wachstum Ihres
Unternehmens verlangt, kann &os; aber auch auf einem
hochgerüsteten 4-Wege-System mit Xeon-Prozessoren
und RAID-Plattenspeicher Verwendung finden.Bildung: Sind Sie
Informatikstudent oder Student eines verwandten
Studiengangs? Die praktischen Einblicke in &os; sind
die beste Möglichkeit etwas über Betriebssysteme,
Rechnerarchitektur und Netzwerke zu lernen. Einige frei
erhältliche CAD-, mathematische und grafische Anwendungen
sind sehr nützlich, gerade für diejenigen, die
&os; nicht zum Selbstzweck, sondern als
Arbeitsmittel einsetzen.Wissenschaft: Mit dem frei
verfügbaren Quellcode für das gesamte System
bildet &os; ein exzellentes Studienobjekt in der
Disziplin der Betriebssysteme, wie auch in anderen Zweigen
der Informatik. Es ist beispielsweise denkbar, das
räumlich getrennte Gruppen gemeinsam an einer Idee
oder Entwicklung arbeiten. Das Konzept der freien
Verfügbarkeit und -nutzung von &os;
ermöglicht so einen Gebrauch, auch ohne sich
groß Gedanken über Lizenzbedingungen oder
-beschränkungen machen zu müssen.RouterDNS-ServerNetzwerkfähigkeit: Brauchen
Sie einen neuen Router? Oder einen Name-Server (DNS)? Eine
Firewall zum Schutze Ihres Intranets vor Fremdzugriff?
&os; macht aus dem in der Ecke verstaubenden 386- oder
486-PC im Handumdrehen einen leistungsfähigen Router
mit anspruchsvollen Packet-Filter-Fähigkeiten.X-Window-SystemAccelerated-XX-Window-Workstation: &os; ist
eine gute Wahl für kostengünstige X-Terminals
mit dem frei verfügbaren X11-Server.
Im Gegensatz zu einem X-Terminal erlaubt es &os;, viele
Anwendungen lokal laufen zu lassen, was die Last eines
zentralen Servers erleichtern kann. &os; kann selbst
plattenlos starten, was einzelne
Workstations noch günstiger macht und die Wartung
erleichtert.GNU-Compiler-CollectionSoftware-Entwicklung: Das
Standard-System von &os; wird mit einem kompletten Satz
an Entwicklungswerkzeugen bereitgestellt, unter anderem
mit dem bekannten GNU C/C++-Kompiler und -Debugger.&os; ist sowohl in Form von Quellcode als auch in
Binärform auf CD-ROM, DVD und über anonymous FTP
erhältlich. Näheres zum Bezug von &os;
enthält .Wer benutzt &os;?AnwenderBekannte &os;-Anwender&os; dient als Plattform für Geräte und Produkte
einiger der weltgrößten IT-Firmen, darunter:
- Apple
-
- Apple
+ AppleApple
- Cisco
-
- Cisco
+ CiscoCisco
- Juniper
-
- Juniper
+ JuniperJuniper
- NetApp
-
- NetApp
+ NetAppNetAppAußerdem laufen einige der größten
Internet-Auftritte unter &os;, beispielsweise:
-
- Yahoo!
-
-
Yahoo!
+ url="http://www.yahoo.com/">Yahoo!Yahoo!
- Yandex/primary>
-
- Yandex
+ YandexYandex/primary>
-
- Apache
-
-
Apache
+ url="http://www.apache.org/">ApacheApache
-
- Rambler
-
-
- Rambler
+ RamblerRambler
- Sina
-
- Sina
+ SinaSina
-
- Pair Networks
-
-
Pair
- Networks
+ NetworksPair Networks
-
- Sony Japan
-
-
Sony
- Japan
+ JapanSony Japan
-
- Netcraft
-
-
Netcraft
+ url="http://www.netcraft.com/">NetcraftNetcraft
-
- NetEase
-
-
- NetEase
+ NetEaseNetEase
-
- Weathernews
-
-
Weathernews
+ url="http://www.wni.com/">WeathernewsWeathernews
-
- TELEHOUSE America
-
-
TELEHOUSE
- America
+ AmericaTELEHOUSE America
- Experts Exchange
-
Experts
- Exchange
+ ExchangeExperts Exchangeund viele andere.Das &os; ProjectDer folgende Abschnitt bietet einige
Hintergrundinformationen zum &os; Project,
einschließlich einem kurzen geschichtlichen Abriss,
den Projektzielen und dem Entwicklungsmodell.JordanHubbardBeigesteuert von Kurzer geschichtlicher Abriss zu &os;386BSD PatchkitHubbard, JordanWilliams, NateGrimes, Rod&os; ProjectGeschichteDas &os; Project erblickte das Licht der Welt Anfang
1993 teils als Auswuchs des Unofficial 386BSD
Patchkit unter der Regie der letzten drei
Koordinatoren des Patchkits: Nate Williams, Rod Grimes und
mir.386BSDUnser eigentliches Ziel war es, einen zwischenzeitlichen
Abzug von 386BSD zu erstellen, um ein paar Probleme zu
beseitigen, die das Patchkit-Verfahren nicht lösen
konnte. Einige von Ihnen werden sich in dem Zusammenhang noch
an die frühen Arbeitstitel 386BSD 0.5 oder
386BSD Interim erinnern.Jolitz, Bill386BSD war das Betriebssystem von Bill Jolitz. Dieses
litt bis zu diesem Zeitpunkt heftig unter fast
einjähriger Vernachlässigung. Als das Patchkit mit
jedem Tag anschwoll und unhandlicher wurde, waren wir
einhellig der Meinung, es müsse etwas geschehen. Wir
entschieden uns Bill Jolitz zu helfen, indem wir den
übergangsweise bereinigten Abzug zur
Verfügung stellten. Diese Pläne wurden unschön
durchkreuzt als Bill Jolitz plötzlich seine Zustimmung
zu diesem Projekt zurückzog, ohne einen Hinweis darauf,
was stattdessen geschehen sollte.Greenman, DavidWalnut Creek CDROMEs hat nicht lange gedauert zu entscheiden, dass das Ziel
es wert war, weiterverfolgt zu werden, selbst ohne Bills
Unterstützung. Also haben wir den von David Greenman
geprägten Namen &os; angenommen.
Unsere anfänglichen Ziele setzten wir nach
Rücksprache mit den damaligen Benutzern des Systems fest.
Und als deutlich wurde, das Projekt würde
möglicherweise Realität, nahm ich Kontakt mit Walnut
Creek CDROM auf, mit einem Auge darauf, den Vertriebsweg
für die vielen Missbegünstigten zu verbessern,
die keinen einfachen Zugang zum Internet hatten. Walnut Creek
CDROM unterstützte nicht nur die Idee des
CD-ROM-Vertriebs, sondern stellte sogar dem Projekt einen
Arbeitsrechner und eine schnelle Internetverbindung zur
Verfügung. Ohne den beispiellosen Glauben von Walnut
Creek CDROM in ein zu der Zeit absolut unbekanntes Projekt,
gäbe es &os; in der heutigen Form wohl nicht.4.3BSD-LiteNet/2U.C. Berkeley386BSDFree Software FoundationDie erste auf CD-ROM (und netzweit) verfügbare
Veröffentlichung war &os; 1.0 im Dezember
1993. Diese basierte auf dem Band der 4.3BSD-Lite
(Net/2) der Universität von Kalifornien in
Berkeley. Viele Teile stammten aus 386BSD und von der Free
Software Foundation. Gemessen am ersten Angebot, war
das ein ziemlicher Erfolg und wir ließen dem das extrem
erfolgreiche &os; 1.1 im Mai 1994 folgen.NovellU.C. BerkeleyNet/2AT&TZu dieser Zeit formierten sich unerwartete Gewitterwolken am
Horizont, als Novell und die Universität von Kalifornien
in Berkeley (UCB) ihren langen Rechtsstreit über den
rechtlichen Status des Berkeley Net/2-Bandes mit einem
Vergleich beilegten. Eine Bedingung dieser Einigung war es,
dass die UCB große Teile des Net/2-Quellcodes als
belastet zugestehen musste, und dass diese
Besitz von Novell sind, welches den Code selbst einige Zeit vorher
von AT&T bezogen hatte. Im Gegenzug bekam die UCB den
Segen von Novell, dass sich das 4.4BSD-Lite-Release
bei seiner endgültigen Veröffentlichung als
unbelastet bezeichnen darf. Alle Net/2-Benutzer sollten
auf das neue Release wechseln. Das betraf auch &os;. Dem
Projekt wurde eine Frist bis Ende Juli 1994 eingeräumt,
das auf Net/2-basierende Produkt nicht mehr zu vertreiben.
Unter den Bedingungen dieser Übereinkunft war es dem
Projekt noch erlaubt ein letztes Release vor diesem
festgesetzten Zeitpunkt herauszugeben. Das war
&os; 1.1.5.1.&os; machte sich dann an die beschwerliche Aufgabe,
sich Stück für Stück, aus einem neuen und
ziemlich unvollständigen Satz von 4.4BSD-Lite-Teilen,
wieder aufzubauen. Die
Lite-Veröffentlichungen waren deswegen
leicht, weil Berkeleys CSRG große Code-Teile,
die für ein start- und lauffähiges System gebraucht
wurden, aufgrund diverser rechtlicher Anforderungen entfernen
musste und weil die 4.4-Portierung für Intel-Rechner extrem
unvollständig war. Das Projekt hat bis November 1994
gebraucht diesen Übergang zu vollziehen, was dann zu dem
im Netz veröffentlichten &os; 2.0 und zur
CD-ROM-Version (im späten Dezember) führte. Obwohl
&os; gerade die ersten Hürden genommen hatte, war
dieses Release ein maßgeblicher Erfolg. Diesem folgte
im Juni 1995 das robustere und einfacher zu installierende
&os; 2.0.5.Im August 1996 veröffentlichten wir
&os; 2.1.5. Es schien unter ISPs und der Wirtschaft
beliebt genug zu sein, ein weiteres Release aus dem
2.1-STABLE-Zweig zu rechtfertigen. Das war
&os; 2.1.7.1. Es wurde im Februar 1997
veröffentlicht und bildete das Ende des
Hauptentwicklungszweiges 2.1-STABLE. Derzeit unterliegt
dieser Zweig dem Wartungsmodus, das heißt, es werden nur
noch Sicherheitsverbesserungen und die Beseitigung von
kritischen Fehlern vorgenommen (RELENG_2_1_0).&os; 2.2 entsprang dem Hauptentwicklungszweig
(-CURRENT) im November 1996 als
RELENG_2_2-Zweig und das erste komplette Release (2.2.1) wurde
im April 1997 herausgegeben. Weitere Veröffentlichungen
des 2.2-Zweiges gab es im Sommer und Herbst 1997. Das letzte
Release des 2.2-Zweiges bildete die Version 2.2.8, die im
November 1998 erschien. Das erste offizielle 3.0-Release
erschien im Oktober 1998 und läutete das Endes des
2.2-Zweiges ein.Am 20. Januar 1999 teilte sich der Quellbaum
in die Zweige 4.0-CURRENT und 3.X-STABLE. Auf dem
3.X-STABLE-Zweig wurden folgende
Releases erstellt: 3.1 am 15. Februar 1999,
3.2 am 15. Mai 1999,
3.3 am 16. September 1999,
3.4 am 20. Dezember 1999 und
3.5 am 24. Juni 2000. Letzterem
folgte ein paar Tage später das Release 3.5.1, welches
einige akute Sicherheitslöcher von Kerberos stopfte und
die letzte Veröffentlichung des 3.X-Zweiges
darstellte.Eine weitere Aufspaltung, aus dem der 4.X-STABLE-Zweig
hervorging, erfolgte am 13. März 2000.
Bisher gab es mehrere Veröffentlichungen
aus diesem Zweig: 4.0-RELEASE erschien im März 2000.
Das letzte Release, 4.11-RELEASE, erschien im Januar 2005.Das lang erwartete 5.0-RELEASE wurde am
19. Januar 2003 veröffentlicht. Nach nahezu
drei Jahren Entwicklungszeit brachte dieses Release die
Unterstützung für Mehrprozessor-Systeme sowie
für Multithreading. Mit diesem Release lief &os;
erstmalig auf den Plattformen &ultrasparc;
und ia64. Im Juni 2003 folgte
5.1-RELEASE. Das letzte 5.X-Release aus dem CURRENT-Zweig war
5.2.1-RELEASE, das im Februar 2004 veröffentlicht
wurde.Der Zweig RELENG_5 wurde im August 2004 erzeugt. Als
erstes Release dieses Zweiges wurde 5.3-RELEASE
veröffentlicht, bei dem es sich gleichzeitig auch um
das erste 5-STABLE-Release handelte. Das aktuelle
5.5-RELEASE (dem keine RELENG_5-Versionen mehr
folgen werden) erschien im Mai 2006.Der Zweig RELENG_6 wurde im Juli 2005 erzeugt. 6.0-RELEASE,
das erste Release des 6.X-Zweiges, wurde im November 2005
veröffentlicht. Das aktuelle 6.4-RELEASE (erschienen
im November 2008) ist das letzte Release aus RELENG_6-Zweig.
RELENG_6 ist der letzte Zweig, der die Alpha-Architektur
noch unterstützt.Der Zweig RELENG_7 wurde im Oktober 2007 erzeugt.
7.0-RELEASE, das erste Release des 7.X-Zweiges, wurde im
Februar 2008 veröffentlicht. Das aktuelle
&rel2.current;-RELEASE (dem keine weiteren RELENG_7-Versionen
folgen werden) erschien im Februar 2011.Im August 2009 wurde der RELENG_8-Zweig angelegt.
8.0-RELEASE, das erste Release des 8.X-Zweiges, erschien im
November 2009. Das aktuelle &rel.current;-RELEASE (dem
weitere RELENG_8-Versionen folgen werden) wurde im
Juli 2010 veröffentlicht.Zurzeit werden Projekte mit langem Entwicklungshorizont
im Zweig 9.X-CURRENT verfolgt, Schnappschüsse
von 9.X auf CD-ROM (und natürlich im Netz) werden bei
fortlaufender Entwicklung auf dem
Snapshot-Server zur Verfügung gestellt.JordanHubbardBeigesteuert von Ziele des &os; Projects&os; ProjectZieleDas &os; Project stellt Software her, die ohne
Einschränkungen für beliebige Zwecke eingesetzt
werden kann. Viele
von uns haben beträchtlich in Quellcode und Projekt
investiert und hätten sicher nichts dagegen, hin und
wieder ein wenig finanziellen Ausgleich dafür zu
bekommen. Aber in keinem Fall bestehen wir darauf. Wir
glauben unsere erste und wichtigste Mission ist
es, Software für jeden Interessierten und zu jedem Zweck
zur Verfügung zu stellen, damit die Software
größtmögliche Verbreitung erlangt und
größtmöglichen Nutzen stiftet. Das ist,
glaube ich, eines der grundlegenden Ziele freier Software,
welche wir mit größter Begeisterung
unterstützen.GNU General Public License (GPL)GNU Lesser General Public License (LGPL)BSD CopyrightDer Code in unserem Quellbaum, der unter die General
Public License (GPL) oder die Library General Public License
(LGPL) fällt, stellt geringfügig mehr Bedingungen.
Das aber vielmehr im Sinne von eingefordertem Zugriff, als das
übliche Gegenteil der Beschränkungen. Aufgrund
zusätzlicher Abhängigkeiten, die sich durch die
Verwendung von GPL-Software bei kommerziellem Gebrauch
ergeben, bevorzugen wir daher Software unter dem
transparenteren BSD-Copyright, wo immer es angebracht ist.SatoshiAsamiBeigesteuert von Das Entwicklungsmodell von &os;&os; ProjectEntwicklungsmodellDie Entwicklung von &os; ist ein offener und
vielseitiger Prozess. &os; besteht aus Beisteuerungen
von Hunderten Leuten rund um die Welt, wie Sie aus der
Liste
der Beitragenden ersehen können. Die vielen
Entwickler können aufgrund der Entwicklungs-Infrastruktur
von &os; über das Internet zusammenarbeiten. Wir suchen
ständig nach neuen Entwicklern, Ideen und jenen, die sich
in das Projekt tiefer einbringen wollen. Nehmen Sie einfach
auf der Mailingliste &a.hackers; Kontakt mit uns auf.
Die Mailingliste &a.announce; steht für wichtige
Ankündigungen, die alle &os;-Benutzer betreffen,
zur Verfügung.Unabhängig davon ob Sie alleine oder mit
anderen eng zusammen arbeiten, enthält die folgende
Aufstellung nützliche Informationen über das
&os; Project und dessen Entwicklungsabläufe.CVS- und SVN-Repositories
-
- CVS
- Repository
-
-
-
- Concurrent-Versions-System
- CVS
-
-
-
- SVN
- Repository
-
-
- Subversion
- SVN
-
-
Der Hauptquellbaum von &os; wurde über viele
Jahre ausschließlich mit CVS gepflegt, einem
+ url="http://ximbiot.com/cvs/wiki/">CVSCVSRepositoryConcurrent-Versions-SystemCVS gepflegt, einem
frei erhältlichen Versionskontrollsystem, welches
mit &os; geliefert wird. Im Juni 2008 begann das
&os; Project mit dem Umstieg auf SVN (Subversion).
+ url="http://subversion.tigris.org">SVNSVNRepositorySubversionSVN (Subversion).
Dieser Schritt wurde notwendig, weil
CVS aufgrund des rapide
wachsenden Quellcodebaumes und dem Umfang der bereits
gespeichterten Revisisionsinformationen an seine Grenzen
zu stoßen begann. Während das
Hauptrepository nun SVN
verwendet, hat sich auf der Client-Seite nichts
geändert. Werkzeuge wie
CVSup und
csup, die auf der alten
CVS-Infrastruktur aufbauen,
funktionieren weiterhin, weil alle Änderungen,
die im SVN-Repository
erfolgen, in das
CVS-Repository portiert
werden. Im Moment wird nur src-Quellcodebaum
über SVN verwaltet.
Die Dokumentation, die Webseiten sowie die Ports
befinden sich weiterhin in einem
CVS-Repository. Das
Haupt-CVS-Repository
läuft auf einer Maschine in
Santa Clara, Kalifornien, USA. Von dort wird es auf
zahlreiche Server in aller Welt gespiegelt. Der
SVN-Quellbaum, der die Zweige
-CURRENT und
-STABLE enthält,
kann so einfach auf Ihr eigenes System gespiegelt
werden. Näheres dazu können Sie im Handbuch unter
Synchronisation der Quellen
in Erfahrung bringen.Die Committer-Liste
-
- Committer
-
-
- Die Committer sind Personen
+ Die CommitterCommitter sind Personen
mit Schreibzugriff auf den
CVS-Quellbaum (der Begriff Committer
stammt vom &man.cvs.1;-Befehl commit,
der zum Einspeisen von Änderungen ins Repository
gebraucht wird). Der beste Weg, Vorschläge zur
Prüfung durch die Mitglieder der Committer-Liste
einzureichen, bietet der Befehl &man.send-pr.1;. Sollte es
unerwartete Probleme mit diesem Verfahren geben, besteht
immer noch die Möglichkeit eine E-Mail an die Liste
&a.committers; zu schicken.Das FreeeBSD-Core-Team
-
- Core-Team
-
-
Würde man das &os; Project mit einem
Unternehmen vergleichen, so wäre das
- &os;-Core-Team das
+ &os;-Core-TeamCore-Team das
Gegenstück zum Vorstand. Die Hauptaufgabe des
Core-Teams ist es, das Projekt als Ganzes in gesunder
Verfassung zu halten und die weitere Entwicklung in die
richtige Bahn zu lenken. Das Anwerben leidenschaftlicher
und verantwortungsbewusster Entwickler ist eine
Aufgabe des Core-Team, genauso wie die Rekrutierung
neuer Mitglieder für das Core-Team, im Falle, dass
Altmitglieder aus dem Projekt aussteigen. Das
derzeitige Core-Team wurde im Juli 2010 aus einem Kreis
kandidierender Committer gewählt. Wahlen
werden alle zwei Jahre abgehalten.Einige Core-Team-Mitglieder haben auch spezielle
Verantwortungsbereiche. Das bedeutet, sie haben sich
darauf festgelegt, sicherzustellen, dass ein
größerer Teil des Systems so funktioniert wie
ausgewiesen. Eine vollständige Liste an &os;
beteiligter Entwickler und ihrer Verantwortungsbereiche
kann in der Liste der
Beitragenden eingesehen werden.Die Mehrzahl der Mitglieder des Core-Teams sind
Freiwillige in Bezug auf die &os;-Entwicklung und
profitieren nicht finanziell vom Projekt. Daher
sollte Verpflichtung nicht als
garantierter Support fehlinterpretiert
werden. Der oben angeführte Vergleich mit einem
Vorstand hinkt und es wäre angebrachter zu
erwähnen, dass diese Leute – wider besseres
Wissen – ihr eigenes Leben für &os;
aufgegeben haben!Weitere Beitragende
-
- Beitragende
-
-
Die größte Entwicklergruppe sind
nicht zuletzt die Anwender selbst, die
Rückmeldungen und Fehlerbehebungen in einem anhaltend
hohen Maße an uns senden. Der bevorzugte Weg an
dem weniger zentralisierten Bereich der
&os;-Entwicklung teilzuhaben, ist die
Möglichkeit sich bei der Liste &a.hackers;
anzumelden. Weitere Informationen über die
verschiedenen &os;-Mailinglisten erhalten Sie in
.Die Liste
- der zu &os; Beitragenden ist eine
+ der zu &os; BeitragendenBeitragende ist eine
lange und wachsende. Also warum nicht selbst dort
stehen, indem Sie gleich persönlich etwas zu
&os; beitragen?Quellcode ist nicht der einzige Weg, etwas zum
Projekt beizusteuern. Eine genauere Übersicht
über offene Aufgaben finden Sie auf der &os;-Web-Site.Zusammengefasst bildet unser Entwicklungsmodell einen
losen Verbund konzentrischer Kreise. Das zentralisierte
Modell ist auf die Bedürfnisse der
Anwender zugeschnitten, mit der einfachen
Möglichkeit eine zentrale Code-Basis zu verfolgen und
möglichen neuen Beitragenden nicht das Leben zu
erschweren! Unser Ziel ist es, ein stabiles Betriebssystem mit
einer großen Zahl passender
Programme zu bieten, die der Anwender
leicht installieren und anwenden kann. Und dieses Modell
funktioniert für diese Aufgabe ziemlich gut.Das Einzige was wir von möglichen neuen Mitgliedern
fordern, ist die gleiche Hingabe, mit der die jetzigen
Mitglieder am dauerhaften Erfolg arbeiten!Das aktuelle &os;-ReleaseNetBSDOpenBSD386BSDFree Software FoundationU.C. BerkeleyComputer Systems Research Group (CSRG)&os; ist ein (mit vollem Quellcode und ein frei
erhältliches) auf 4.4BSD-Lite-basierendes Release
für Intel &i386;, &i486;, &pentium;,
&pentium; Pro,
&celeron;,
&pentium; II,
&pentium; III,
&pentium; 4 (oder ein dazu kompatibler Prozessor),
&xeon;, und
Sun &ultrasparc; Systeme.
Es stützt sich zum größten
Teil auf Software der Computer Systems Research Group (CSRG)
der Universität von Kalifornien in Berkeley mit einigen
Verbesserungen aus NetBSD, OpenBSD, 386BSD und der Free
Software Foundation.Seit unserem &os; 2.0 von Ende 1994 haben sich
Leistung, Funktionsvielfalt und Stabilität dramatisch
verbessert.
Die größte Änderung erfuhr das virtuelle
Speichermanagement durch eine Kopplung von virtuellem Speicher
und dem Buffer-Cache, das nicht nur die Leistung
steigert, sondern auch den Hauptspeicherverbrauch reduziert
und ein 5 MB-System zu einem nutzbaren Minimal-System
verhilft. Weitere Verbesserungen sind volle NIS-Client- und
Server-Unterstützung, T/TCP, Dial-On-Demand-PPP,
integriertes DHCP, ein verbessertes SCSI-Subsystem,
ISDN-Support, Unterstützung für ATM-, FDDI-, Fast-
und Gigabit-Ethernet-Karten (1000 Mbit), verbesserter
Support der neusten Adaptec-Controller und tausende
Fehlerkorrekturen.Zusätzlich zur Standard-Distribution bietet &os;
eine Sammlung von portierter Software mit tausenden begehrten
Programmen. Zum Verfassungszeitpunkt waren über
&os.numports; Anwendungen in der Ports-Sammlung! Das Spektrum
der Ports-Sammlung reicht von HTTP-Servern über Spiele,
Programmiersprachen, Editoren und so ziemlich allem
dazwischen. Die gesamte Ports-Sammlung benötigt
&ports.size; an Speicherplatz, wobei jeder Port anhand eines
Deltas zu den Quellen angegeben wird. Das
macht es für uns erheblich leichter, Ports zu
aktualisieren und es verringert den Plattenbedarf im Vergleich
zur älteren 1.0-Port-Sammlung. Um ein Port zu
übersetzen, müssen Sie einfach ins Verzeichnis des
Programms wechseln und ein make install
absetzen. Den Rest erledigt das System. Die originalen
Quellen jedes zu installierenden Port werden dynamisch von
CD-ROM oder einem FTP-Server bezogen. Es reicht also für
genügend Plattenplatz zu sorgen, um die gewünschten
Ports zu erstellen. Allen, die Ports nicht selbst kompilieren
wollen: Es gibt zu fast jedem Port ein vorkompiliertes
Paket, das einfach mit dem Befehl (pkg_add)
installiert wird. Pakete und Ports werden in
beschrieben.Eine Reihe von weiteren Dokumenten, die sich als hilfreich
bei der Installation oder dem Arbeiten mit &os; erweisen
könnten, liegen auf neueren &os;-Systemen im Verzeichnis
/usr/share/doc. Die lokal installierten
Anleitungen lassen sich mit jedem HTML-fähigen Browser
unter folgenden Adressen betrachten:Das &os;-Handbuch/usr/share/doc/handbook/index.htmlDie &os;-FAQ/usr/share/doc/faq/index.htmlEs besteht auch die Möglichkeit, sich die jeweils
aktuellste Version der Referenzdokumente auf der FreeBSD-Homepage
anzusehen.
diff --git a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml
index e7fe8e8ffd..ee2f175dcd 100644
--- a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml
+++ b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml
@@ -1,3403 +1,3353 @@
JimMockRestrukturiert, neu organisiert und aktualisiert von ThomasSchwarzkopfÜbersetzt von PPP und SLIPÜbersichtPPPSLIPUnter FreeBSD stehen verschiedene Möglichkeiten zur
Verfügung, um Computer miteinander zu verbinden. Der Aufbau
einer Netzwerk- oder Internetverbindung mit Hilfe eines Einwahlmodems
– für den eigenen oder für andere Rechner –
erfordert den Einsatz von PPP oder SLIP.Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:Wie Sie User-PPP einrichten.Wie Sie Kernel-PPP einrichten (nur für
&os; 7.X relevant).Was zu tun ist, um PPPoE (PPP over
Ethernet) einzurichten.Wie Sie PPPoA (PPP over
ATM) einrichten.Wie Sie einen SLIP-Client und -Server einrichten und
konfigurieren ((nur für &os; 7.X relevant)PPPUser-PPPPPPKernel-PPPPPPover EthernetBevor Sie dieses Kapitel lesen, sollten Sie:mit den grundlegenden Begriffen der Netzwerktechnik
vertraut sein.die Grundlagen und den Zweck einer Einwahlverbindung sowie
PPP und/oder SLIP kennen.Sie fragen sich vielleicht, worin denn der Hauptunterschied
zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach:
User-PPP verarbeitet die ein- und ausgehenden Daten im Userland,
statt im Kernel. Dies ist zwar aufwändig, im Hinblick auf
die Daten, die dadurch zwischen Kernel und Userland hin und her
kopiert werden müssen, doch es ermöglicht auch eine
PPP-Implementierung mit weitaus mehr Funktionen. User-PPP verwendet
das Gerät tun, um mit anderen Rechnern
zu kommunizieren, während Kernel-PPP hierfür das
Gerät ppp benutzt.In diesem Kapitel wird durchgängig vom Programm
ppp gesprochen, wenn damit User-PPP
gemeint ist. Ausnahmen werden gemacht, wenn eine
Unterscheidung gegenüber anderer PPP-Software, wie
pppd (nur unter &os; 7.X),
notwendig wird. Soweit nichts
anderes angegeben ist, sollten alle Befehle, die in diesem
Kapitel erklärt werden, als root
ausgeführt werden.TomRhodesAktualisiert und erweitert von BrianSomersUrsprünglich geschrieben von NikClaytonMit Beiträgen von DirkFrömbergPeterChildsUser-PPPMit &os; 8.0 wurden die Gerätedateien für
serielle Ports umbenannt:
/dev/cuadN wurde
zu /dev/cuauN,
/dev/ttydN zu
/dev/ttyuN.
Verwenden Sie noch &os; 7.X, müssen Sie dies beim
Lesen der folgenden Abschnitte berücksichtigen.User-PPPVoraussetzungenDieses Dokument geht davon aus, dass Sie Folgendes zur
Verfügung haben:
-
- ISP
-
-
- PPP
-
- Einen Account bei einem Internet Service Provider (ISP),
- zu dem Sie mit PPP eine Verbindung aufbauen können.
+ Einen Account bei einem Internet Service Provider (ISP)ISP,
+ zu dem Sie mit PPPPPP eine Verbindung aufbauen können.Ein Modem oder ein anderes Gerät, das, richtig
konfiguriert und mit Ihrem Rechner verbunden, Ihnen die
Herstellung einer Verbindung zu Ihrem ISP erlaubt.Die Einwahlnummer(n) Ihres ISP.
-
- PAP
-
-
- CHAP
-
-
- UNIX
-
-
- Login Name
-
-
- Passwort
-
- Ihren Login-Namen und Ihr Passwort (entweder ein
- reguläres Login/Passwort-Paar im &unix;-Stil oder
- ein PAP bzw. CHAP Login/Passwort-Paar).
+ Ihren Login-NamenLogin Name und Ihr PasswortPasswort (entweder ein
+ reguläres Login/Passwort-Paar im &unix;-StilUNIX oder
+ ein PAPPAP bzw. CHAPCHAP Login/Passwort-Paar).
-
- Nameserver
-
-
- Die IP-Adresse von einem oder mehreren Nameservern.
+ Die IP-Adresse von einem oder mehreren NameservernNameserver.
Üblicherweise werden Ihnen von Ihrem ISP zwei
IP-Adressen für diesen Zweck zur Verfügung gestellt.
Wenn Sie keine solche IP-Adresse von Ihrem
Provider bekommen haben, können Sie das Kommando
enable dns in der Datei
ppp.conf verwenden, um
ppp anzuweisen, den Nameserver
für Sie einzutragen. Diese Funktion setzt allerdings
voraus, dass Ihr ISP eine PPP-Implementierung verwendet,
die das Aushandeln eines Nameservers unterstützt.Die folgenden Informationen werden Ihnen möglicherweise
von Ihrem ISP zur Verfügung gestellt, sie sind aber nicht
zwingend erforderlich:Die Gateway IP-Adresse Ihres ISP. Als Gateway wird
der Computer bezeichnet, zu dem Sie eine Verbindung aufbauen.
Die IP-Adresse dieses Rechners wird als
default route eingetragen. Wenn Sie
diese Information nicht zur Verfügung haben, kann PPP so
konfiguriert werden, dass der PPP-Server Ihres ISP während
des Verbindungsaufbaus eine gültige Adresse
übermittelt.ppp bezieht sich mit
HISADDR auf diese IP-Adresse.Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr
ISP keine Netzmaske vorgegeben hat, können Sie
255.255.255.255 verwenden.
-
- feste IP-Adresse
-
-
- Wenn Ihnen Ihr ISP eine statische IP-Adresse zur
+ Wenn Ihnen Ihr ISP eine statische IP-Adressefeste IP-Adresse zur
Verfügung stellt, können Sie diese eintragen.
Andernfalls lassen wir uns einfach von der Gegenstelle
eine IP-Adresse zuweisen.Falls Ihnen die erforderlichen Informationen fehlen
sollten, nehmen Sie bitte Kontakt mit Ihrem ISP auf.Die Beispieldateien, die in diesem Kapitel dargestellt werden,
enthalten Zeilennummern. Die Nummerierung dient lediglich einer
leichteren Orientierung und sollte von Ihnen nicht in Ihre Dateien
übernommen werden. Richtiges Einrücken, durch
Tabulatoren und Leerzeichen, ist ebenfalls wichtig.Automatische Konfiguration von
PPPPPPKonfigurationSowohl ppp als auch pppd
(die PPP-Implementierung auf Kernelebene, nur unter &os; 7.X)
verwenden die
Konfigurationsdateien im Verzeichnis /etc/ppp.
Beispiele für User-PPP sind in /usr/share/examples/ppp/
zu finden.Die Konfiguration von ppp erfordert,
je nach Ihren besonderen Bedingungen, die Bearbeitung
einiger Dateien. Was Sie in diese Dateien eintragen, hängt
unter anderem davon ab, ob Ihnen Ihr ISP eine statische
IP-Adresse (Sie verwenden immer dieselbe IP-Adresse,
die Ihnen einmal zugeteilt wurde) oder eine dynamische IP-Adresse
(Ihre IP-Adresse ändert sich bei jeder Verbindung
mit dem ISP) zugewiesen hat.PPP und statische IP-AdressenPPPmit fester IP-AdresseSie müssen die Konfigurationsdatei
/etc/ppp/ppp.conf bearbeiten. Sie sollte
so aussehen, wie in dem unten angegebenen Beispiel.Zeilen die mit einem : enden,
beginnen in der ersten Spalte (am Beginn der Zeile). Alle
anderen Zeilen sollten wie dargestellt durch Leerzeichen
oder Tabulatoren eingerückt werden.1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuau0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr x.x.x.xy.y.y.y 255.255.255.255 0.0.0.0
18 add default HISADDRZeile 1:Gibt den Standardeintrag an. Befehle dieses
Eintrags werden automatisch ausgeführt, wenn
ppp läuft.Zeile 2:Schaltet die Loggingparameter ein. Wenn die
Verbindung zufriedenstellend funktioniert, können
Sie diese Zeile verkürzen:set log phase tunDies verhindert ein übermäßiges
Anwachsen der Logdateien.Zeile 3:Gibt PPP an, wie es sich gegenüber der
Gegenstelle identifizieren soll. PPP identifiziert
sich gegenüber der Gegenstelle, wenn es Schwierigkeiten
bei der Aushandlung und beim Aufbau der Verbindung gibt.
Dabei werden Informationen bereitgestellt, die dem
Administrator der Gegenstelle helfen
können, die Ursache der Probleme zu finden.Zeile 4:Gibt das Device an, an dem das Modem
angeschlossen ist.
COM1 entspricht /dev/cuad0 und
COM2 entspricht /dev/cuad1.Zeile 5:Legt die Geschwindigkeit fest, mit der Sie
die Verbindung betreiben möchten. Falls ein Wert
von 115200 nicht funktioniert (was aber bei jedem
einigermaßen neuen Modem
funktionieren sollte), versuchen Sie es stattdessen
mit 38400.Zeilen 6 & 7:
-
- PPP
- User-PPP
-
-
- Die Zeichenfolge für die Einwahl. User-PPP
+ Die Zeichenfolge für die Einwahl. User-PPPPPPUser-PPP
verwendet eine expect-send Syntax, ähnlich dem
&man.chat.8;-Programm. Weitere Informationen zu den
Eigenschaften dieser Sprache bietet die Manual-Seite.Beachten Sie, dass dieser Befehl aufgrund der
besseren Lesbarkeit auf der nächsten Zeile weitergeht.
Das kann für jeden Befehl in
ppp.conf gelten, wenn
\ das letzte Zeichen in einer Zeile
ist.Zeile 8:Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion
erfolgen muss. Der Standardwert liegt bei 180 Sekunden, so
dass diese Zeile lediglich einen kosmetischen Charakter
hat.Zeile 9:Weist PPP an, bei der Gegenstelle eine Bestätigung
der lokalen Resolvereinstellungen anzufordern. Wenn Sie
einen lokalen Nameserver betreiben, sollte diese Zeile
auskommentiert oder gelöscht werden.Zeile 10:Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen
werden von PPP ignoriert.Zeile 11:Bestimmt einen Provider, namens
provider. Wenn Sie hier den Namen Ihres
ISP einsetzen, können Sie später die Verbindung
mit
aufbauen.Zeile 12: Gibt die Telefonnummer des Providers an. Mehrere
Telefonnummern können angegeben werden, indem Doppelpunkte
(:) oder Pipe-Zeichen
(|) als Trennzeichen verwendet werden.
Der Unterschied zwischen diesen beiden Trennzeichen ist in
&man.ppp.8; beschrieben.
Zusammenfassend: Wenn Sie die verschiedenen Nummern
abwechselnd verwenden möchten, sollten Sie die
Nummern durch einen Doppelpunkt trennen.
Wenn Sie immer die erste Nummer verwenden möchten und
die anderen nur zum Einsatz kommen sollen, wenn eine Einwahl
mit der ersten Telefonnummer nicht möglich ist, sollten
Sie das Pipe-Zeichen zur Trennung verwenden.
Wie im Beispiel, sollten Sie die gesamte Reihe der
Telefonnummern in Anführungszeichen setzen.Sie müssen die Telefonnummer in
Anführungszeichen (") setzen,
wenn Sie Leerzeichen in der Telefonnummer verwenden,
ansonsten rufen Sie einen Fehler hervor, der vielleicht
schwer zu finden ist.Zeilen 13 & 14:Gibt den Benutzernamen und das Passwort an. Wenn Sie
zur Verbindung einen Login-Prompt im UNIX-Stil verwenden,
bezieht sich der Befehl set login
mit den \U und \P Variablen auf diese Werte. Wenn Sie
zum Verbindungsaufbau PAP oder CHAP verwenden, werden
diese Werte zum Zeitpunkt der
Authentifizierung verwendet.Zeile 15:
- PAP
- CHAP
-
- Wenn Sie PAP oder CHAP einsetzen, gibt es an
+ Wenn Sie PAPPAP oder CHAPCHAP einsetzen, gibt es an
dieser Stelle keinen Login-Prompt, weshalb Sie diese
Zeile auskommentieren oder löschen sollten. Der
Abschnitt Authentifizierung
mit PAP und CHAP enthält hierzu weitere
Einzelheiten.Der Login-String hat die gleiche chat-ähnliche
Syntax, wie der Einwahlstring. Der String in diesem
Beispiel funktioniert mit einem ISP, dessen
Login-Session folgendermaßen aussieht:J. Random Provider
login: foo
password: bar
protocol: pppSie müssen dieses Skript noch an Ihre
eigenen Erfordernisse anpassen. Wenn Sie dieses Skript
zum ersten Mal schreiben, sollten Sie sicherstellen,
dass Sie chat-logging aktiviert haben,
damit Sie überprüfen zu können, ob
die Konversation zwischen Ihrem Rechner und dem Rechner
des Providers wie erwartet abläuft.Zeile 16:
- Zeitbeschränkung
-
- Setzt einen Zeitrahmen (in Sekunden), innerhalb
+ Setzt einen ZeitrahmenZeitbeschränkung (in Sekunden), innerhalb
dessen eine Reaktion erfolgen muss. In diesem Fall,
wird die Verbindung nach 300 Sekunden automatisch
geschlossen, wenn keine Aktivität zu
verzeichnen ist. Wenn Sie keinen Zeitrahmen festlegen
wollen, nach dessen Überschreiten die Verbindung
geschlossen wird, können Sie diesen Wert auf 0
setzen oder die Kommandozeilen-Option
verwenden.Zeile 17:
- ISP
-
Gibt die IP-Adresse für das Interface an.
Der String x.x.x.x sollte
durch die IP-Adresse ersetzt werden, die Ihnen Ihr
Provider zugeteilt hat. Der String
y.y.y.y sollte durch die
- IP-Adresse ersetzt werden, die Ihr ISP als Gateway
+ IP-Adresse ersetzt werden, die Ihr ISP ISP als Gateway
angegeben hat (das ist der Rechner, mit dem Ihr Rechner
eine Verbindung aufbaut). Wenn Ihnen Ihr ISP keine
Gateway Adresse zur Verfügung gestellt hat,
verwenden Sie hier einfach 10.0.0.2/0. Wenn Sie
eine erratene IP-Adresse verwenden
müssen, sollten Sie in der Datei
/etc/ppp/ppp.linkup einen
entsprechenden Eintrag machen. Folgen Sie dazu den
Anweisungen im Abschnitt PPP und dynamische
IP-Adressen. Wenn diese Zeile ausgelassen
wird, kann ppp nicht im
Modus betrieben werden.Zeile 18:Fügt eine Defaultroute für das Gateway Ihres
Providers hinzu. Das Wort HISADDR wird
dabei durch die in Zeile 17 angegebene Gateway
Adresse ersetzt. Wichtig ist, dass diese Zeile nach
Zeile 17 erscheint, da andernfalls
HISADDR noch nicht initialisiert
ist.Wenn Sie ppp nicht im
Modus betreiben, sollte diese Zeile in die Datei
ppp.linkup
verschoben werden.Wenn Sie eine statische IP-Adresse verwenden und ppp im
Modus läuft, ist es nicht notwendig,
einen Eintrag in die Datei ppp.linkup
hinzuzufügen. In diesem Fall hat ihre Routingtabelle
bereits die richtigen Einträge, bevor Sie die Verbindung
aufbauen. Sie möchten aber vielleicht einen Eintrag
hinzufügen, um ein Programm aufzurufen, nachdem die
Verbindung aufgebaut ist. Dies wird weiter unten am Beispiel
von Sendmail erklärt.Beispiele für Konfigurationsdateien finden Sie
im Verzeichnis /usr/share/examples/ppp/.PPP und dynamische IP-AdressenPPPmit dynamischen IP-AdressenIPCPWenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt,
kann ppp so konfiguriert werden, dass die
lokale und die entfernte IP-Adresse beim Verbindungsaufbau
ausgehandelt werden. Dies geschieht, indem zunächst eine
IP-Adresse erraten wird, die von
ppp, unter Verwendung des IP
Configuration Protocol (IPCP) durch eine richtige ersetzt wird,
wenn die Verbindung aufgebaut ist. Die Konfiguration der Datei
ppp.conf entspricht derjenigen, die im
Abschnitt PPP und statische IP-
Adressen dargestellt wurde, jedoch mit folgender
Änderung:17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0Auch hier dient die Zeilennummerierung lediglich der
besseren Übersichtlichkeit. Einrückungen, von
mindestens einem Leerzeichen, sind allerdings erforderlich.Zeile 17:Die Zahl nach dem / Zeichen,
gibt die Anzahl der Bits der Adresse an, auf die ppp
besteht. Sie möchten vielleicht andere IP-Adressen
verwenden, die oben angegebenen werden aber immer
funktionieren.Das letzte Argument (0.0.0.0) weist
PPP an, den Verbindungsaufbau mit der Adresse 0.0.0.0 zu beginnen, statt 10.0.0.1 zu verwenden. Dies ist bei
einigen ISPs notwendig. Verwenden Sie nicht
0.0.0.0
als erstes Argument für set ifaddr,
da so verhindert wird, dass
PPP im Modus eine initiale Route
setzt.Wenn PPP nicht im Modus läuft,
müssen Sie die Datei/etc/ppp/ppp.linkup
editieren. ppp.linkup kommt zum Einsatz, wenn
eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat
ppp die Interface Adressen vergeben und es ist
möglich, die Einträge in der Routingtabelle
hinzuzufügen:1 provider:
2 add default HISADDRZeile 1:Beim Aufbau einer Verbindung sucht ppp
in der Datei ppp.linkup nach einem
Eintrag. PPP geht dabei nach folgenden Regeln vor:
Suche zunächst nach der gleichen Bezeichnung,
die wir auch in der Datei ppp.conf
verwendet haben. Falls das nicht
funktioniert, suche nach einem Eintrag der IP-Adresse unseres
Gateways. Dieser Eintrag ist eine Bezeichnung im Stil von
IP-Adressen, die sich aus vier Oktetts zusammensetzt. Falls
immer noch kein passender Eintrag gefunden wurde, suche nach
dem Eintrag MYADDR.Zeile 2:Diese Zeile weist ppp an, eine
Defaultroute zu verwenden, die auf HISADDR
zeigt. HISADDR wird nach der
Aushandlung mit IPCP durch die IP-Adresse des
Gateways ersetzt.Die Dateien
/usr/share/examples/ppp/ppp.conf.sample
und /usr/share/examples/ppp/ppp.linkup.sample
bieten detaillierte Beispiele für pmdemand
Einträge.Annahme eingehender AnrufePPPeingehende Anrufe annehmenWenn Sie ppp auf einem Rechner,
der in ein LAN eingebunden ist, so konfigurieren, dass eingehende
Anrufe angenommen werden, müssen Sie entscheiden,
ob Pakete an das LAN weitergeleitet werden sollen. Wenn Sie das
möchten, sollten Sie an die Gegenstelle eine IP-Adresse aus
Ihrem lokalen Subnetz vergeben und den Befehl
enable proxy
in die Datei /etc/ppp/ppp.conf einfügen.
Außerdem sollte die Datei /etc/rc.conf
Folgendes enthalten:gateway_enable="YES"Welches getty?Der Abschnitt Einwählverbindungen
bietet eine gute Beschreibung, wie Einwählverbindungen unter
Verwendung von &man.getty.8; genutzt werden können.Eine Alternative zu getty ist mgetty,
eine raffiniertere Version von getty, die mit
Blick auf Einwählverbindungen entworfen wurde. Sie
können dieses Paket über den Port comms/mgetty+sendfax
installieren.Der Vorteil von mgetty ist,
dass es auf aktive Weise mit Modems spricht,
das heißt wenn ein Port in /etc/ttys
ausgeschaltet ist, wird Ihr Modem nicht auf Anrufe
reagieren.Spätere Versionen von mgetty (von
0.99beta aufwärts) unterstützen auch die automatische
Erkennung von PPP-Streams, was Ihren Clients den skriptlosen
Zugang zu Ihren Servern erlaubt.Der Abschnitt Mgetty und
AutoPPP bietet weitere Informationen zu
mgetty.PPP und RechteDer Befehl ppp muss normalerweise als
root ausgeführt werden. Wenn Sie
jedoch möchten, dass ppp im Server-Modus
auch von einem normalen Benutzer, wie unten beschrieben,
durch Aufruf von ppp
ausgeführt werden kann, müssen Sie
diesem Benutzer die Rechte erteilen, ppp
auszuführen, indem Sie ihn in der Datei
/etc/group der Gruppe
network hinzufügen.Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere
Abschnitte der Konfigurationsdatei geben müssen, indem Sie
den allow Befehl verwenden:allow users fred maryWenn dieser Befehl im default
Abschnitt verwendet wird, erhalten die angegebenen Benutzer
vollständigen Zugriff.PPP-Shells für dynamische IP-AdressenPPP ShellsErzeugen Sie eine Datei mit dem Namen
/etc/ppp/ppp-shell, die Folgendes
enthält:#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENTDieses Skript sollte ausführbar sein. Nun
erzeugen Sie einen symbolischen Link
ppp-dialup auf dieses Skript
mit folgendem Befehl:&prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialupSie sollten dieses Skript als
Shell für alle Benutzer von
Einwählverbindungen verwenden. Dies ist ein Beispiel
aus der Datei /etc/passwd
für einen Benutzer namens pchilds,
der PPP für Einwählverbindungen verwenden kann
(Denken Sie daran, die Passwortdatei nicht direkt zu
editieren, sondern dafür &man.vipw.8; zu
verwenden).pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialupErstellen Sie ein Verzeichnis /home/ppp, das von allen Benutzern
gelesen werden kann und die folgenden leeren Dateien
enthält:-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhostsDies verhindert, dass /etc/motd
angezeigt wird.PPP-Shells für statische IP-AdressenPPP ShellsErstellen Sie die Datei ppp-shell
wie oben oben dargestellt. Erzeugen Sie nun für
jeden Account mit statischer IP-Adresse einen symbolischen
Link auf ppp-shell.Wenn Sie beispielsweise die drei Kunden,
fred, sam und
mary haben, für die Sie
CIDR-/24-Netzwerke routen, schreiben Sie Folgendes:&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-maryJeder Einwählzugang dieser Kunden sollte den
oben erzeugten symbolischen Link als Shell haben
(mary's Shell
sollte also /etc/ppp/ppp-mary sein).Einrichten von ppp.conf für
dynamische IP-AdressenDie Datei /etc/ppp/ppp.conf sollte in
etwa wie folgt aussehen:default:
set debug phase lcp chat
set timeout 0
ttyu0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyu1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxyDie Einrückungen sind wichtig.Der Abschnitt default: wird für
jede Sitzung geladen. Erstellen Sie für jede
Einwählverbindung, die Sie in der Datei
/etc/ttys ermöglicht haben, einen
Eintrag, wie oben für ttyu0: gezeigt.
Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool
der Adressen bekommen, die sie für diese Benutzergruppe
reserviert haben.Einrichten von ppp.conf für
statische IP-AdressenZu dem bisher dargestellten Inhalt der Beispieldatei
/usr/share/examples/ppp/ppp.conf sollten
Sie einen Abschnitt für jeden Benutzer mit statisch
zugewiesener IP-Adresse hinzufügen. Wir werden nun
unser Beispiel mit den
Accounts fred, sam und
mary weiterführen.fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255Die Datei /etc/ppp/ppp.linkup sollte,
falls erforderlich, ebenfalls Routinginformationen für
jeden Benutzer mit statischer IP-Adresse enthalten. Die unten
dargestellte Zeile würde dem Netzwerk 203.14.101.0/24 eine Route über die
PPP-Verbindung des Client hinzufügen.fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDRmgetty und AutoPPPmgettyAutoPPPLCPIn der Voreinstellung wird mgetty
mit der Option AUTO_PPP konfiguriert
und kompiliert. Dadurch kann mgetty
die LCP Phase von PPP-Verbindungen
erkennen und automatisch eine ppp-Shell starten.
Da hierbei jedoch die Login/Passwort-Sequenz nicht
durchlaufen wird, ist es notwendig, Benutzer durch PAP
oder CHAP zu authentifizieren.In diesem Abschnitt wird davon ausgegangen, dass der
Benutzer den Port comms/mgetty+sendfax auf seinem
System kompiliert und installiert hat.Stellen Sie sicher, dass die Datei
/usr/local/etc/mgetty+sendfax/login.config
Folgendes enthält:/AutoPPP/ - - /etc/ppp/ppp-pap-dialupHierdurch wird mgetty angewiesen,
das Skript ppp-pap-dialup für
die erkannten PPP-Verbindungen auszuführen.Erstellen Sie nun die Datei
/etc/ppp/ppp-pap-dialup mit folgendem
Inhalt (die Datei sollte ausführbar sein):#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENTErstellen Sie bitte für jede Einwählverbindung,
die Sie in /etc/ttys ermöglicht haben,
einen korrespondierenden Eintrag in der Datei
/etc/ppp/ppp.conf. Diese
Einträge können problemlos, mit den Definitionen
die wir weiter oben gemacht haben, koexistieren.pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxyJeder Benutzer, der sich auf diese Weise anmeldet,
benötigt einen Benutzernamen und ein Passwort in der Datei
/etc/ppp/ppp.secret. Sie haben auch die
Möglichkeit, Benutzer mit Hilfe von PAP zu authentifizieren,
indem Sie der Datei /etc/passwd folgende
Option hinzufügen:enable passwdauthWenn Sie bestimmten Benutzern eine statische IP-Adresse
zuweisen möchten, können Sie diese als drittes
Argument in der Datei
/etc/ppp/ppp.secret angeben. In
/usr/share/examples/ppp/ppp.secret.sample
finden Sie hierfür Beispiele.MS-ErweiterungenDNSNetBIOSPPPErweiterungen von MicrosoftEs ist möglich PPP so zu konfigurieren, dass bei Bedarf
DNS und NetBIOS Nameserveradressen bereitgestellt werden.Um diese Erweiterungen für die PPP Version 1.x
zu aktivieren, sollte der entsprechende Abschnitt der Datei
/etc/ppp/ppp.conf um folgende Zeilen
ergänzt werden:enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Für PPP Version 2 und höher:accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Damit werden den Clients die primären und sekundären
Nameserveradressen sowie ein NetBIOS Nameserver-Host
mitgeteilt.In Version 2 und höher verwendet PPP die Werte, die
in /etc/resolv.conf zu finden sind, wenn
die Zeile set dns weggelassen wird.Authentifizierung durch PAP und CHAPPAPCHAPEinige ISPs haben ihr System so eingerichtet, dass der
Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von
PAP oder CHAP-Mechanismen durchgeführt wird. Wenn dies bei
Ihnen der Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung
keinen login:-Prompt präsentieren,
sondern sofort mit der Aushandlung der PPP-Verbindung
beginnen.PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist
hierbei normalerweise kein Problem, da Passwörter, obgleich
von PAP im Klartext versandt, lediglich über die
serielle Verbindung verschickt werden. Es gibt für Cracker
wenig Möglichkeiten zu lauschen.Zurückkommend auf die Abschnitte
PPP und statische
IP-Adressen oder PPP und dynamische IP-Adressen
müssen folgende Veränderungen vorgenommen werden:13 set authname MyUserName
14 set authkey MyPassword
15 set loginZeile 13:Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest.
Sie müssen den richtigen Wert für
MyUserName eingeben.Zeile 14:
- Passwort
-
- Diese Zeile legt Ihr PAP/CHAP Passwort fest. Sie
+ Diese Zeile legt Ihr PAP/CHAP PasswortPasswort fest. Sie
müssen den richtigen Wert für
MyPassword eingeben.
Sie können eine zusätzliche Zeile, wie etwa:16 accept PAPoder16 accept CHAPverwenden, um deutlich zu machen, dass dies
beabsichtigt ist, aber sowohl PAP wie auch CHAP als
standardmäßig akzeptiert werden.Zeile 15:Ihr ISP wird normalerweise nicht von Ihnen verlangen,
dass Sie sich am Server einloggen, wenn Sie PAP oder CHAP
verwenden. Sie müssen deshalb den String
set login deaktivieren.Veränderung Ihrer ppp
Konfiguration im laufenden BetriebEs ist möglich, dem Programm ppp
Befehle zu erteilen, während es im Hintergrund läuft.
Dazu ist jedoch die Einrichtung eines passenden Diagnose-Ports
erforderlich. Ergänzen Sie hierzu Ihre Konfigurationsdatei
um folgende Zeile:set server /var/run/ppp-tun%d DiagnosticPassword 0177Damit wird PPP angewiesen, auf den angegebenen
UNIX-Domainsocket zu hören und Clients nach dem angegebenen
Passwort zu fragen, bevor der Zugang Gewährt wird. Das
%d wird durch die Nummer des benutzten
tun-Devices ersetzt.Wenn ein Socket eingerichtet ist, kann das Programm
&man.pppctl.8; in Skripten verwendet werden, mit denen in das
laufende Programm eingegriffen wird.Interne NAT von PPP benutzenPPPNATPPP kann Network Address Translation (NAT) ohne Hilfe des
Kernels durchführen. Wenn Sie diese Funktion benutzen
wollen, fügen Sie die folgende Zeile in
/etc/ppp/ppp.conf ein:nat enable yesSie können NAT mit der Option
auf der Kommandozeile von PPP aktivieren. Weiterhin kann
NAT in /etc/rc.conf mit der Variablen
ppp_nat aktiviert werden. Dies ist auch die
Voreinstellung.Die nachstehende /etc/ppp/ppp.conf
benutzt NAT für bestimmte eingehende Verbindungen:nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http httpWenn Sie Verbindungen von außen überhaupt nicht
trauen, benutzen Sie die folgende Zeile:nat deny_incoming yesAbschließende SystemkonfigurationPPPKonfigurationSie haben ppp nun konfiguriert,
aber bevor PPP eingesetzt werden kann, gibt noch einige
weitere Dinge zu erledigen, die alle die Bearbeitung der
Datei /etc/rc.conf erfordern.Gehen Sie diese Datei von oben nach unten durch, und stellen Sie
als Erstes sicher, dass die Zeile hostname=
vorhanden ist:hostname="foo.example.com"Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen
zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen
Namen als Hostnamen verwenden.Schauen Sie nach der Variable
network_interfaces. Wenn Sie Ihr System
so konfigurieren möchten, dass bei Bedarf
eine Verbindung zu Ihrem ISP aufgebaut wird, sollten Sie das Device
tun0 zu der Liste hinzufügen oder es
andernfalls entfernen.network_interfaces="lo0 tun0"
ifconfig_tun0=Die Variable ifconfig_tun0 sollte leer sein
und eine Datei namens /etc/start_if.tun0 sollte
erstellt werden. Diese Datei sollte die nachfolgende Zeile
enthalten:ppp -auto mysystemDieses Skript startet Ihren ppp-Dæmon im Automatik-Modus.
Es wird bei der Netzwerkkonfiguration ausgeführt.
Wenn Ihr Rechner als Gateway für ein LAN fungiert,
möchten Sie vielleicht auch die Option
verwenden. In der Manual-Seite sind
weitere Einzelheiten hierzu zu finden.Stellen Sie sicher, dass der Start eines Routerprogramms
in /etc/rc.conf wie folgt deaktiviert
ist:router_enable="NO"routedEs ist wichtig, dass der routed
Dæmon nicht gestartet wird da routed
dazu tendiert, die von ppp erstellten
Einträge der Standardroute zu überschreiben.Es ist außerdem sinnvoll, darauf zu achten, dass die Zeile
sendmail_flags nicht die Option
enthält, da sendmail sonst ab und zu
die Netzwerkverbindung prüfen wird, was möglicherweise dazu
führt, dass sich Ihr Rechner einwählt. Sie können
hier Folgendes angeben:sendmail_flags="-bd"sendmailDer Nachteil dieser Lösung ist, dass Sie
sendmail nach jedem Aufbau einer
ppp-Verbindung auffordern müssen, die Mailwarteschlange
zu überprüfen, indem Sie Folgendes eingeben:&prompt.root; /usr/sbin/sendmail -qVielleicht möchten Sie den Befehl !bg
in der Datei ppp.linkup verwenden, um dies
zu automatisieren:1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30mSMTPWenn Sie dies nicht möchten, ist es möglich,
einen dfilter einzusetzen, um SMTP-Verkehr
zu blockieren. Weitere Einzelheiten hierzu finden Sie in den
Beispieldateien.Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu
zu starten. Nach dem Neustart können Sie entweder:&prompt.root; pppund danach dial provider eingeben,
um eine PPP-Sitzung zu starten, oder Sie geben:&prompt.root; ppp -auto providerein, um ppp bei Datenverkehr aus Ihrem
Netzwerk heraus, automatisch eine Verbindung herstellen
zu lassen (vorausgesetzt Sie haben kein
start_if.tun0 Skript erstellt).ZusammenfassungDie folgenden Schritte sind nötig, wenn ppp zum ersten Mal
eingerichtet werden soll:Clientseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei tunN
im Verzeichnis /dev vorhanden ist.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
pmdemand sollte für die meisten
ISP ausreichen.Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie
einen Eintrag in der Datei
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Erstellen Sie das Skript start_if.tun0,
wenn Sie einen bedarfgesteuerten Einwahlprozess
(demand dialing)
benötigen.Serverseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunN
im Verzeichnis /dev vorhanden istErstellen Sie einen Eintrag in der Datei
/etc/passwd
(verwenden Sie dazu das Programm &man.vipw.8;).Erstellen Sie ein Profil im Heimatverzeichnis des
Benutzers, das
ppp -direct direct-server o.Ä.
ausführt.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
direct-server sollte ausreichen.Erzeugen Sie einen Eintrag in
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Gennady B.SorokopudTeile wurden ursprünglich beigetragen von RobertHuffKernel-PPPDer folgende Abschnitt ist ausschließlich
für &os; 7.X relevant und gültig.Einrichtung von Kernel-PPPPPPKernel-PPPBevor Sie PPP auf Ihrem Computer einrichten, sollten Sie
dafür sorgen, dass pppd im Verzeichnis /usr/sbin vorhanden ist und /etc/ppp existiert.pppd kann auf zweierlei Weise arbeiten:Als Client – Sie möchten
Ihren Rechner mit einem Netz verbinden, indem Sie eine
serielle PPP-Verbindung aufbauen.
-
- PPP
- Server
-
-
- Als Server – Ihr Rechner ist in
+ Als ServerPPPServer – Ihr Rechner ist in
ein Netzwerk eingebunden und stellt die PPP-Verbindung
für andere Rechner im Netzwerk her.In beiden Fällen werden Sie eine Datei mit den
benötigten Optionen erstellen müssen
(/etc/ppp/options oder,
wenn mehr als ein Benutzer PPP verwendet,
~/.ppprc).Sie benötigen außerdem eine Software
(vorzugsweise comms/kermit), mit der
Sie seriell per Modem wählen und eine Verbindung zu dem
entfernten Host aufbauen können.TrevRoydhouseBasierend auf Informationen von Verwendung von pppd als ClientPPPClientCiscoDie folgende Datei /etc/ppp/options
kann für einen Verbindungsaufbau mit PPP zu einem Cisco
Terminalserver verwendet werden.crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address
# if the remote host does not send your IP during IPCP
# negotiation, remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:remote_ip # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to local_ip:remote_ip
defaultroute # put this if you want that PPP server will be your
# default routerUm eine Verbindung herzustellen, sollten Sie:KermitModemMit Kermit (oder einem
anderen Modemprogramm) den entfernten Host anwählen
und Ihren Benutzernamen sowie Ihr Passwort (oder was
sonst nötig ist, um PPP auf dem entfernten Host
zu aktivieren) eingeben.Kermit beenden
(ohne die Verbindung abzubrechen).Folgendes eingeben:&prompt.root; /usr/sbin/pppd /dev/tty0119200Achten Sie darauf, dass sie eine geeignete Geschwindigkeit
wählen und das richtige Device verwenden.Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn
die Verbindung nicht funktionieren sollte, können Sie
die Option in die Datei
/etc/ppp/options eintragen und die Ausgaben
auf der Konsole beobachten, um die Fehler zu finden.Das folgende Skript /etc/ppp/pppup
führt alle 3 Schritte automatisch aus:#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200Kermit/etc/ppp/kermit.dial ist
ein Kermit-Skript
das den Einwählvorgang und alle notwendigen Autorisationen auf
dem entfernten Host durchführt (ein Beispiel für ein
solches Skript ist im Anhang zu diesem Dokument zu finden).Verwenden Sie das folgende Skript
/etc/ppp/pppdown, um die PPP-Verbindung
abzubrechen:#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill -TERM ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptestPrüfen Sie, ob pppd immer
noch läuft, indem Sie
/usr/etc/ppp/ppptest ausführen.
Dieses Skript sollte folgendermaßen aussehen:#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0Um die Modemverbindung abzubrechen, können Sie das Skript
/etc/ppp/kermit.hup verwenden, das Folgendes
enthalten sollte:set line /dev/tty01 ; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exitHier ist eine alternative Methode, bei der chat
an Stelle von Kermit eingesetzt wird:Die folgenden beiden Dateien reichen aus, um eine
Verbindung über pppd herzustellen./etc/ppp/options:/dev/cuad1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain <your.domain> # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to local_ip:remote_ip;
defaultroute # put this if you want that PPP server will be
# your default router/etc/ppp/login.chat.script:Die folgenden Angaben sollten in einer Zeile stehen.ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id
TIMEOUT 5 sword: passwordWenn diese Dateien richtig installiert und modifiziert sind,
müssen Sie pppd, nur noch wie folgt
starten:&prompt.root; pppdVerwendung von pppd als Server/etc/ppp/options sollte etwa Folgendes
enthalten:crtscts # Hardware flow control
netmask 255.255.255.0 # netmask (not required)
192.114.208.20:192.114.208.165 # IP's of local and remote hosts
# local ip must be different from one
# you assigned to the Ethernet (or other)
# interface on your machine.
# remote IP is IP address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem lineDas folgende Skript /etc/ppp/pppserv
lässt pppd als Server zu arbeiten:#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200Verwenden Sie das Skript/etc/ppp/pppservdown,
um den Server zu beenden:#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noansMit dem Kermit-Skript
(/etc/ppp/kermit.ans) lässt sich
die Funktion Ihres Modems, automatisch zu antworten, ein- bzw.
ausschalten. Es sollte folgendermaßen aussehen:set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mode
inp 5 OK
echo \13
exitEin Skript namens /etc/ppp/kermit.dial wird
für die Einwahl und Authentifizierung am entfernten Host verwendet.
Sie müssen es noch an Ihre lokalen Gegebenheiten anpassen.
Geben Sie in diesem Skript Ihren Benutzernamen und Ihr Passwort ein.
In Abhängigkeit von der Reaktion Ihres Modems und des
entfernten Hosts, werden Sie auch noch die input
Anweisungen verändern müssen.;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup
:sllogin ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:TomRhodesBeigetragen von Probleme bei PPP-VerbindungenPPPFehlersucheMit &os; 8.0 wurde der &man.sio.4;-Treiber durch den
Treiber &man.uart.4; ersetzt. Parallel dazu wurden auch die
entsprechenden Gerätedateien für die seriellen Ports
umbenannt:
/dev/cuadN wurde
zu /dev/cuauN,
/dev/ttydN zu
/dev/ttyuN.
Verwenden Sie noch &os; 7.X, müssen Sie dies beim
Lesen der folgenden Abschnitte berücksichtigen.Dieser Abschnitt behandelt Probleme, die auftauchen
können, wenn PPP über ein Modem verwendet wird.
Sie müssen beispielsweise genau die Eingabeaufforderung
des Systems kennen, in das Sie sich einwählen.
Einige ISPs verwenden ssword
andere verwenden password; wenn
das Einwahlskript falsch ist, scheitert die Anmeldung.
Üblicherweise suchen Sie nach Fehlern der PPP-Verbindung
indem Sie sich manuell verbinden. Wie das genau geht,
wird im Folgenden gezeigt.Gerätedateien überprüfenWenn Sie einen eigenen Kernel verwenden, stellen Sie sicher, dass
die folgende Zeile in der Kernelkonfigurationsdatei vorhanden
ist:device uartDas uart-Gerät ist bereits
im GENERIC-Kernel vorhanden, deshalb sind in
diesem Fall keine zusätzlichen Schritte vonnöten.
Kontrollieren Sie die Ausgabe von dmesg:&prompt.root; dmesg | grep uartIn der Ausgabe sollten die entsprechenden
uart-Geräte, beispielsweise
uart1
(COM2), angezeigt werden.
Wird ein passendes Gerät angezeigt, brauchen Sie
keinen neuen Kernel zu erstellen. Wenn Ihr Modem an
uart1
angeschlossen ist (in DOS ist dieser Anschluss als
COM2 bekannt), ist /dev/cuau1 die dazugehörende
Gerätedatei.Manuelle VerbindungenEin Verbindungsaufbau zum Internet durch manuelle Steuerung
von ppp geht schnell, ist einfach und
stellt einen guten Weg dar, eine Verbindung auf Fehler hin
zu überprüfen oder einfach Informationen darüber
zu sammeln, wie Ihr ISP Verbindungen handhabt.
Lassen Sie uns PPP von der
Kommandozeile aus starten. Beachten Sie, dass in allen
Beispielen example
der Hostname der Maschine ist, auf der
PPP läuft. Sie starten
ppp, indem Sie einfach ppp
eingeben:&prompt.root; pppWir haben ppp nun gestartet.ppp ON example> set device /dev/cuau1Wir geben das Device an, an das unser Modem angeschlossen ist.
In diesem Fall ist es cuau1.ppp ON example> set speed 115200Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel
verwenden wir 115200 kbpsppp ON example> enable dnsWir weisen ppp an, unseren
Resolver zu konfigurieren und in der Datei
/etc/resolv.conf Einträge für
den Nameserver hinzuzufügen. Falls ppp
unseren Hostnamen nicht bestimmen kann, geben wir diesen
später manuell an.ppp ON example> termWir wechseln in den Terminal-Modus, um
das Modem manuell kontrollieren zu können.deflink: Entering terminal mode on /dev/cuau1
type '~h' for helpat
OK
atdt123456789Sie verwenden at zur Initialisierung
Ihres Modems und dann atdt sowie die Nummer Ihres
ISP, um den Einwählprozess zu starten.CONNECTDies ist die Bestätigung, dass eine Verbindung aufgebaut
wurde. Falls wir Verbindungsprobleme bekommen, die nicht
mit der Hardware zusammenhängen, werden wir an dieser
Stelle ansetzen müssen, um eine Lösung zu finden.ISP Login:myusernameHier werden Sie nach einem Benutzernamen gefragt. Geben Sie
am Prompt den Namen ein, den Ihnen Ihr ISP
zur Verfügung gestellt hat.ISP Pass:mypasswordAn dieser Stelle müssen Sie das Passwort angeben, das
Ihnen von Ihrem ISP vorgegeben wurde. Das
Passwort wird, analog dem normalen Anmeldevorgang,
nicht angezeigt.Shell or PPP:pppAbhängig von Ihrem ISP, kann es sein,
dass dieser Prompt bei Ihnen gar nicht erscheint. Wir werden
hier gefragt, ob wir eine Shell beim Provider verwenden oder
ppp starten wollen. Weil wir eine
Internetverbindung aufbauen wollen, haben wir uns in diesem
Beispiel für ppp entschieden.Ppp ON example>Beachten Sie, dass sich in diesem Beispiel das erste
in einen Großbuchstaben verwandelt hat.
Dies zeigt, dass wir erfolgreich eine Verbindung
zu unserem ISP hergestellt haben.PPp ON example>An dieser Stelle haben wir uns erfolgreich bei unserem
ISP authentifiziert und warten darauf, dass
uns eine IP-Adresse zugewiesen wird.PPP ON example>Wir haben uns mit der Gegenstelle auf eine
IP-Adresse geeinigt und den Verbindungsaufbau
erfolgreich abgeschlossenPPP ON example> add default HISADDRHier geben wir unsere Standardroute an. Weil zu diesem
Zeitpunkt unsere einzige Verbindung zu unserer Gegenstelle besteht,
müssen wir dies tun, bevor wir Kontakt zu unserer Umwelt
aufnehmen können. Falls dies aufgrund bestehender Routen
nicht funktionieren sollte, können Sie ein Ausrufungszeichen
! vor setzen.
Sie können diese Standardroute aber auch vor dem
eigentlichen Verbindungsaufbau angeben und
PPP wird entsprechend eine neue Route
aushandeln.Wenn alles gut ging, sollten wir nun eine aktive
Internetverbindung haben, die wir mit
Ctrlz
in den Hintergrund schicken können
Wenn sie feststellen, dass PPP wieder zu
ppp wird, ist die Verbindung abgebrochen.
Es ist gut dies zu wissen, weil dadurch der Verbindungsstatus
angezeigt wird. Große Ps zeigen an,
dass wir eine Verbindung zum ISP haben und
kleine ps zeigen an, dass
wir aus irgendeinem Grund die Verbindung verloren haben.
ppp hat nur diese beiden Zustände.FehlersucheWenn sie einen Direktanschluss haben und keine Verbindung
aufbauen können, schalten Sie die Hardware-Flusssteuerung
CTS/RTS aus, indem Sie die Option
verwenden. Dies ist
zumeist dann der Fall, wenn Sie mit einem
PPP-fähigen Terminalserver
verbunden sind. Hier bleibt PPP
bei dem Versuch hängen, Daten über Ihre
Nachrichtenverbindung zu schicken, weil auf ein
CTS-Signal (Clear-to-Send) gewartet
wird, das nie kommt. Wenn Sie diese Option jedoch gebrauchen,
sollten Sie auch die Option
verwenden, die erforderlich sein kann, um bestimmte Hardware
zu kontrollieren, die auf die Übertragung bestimmter
Zeichen zwischen den Kommunikations-Endpunkten (zumeist
XON/XOFF) angewiesen ist. Die Manual-Seite &man.ppp.8;
bietet mehr Informationen zu dieser Option und ihrer
Verwendung.Wenn Sie ein älteres Modem haben, benötigen Sie
vielleicht die Option .
Standardmäßig wird keine Parität vorausgesetzt,
sie ist aber für die Fehlerprüfung bei älteren
Modems und bei bestimmten ISPs erforderlich.
Sie könnten diese Option für den
ISP Compuserve benötigen.PPP kehrt möglicherweise
nicht in den Befehlsmodus zurück, was normalerweise
auf einen Fehler bei der Aushandlung hinweist, wobei der
ISP wartet, dass Ihre Seite den
Aushandlungsprozess beginnt. Die Option ~p
erzwingt in diesem Fall den Beginn des
Aushandlungsprozesses.Wenn Sie nie einen Login-Prompt erhalten, müssen
Sie statt des im Beispiel gezeigten UNIX-Stils höchst
wahrscheinlich PAP oder
CHAP für die Authentifizierung
verwenden. Um PAP oder
CHAP zu verwenden, ergänzen Sie
PPP einfach um folgende Optionen,
bevor Sie in den Terminalmodus wechseln:ppp ON example> set authname myusernameHierbei sollte myusername
durch den Benutzernamen ersetzt werden, den Sie von Ihrem
ISP bekommen haben.ppp ON example> set authkey mypasswordmypassword sollten Sie
durch das Passwort ersetzen, das Ihnen Ihr ISP
gegeben hat.Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner
unter ihrem Domänen-Namen erreichen können, versuchen
Sie, einen Rechner mit &man.ping.8; und seiner
IP-Adresse zu erreichen. Wenn 100% der Pakete
verloren gehen, ist es sehr wahrscheinlich, dass Ihnen
keine Standardroute zugewiesen wurde. Überprüfen Sie,
ob während des Verbindungsaufbaus die Option
gesetzt war. Wenn Sie zu
einer entfernten IP-Adresse eine Verbindung
aufbauen können, ist es möglich, dass die
Adresse eines Nameservers nicht in die Datei
/etc/resolv.conf eingetragen
wurde. Diese Datei sollte folgendermaßen aussehen:domain example.com
nameserver x.x.x.x
nameserver y.y.y.y Dabei sollten x.x.x.x und
y.y.y.y durch die
IP-Adressen der DNS-Server Ihres
ISPs ersetzt werden. Diese Information
ist Ihnen bei Vertragsabschluss mitgeteilt worden. Wenn
nicht, sollte ein Anruf bei Ihrem ISP
Abhilfe schaffen.Mit &man.syslog.3; können Sie Ihre
PPP-Verbindung protokollieren.
Fügen Sie einfach die folgende Zeile in
/etc/syslog.conf ein:!ppp
*.* /var/log/ppp.logIn den meisten Fällen existiert diese
Funktionalität bereits.JimMockBeigetragen (durch http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von PPP over Ethernet (PPPoE)PPPover EthernetPPPoEPPP, over EthernetDieser Abschnitt beschreibt, wie Sie PPP over Ethernet
(PPPoE) einrichten.Konfiguration des KernelsEine besondere Kernelkonfiguration ist für PPPoE nicht
mehr erforderlich. Sofern die notwendige NetGraph-Unterstützung
nicht in den Kernel eingebaut wurde, wird diese von
ppp dynamisch geladen.Einrichtung von ppp.confDies hier ist ein Beispiel einer funktionierenden
ppp.conf:default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:xl1 # replace xl1 with your Ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDRppp ausführenAls root, geben Sie ein:&prompt.root; ppp -ddial name_of_service_providerppp beim Systemstart
ausführenFügen Sie Folgendes in Ihre Datei
/etc/rc.conf ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"Verwendung einer PPPoE-Dienstbezeichnung (service tag)Manchmal kann es notwendig sein, eine Dienstbezeichnung
(service tag) zu verwenden, um
eine Verbindung aufzubauen.
Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen
PPPoE-Servern unterscheiden zu können, die einem
bestehenden Netzwerk zugeteilt sind.Die erforderlichen Dienstbezeichnungen sollten in der
Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfügung
gestellt hat. Wenn Sie diese Informationen dort nicht finden,
fragen Sie beim technischen Kundendienst Ihres ISP danach.Als letzte Möglichkeit, bleibt die Methode, die von
dem Programm Roaring Penguin PPPoE
vorgeschlagen wird, das in der Ports-Sammlung zu finden ist. Bedenken
Sie aber, dass dadurch Daten Ihres Modems gelöscht werden
können, so dass es nicht mehr benutzt werden kann.
Überlegen Sie also genau, ob Sie dies machen wollen.
Installieren Sie einfach das Programm, das Ihnen Ihr Provider
zusammen mit dem Modem geliefert hat. Gehen Sie dann in das
Menü System dieses Programms. Der Name
Ihres Profils, sollte in der Liste aufgeführt sein.
Normalerweise ist dies ISP.Der Name des Profils (service tag)
wird im Eintrag für
die PPPoE-Konfiguration in der Datei ppp.conf
verwendet, als der Teil des Befehls
set device (die manpage &man.ppp.8;
enthält Einzelheiten hierzu), der den Provider angibt.
Dieser Eintrag sollte folgendermaßen aussehen:set device PPPoE:xl1:ISPVergessen Sie nicht, statt xl1
das richtige Device Ihrer Netzwerkkarte anzugeben.Denken sie auch daran, ISP
durch das Profil, das Sie oben gefunden haben zu ersetzen.Weitere Informationen bieten:Cheaper Broadband with FreeBSD on
DSL von Renaud Waldura.PPPoE mit einem &tm.3com;
HomeConnect
ADSL Modem Dual LinkDieses Modem folgt nicht dem RFC 2516
(A Method for transmitting PPP over Ethernet
(PPPoE), verfasst von L. Mamakos, K. Lidl, J. Evarts,
D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden andere
Pakettyp-Codes für die Ethernet Frames verwendet.
Bitte beschweren Sie sich unter 3Com, wenn Sie
der Ansicht sind, dass dieses Modem die PPPoE-Spezifikation einhalten
sollte.Um FreeBSD in die Lage zu versetzen, mit diesem Gerät zu
kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann
beim Systemstart automatisch geschehen, indem die Datei
/etc/sysctl.conf angepasst wird:net.graph.nonstandard_pppoe=1oder, wenn der Befehl unmittelbar wirksam werden soll,
durch:&prompt.root; sysctl net.graph.nonstandard_pppoe=1Da hiermit eine systemweit gültige Einstellung vorgenommen
wird, ist es nicht möglich, gleichzeitig mit einem normalen
PPPoE-Client oder Server und einem &tm.3com;
HomeConnect ADSL Modem
zu kommunizieren.PPP over ATM (PPPoA)PPPover ATMPPPoAPPP, over ATMNachfolgend wird beschrieben, wie PPP over ATM (PPPoA)
eingerichtet wird. PPPoA ist vor allem unter europäischen
DSL-Providern populär.Der Einsatz von PPPoA mit dem Alcatel &speedtouch; USBPPPoA-Unterstützung für dieses Gerät ist
unter FreeBSD als Port verfügbar, da die Firmware unter Alcatels
Lizenzvereinbarung vertrieben wird und deshalb nicht
mit dem FreeBSD-Basissystem frei verteilt werden kann.Um die Software zu installieren, verwenden Sie einfach die Ports-Sammlung. Installieren Sie den Port
net/pppoa und folgen Sie den dabei
angegebenen Instruktionen.Für den ordnungsgemäßen Betrieb muss
das Alcatel &speedtouch; USB, wie viele USB-Geräte,
Firmware auf den Gastrechner laden. FreeBSD kann die
Firmware automatisch laden, wenn das Gerät mit
dem USB-Anschluss verbunden wird. Dazu fügen Sie
als Benutzer root die nachstehenden
Zeilen in /etc/usbd.conf ein:device "Alcatel SpeedTouch USB"
devname "ugen[0-9]+"
vendor 0x06b9
product 0x4061
attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"Den USB-Dæmon aktivieren Sie mit der folgenden
Zeile in /etc/rc.conf:usbd_enable="YES"Wenn die Verbindung beim Start von
ppp aufgebaut werden soll,
fügen Sie die nachstehenden Zeilen als Benutzer
root in /etc/rc.conf
ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"Verwenden Sie bitte diese Einstellungen zusammen mit
der Beispielkonfiguration in ppp.conf
des Ports net/pppoa.Die Verwendung von mpdSie können mpd verwenden,
um zu einer Reihe von Diensten, insbesondere PPTP-Diensten eine
Verbindung herzustellen. Sie finden
mpd in der Ports-Sammlung unter
net/mpd. Viele ADSL Modems,
wie das Alcatel &speedtouch; Home, sind auf einen PPTP-Tunnel
zwischen dem Modem und dem Rechner angewiesen.Zuerst müssen Sie den Port installieren, um danach
mpd entsprechend Ihren Anforderungen
und den Vorgaben Ihres Providers konfigurieren zu können. Der
Port installiert auch einige
gut dokumentierte Beispielkonfigurationsdateien in PREFIX/etc/mpd/.
Beachten Sie, dass PREFIX hier das Verzeichnis
angibt, in das Ihre Ports installiert werden. Standardmäßig
ist dies das Verzeichnis /usr/local/.
Ein kompletter Leitfaden zur Konfiguration von
mpd ist im HTML-Format verfügbar,
sobald der Port installiert ist. Dieser ist in PREFIX/share/doc/mpd/
zu finden. Hier ist eine Beispielkonfiguration, um mit
mpd eine Verbindung zu einem
ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien
verteilt. Zunächst die Datei
mpd.conf:default:
load adsl
adsl:
new -i ng0 adsl adsl
set bundle authname username
set bundle password password
set bundle disable multilink
set link no pap acfcomp protocomp
set link disable chap
set link accept chap
set link keep-alive 30 10
set ipcp no vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route default
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
openDer Benutzername, den Sie zur Authentifizierung bei
Ihrem ISP verwenden.Das Passwort, das Sie zur Authentifizierung bei
Ihrem ISP verwenden.Die Datei mpd.links enthält
Informationen über die Verbindung(en), die Sie aufbauen
möchten. Eine Beispieldatei mpd.links,
die das vorige Beispiel ergänzt, wird unten
angegeben:adsl:
set link type pptp
set pptp mode active
set pptp enable originate outcall
set pptp self 10.0.0.1
set pptp peer 10.0.0.138Die IP-Adresse des &os;-Rechners von dem aus Sie
mpd verwenden.Die IP-Adresse des ADSL-Modems.
Das Alcatel &speedtouch; Home hat die Adresse
10.0.0.138 voreingestellt.Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden
Befehls als root gestartet werden:&prompt.root; mpd -b adslSie können sich den Status der Verbindung durch folgenden Befehl
anzeigen lassen:&prompt.user; ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffffDie Verwendung von mpd ist der
empfehlenswerteste Weg, um mit &os; eine Verbindung zu
einem ADSL-Dienst aufzubauen.Die Verwendung von pptpclientEs ist außerdem möglich, mit FreeBSD eine
Verbindung zu anderen PPPoA-Diensten aufzubauen. Dazu wird
net/pptpclient verwendet.Um mit net/pptpclient eine
eine Verbindung zu einem DSL-Dienst aufbauen zu können,
müssen Sie den entsprechenden Port bzw. das Paket installieren
und die Datei /etc/ppp/ppp.conf bearbeiten.
Sie müssen root sein, um diese Schritte
durchführen zu können. Eine Beispieldatei für
ppp.conf ist weiter unten angegeben.
Weitere Informationen zu den Optionen von ppp.conf
bietet die Manual-Seite ppp
&man.ppp.8;:adsl:
set log phase chat lcp ipcp ccp tun command
set timeout 0
enable dns
set authname username
set authkey password
set ifaddr 0 0
add default HISADDRDer Benutzername für den Zugang zu den Diensten
Ihres ISP.Das Passwort für Ihren Account.Weil Sie Ihr Passwort in der Datei
ppp.conf in Klartext angeben müssen,
sollten Sie sicherstellen, dass niemand den Inhalt dieser Datei
lesen kann. Die folgende Reihe von Befehlen stellt sicher,
dass die Datei nur von root lesbar ist.
Zusätzliche Informationen bieten die Manual-Seiten
&man.chmod.1; und &man.chown.8;:&prompt.root; chown root:wheel /etc/ppp/ppp.conf
&prompt.root; chmod 600 /etc/ppp/ppp.confDies wird einen Tunnel für eine PPP-Session zu Ihrem
DSL-Router öffnen. Ethernet-DSL-Modems haben eine
vorkonfigurierte LAN-IP-Adresse, mit der Sie eine Verbindung
aufbauen. Im Falle des Alcatel &speedtouch; Home handelt es sich
dabei um die Adresse 10.0.0.138.
In der Dokumentation Ihres Routers sollte angegeben sein, welche
Adresse Ihr Gerät verwendet. Um den Tunnel zu öffnen
und eine PPP-Session zu starten, führen
Sie bitte folgenden Befehl aus:&prompt.root; pptp addressadslVielleicht möchten Sie ein kaufmännisches Und
(&) an das Ende oben angegebenen Kommandos
anfügen, da pptp sonst den
Prompt nicht zurückgibt.Ein virtuelles Tunnel-Device tun
wird für das Zusammenspiel der Prozesse
pptp und ppp
geschaffen. Wenn Sie den Prompt zurückerhalten haben
oder der pptp-Prozess das Vorliegen
einer Verbindung bestätigt, können Sie den Tunnel
folgendermaßen überprüfen:&prompt.user; ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
Opened by PID 918Wenn Sie nicht in der Lage sein sollten, eine Verbindung
aufzubauen, überprüfen Sie die Konfiguration Ihres Routers,
den Sie normalerweise per telnet
oder mit einem Web-Browser erreichen können. Falls
dennoch keine Verbindung zustande kommt, sollten Sie die
Ausgabe des Befehls pptp und die
Logdatei /var/log/ppp.log von
ppp nach Hinweisen auf die Ursache
durchsuchen.SatoshiAsamiUrsprünglich beigetragen von GuyHelmerMit Beiträgen von PieroSeriniSLIPSLIPDer folgende Abschnitt ist ausschließlich
für &os; 7.X relevant und gültig.Einrichtung eines SLIP-ClientsSLIPClientIm Folgenden wird ein Weg beschrieben, SLIP auf einer
FreeBSD-Maschine für ein Netzwerk mit festen Hostnamen
einzurichten. Bei einer dynamischen Zuweisung des Hostnamens
(das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert)
wird die Einrichtung wahrscheinlich etwas komplexer aussehen.Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
wie etwa /dev/modem, der auf den wirklichen
Gerätenamen /dev/cuadN verweist. Damit ist es Ihnen
möglich, vom eigentlichen Gerätenamen zu abstrahieren,
sollten Sie das Modem einmal an eine andere Schnittstelle
anschließen müssen. Es kann ziemlich umständlich sein,
wenn Sie eine viele Dateien in /etc und
.kermrc-Dateien, die über das ganze System
verstreut sind, anpassen müssen!/dev/cuau0 ist
COM1, /dev/cuau1
ist COM2, etc.Stellen Sie sicher, dass Folgendes in Ihrer
Kernelkonfigurationsdatei steht:device sl 1Dieses pseudo-device ist im GENERIC Kernel
enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten
Sie hier kein Problem haben.Dinge, die Sie nur einmal erledigen müssenTragen Sie Ihren lokalen Rechner, das Gateway, sowie
die Nameserver in Ihre Datei /etc/hosts
ein. Diese Datei sieht bei mir so aus:127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2Vergewissern Sie sich, dass in der Datei
/etc/host.conf im Abschnitt
hosts:files vor
dns steht. Ohne diese Reihenfolge
könnten lustige Dinge passieren.Editieren Sie die Datei
/etc/rc.conf.Ihren Hostnamen geben Sie an, indem Sie folgende Zeile
bearbeiten:hostname="myname.my.domain"Hier sollte der vollständige Internethostname
Ihres Rechners angegeben werden.
- Defaultroute
-
- Den Defaultrouter geben Sie durch die Modifikation
+ Den DefaultrouterDefaultroute geben Sie durch die Modifikation
folgender Zeile an:defaultrouter="NO"wird zu:defaultrouter="slip-gateway"Erstellen Sie die Datei
/etc/resolv.conf, die Folgendes
enthält:domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12NameserverDomain NameWie Sie sehen, werden hiermit die Nameserver angegeben.
Natürlich hängen die tatsächlichen Domainnamen
und Adressen von Ihren Gegebenheiten ab.Legen Sie ein Passwort für root und
toor (sowie für alle anderen Accounts
die kein Passwort haben) fest.Starten Sie Ihren Rechner neu und überprüfen
Sie, ob er mir dem richtigen Hostnamen startet.Aufbau einer SLIP-VerbindungSLIPVerbindungsaufbauWählen Sie sich ein, geben Sie
slip und am Prompt den Namen Ihres
Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen,
hängt von Ihren Gegebenheiten ab. Wenn Sie
Kermit verwenden, können Sie
ein Skript ähnlich dem Folgenden verwenden:# kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0aNatürlich müssen Sie hier Ihren Benutzernamen
und Ihr Passwort eintragen. Wenn Sie das getan haben,
können Sie am Kermit-Prompt
einfach slip eingeben, um sich zu
verbinden.Es ist generell eine schlechte
Idee, Ihr Passwort in einer unverschlüsselten
Textdatei irgendwo im Dateisystem zu speichern.
Tun Sie dies auf Ihr eigenes Risiko.Belassen Sie Kermit so (Sie
können es mit
Ctrlz unterbrechen) und geben Sie als
root ein:&prompt.root; slattach -h -c -s 115200 /dev/modemWenn Sie mit ping Hosts auf der anderen
Seite des Routers erreichen können, sind Sie verbunden!
Wenn es nicht funktionieren sollte, können Sie versuchen
statt als Argument
für slattach zu verwenden.Beenden der VerbindungUm slattach zu beenden, geben Sie
Folgendes ein:&prompt.root; kill -INT `cat /var/run/slattach.modem.pid`Beachten Sie, dass Sie
root sein müssen, um dies
durchführen zu können. Kehren Sie zu kermit
zurück (mit Hilfe von fg, wenn Sie es
unterbrochen haben) und beenden Sie dieses Programm
(q).&man.slattach.8; gibt an,
dass ifconfig sl0 down verwendet werden
soll, um das Interface zu deaktivieren, doch das
scheint keinen Unterschied zu machen.
(ifconfig sl0 gibt dasselbe aus).Es kann vorkommen, dass Ihr Modem sich weigert, das
Trägersignal zu beenden. In diesem Fall starten Sie
kermit einfach neu und beenden es wieder.
Beim zweiten Versuch geht es meist aus.Lösungen bei ProblemenWenn es nicht funktionieren sollte, können Sie
an die Mailingliste &a.net.name; schreiben. Über
diese Dinge sind Benutzer bisher gestolpert:Nicht oder in
slattach verwenden (Das sollte
nicht entscheidend sein, aber einige Benutzer haben
berichtet, dass dies ihre Probleme löst).Verwendung von statt
(bei einigen Schriftarten kann der
Unterschied schwer zu erkennen sein).Probieren Sie ifconfig sl0,
um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis
könnte beispielsweise so aussehen:&prompt.root; ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Wenn &man.ping.8; die Fehlermeldung
no route to host ausgibt, kann
die Routingtabelle falsch sein. Die Routen können Sie
sich mit dem Kommando netstat -r
ansehen:&prompt.root; netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)Die Zahlen im Beispiel stammen von einer recht
ausgelasteten Maschine. Die Zahlen auf Ihrem System werden,
je nach Netzaktivität, von den gezeigten
abweichen.Einrichtung eines SLIP-ServersSLIPServerDieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als
SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu,
konfigurieren, dass beim Login automatisch eine Verbindung für
entfernte SLIP-Clients aufgebaut wird.VoraussetzungenTCP/IP NetzeDieser Abschnitt ist ausgesprochen technischer Natur, weshalb
Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie
mit dem TCP/IP Protokoll, insbesondere mit
Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen,
Routing und Routingprotokollen, wie RIP, vertraut sind.
Die Konfiguration von SLIP-Diensten
auf einem Einwählserver erfordert die Kenntnis dieser Konzepte.
Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte
Craig Hunt's TCP/IP Network Administration
publiziert von O'Reilly & Associates, Inc. (ISBN Nummer
0-937175-82-X) oder die Bücher von Douglas Comer über
das TCP/IP Protokoll.ModemWir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s)
eingerichtet haben und die entsprechenden Systemdateien so
konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
Wenn Sie Ihr System dafür noch nicht vorbereitet haben,
lesen Sie bitte , um Ihre
Einwahlverbindung zu konfigurieren. Hilfreich sind auch die
Manualpages &man.sio.4; mit Informationen zum Gerätetreiber
der seriellen Schnittstelle &man.ttys.5;, sowie &man.gettytab.5;,
&man.getty.8; und &man.init.8; für Informationen zur
Konfiguration von Logins über ein Modem. &man.stty.1; bietet
Informationen zur Einstellung der Parameter der seriellen
Schnittstelle (etwa von clocal für
direkt angeschlossene serielle Geräte).Ein kurzer ÜberblickMit der normal verwendeten Konfiguration funktioniert der
FreeBSD-SLIP-Server folgendermaßen: Ein SLIP-Benutzer
wählt einen FreeBSD-SLIP-Server an und meldet sich mit einer
speziellen SLIP-Login-ID ein, wobei
/usr/sbin/sliplogin als Shell dieses
besonderen Accounts dient. Das Programm
sliplogin durchsucht die Datei
/etc/sliphome/slip.hosts nach einer
passenden Zeile für diesen Account. Falls ein
Treffer erzielt wird, verbindet es den seriellen Anschluss mit
einem verfügbaren SLIP-Interface und führt das
Shellskript /etc/sliphome/slip.login
aus, um das SLIP-Interface zu konfigurieren.Ein Beispiel für ein Login eines SLIP-ServersWenn beispielsweise die Kennung eines SLIP-Benutzers,
Shelmerg wäre, könnte der Eintrag des
Benutzers Shelmerg in der Datei
/etc/master.passwd etwa so aussehen:Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliploginWenn sich Shelmerg anmeldet,
wird sliplogin die Datei
/etc/sliphome/slip.hosts nach einer
übereinstimmenden Benutzerkennung durchsuchen. So
könnte etwa folgende Zeile in
/etc/sliphome/slip.hosts stehen:Shelmerg dc-slip sl-helmer 0xfffffc00 autocompsliplogin wird die passende Zeile finden,
den seriellen Anschluss mit dem nächsten verfügbaren
SLIP-Interface verbinden und dann
/etc/sliphome/slip.login wie hier
dargestellt ausführen:/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocompWenn alles gut läuft, wird
/etc/sliphome/slip.login ein
ifconfig für das SLIP-Interface
durchführen, mit dem sich sliplogin
verbunden hat (in obigem Beispiel ist das slip 0, der als
erster Parameter in der Liste an slip.login
übergeben wurde), um die lokale IP-Adresse
(dc-slip), die entfernte IP-Adresse
(sl-helmer), die Netzmaske
des SLIP-Interface (0xfffffc00) und
alle zusätzlichen Optionen (autocomp)
festzulegen. Wenn etwas schief laufen sollte, bietet,
sliplogin normalerweise informative
Meldungen durch den syslogd-Daemon,
der die Meldungen standardmäßig nach
/var/log/messages schreibt (sehen Sie
hierzu auch in den Manual-Seiten für &man.syslogd.8;
und &man.syslog.conf.5; nach). Überprüfen Sie
auch /etc/syslog.conf,
um zu sehen, was syslogd aufzeichnet und
wo es aufgezeichnet wird.KernelkonfigurationKernelKonfigurationDer Standardkernel von &os; (GENERIC)
bietet bereits SLIP-Unterstützung (&man.sl.4;). Falls
Sie einen angepassten Kernel verwenden, müssen Sie
sicherstellen, dass Ihre Kernelkonfigurationsdatei folgende
Zeile enthält:device slIn der Voreinstellung leitet Ihr &os;-Rechner keine
Pakete weiter. Wenn Sie Ihren FreeBSD-SLIP-Server als
Router einsetzen möchten, müssen Sie die Datei
/etc/rc.conf bearbeiten und den Wert
der Variable gateway_enable auf
setzen. Dadurch ist sichergestellt, dass
die Routingoptionen auch nach einem Neustart erhalten bleiben.Um die Einstellungen sofort anzuwenden, führen Sie den
folgenden Befehl als root-Benutzer aus:&prompt.root; /etc/rc.d/routing startWeitere Informationen zur Konfiguration Ihres Kernels,
finden Sie in dieses Handbuches.Konfiguration des SliploginWie bereits erwähnt, gibt es im Verzeichnis /etc/sliphome drei Dateien, die Teil der
Konfiguration für /usr/sbin/sliplogin
sind (sliplogin ist in &man.sliplogin.8;
beschrieben): slip.hosts,
definiert die SLIP-Benutzer sowie deren IP-Adresse;
slip.login, womit normalerweise nur das
SLIP-Interface konfiguriert wird und (optional)
slip.logout, womit die Auswirkungen von
slip.login rückgängig gemacht
werden, wenn die serielle Verbindung beendet wird.Konfiguration der Datei
slip.hosts/etc/sliphome/slip.hosts enthält
Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente
enthalten:Login-Kennung des SLIP-BenutzersLokale Adresse (lokal für den SLIP-Server)
der SLIP-VerbindungEntfernte Adresse der SLIP-VerbindungNetzwerkmaskeDie lokalen und entfernten Adressen können
Hostnamen sein, deren zugehörige IP-Adresse durch die
Datei /etc/hosts oder mithilfe des
Domain Name Service aufgelöst wird. Wie die Adressen
aufgelöst werden, hängt von den Einstellungen in
/etc/nsswitch.conf ab. Die Netzwerkmaske
kann ein Name sein, der durch
eine Suche in /etc/networks aufgelöst
werden kann. Auf einem Beispielsystem, würde die Datei
/etc/sliphome/slip.hosts
folgendermaßen aussehen:#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocompAm Ende der Zeile stehen eine oder mehrere der folgenden
Optionen. – keine
Header-Kompression – Header werden
komprimiert – Header werden
komprimiert, sofern die Gegenstelle es erlaubt – ICMP-Pakete werden
deaktiviert (ping Pakete werden
unterdrückt, statt die Ihnen zur Verfügung
stehende Bandbreite aufzubrauchen)SLIPTCP/IP NetzeDie Auswahl von lokalen und entfernten Adressen für Ihre
SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz
reservieren oder ob Sie proxy ARP auf Ihrem
SLIP-Server verwenden (es handelt sich nicht um
echtes proxy ARP, aber dieser Begriff wird
in diesem Abschnitt verwendet, um diesen Sachverhalt zu
beschreiben). Wenn Sie nicht sicher sind, welche Methode
Sie wählen sollen oder wie IP-Adressen zugewiesen werden,
lesen Sie bitte in den Büchern
zum Thema TCP/IP nach, die als Voraussetzungen für SLIP
() angegeben worden sind
oder fragen Sie Ihren IP-Netzwerkadministrator.Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz
verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen
zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen
Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen.
Dann können Sie eine statische Route zu Ihrem
SLIP-Subnetz über Ihren SLIP-Server auf Ihren
nächsten IP-Router konfigurieren.EthernetWenn Sie aber andererseits die proxy ARP
Methode verwenden möchten, werden Sie die IP-Adressen Ihrer
SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die
Skripte /etc/sliphome/slip.login/etc/sliphome/slip.logout anpassen
müssen, damit diese &man.arp.8; zur Verwaltung der
proxy ARP-Einträge in der ARP-Tabelle Ihres
SLIP-Servers verwenden.Konfiguration von slip.loginEine typische Datei
/etc/sliphome/slip.login sieht
folgendermaßen aus:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6Diese slip.login Datei führt
lediglich ifconfig für das entsprechende
SLIP-Interface mit den lokalen und entfernten Adressen und der
Netzwerkmaske des SLIP-Interface aus.Wenn Sie sich dafür entschieden haben, die
proxy ARP Methode zu verwenden (statt eines
separaten Subnetzes für Ihre SLIP-Clients)
sollte Ihre Datei /etc/sliphome/slip.login
etwa folgendermaßen aussehen:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pubDie zusätzliche Zeile arp -s
$5 00:11:22:33:44:55 pub in der Datei
slip.login erzeugt einen ARP-Eintrag
in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag
veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse
zu antworten, sobald ein anderer IP-Knoten im Ethernet mit
der IP-Adresse des SLIP-Clients Kontakt aufnehmen
möchte.EthernetMAC AdresseWenn Sie das Beispiel von oben verwenden, achten Sie darauf
die Ethernet MAC-Adresse (00:11:22:33:44:55) durch die MAC-Adresse der
Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr
proxy ARP sicher nicht funktionieren! Sie
können die MAC-Adresse Ihres SLIP-Servers herausfinden,
indem Sie sich die Ausgabe von netstat -i
ansehen. Die zweite Zeile der Ausgabe sollte ungefähr
aussehen wie diese hier:ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116Dies zeigt an, dass die Ethernet MAC-Adresse dieses
Systems 00:02:c1:28:5f:4a lautet.
Die Punkte in der Ethernet MAC-Adresse, die von
netstat -i ausgegeben wird, müssen
durch Doppelpunkte ersetzt werden. Bei jeder einstelligen
Hexadezimalzahl sollten außerdem führende Nullen
hinzugefügt werden, um die Adresse in die Form zu bringen,
die von &man.arp.8; verlangt wird.
Die Manual-Seite von &man.arp.8; bietet hierzu eine
vollständige Übersicht.Wenn Sie die Dateien
/etc/sliphome/slip.login und
/etc/sliphome/slip.logout erstellen,
müssen diese ausführbar gemacht werden
(chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout),
da sliplogin auf deren Ausführbarkeit
angewiesen ist. Konfiguration von slip.logoutDie Datei/etc/sliphome/slip.logout ist
nicht zwingend erforderlich (außer Sie verwenden proxy
ARP), aber falls Sie diese Datei erzeugen möchten,
ist hier ein Beispiel für ein grundlegendes
slip.logout Skript:#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 downWenn Sie proxy ARP einsetzen, muss
/etc/sliphome/slip.logout den
ARP-Eintrag für den SLIP-Client löschen:#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5arp -d $5 löscht den ARP-Eintrag,
den die proxy ARPslip.login
hinzufügte, als der SLIP-Client sich eingeloggt hatte.Es soll nochmals darauf hingewiesen werden, dass für die
Datei /etc/sliphome/slip.logout das
Ausführungs-Bit gesetzt werden muss, nachdem die Datei
erstellt worden ist (z.B. chmod 755
/etc/sliphome/slip.logout).Überlegungen zum RoutingSLIPRoutingWenn Sie nicht die proxy ARP Methode benutzen,
um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres
Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie
wahrscheinlich statische Routen zu Ihrem nächsten
Standardrouter hinzufügen müssen, um Pakete aus dem
Subnetz Ihres SLIP-Clients über Ihren SLIP-Server
weiterzuleiten.Statische Routenstatische RoutenDas Hinzufügen von statischen Routen zu Ihrem
nächsten Standardrouter kann problematisch sein
(oder unmöglich, wenn Sie nicht die erforderliche
Berechtigung haben...). Wenn Sie in Ihrer Organisation ein
Netzwerk mit mehreren Routern haben, müssen einige Router,
wie etwa die von Cisco und Proteon hergestellten, nicht nur mit
der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern
es muss ihnen auch mitgeteilt werden, über welche statischen
Routen sie andere Router informieren sollen. Daher ist einiges
an Fachwissen und Problemlösungskompetenz erforderlich, um auf
statischen Routen basierendes Routing erfolgreich
einzurichten.
diff --git a/el_GR.ISO8859-7/books/handbook/boot/chapter.xml b/el_GR.ISO8859-7/books/handbook/boot/chapter.xml
index 1eb393009f..87e1c0d1aa 100644
--- a/el_GR.ISO8859-7/books/handbook/boot/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/boot/chapter.xml
@@ -1,1080 +1,1079 @@
Ç Äéáäéêáóßá Åêêßíçóçò ôïõ &os;Óýíïøçåêêßíçóçåêêßíçóç óõóôÞìáôïòbootingbootstrapÇ äéáäéêáóßá ôçò åêêßíçóçò åíüò õðïëïãéóôÞ êáé öüñôùóçò ôïõ
ëåéôïõñãéêïý óõóôÞìáôïò áíáöÝñåôáé ùò äéáäéêáóßá
bootstrap, Þ áðëþò booting. Ç äéáäéêáóßá
åêêßíçóçò ôïõ &os; ìðïñåß íá ðñïóáñìïóôåß ðïëý åýêïëá óôéò áðáéôÞóåéò
óáò, åðéôñÝðïíôáò óÜò íá åðéëÝîåôå åßôå äéáöïñåôéêÜ ëåéôïõñãéêÜ
óõóôÞìáôá ðïõ åßíáé åãêáôåóôçìÝíá óôïí ßäéï õðïëïãéóôÞ, Þ áêüìá êáé
äéáöïñåôéêÝò åêäüóåéò ôïõ ßäéïõ ëåéôïõñãéêïý óõóôÞìáôüò Þ ôïõ
åãêáôåóôçìÝíïõ ðõñÞíá.Ôï êåöÜëáéï áõôü ðåñéãñÜöåé ëåðôïìåñþò ôéò åðéëïãÝò ñõèìßóåùí ðïõ
ìðïñåßôå íá êÜíåôå êáé ðùò íá öÝñåôå óôá ìÝôñá óáò ôç äéáäéêáóßá
åêêßíçóçò ôïõ &os;. Ç äéáäéêáóßá åêêßíçóçò ðåñéëáìâÜíåé ïôéäÞðïôå
óõìâáßíåé áðü ôçí åêêßíçóç ôïõ ðõñÞíá ôïõ &os;, ôçí áíß÷íåõóç ôùí
óõóêåõþí, ìÝ÷ñé êáé ôçí åêêßíçóç ôçò &man.init.8;. Ç åêêßíçóç ôçò
&man.init.8; óçìáôïäïôåßôáé áðü ôçí áëëáãÞ ÷ñþìáôïò ôïõ êåéìÝíïõ
áðü öùôåéíü ëåõêü óå ãêñé.Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:Ðïéá åßíáé ôá ôìÞìáôá ôïõ óõóôÞìáôïò åêêßíçóçò ôïõ &os;, êáé
ðùò áëëçëåðéäñïýí ìåôáîý ôïõò.Ôéò åðéëïãÝò ðïõ ìðïñåßôå íá äþóåôå óôá ôìÞìáôá ôçò åêêßíçóçò
ôïõ &os; ãéá íá åëÝãîåôå ôç äéáäéêáóßá åêêßíçóçò.Ôá âáóéêÜ ôïõ &man.device.hints.5;.Ìüíï ãéá õðïëïãéóôÝò áñ÷éôåêôïíéêÞò x86Ôï êåöÜëáéï áõôü ðåñéãñÜöåé ôç äéáäéêáóßá åêêßíçóçò ôïõ &os; ìüíï
óå óõóôÞìáôá áñ÷éôåêôïíéêÞò Intel x86.Ôï Ðñüâëçìá ôçò ÅêêßíçóçòÇ åíåñãïðïßçóç åíüò õðïëïãéóôÞ êáé ç åêêßíçóç ôïõ ëåéôïõñãéêïý
óõóôÞìáôïò, ìáò öÝñíåé áíôéìÝôùðïõò ìå Ýíá åíäéáöÝñïí äßëçììá.
Åî' ïñéóìïý, ï õðïëïãéóôÞò äåí îÝñåé íá êÜíåé ôßðïôá ìÝ÷ñé ôçí åêêßíçóç
ôïõ ëåéôïõñãéêïý óõóôÞìáôïò. Áõôü ðåñéëáìâÜíåé êáé ôçí åêôÝëåóç
ðñïãñáììÜôùí áðü ôï äßóêï. ¸ôóé, áí ï õðïëïãéóôÞò äåí ìðïñåß íá
åêôåëÝóåé ðñïãñÜììáôá áðü ôï äßóêï ÷ùñßò ôï ëåéôïõñãéêü óýóôçìá, áëëÜ
êáé ôá ðñïãñÜììáôá ôïõ ëåéôïõñãéêïý óõóôÞìáôïò åßíáé åðßóçò óôï äßóêï,
ðùò åßíáé äõíáôÞ ç åêêßíçóç ôïõ ëåéôïõñãéêïý;Ôï ðñüâëçìá ìïéÜæåé ìå áõôü óôï âéâëßï Ïé ÐåñéðÝôåéåò
ôïõ Âáñþíïõ Ìéí÷Üïõæåí. ¸íáò ÷áñáêôÞñáò Ý÷åé ðÝóåé óå Ýíá
ðçãÜäé, êáé âãáßíåé ðéÜíïíôáò êáé ôñáâþíôáò ôá êïñäüíéá ôïõ
(bootstraps). Óôéò ðñþôåò ìÝñåò ôùí õðïëïãéóôþí, ÷ñçóéìïðïéïýíôáí ï
üñïò bootstrap ãéá ôï ìç÷áíéóìü öüñôùóçò ôïõ
ëåéôïõñãéêïý óõóôÞìáôïò, ôï ïðïßï óõíôïìåýôçêå óå
booting.BIOSBasic Input/Output SystemBIOSÓôçí áñ÷éôåêôïíéêÞ x86, ôï Âáóéêü Óýóôçìá Åéóüäïõ Åîüäïõ (BIOS)
åßíáé õðåýèõíï ãéá ôç öüñôùóç ôïõ ëåéôïõñãéêïý óõóôÞìáôïò. Ãéá íá ôï
åðéôý÷åé áõôü, ôï BIOS áíé÷íåýåé ôï óêëçñü äßóêï ãéá ôçí ÊåíôñéêÞ
ÅããñáöÞ Åêêßíçóçò (Master Boot Record, MBR), ç ïðïßá ðñÝðåé íá âñßóêåôáé
óå óõãêåêñéìÝíï óçìåßï óôï äßóêï. Ôï BIOS ãíùñßæåé áñêåôÜ ãéá íá
öïñôþóåé êáé íá åêôåëÝóåé ôï MBR, êáé õðïèÝôåé üôé ôï MBR ìðïñåß êáôüðéí
íá åêôåëÝóåé ôçí õðüëïéðç äéáäéêáóßá öüñôùóçò ôïõ ëåéôïõñãéêïý
óõóôÞìáôïò, åíäå÷ïìÝíùò êáé ìå ôç âïÞèåéá ôïõ BIOS.Master Boot Record (MBR)Boot ManagerBoot LoaderÏ êþäéêáò ìÝóá óôï MBR óõíÞèùò áíáöÝñåôáé ùò
äéá÷åéñéóôÞò åêêßíçóçò (boot manager), åéäéêÜ üôáí
áëëçëåðéäñÜ ìå ôï ÷ñÞóôç. Óôçí ðåñßðôùóç áõôÞ, ï äéá÷åéñéóôÞò åêêßíçóçò
Ý÷åé óõíÞèùò ðåñéóóüôåñï êþäéêá óôçí ðñþôç ôñï÷éÜ (track)
ôïõ äßóêïõ Þ ìÝóá óå êÜðïéï óýóôçìá áñ÷åßùí ôïõ
ëåéôïõñãéêïý. (ÌåñéêÝò öïñÝò ï äéá÷åéñéóôÞò åêêßíçóçò áðïêáëåßôáé êáé
öïñôùôÞò åêêßíçóçò (boot loader), áëëÜ óôï &os; ï
üñïò áõôüò ÷ñçóéìïðïéåßôáé óå ìåôáãåíÝóôåñï óôÜäéï ôçò åêêßíçóçò.)
Óôïõò äçìïöéëåßò äéá÷åéñéóôÝò åêêßíçóçò ðåñéëáìâÜíïíôáé
ôï boot0 (ãíùóôü êáé ùò Boot
Easy, ï óôÜíôáñ äéá÷åéñéóôÞò åêêßíçóçò ôïõ &os;), ôï
Grub, ôï GAG, êáé
ôï LILO.
(Ìüíï ôï boot0 ÷ùñÜåé ìÝóá óôï MBR.)Áí Ý÷åôå åãêáôåóôçìÝíï Ýíá ìüíï ëåéôïõñãéêü óýóôçìá óôïõò äßóêïõò
óáò, ôï ôõðïðïéçìÝíï MBR ãéá PC åßíáé åðáñêÝò. Áõôü ôï MBR øÜ÷íåé ãéá
ôï ðñþôï åêêéíÞóéìï (Þ åíåñãü) äéáìÝñéóìá (slice) óôï äßóêï, êáé åêôåëåß
ôïí êþäéêá ðïõ õðÜñ÷åé óå áõôü ãéá íá öïñôþóåé ôï õðüëïéðï ôïõ
ëåéôïõñãéêïý óõóôÞìáôïò. ¸íá MBR áõôïý ôïõ ôýðïõ, åßíáé áõôü ðïõ
åãêáèßóôáôáé áðü ðñïåðéëïãÞ ìå ôçí &man.fdisk.8;. Âáóßæåôáé óôï
/boot/mbr.Áí Ý÷åôå åãêáôáóôÞóåé ðïëëáðëÜ ëåéôïõñãéêÜ óõóôÞìáôá óôïõò äßóêïõò
óáò, ìðïñåßôå íá åãêáôáóôÞóåôå äéáöïñåôéêü äéá÷åéñéóôÞ åêêßíçóçò,
êÜðïéïí ðïõ íá ìðïñåß íá äåßîåé ìéá ëßóôá ôùí äéáöïñåôéêþí óõóôçìÜôùí
êáé íá óáò åðéôñÝøåé íá äéáëÝîåôå ðïéï íá îåêéíÞóåé. Óôï åðüìåíï ôìÞìá
èá óõæçôÞóïõìå ãéá äýï áðü áõôïýò ôïõò äéá÷åéñéóôÝò åêêßíçóçò.Ôï õðüëïéðï ôïõ óõóôÞìáôïò åêêßíçóçò ôïõ &os; åßíáé ÷ùñéóìÝíï óå
ôñßá óôÜäéá. Ôï ðñþôï óôÜäéï åêôåëåßôáé áðü ôï MBR, ôï ïðïßï ãíùñßæåé
áðëþò üôé áðáéôåßôáé ãéá íá öÝñåé ôïí õðïëïãéóôÞ óå ìéá óõãêåêñéìÝíç
êáôÜóôáóç êáé íá åêôåëÝóåé ôï äåýôåñï óôÜäéï. Ôï äåýôåñï óôÜäéï ìðïñåß
íá êÜíåé ëßãá ðåñéóóüôåñá ðñÜãìáôá ðñéí ôçí åêôÝëåóç ôïõ ôñßôïõ óôáäßïõ.
Ôï ôñßôï óôÜäéï ïëïêëçñþíåé ôç äéáäéêáóßá öüñôùóçò ôïõ ëåéôïõñãéêïý
óõóôÞìáôïò. Ç åñãáóßá ãßíåôáé óå ôñßá óôÜäéá, ãéáôß ôï ðñüôõðï ôïõ PC
åðéâÜëëåé ðåñéïñéóìïýò óôï ìÝãåèïò ôùí ðñïãñáììÜôùí ðïõ ìðïñïýí íá
åêôåëåóôïýí óôá óôÜäéá Ýíá êáé äýï. Ç óõíÝíùóç áõôÞ ôùí åñãáóéþí
åðéôñÝðåé óôï &os; íá ðáñÝ÷åé Ýíá ðéï åõÝëéêôï óýóôçìá öüñôùóçò.kernelinit¸ðåéôá îåêéíÜåé ï ðõñÞíáò êáé áñ÷ßæåé ôçí áíß÷íåõóç êáé áñ÷éêïðïßçóç
ôùí óõóêåõþí þóôå íá ìðïñïýí íá ÷ñçóéìïðïéçèïýí. ÌÝôá ôçí ïëïêëÞñùóç
ôçò äéáäéêáóßáò åêêßíçóçò ôïõ ðõñÞíá, ï Ýëåã÷ïò ðåñíÜåé óôç äéáäéêáóßá
÷ñÞóôç &man.init.8;, ç ïðïßá êáé åðéâåâáéþíåé üôé ïé äßóêïé åßíáé óå
ëåéôïõñãéêÞ (÷ùñßò ëÜèç) êáôÜóôáóç. Ç &man.init.8; îåêéíÜåé Ýðåéôá
ôçí ñýèìéóç ðüñùí (åðßðåäï ÷ñÞóôç), ìå ôçí ïðïßá ðñïóáñôþíôáé ôá
óõóôÞìáôá áñ÷åßùí, ñõèìßæïíôáé ïé êÜñôåò äéêôýïõ ãéá åðéêïéíùíßá ìå ôï
äßêôõï, êáé ãåíéêÜ åêêéíïýí üëåò ïé äéáäéêáóßåò ðïõ åêôåëïýíôáé ôõðéêÜ
êáôÜ ôçí åêêßíçóç åíüò &os; óõóôÞìáôïò.Ï Äéá÷åéñéóôÞò Åêêßíçóçò êáé ôá ÓôÜäéá ÅêêßíçóçòBoot ManagerÏ Äéá÷åéñéóôÞò Åêêßíçóçò (boot manager)Master Boot Record (MBR)Ï êþäéêáò óôï MBR Þ äéá÷åéñéóôÞò åêêßíçóçò áíáöÝñåôáé ìåñéêÝò
öïñÝò êáé ùò óôÜäéï ìçäÝí (stage zero) ôçò
äéáäéêáóßáò åêêßíçóçò. Ôï ôìÞìá áõôü ðåñéãñÜöåé äýï áðü ôïõò
äéá÷åéñéóôÝò åêêßíçóçò ðïõ áíáöÝñáìå ðñïçãïõìÝíùò: Ôï
boot0 êáé ôï
LILO.Ï Äéá÷åéñéóôÞò Åêêßíçóçò
boot0:Ôï MBR ðïõ åãêáèßóôáôáé áðü ôï ðñüãñáììá åãêáôÜóôáóçò ôïõ &os;
Þ ôï &man.boot0cfg.8;, âáóßæåôáé áðü ðñïåðéëïãÞ óôï
/boot/boot0.
(Ôï ðñüãñáììá boot0 åßíáé ðïëý áðëü,
êáèþò ï êþäéêáò óôï MBR ìðïñåß íá Ý÷åé ìÝãåèïò ùò
446 bytes, åîáéôßáò ôïõ ðßíáêá êáôáôìÞóåùí (slice table) êáé
ôïõ áíáãíùñéóôéêïý 0x55AA ðïõ âñßóêåôáé óôï ôÝëïò
ôïõ MBR.) Áí Ý÷åôå åãêáôáóôÞóåé ôï boot0
êáé ðïëëáðëÜ ëåéôïõñãéêÜ óõóôÞìáôá óôïõò óêëçñïýò äßóêïõò óáò, èá
äåßôå êáôÜ ôçí åêêßíçóç, ìéá ïèüíç ðáñüìïéá ìå ôçí
ðáñáêÜôù:boot0 ScreenshotF1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2¶ëëá ëåéôïõñãéêÜ óõóôÞìáôá, êáé åéäéêüôåñá ôá &windows;, åßíáé
ãíùóôü üôé ãñÜöïõí ôï äéêü ôïõò MBR ðÜíù óå êÜðïéï Þäç õðÜñ÷ïí. Áí
óáò óõìâåß áõôü, Þ áí èÝëåôå íá áíôéêáôáóôÞóåôå ôï õðÜñ÷ïí MBR óáò
ìå áõôü ôïõ &os;, ÷ñçóéìïðïéÞóôå ôçí áêüëïõèç åíôïëÞ:&prompt.root; fdisk -B -b /boot/boot0 deviceüðïõ device åßíáé ç óõóêåõÞ áðü ôçí
ïðïßá ãßíåôáé åêêßíçóç, üðùò ð.÷. ôï ad0 ãéá
ôïí ðñþôï äßóêï IDE, ôï ad2 ãéá ôïí ðñþôï
IDE äßóêï óôï äåõôåñåýïíôá åëåãêôÞ, ôï da0
ãéá ôïí ðñþôï SCSI äßóêï ê.ï.ê. Áí ðÜëé èÝëåôå ðñïóáñìïóìÝíç ñýèìéóç
ôïõ MBR, ÷ñçóéìïðïéÞóôå ôï &man.boot0cfg.8;.Ï Äéá÷åéñéóôÞò Åêêßíçóçò LILOÃéá íá åãêáôáóôÞóåôå áõôü ôï äéá÷åéñéóôÞ åêêßíçóçò þóôå íá
ìðïñåß íá åêêéíåß ôï &os;, åãêáôáóôÞóôå ðñþôá ôï Linux êáé ðñïóèÝóôå
ôçí áêüëïõèç êáôá÷þñçóç óôï õðÜñ÷ïí áñ÷åßï ñõèìßóåùí
/etc/lilo.conf:other=/dev/hdXY
table=/dev/hdX
loader=/boot/chain.b
label=FreeBSDÓôï ðáñáðÜíù, êáèïñßóôå ôï ðñùôåýïí äéáìÝñéóìá êáé ôï äßóêï ôïõ
&os; áíôéêáèéóôþíôáò ôï X ìå ôï ãñÜììá
äßóêïõ êáé ôï Y ìå ôïí áñéèìü ôïõ
ðñùôåýïíôïò äéáìåñßóìáôïò, ÷ñçóéìïðïéþíôáò üìùò ôçí ïíïìáôïëïãßá ôïõ
Linux. Áí ÷ñçóéìïðïéåßôå ïäçãü SCSI èá ÷ñåéáóôåß
íá áëëÜîåôå ôï /dev/hd óå êÜôé áíôßóôïé÷ï
ìå /dev/sd. Ç ãñáììÞ
ìðïñåß íá ðáñáëåéöèåß áí Ý÷åôå
êáé ôá äýï ëåéôïõñãéêÜ óõóôÞìáôá óôïí ßäéï äßóêï. ÅêôåëÝóôå ôþñá ôçí
åíôïëÞ /sbin/lilo -v ãéá íá êáôá÷ùñÞóåôå ôéò
íÝåò áëëáãÝò óáò óôï óýóôçìá. Ìðïñåßôå íá ôéò åðéâåâáéþóåôå
åëÝã÷ïíôáò ôá ìçíýìáôá ðïõ èá åìöáíéóôïýí óôçí ïèüíç óáò.Ôï ÓôÜäéï ¸íá, /boot/boot1, êáé ôï ÓôÜäéï
Äýï, /boot/boot2ÏõóéáóôéêÜ, ôï ðñþôï êáé äåýôåñï óôÜäéï åßíáé ôìÞìáôá ôïõ ßäéïõ
ðñïãñÜììáôïò, óôçí ßäéá ðåñéï÷Þ ôïõ äßóêïõ. Ëüãù ðåñéïñéóìþí ÷þñïõ
Ý÷ïõí ÷ùñéóôåß óå äýï, áëëÜ åãêáèßóôáíôáé ðÜíôá ìáæß.
ÁíôéãñÜöïíôáé áðü ôï óõíäõáóìÝíï áñ÷åßï
/boot/boot áðü ôï ðñüãñáììá åãêáôÜóôáóçò Þ ôï
bsdlabel (äåßôå ðáñáêÜôù).Âñßóêïíôáé Ýîù áðü óõóôÞìáôá áñ÷åßùí, óôçí ðñþôç ôñï÷éÜ (track)
ôïõ slice åêêßíçóçò, îåêéíþíôáò áðü ôïí ðñþôï ôïìÝá. Åßíáé ôï óçìåßï
üðïõ ôï boot0, Þ ïðïéïóäÞðïôå Üëëïò
äéá÷åéñéóôÞò åêêßíçóçò, áíáìÝíåé íá âñåé ðñüãñáììá ðñïò åêôÝëåóç ìå
ôï ïðïßï èá óõíå÷éóôåß ç äéáäéêáóßá åêêßíçóçò. Ï áñéèìüò ôùí ôïìÝùí
ðïõ ÷ñçóéìïðïéïýíôáé ìðïñåß íá âñåèåß åýêïëá áðü ôï ìÝãåèïò ôïõ
áñ÷åßïõ /boot/boot.Ôï boot1 åßíáé ðïëý áðëü, ìéá êáé ìðïñåß íá
åßíáé ìüíï 512 bytes óå ìÝãåèïò, êáé ãíùñßæåé üóá ÷ñåéÜæåôáé ãéá ôï
bsdlabel ôïõ &os;, ôï ïðïßï áðïèçêåýåé
ðëçñïöïñßåò ó÷åôéêÜ ìå ôï slice, þóôå íá âñåé êáé íá åêôåëÝóåé ôï
boot2.Ôï boot2 åßíáé åëáöñÜ ðéï ðïëýðëïêï êáé
êáôáíïåß åðáñêþò ôï óýóôçìá áñ÷åßùí ôïõ &os; þóôå íá ìðïñåß íá âñåé
áñ÷åßá óå áõôü, êáé ìðïñåß åðßóçò íá ðáñÝ÷åé ìéá áðëÞ äéåðáöÞ ìå ôï
÷ñÞóôç þóôå íá ìðïñåß íá ãßíåé ç åðéëïãÞ ôïõ ðõñÞíá Þ ôïõ ðñïãñÜììáôïò
öüñôùóçò ðïõ èá åêôåëåóôåß.Ôï boot2 óõíÞèùò åêôåëåß ôïí
loader (öïñôùôÞò åêêßíçóçò) ï
ïðïßïò åßíáé åîáéñåôéêÜ ðéï ðïëýðëïêïò, áëëÜ ðáñÝ÷åé Ýíá ùñáßï êáé
åýêïëï ôñüðï ñýèìéóçò ôçò åêêßíçóçò. Ðáëéüôåñá ôï
boot2 áíáëÜìâáíå íá öïñôþóåé áðåõèåßáò ôïí
ðõñÞíá.Åéêüíá áðü ôï boot2>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Áí ÷ñåéáóôåß ðïôÝ íá áíôéêáôáóôÞóåôå ôá åãêáôåóôçìÝíá
boot1 êáé boot2
÷ñçóéìïðïéÞóôå ôï &man.bsdlabel.8;:&prompt.root; bsdlabel -B disksliceüðïõ ôï diskslice åßíáé ï äßóêïò êáé
ôï slice áðü ôï ïðïßï ãßíåôáé ç åêêßíçóç, üðùò ð.÷.
ad0s1 ãéá ôï ðñþôï slice óôïí ðñþôï IDE
äßóêï.Åðéêßíäõíá ÁöïóéùìÝíç ÊáôÜóôáóç (Dangerously Dedicated
Mode)Áí ÷ñçóéìïðïéÞóåôå ìüíï ôï üíïìá ôïõ äßóêïõ, üðùò ð.÷.
ad0, óôçí åíôïëÞ &man.bsdlabel.8; èá
äçìéïõñãÞóåôå Ýíá åðéêßíäõíá áöïóéùìÝíï äßóêï, ÷ùñßò slices. Åßíáé
ó÷åäüí óßãïõñï üôé äåí èÝëåôå íá ôï êÜíåôå áõôü, ãé' áõôü
óéãïõñåõôåßôå üôé åëÝãîáôå ôçí åíôïëÞ &man.bsdlabel.8; ðñéí ðéÝóåôå
Return.ÓôÜäéï Ôñßá, /boot/loaderboot-loaderÏ loader, Þ öïñôùôÞò åêêßíçóçò, åßíáé ôï ôåëéêü óôÜäéï ôïõ
óõóôÞìáôïò åêêßíçóçò ôñéþí óôáäßùí, êáé âñßóêåôáé óôï óýóôçìá áñ÷åßùí,
óõíÞèùò ùò /boot/loader.Ðñïïñéóìüò ôïõ loader åßíáé íá ðáñÝ÷åé ìéá ìÝèïäï ñýèìéóçò öéëéêÞ
ðñïò ôï ÷ñÞóôç, êáé ÷ñçóéìïðïéåß Ýíá åýêïëï óýíïëï åíôïëþí, ôï ïðïßï
õðïóôçñßæåôáé áðü Ýíá éó÷õñü ìåôáöñáóôÞ åíôïëþí ìå Ýíá
ðïëõðëïêüôåñï óýíïëï åíôïëþí.ÑïÞ ôïõ ÐñïãñÜììáôïò LoaderÊáôÜ ôçí áñ÷éêïðïßçóç, ï loader èá áíé÷íåýóåé ôçí êïíóüëá êáé
ôïõò äßóêïõò êáé èá êáèïñßóåé áðü ðïéï äßóêï ãßíåôáé ç åêêßíçóç. Èá
ñõèìßóåé êáôÜëëçëá ôéò áíôßóôïé÷åò ìåôáâëçôÝò êáé èá îåêéíÞóåé Ýíá
ðñüãñáììá ìåôÜöñáóçò åíôïëþí (interpreter) óôï ïðïßï ìðïñåß ï
÷ñÞóôçò íá äßíåé åíôïëÝò, åßôå áðåõèåßáò, åßôå ìÝóù êÜðïéïõ
script.loaderloader configurationÏ loader êáôüðéí èá äéáâÜóåé ôï áñ÷åßï
/boot/loader.rc, ôï ïðïßï ìå ôç óåéñÜ ôïõ
äéáâÜæåé, áðü ðñïåðéëïãÞ, ôï
/boot/defaults/loader.conf. ÌÝóá áðü ôï áñ÷åßï
áõôü ôßèåíôáé ëïãéêÝò ðñïåðéëåãìÝíåò ôéìÝò ãéá êÜðïéåò ìåôáâëçôÝò.
¸ðåéôá, äéáâÜæåôáé ôï áñ÷åßï
/boot/loader.conf ãéá ôõ÷üí ôïðéêÝò áëëáãÝò
óôéò ìåôáâëçôÝò áõôÝò. Êáôüðéí ôï loader.rc
÷ñçóéìïðïéåß áõôÝò ôéò ìåôáâëçôÝò, öïñôþíïíôáò ôá áñèñþìáôá
(modules) êáé ôïí ðõñÞíá ðïõ Ý÷åé åðéëåãåß.ÔåëéêÜ, ï loader, ðåñéìÝíåé 10 äåõôåñüëåðôá (ðñïåðéëåãìÝíï
÷ñïíéêü äéÜóôçìá) ãéá ôçí ðßåóç êÜðïéïõ ðëÞêôñïõ, êáé áí äåí
õðÜñîåé ðáñÝìâáóç áðü ôïí ÷ñÞóôç, îåêéíÜåé ôïí ðõñÞíá. Áí ãßíåé
ðáñÝìâáóç, åìöáíßæåôáé óôïí ÷ñÞóôç ìéá ðñïôñïðÞ ç ïðïßï êáôáíïåß ôï
åýêïëï óýíïëï åíôïëþí ðïõ áíáöÝñáìå ðñïçãïõìÝíùò, êáé üðïõ ï ÷ñÞóôçò
ìðïñåß íá ñõèìßóåé ìåôáâëçôÝò, íá áðïöïñôþóåé üëá ôá áñèñþìáôá, íá
öïñôþóåé áñèñþìáôá êáé ôåëéêÜ íá ðñïâåß óå åêêßíçóç Þ
åðáíåêêßíçóç.ÅíôïëÝò ÅíóùìáôùìÝíåò óôï LoaderÐáñáêÜôù èá äåßôå ôéò ðéï óõ÷íÜ ÷ñçóéìïðïéïýìåíåò åíôïëÝò ôïõ
loader. Ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò ó÷åôéêÜ ìå üëåò ôéò
äéáèÝóéìåò åíôïëÝò, ðáñáêáëïýìå íá äåßôå ôï &man.loader.8;.autoboot secondsÐñï÷ùñÜ óôçí åêêßíçóç ôïõ ðõñÞíá, áí äåí õðÜñîåé ðáñÝìâáóç
áðü ôï ÷ñÞóôç ìÝóá óôï êáèïñéóìÝíï ÷ñïíéêü äéÜóôçìá ðïõ
äßíåôáé óå äåõôåñüëåðôá. Áðåéêïíßæåé áíôßóôñïöç ìÝôñçóç, êáé
ï ðñïåðéëåãìÝíïò ÷ñüíïò åßíáé ôá 10 äåõôåñüëåðôá.boot
-optionskernelnameÐñï÷ùñÜåé Üìåóá óôçí åêêßíçóç ôïõ ðõñÞíá, ÷ñçóéìïðïéþíôáò
üðïéåò ôõ÷üí åðéëïãÝò Ý÷ïõí äïèåß êáé ôï üíïìá ôïõ ðõñÞíá ðïõ
èá åêôåëåóôåß áí Ý÷åé åðßóçò äïèåß. Ãéá íá äþóåôå äéáöïñåôéêü
üíïìá ðõñÞíá óôçí ãñáììÞ åíôïëÞò, èá ðñÝðåé ðñþôá íá
÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ unload.
ÄéáöïñåôéêÜ, èá ÷ñçóéìïðïéçèåß ï ðõñÞíáò ðïõ Ý÷åé öïñôùèåß
Þäç.boot-confÄéáôñÝ÷åé ôçí áõôüìáôç ñýèìéóç ôùí áñèñùìÜôùí (module) ðïõ
âáóßæåôáé óå ìåôáâëçôÝò, ìå ôïí ßäéï ôñüðï ðïõ ãßíåôáé êáé óå
êáíïíéêÞ åêêßíçóç. Áõôü Ý÷åé íüçìá ìüíï áí ÷ñçóéìïðïéÞóåôå
ðñþôá ôï unload êáé áëëÜîåôå êÜðïéåò
ìåôáâëçôÝò, óõíÞèùò ôï kernel.help
topicÄåß÷íåé ìçíýìáôá âïÞèåéáò, ôá ïðïßá äéáâÜæïíôáé áðü ôï
/boot/loader.help. Áí ôï topic (èÝìá)
ðïõ äüèçêå åßíáé ç ëÝîç index, èá äåßôå ìéá
ëßóôá ìå ôá äéáèÝóéìá èÝìáôá âïÞèåéáò.include filename
…ÅðåîåñãÜæåôáé ôï áñ÷åßï ìå ôï üíïìá áñ÷åßïõ ðïõ äüèçêå
(filename). Ãßíåôáé áíÜãíùóç êáé ãñáììÞ ðñïò ãñáììÞ ìåôÜöñáóç
ôïõ áñ÷åßïõ. Ç åíôïëÞ include óôáìáôÜåé Üìåóá áí åíôïðéóôåß
êÜðïéï ëÜèïò.load typefilenameÖïñôþíåé ôïí ðõñÞíá, ôï Üñèñùìá ðõñÞíá Þ Ýíá áñ÷åßï ôïõ
ôýðïõ ðïõ êáèïñßóôçêå, ìå âÜóç ôï üíïìá áñ÷åßïõ ðïõ äüèçêå.
Áí ìåôÜ ôï üíïìá áñ÷åßïõ õðÜñ÷ïõí ðáñÜìåôñïé, ðåñíéïýíôáé ùò
ðáñÜìåôñïé óôï áñ÷åßï ðïõ öïñôþíåôáé.ls pathÄåß÷íåé Ýíá êáôÜëïãï ôùí áñ÷åßùí ôçò äéáäñïìÞò ðïõ
äüèçêå, Þ áí äåí êáèïñßóôçêå äéáäñïìÞ, ôïõ ñéæéêïý êáôáëüãïõ.
Áí äïèåß êáé ç åðéëïãÞ èá åìöáíßæïíôáé
åðßóçò êáé ôá ìåãÝèç ôùí áñ÷åßùí.lsdev Åìöáíßæåé üëåò ôéò óõóêåõÝò áðü ôéò ïðïßåò åßíáé äõíáôÞ ç
öüñôùóç áñèñùìÜôùí. Áí äïèåß ìå ôçí åðéëïãÞ
, åìöáíßæïíôáé ðåñéóóüôåñåò
ëåðôïìÝñåéåò.lsmod Åìöáíßæåé ôá áñèñþìáôá ðïõ Ý÷ïõí öïñôùèåß. Áí äïèåß ç
åðéëïãÞ , åìöáíßæïíôáé ðåñéóóüôåñåò
ëåðôïìÝñåéåò.more filenameÅìöáíßæåé ôï áñ÷åßï ðïõ êáèïñßæåôáé, ìå ðáýóåéò êÜèå
LINES áñéèìü ãñáììþí.rebootÅðáíåêêéíåß Üìåóá ôï óýóôçìá.set variableset variable=valueÊáèïñßæåé ìåôáâëçôÝò ðåñéâÜëëïíôïò ãéá ôïí loader.unloadÁðïöïñôþíåé üëá ôá áñèñþìáôá.Ðáñáäåßãìáôá ãéá ôïí LoaderÅäþ èá âñåßôå ìåñéêÜ ðñáêôéêÜ ðáñáäåßãìáôá ó÷åôéêÜ ìå ôçí ÷ñÞóç
ôïõ loader:
- single-user modeÃéá íá îåêéíÞóåôå ôï óõíçèéóìÝíï ðõñÞíá óáò, áëëÜ óå
- êáôÜóôáóç åíüò ÷ñÞóôç:
+ êáôÜóôáóç åíüò ÷ñÞóôç:single-user modeboot -sÃéá íá áðïöïñôþóåôå ôï óõíçèéóìÝíï ðõñÞíá óáò êáé íá
öïñôþóåôå ôïí ðáëéü óáò (Þ êÜðïéï Üëëï):kernel.oldunloadload kernel.oldÌðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï üíïìá
kernel.GENERIC ãéá íá áíáöåñèåßôå óôïí
áñ÷éêü (generic) ðõñÞíá ï ïðïßïò õðÜñ÷åé óôï CD ôçò
åãêáôÜóôáóçò, Þ ôï kernel.old ãéá íá
áíáöåñèåßôå óôïí ðõñÞíá ðïõ åß÷áôå åãêáôåóôçìÝíï ðñéí (ãéá
ðáñÜäåéãìá, ôïí ðáëéü óáò ðõñÞíá áí êÜíáôå ðñüóöáôá ñýèìéóç êáé
åãêáôÜóôáóç íÝïõ äéêïý óáò ðñïóáñìïóìÝíïõ ðõñÞíá).×ñçóéìïðïéÞóôå ôï ðáñáêÜôù ãéá íá öïñôþóåôå ôá óõíçèéóìÝíá
óáò áñèñþìáôá óå êÜðïéï Üëëï ðõñÞíá:unloadset kernel="kernel.old"boot-confÃéá íá öïñôþóåôå Ýíá script ñýèìéóçò ðõñÞíá (Ýíá
áõôïìáôïðïéçìÝíï ðñüãñáììá ôï ïðïßï åêôåëåß ôéò ëåéôïõñãßåò ðïõ
êáíïíéêÜ èá êÜíáôå ìÝóù êÜðïéïõ ðñïãñÜììáôïò ñýèìéóçò ðõñÞíá
êáôÜ ôçí åêêßíçóç):load -t userconfig_script /boot/kernel.confJoseph J.BarbishÓõíåéóöïñÜ áðü ôïí ÃñáöéêÞ Ïèüíç ÅêêßíçóçòÇ ãñáöéêÞ ïèüíç åêêßíçóçò (splash screen) äçìéïõñãåß Ýíá ðéï
åõ÷Üñéóôï ðåñéâÜëëïí óå ó÷Ýóç ìå ôçí áðëÞ áðåéêüíéóç ôùí ìçíõìÜôùí
åêêßíçóçò óå ìïñöÞ êåéìÝíïõ. Ç ãñáöéêÞ ïèüíç åêêßíçóçò åìöáíßæåôáé
ùò üôïõ ôï óýóôçìá öôÜóåé óôçí ðñïôñïðÞ åéóüäïõ (login), åßôå óôçí
êïíóüëá, åßôå óôï ãñáöéêü ðåñéâÜëëïí.Ôï &os; äéáèÝôåé äýï âáóéêÜ ðåñéâÜëëïíôá. Ôï ðñþôï åßíáé
ôï ðñïåðéëåãìÝíï ðåñéâÜëëïí êåéìÝíïõ ãñáììÞò åíôïëþí (êïíóüëá).
ÌåôÜ ôï ôÝëïò ôçò åêêßíçóçò, åìöáíßæåôáé óôçí êïíóüëá ìéá ðñïôñïðÞ
åéóüäïõ. Ôï äåýôåñï, åßíáé ôï ãñáöéêü ðåñéâÜëëïí
ðïõ ðáñÝ÷åôáé áðü ôï óýóôçìá ×11. ÌåôÜ ôçí åãêáôÜóôáóç ôïõ
X11 êáé åíüò áðü ôïõò ãñáöéêïýò
äéá÷åéñéóôÝò ðáñáèýñùí Þ desktop,
üðùò åßíáé ôá GNOME,
KDE Þ XFce,
ìðïñåßôå íá îåêéíÞóåôå ôï ãñáöéêü ðåñéâÜëëïí ìå ôçí åíôïëÞ
startx.Ìåñéêïß ÷ñÞóôåò ðñïôéìïýí íá óõíäÝïíôáé óôï óýóôçìá ìÝóù
ãñáöéêÞò ïèüíç åéóüäïõ, áíôß íá ÷ñçóéìïðïéïýí ôçí ðñïôñïðÞ åéóüäïõ
ôçò êïíóüëáò. Ç äõíáôüôçôá áõôÞ ðáñÝ÷åôáé áðï äéá÷åéñéóôÝò ïèüíçò,
üðùò ï XDM ãéá ôï &xorg;, o
gdm ãéá ôï
GNOME êáé ï
kdm ãéá ôï
KDE (êáèþò êáé Üëëïõò ðïõ äéáôßèåíôáé
óôç ÓõëëïãÞ ôùí Ports). ÌåôÜ áðü ìéá åðéôõ÷çìÝíç åßóïäï,
ðáñïõóéÜæåôáé Üìåóá óôï ÷ñÞóôç ôï ãñáöéêü ðåñéâÜëëïí ôçò åðéëïãÞò
ôïõ.Óôï ðåñéâÜëëïí ôçò ãñáììÞò åíôïëþí, ç ãñáöéêÞ ïèüíç åêêßíçóçò
èá áðïêñýøåé üëá ôá ìçíýìáôá áíß÷íåõóçò ôùí óõóêåõþí êáé õðçñåóéþí,
ìÝ÷ñé ôçí åìöÜíéóç ôçò ðñïôñïðÞò åéóüäïõ. Ìå áðåõèåßáò åêêßíçóç óå
ðåñéâÜëëïí X11, ç åìðåéñßá åêêßíçóçò èá åßíáé áêüìá ðéï êáèáñÞ,
êáé èá ìïéÜæåé ðåñéóóüôåñï ìå ôçí áíôßóôïé÷ç óå Ýíá ðåñéâÜëëïí
µsoft; &windows; Þ Üëëïõ ìç-UNIX óõóôÞìáôïò.Ëåéôïõñãßá ôçò ÃñáöéêÞò Ïèüíçò ÅêêßíçóçòÇ ãñáöéêÞ ïèüíç åêêßíçóçò õðïóôçñßæåé åéêüíåò bitmap
(.bmp), ZSoft PCX
(.pcx) Þ TheDraw (.bin)
256 ÷ñùìÜôùí. Åðéðñüóèåôá, ïé åéêüíåò ðïõ ÷ñçóéìïðïéïýíôáé
ðñÝðåé íá Ý÷ïõí áíÜëõóç 320x200 Þ ìéêñüôåñç ãéá íá ëåéôïõñãÞóïõí
óå ôõðéêïýò ðñïóáñìïãåßò ïèüíçò VGA.Ãéá íá ÷ñçóéìïðïéÞóåôå ìåãáëýôåñåò åéêüíåò, ìÝ÷ñé ôçí ìÝãéóôç
áíÜëõóç ôùí 1024x768 pixels, åíåñãïðïéÞóôå ôçí õðïóôÞñéîç
VESA ðïõ ðåñéëáìâÜíåôáé óôï &os;. Ìðïñåßôå íá
ôçí åíåñãïðïéÞóåôå öïñôþíïíôáò ôï Üñèñùìá VESA
êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò, ç ðñïóèÝôïíôáò ôçí åðéëïãÞ
VESA óôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá, êáé
äçìéïõñãþíôáò Ýíá íÝï ðñïóáñìïóìÝíï ðõñÞíá (). Ç õðïóôÞñéîç VESA
äßíåé óôïõò ÷ñÞóôåò ôçí äõíáôüôçôá íá ÷ñçóéìïðïéÞóïõí ìéá åéêüíá
ðïõ íá êáëýðôåé üëç ôçí ïèüíç.Ìðïñåßôå íá äåßôå ôá êáíïíéêÜ ìçíýìáôá åêêßíçóçò üóï
åìöáíßæåôáé ç ãñáöéêÞ ïèüíç åêêßíçóçò, ðéÝæïíôáò áðëþò
ïðïéïäÞðïôå ðëÞêôñï.Ç ïèüíç åêêßíçóçò ãßíåôáé åðßóçò ç ðñïåðéëåãìÝíç ðñïöýëáîç
ïèüíçò, üóï ôï óýóôçìá ëåéôïõñãåß óå ðåñéâÜëëïí êïíóüëáò. ÌåôÜ
áðü êÜðïéï ÷ñïíéêü äéÜóôçìá áäñÜíåéáò, ç ïèüíç áëëÜæåé,
áðåéêïíßæïíôáò ôçí åéêüíá ðïõ ÷ñçóéìïðïéÞèçêå óôçí åêêßíçóç,
ìå êõêëéêÞ åíáëëáãÞ ôçò öùôåéíüôçôáò áðü ðïëý öùôåéíÞ ùò ðïëý
óêïôåéíÞ. Ìðïñåßôå íá áëëÜîåôå áõôÞ ôçí ðñïåðéëåãìÝíç ðñïöýëáîç
ïèüíçò, ðñïóèÝôïíôáò ìéá ãñáììÞ saver= óôï
áñ÷åßï /etc/rc.conf. Ãéá ôçí åðéëïãÞ
saver=, õðÜñ÷ïõí áñêåôÝò åíóùìáôùìÝíåò
ðñïöõëÜîåéò ïèüíçò ãéá íá åðéëÝîåôå. Ìðïñåßôå íá äåßôå ôçí ðëÞñç
ëßóôá óôç óåëßäá manual ôïõ &man.splash.4;. Ç ðñïåðéëåãìÝíç
ðñïöýëáîç ïèüíçò ïíïìÜæåôáé warp. Óçìåéþóôå üôé ç
ðñïöýëáîç ïèüíçò ðïõ êáèïñßæåôáé óôï áñ÷åßï
/etc/rc.conf ìÝóù ôçò åðéëïãÞò
saver= Ý÷åé åðßäñáóç ìüíï óôéò åéêïíéêÝò
êïíóüëåò. Äåí åðçñåÜæåé êáèüëïõ ôï ãñáöéêü ðåñéâÜëëïí X11.ÊÜðïéá ìçíýìáôá åêêßíçóçò åîáêïëïõèïýí íá åìöáíßæïíôáé, áêüìá
êáé ìåôÜ ôçí åöáñìïãÞ ôçò ãñáöéêÞò ïèüíçò åêêßíçóçò. Ôá ìçíýìáôá
áõôÜ ðåñéëáìâÜíïõí ôï ìåíïý åðéëïãþí åêêßíçóçò êáé ôçí áíôßóôñïöç
ìÝôñçóç ÷ñüíïõ ðïõ ôï óõíïäåýåé.Ìðïñåßôå íá êáôåâÜóåôå õðïäåßãìáôá åéêüíùí ãéá ÷ñÞóç óôçí
åêêßíçóç, áðü ôç óõëëïãÞ åéêüíùí óôçí ôïðïèåóßá http://artwork.freebsdgr.org.
Áí åãêáôáóôÞóåôå ôï Port sysutils/bsd-splash-changer, èá Ý÷åôå
ôõ÷áßá åíáëëáãÞ åéêüíùí (ðïõ èá åðéëÝãïíôáé áðü ìéá Ýôïéìç
óõëëïãÞ) óå êÜèå åêêßíçóç ôïõ óõóôÞìáôïò.Åíåñãïðïßçóç ôçò ÃñáöéêÞò Ïèüíçò ÅêêßíçóçòÔï áñ÷åßï ðïõ èá ÷ñçóéìïðïéçèåß ãéá ôçí ãñáöéêÞ ïèüíç
åêêßíçóçò (ôýðïõ .bmp,
.pcx Þ .bin) èá ðñÝðåé
íá ôïðïèåôçèåß óôçí ñéæéêÞ (root) êáôÜôìçóç, ãéá ðáñÜäåéãìá óôïí
êáôÜëïãï /boot/.Ãéá ôçí ðñïåðéëåãìÝíç áíÜëõóç ïèüíçò (320x200 Þ ìéêñüôåñç,
256 ÷ñþìáôá), åðåîåñãáóôåßôå ôï áñ÷åßï
/boot/loader.conf þóôå íá ðåñéÝ÷åé ôá
ðáñáêÜôù:splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"Ãéá ìåãáëýôåñåò áíáëýóåéò, ìÝ÷ñé ôçí ìÝãéóôç 1024x768,
åðåîåñãáóôåßôå ôï áñ÷åßï /boot/loader.conf
þóôå íá ðåñéÝ÷åé ôï ðáñáêÜôù:vesa_load="YES"
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"Ôï ðáñáðÜíù õðïèÝôåé üôé èá ÷ñçóéìïðïéÞóåôå ôï áñ÷åßï
/boot/splash.bmp
ãéá ôçí ãñáöéêÞ ïèüíç åêêßíçóçò. Áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå
åéêüíá ôýðïõ PCX, ÷ñçóéìïðïéÞóôå ôéò ðáñáêÜôù
åðéëïãÝò, êáèþò êáé ôçí åðéëïãÞ
vesa_load="YES", áíÜëïãá ìå ôçí áíÜëõóç:splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"Óôçí Ýêäïóç 8.3, ìéá áêüìá åðéëïãÞ åßíáé ç ÷ñÞóç ascii art
óå ìïñöÞ The
Draw.splash_txt="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bin"Ôï üíïìá áñ÷åßïõ äåí åßíáé áðáñáßôçôï íá åßíáé
splash üðùò öáßíåôáé óôï ðáñáðÜíù ðáñÜäåéãìá.
Ìðïñåß íá åßíáé ïôéäÞðïôå, áñêåß íá ðñüêåéôáé ãéá áñ÷åßï ôùí
ôýðùí ðïõ áíáöÝñáìå ðáñáðÜíù, ãéá ðáñÜäåéãìá
splash_640x400.bmp
Þ
blue_wave.pcx.ÐáñáêÜôù öáßíïíôáé ìåñéêÝò áêüìá åíäéáöÝñïõóåò åðéëïãÝò ðïõ
ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå óôï
/boot/loader.conf:beastie_disable="YES"Ç åðéëïãÞ áõôÞ êáôáñãåß ôçí åìöÜíéóç ôïõ ìåíïý åðéëïãþí
åêêßíçóçò. ÐáñáìÝíåé ùóôüóï ç áíôßóôñïöç ìÝôñçóç ìå ôçí
ðñïôñïðÞ åéóáãùãÞò åðéëïãþí åêêßíçóçò. Áêüìá êáé üôáí äåí
åìöáíßæåôáé ôï ìåíïý åðéëïãþí, áí ï ÷ñÞóôçò êÜíåé ìéá
åðéëïãÞ óôç äéÜñêåéá ôïõ ðñïåðéëåãìÝíïõ ÷ñüíïõ áíáìïíÞò,
ç åðéëïãÞ áõôÞ èá éó÷ýóåé ãéá ôçí åêêßíçóç.loader_logo="beastie"Ç åðéëïãÞ áõôÞ áëëÜæåé ôï êåßìåíï &os;
ðïõ åìöáíßæåôáé óôï äåîéü ìÝñïò ôïõ ìåíïý åðéëïãþí
åêêßíçóçò, ìå Ýíá Ýã÷ñùìï ëïãüôõðï ôïõ beastie, üðùò
åìöáíéæüôáí óôéò ðáëáéüôåñåò åêäüóåéò.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, ðáñáêáëïýìå áíáôñÝîôå óôéò
óåëßäåò manual &man.splash.4;, &man.loader.conf.5; êáé
&man.vga.4;.Áëëçëåðßäñáóç ìå ôïí ÐõñÞíá êáôÜ ôçí Åêêßíçóçkernelboot interactionÁðü ôç óôéãìÞ ðïõ ï ðõñÞíáò öïñôùèåß, åßôå ìÝóù ôïõ
loader (üðùò óõíÞèùò) åßôå ìÝóù ôïõ
boot2 (ðáñáêÜìðôïíôáò ôïí loader),
åîåôÜæåé ôéò ðáñáìÝôñïõò åêêßíçóçò (boot flags), áí õðÜñ÷ïõí, êáé
ðñïóáñìüæåé áíÜëïãá ôç óõìðåñéöïñÜ ôïõ.ÐáñÜìåôñïé Åêêßíçóçò ÐõñÞíá (Boot Flags)kernelbootflagsÐáñáêÜôù èá âñåßôå ôéò ðéï óõíçèéóìÝíåò ðáñáìÝôñïõò
åêêßíçóçò:êáôÜ ôç äéÜñêåéá ôçò åêêßíçóçò, èá ãßíåé åñþôçóç ãéá ôçí
óõóêåõÞ áðü ôçí ïðïßá èá ãßíåé ç ðñïóÜñôçóç ôïõ ñéæéêïý (root)
óõóôÞìáôïò áñ÷åßùí.åêêßíçóç áðü ôï CDROM.åêôÝëåóç ôïõ UserConfig, ôïõ ðñïãñÜììáôïò ñýèìéóçò ðõñÞíá
êáôÜ ôçí åêêßíçóç.åêêßíçóç óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç (single
user).åìöÜíéóç ðåñéóóüôåñùí ðëçñïöïñéþí êáôÜ ôç äéÜñêåéá åêêßíçóçò
ôïõ ðõñÞíá.ÕðÜñ÷ïõí êáé Üëëåò ðáñÜìåôñïé åêêßíçóçò, äéáâÜóôå ôç óåëßäá
&man.boot.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå áõôÝò.TomRhodesÓõíåéóöïñÜ áðü ôïí Device Hintsdevice.hintsÊáôÜ ôç äéÜñêåéá ôçò áñ÷éêÞò åêêßíçóçò ôïõ óõóôÞìáôïò, ôï ðñüãñáììá
ôïõ boot &man.loader.8; äéáâÜæåé ôï áñ÷åßï &man.device.hints.5;. Ôï
áñ÷åßï áõôü ðåñéÝ÷åé ðëçñïöïñßåò åêêßíçóçò ãéá ôïí ðõñÞíá, ãíùóôÝò ùò
ìåôáâëçôÝò, ïé ïðïßåò ìåñéêÝò öïñÝò áíáöÝñïíôáé åðßóçò êáé ùò
device hints. ÁõôÜ ôá device hints
÷ñçóéìïðïéïýíôáé áðü ðñïãñÜììáôá ïäÞãçóçò óõóêåõþí ãéá ñýèìéóç ôùí
áíôßóôïé÷ùí óõóêåõþí.Ìðïñïýìå åðßóçò íá ïñßóïõìå Device hints óôçí ðñïôñïðÞ ôïõ
Óôáäßïõ 3 ôïõ boot loader.
Ïé ìåôáâëçôÝò ìðïñïýí íá ïñéóôïýí ìå ÷ñÞóç ôçò åíôïëÞò
set, êáé íá áöáéñåèïýí ìå ôçí
unset. Ìðïñïýìå åðßóçò íá ôéò åìöáíßóïõìå ìå ôçí
åíôïëÞ show. Áêüìá, ìðïñïýìå åäþ íá ðáñáêÜìøïõìå
êáé íá áëëÜîïõìå ôçí ôéìÞ ìåôáâëçôþí ðïõ Ý÷ïõí ïñéóôåß óôï áñ÷åßï
/boot/device.hints. Ôá Device hints ðïõ ïñßæïõìå
óôï boot loader äåí ðáñáìÝíïõí ìüíéìá êáé äåí èá éó÷ýóïõí óôçí åðüìåíç
åêêßíçóç.ÌåôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò, ìðïñåß íá ÷ñçóéìïðïéçèåß ç åíôïëÞ
&man.kenv.1; ãéá íá åìöáíéóôïýí ïé ôéìÝò üëùí ôùí ìåôáâëçôþí.Ôï óõíôáêôéêü ôïõ áñ÷åßïõ /boot/device.hints
åßíáé ìéá ìåôáâëçôÞ áíÜ ãñáììÞ, êáé ÷ñçóéìïðïéåßôáé ôï ôõðïðïéçìÝíï
# ãéá ãñáììÝò ðïõ äçëþíïíôáé ùò ó÷üëéá. Ïé ãñáììÝò
äçìéïõñãïýíôáé üðùò öáßíåôáé ðáñáêÜôù:hint.driver.unit.keyword="value"Ç óýíôáîç ãéá ôï ÓôÜäéï 3 ôïõ boot loader åßíáé:set hint.driver.unit.keyword=valueüðïõ driver åßíáé ôï üíïìá ôïõ ïäçãïý óõóêåõÞò,
unit åßíáé ï áñéèìüò ìïíÜäáò ôçò óõóêåõÞò, êáé
keyword åßíáé ç ëÝîç-êëåéäß ãéá ôï óõãêåêñéìÝíï hint.
Ç ëÝîç-êëåéäß ìðïñåß íá áðïôåëåßôáé áðü ôéò áêüëïõèåò åðéëïãÝò:at: êáèïñßæåé ôï äßáõëï (bus) óôïí ïðïßï
ðñïóáñôÜôáé ç óõóêåõÞ.port: êáèïñßæåé ôçí áñ÷éêÞ äéåýèõíóç ôçò
èýñáò I/O ðïõ èá ÷ñçóéìïðïéçèåß.irq: êáèïñßæåé ôïí áñéèìü ôçò áßôçóçò
äéáêïðÞò (interrupt request) ðïõ èá ÷ñçóéìïðïéçèåß.drq: êáèïñßæåé ôïí áñéèìü ôïõ êáíáëéïý
DMA.maddr: êáèïñßæåé ôç öõóéêÞ äéåýèõíóç ìíÞìçò
ðïõ êáôáëáìâÜíåôáé áðü ôç óõóêåõÞ.flags: ïñßæåé äéÜöïñá bits ðáñáìÝôñùí ãéá
ôçí óõóêåõÞ.disabled: Áí ïñéóôåß óå ôéìÞ
1, ç óõóêåõÞ áðåíåñãïðïéåßôáé.Ïé ïäçãïß óõóêåõþí ìðïñåß íá äÝ÷ïíôáé (Þ íá áðáéôïýí) ðåñéóóüôåñá
hints ôá ïðïßá äåí öáßíïíôáé åäþ, êáé óáò óõíéóôïýìå íá äåßôå ôçí
áíôßóôïé÷ç óåëßäá manual ôïõ êÜèå ïäçãïý. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò
óõìâïõëåõèåßôå åðßóçò ôéò óåëßäåò manual ôùí
&man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5;, êáé
&man.loader.8;.Init: Áñ÷éêïðïßçóç ÅëÝã÷ïõ ÄéáäéêáóéþíinitÌüëéò ïëïêëçñùèåß ç åêêßíçóç ôïõ ðõñÞíá, ï Ýëåã÷ïò ìåôáöÝñåôáé óôçí
äéáäéêáóßá ÷ñÞóôç &man.init.8;, ç ïðïßá âñßóêåôáé óôï áñ÷åßï
/sbin/init, Þ óôç äéáäñïìÞ ðïõ êáèïñßæåôáé óôçí
ìåôáâëçôÞ init_path ôïõ loader.Áêïëïõèßá Áõôüìáôçò ÅðáíåêêßíçóçòÇ áêïëïõèßá áõôüìáôçò åðáíåêêßíçóçò åîáóöáëßæåé üôé ôá óõóôÞìáôá
áñ÷åßùí åßíáé óå êáíïíéêÞ, óôáèåñÞ êáôÜóôáóç. Áí äåí åßíáé, êáé ç
&man.fsck.8; äåí ìðïñåß íá äéïñèþóåé ôá ðñïâëÞìáôá, ôüôå ç
&man.init.8; èá ìåôáöÝñåé ôï óýóôçìá óå
êáôÜóôáóç ëåéôïõñãßáò åíüò
÷ñÞóôç þóôå íá ìðïñÝóåé Üìåóá ï äéá÷åéñéóôÞò óõóôÞìáôïò íá
åðéëçöèåß ôùí ðñïâëçìÜôùí áõôþí.ÊáôÜóôáóç Ëåéôïõñãßáò Åíüò ×ñÞóôçsingle-user modeconsoleÌðïñåßôå íá åéóÝëèåôå óôçí êáôÜóôáóç áõôÞ ìÝóù ôçò áêïëïõèßáò áõôüìáôçò åðáíåêêßíçóçò,
Þ ìÝóù ôçò åðéëïãÞò êáôÜ ôçí åêêßíçóç Þ áêüìá êáé
èÝôïíôáò ôç ìåôáâëçôÞ boot_single óôïí
loader.Ìðïñåßôå åðßóçò íá åéóÝëèåôå óå áõôÞ åêôåëþíôáò ôçí åíôïëÞ
&man.shutdown.8; ÷ùñßò ôçí åðéëïãÞ åðáíåêêßíçóçò
() Þ ôåñìáôéóìïý (),
åíþ åßóôå óå êáôÜóôáóç ëåéôïõñãßáò
ðïëëþí ÷ñçóôþí
(multi-user).Áí ç êïíóüëá ôïõ óõóôÞìáôïò Ý÷åé ôåèåß ùò
insecure (áíáóöáëÞò) óôï
/etc/ttys, ôï óýóôçìá èá æçôÞóåé ôïí êùäéêü
ôïõ root ðñéí åéóÝëèåé óå êáôÜóôáóç ëåéôïõñãßáò
åíüò ÷ñÞóôç.ÁíáóöáëÞò Êïíóüëá óôï /etc/ttys# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecureÌéá insecure (áíáóöáëÞò) êïíóüëá óçìáßíåé
üôé äåí èåùñåßôå áóöáëÞ ôçí êïíóüëá üóï áöïñÜ ôç öõóéêÞ ôçò ðñüóâáóç
êáé èÝëåôå íá åßóôå âÝâáéïò üôé ìüíï üðïéïò ãíùñßæåé ôïí êùäéêü ôïõ
root èá ìðïñåß íá ÷ñçóéìïðïéÞóåé ôç ëåéôïõñãßá
åíüò ÷ñÞóôç. Ç åðéëïãÞ áõôÞ äåí óçìáßíåé üôé èÝëåôå ç êïíóüëá óáò
íá ëåéôïõñãåß ÷ùñßò áóöÜëåéá. Áí èÝëåôå áóöÜëåéá, èá ðñÝðåé íá
åðéëÝîåôå insecure, ü÷é
secure.ÊáôÜóôáóç Ëåéôïõñãßá Ðïëëáðëþí ×ñçóôþí (multi-user)multi-user modeÁí ç &man.init.8; äåí âñåé ðñïâëÞìáôá óôá óõóôÞìáôá áñ÷åßùí óáò,
Þ ìüëéò ï ÷ñÞóôçò ôåñìáôßóåé ôçí
êáôÜóôáóç ëåéôïõñãßáò åíüò
÷ñÞóôç, ôï óýóôçìá åéóÝñ÷åôáé óå ëåéôïõñãßá ðïëëáðëþí ÷ñçóôþí,
üðïõ êáé îåêéíÜ ðëÝïí ç ñýèìéóç ðüñùí (resources) ôïõ
óõóôÞìáôïò.Ñýèìéóç Ðüñùí (rc)rc filesÔï óýóôçìá ñýèìéóçò ðüñùí, äéáâÜæåé ôéò ðñïåðéëåãìÝíåò åðéëïãÝò
áðü ôï /etc/defaults/rc.conf, êáé åðéëïãÝò
ãéá ôï óõãêåêñéìÝíï ìç÷Üíçìá áðü ôï
/etc/rc.conf, êáé ðñï÷ùñåß óôçí ðñïóÜñôçóç
ôùí óõóôçìÜôùí áñ÷åßùí ðïõ áíáãñÜöïíôáé óôï
/etc/fstab, îåêéíÜ ôéò õðçñåóßåò äéêôýïõ,
åêêéíåß äéÜöïñïõò äáßìïíåò, êáé ôÝëïò åêôåëåß ôá scripts åêêßíçóçò
ôùí ôïðéêÜ åãêáôåóôçìÝíùí ðáêÝôùí (åöáñìïãþí).Ç óåëßäá manual &man.rc.8; ðáñÝ÷åé ìéá êáëÞ áíáöïñÜ óôï óýóôçìá
ñýèìéóçò ðüñùí, êáèþò åîåôÜæåé ôá ßäéá ôá scripts åêêßíçóçò.Áêïëïõèßá ÔåñìáôéóìïýshutdownÊáôÜ ôïí åëåã÷üìåíï ôåñìáôéóìü, ìÝóù ôçò &man.shutdown.8;, ç
&man.init.8; èá áðïðåéñáèåß íá åêôåëÝóåé ôï script
/etc/rc.shutdown, êáé áêïëïýèùò èá óôåßëåé óå
üëåò ôéò äéåñãáóßåò ôï óÞìá TERM, êáé ôÝëïò ôï
óÞìá KILL óå üðïéá äéåñãáóßá äåí ôåñìáôßóåé óå
åýëïãï ÷ñïíéêü äéÜóôçìá.Ãéá íá ãßíåé êáé äéáêïðÞ ôçò ôñïöïäïóßáò óå Ýíá óýóôçìá &os; ìå
áñ÷éôåêôïíéêÞ ðïõ õðïóôçñßæåé äéá÷åßñéóç åíÝñãåéáò, áðëþò ÷ñçóéìïðïéÞóôå
ôçí åíôïëÞ shutdown -p now ãéá áðåíåñãïðïßçóç ìåôÜ
ôïí ôåñìáôéóìü. Ãéá íá êÜíåôå áðëþò åðáíåêêßíçóç óå Ýíá óýóôçìá &os;
÷ñçóéìïðïéÞóôå ôçí åíôïëÞ shutdown -r now. Èá
ðñÝðåé íá åßóôå root Þ ìÝëïò ôçò ïìÜäáò
operator ãéá íá åêôåëÝóåôå ôçí &man.shutdown.8;.
Ìðïñåßôå åðßóçò íá ÷ñçóéìïðïéÞóåôå ôéò åíôïëÝò &man.halt.8; êáé
&man.reboot.8;, êïéôÜîôå ôéò áíôßóôïé÷åò óåëßäåò manual êáèþò êáé ôç
óåëßäá manual ôçò &man.shutdown.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.Ç äéá÷åßñéóç åíÝñãåéáò áðáéôåß ôçí õðïóôÞñéîç ôïõ &man.acpi.4;,
åßôå óôïí ðõñÞíá, åßôå öïñôùìÝíç ùò Üñèñùìá (module).
diff --git a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml
index 80d9177061..ad53348eeb 100644
--- a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml
@@ -1,3521 +1,3473 @@
JimMockÁíáäïìÞèçêå, áíáäéïñãáíþèçêå, êáé ôìÞìáôá ôïõ áíáíåþèçêáí
áðü ôïí JordanHubbardÁñ÷éêÞ óõíåéóöïñÜ áðü ôïõò Poul-HenningKampJohnPolstraNikClaytonÅíçìÝñùóç êáé ÁíáâÜèìéóç ôïõ &os;ÓýíïøçÔï &os; âñßóêåôáé õðü óõíå÷Þ åîÝëéîç ìåôáîý ôùí åðßóçìùí åêäüóåùí
ôïõ. Ìåñéêïß Üíèñùðïé ðñïôéìïýí íá ÷ñçóéìïðïéïýí ôéò åðßóçìåò åêäüóåéò,
åíþ Üëëïé ðñïôéìïýí íá êñáôïýí ôï óýóôçìá ôïõò åíçìåñùìÝíï ìå ôéò
ôåëåõôáßåò åîåëßîåéò. Ùóôüóï, áêüìá êáé ïé åðßóçìåò åêäüóåéò
åíçìåñþíïíôáé óõ÷íÜ ìå äéïñèþóåéò êñßóéìùí óöáëìÜôùí êáé áóöáëåßáò.
¼ðïéá Ýêäïóç êáé íá ÷ñçóéìïðïéÞóåôå, ôï &os; ðáñÝ÷åé üëá ôá
áðáñáßôçôá åñãáëåßá ãéá íá êñáôÞóåôå ôï óýóôçìá óáò åíçìåñùìÝíï, êáé
åðßóçò óáò åðéôñÝðåé íá áíáâáèìéóôåßôå åýêïëá óå êÜðïéá åðüìåíç
Ýêäïóç. Ôï êåöÜëáéï áõôü èá óáò âïçèÞóåé íá áðïöáóßóåôå áí èÝëåôå íá
ðáñáêïëïõèåßôå ôï óýóôçìá áíÜðôõîçò, Þ áí èá ðñïôéìÞóåôå íá ðáñáìåßíåôå
óå ìéá áðü ôéò ðáãéùìÝíåò åêäüóåéò. Èá ðáñïõóéÜóïõìå åðßóçò ôá âáóéêÜ
åñãáëåßá ðïõ áðáéôïýíôáé ãéá ôçí åíçìÝñùóç êáé áíáâÜèìéóç ôïõ
óõóôÞìáôïò.Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:Ðïéá âïçèçôéêÜ ðñïãñÜììáôá ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ãéá íá
åíçìåñþóåôå ôï óýóôçìá êáé ôçí ÓõëëïãÞ ôùí Ports.Ðùò íá äéáôçñåßôå ôï óýóôçìá óáò åíçìåñùìÝíï ìå ôá ðñïãñÜììáôá
freebsd-updateCVSup,
CVS, Þ
CTM.Ðùò íá óõãêñßíåôå ôçí êáôÜóôáóç åíüò åãêáôåóôçìÝíïõ óõóôÞìáôïò,
ìå áíáöïñÜ Ýíá ãíùóôü êáé åããõçìÝíá óùóôü óýóôçìá.Ðùò íá äéáôçñÞóåôå ôçí ôåêìçñßùóç óáò åíçìåñùìÝíç ìÝóù ôïõ
CVSup Þ ôùí ports ôçò ôåêìçñßùóçò .Ôç äéáöïñÜ ìåôáîý ôùí äýï êëÜäùí ðïõ âñßóêïíôáé óå åîÝëéîç: ôïõ
&os.stable; êáé ôïõ &os.current;.Ðùò íá îáíáöôéÜîåôå êáé íá åðáíåãêáôáóôÞóåôå ïëüêëçñï
ôï âáóéêü óýóôçìá ìå ôçí make buildworld
(êëð).Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:Íá ñõèìßóåôå óùóôÜ ôç óýíäåóç óáò óôï äßêôõï ().Íá ãíùñßæåôå ðùò íá åãêáôáóôÞóåôå ðñüóèåôï ëïãéóìéêü
ôñßôïõ êáôáóêåõáóôÞ ().Óôï êåöÜëáéï áõôü ãßíåôáé óõ÷íÜ ÷ñÞóç ôçò åíôïëÞò
cvsup ãéá ôçí áíÜêôçóç Þ åíçìÝñùóç ôùí áñ÷åßùí
ðçãáßïõ êþäéêá ôïõ &os;. Ãéá íá ôçí ÷ñçóéìïðïéÞóåôå, èá ðñÝðåé íá
åãêáôáóôÞóåôå Ýíá ðáêÝôï Þ port üðùò ôï
net/cvsup (áí äåí èÝëåôå íá
åãêáôáóôÞóåôå ãñáöéêü ðñüãñáììá cvsup, ìðïñåßôå
íá åãêáôáóôÞóåôå ôï port net/cvsup-without-gui).
Ìðïñåßôå íá áíôéêáôáóôÞóåôå áõôÞ ôçí åíôïëÞ ìå ôçí &man.csup.1;
ç ïðïßá áíÞêåé óôï âáóéêü óýóôçìá.TomRhodesÃñÜöçêå áðü ôïí ColinPercivalÂáóßóôçêå óå óçìåéþóåéò ðïõ ðáñåß÷å ï Åíçìåñþíïíôáò ôï &os;Updating and Upgrading FreeBSDfreebsd-updateupdating-upgradingÇ åöáñìïãÞ åíçìåñþóåùí áóöáëåßáò áðïôåëåß Ýíá óçìáíôéêü ôìÞìá ôçò
óõíôÞñçóçò ëïãéóìéêïý, åéäéêÜ üôáí ðñüêåéôáé ãéá ôï ëåéôïõñãéêü óýóôçìá.
Ãéá ìåãÜëï äéÜóôçìá, ç äéáäéêáóßá áõôÞ äåí Þôáí åýêïëç óôï &os;.
¸ðñåðå íá åöáñìïóôïýí patches óôïí ðçãáßï êþäéêá, íá ãßíåé ìåôáãëþôôéóç
ôïõ áðü ôçí áñ÷Þ, êáé íá åãêáôáóôáèïýí îáíÜ ôá íÝá åêôåëÝóéìá.Áõôü äåí åßíáé ðëÝïí áíáãêáßï, êáèþò ôï &os; äéáèÝôåé ôþñá Ýíá
âïçèçôéêü ðñüãñáììá, ôï freebsd-update. Ôï ðñüãñáììá
ðáñÝ÷åé äýï äéáöïñåôéêÝò ëåéôïõñãßåò. Ç ðñþôç åßíáé ç äõíáôüôçôá
äõáäéêÞò (binary) åíçìÝñùóçò ôïõ âáóéêïý óõóôÞìáôïò ìå ôéò ôåëåõôáßåò
äéïñèþóåéò áóöÜëåéáò êáé ëáèþí, ÷ùñßò íá ÷ñåéÜæåôáé îáíÜ ìåôáãëþôôéóç
êáé åãêáôÜóôáóç. Ç äåýôåñç åßíáé ç äõíáôüôçôá áíáâÜèìéóçò ôïõ
óõóôÞìáôïò óå ìéá íÝá ìéêñÞ Þ ìåãÜëç åðßóçìç Ýêäïóç (release).ÄõáäéêÝò äéïñèþóåéò ëáèþí êáé áóöÜëåéáò, äéáôßèåíôáé ãéá üëåò
ôéò áñ÷éôåêôïíéêÝò êáé åêäüóåéò ðïõ õðïóôçñßæïíôáé áðü ôçí ïìÜäá
áóöÜëåéáò. Ðñéí ðñï÷ùñÞóåôå óôçí áíáâÜèìéóç óå ìéá íÝá Ýêäïóç,
èá ðñÝðåé íá äéáâÜóåôå ôéò ó÷åôéêÝò ìå áõôÞí áíáêïéíþóåéò, êáèþò
ìðïñåß íá ðåñéÝ÷ïõí óçìáíôéêÝò ðëçñïöïñßåò. Ìðïñåßôå íá äåßôå ôéò
áíáêïéíþóåéò åêäüóåùí óôçí ðáñáêÜôù ôïðïèåóßá:
.Áí õðÜñ÷åé êÜðïéï crontab ðïõ ÷ñçóéìïðïéåß ôéò
äõíáôüôçôåò ôïõ freebsd-update, èá ðñÝðåé íá
áðåíåñãïðïéçèåß ðñéí îåêéíÞóåé ç ðáñáêÜôù äéáäéêáóßá. Ìðïñåßôå íá
åãêáôáóôÞóåôå ôçí ôåëåõôáßá Ýêäïóç ôïõ
freebsd-update êáôåâÜæïíôáò ôï óõìðéåóìÝíï ðáêÝôï
áðü ôï ðáñáðÜíù URL êáé åêôåëþíôáò ôéò ðáñáêÜôù
åíôïëÝò:&prompt.root; gunzip -c freebsd-update-upgrade.tgz | tar xvf -
&prompt.root; mv freebsd-update.sh /usr/sbin/freebsd-update
&prompt.root; mv freebsd-update.conf /etcÄåí áðáéôåßôáé íá êáôåâÜóåôå ôçí ôåëåõôáßá Ýêäïóç, áí ÷ñçóéìïðïéåßôå
êÜðïéá áðü ôéò ôñÝ÷ïõóåò åêäüóåéò ôïõ &os;.Ôï Áñ÷åßï ÑõèìßóåùíÊÜðïéïé ÷ñÞóôåò ßóùò èÝëïõí íá áëëÜîïõí ôï ðñïåðéëåãìÝíï áñ÷åßï
ñõèìßóåùí /etc/freebsd-update.conf, þóôå
íá Ý÷ïõí êáëýôåñï Ýëåã÷ï ôçò äéáäéêáóßáò. Ïé åðéëïãÝò åßíáé ãåíéêÜ
áñêåôÜ êáëÜ ôåêìçñéùìÝíåò, áëëÜ ïé ðáñáêÜôù ßóùò íá ÷ñåéÜæïíôáé
êÜðïéåò åðéðëÝïí åðåîçãÞóåéò:# Components of the base system which should be kept updated.
Components src world kernelÁõôÞ ç ðáñÜìåôñïò åëÝã÷åé ðïéá ôìÞìáôá ôïõ &os; èá äéáôçñïýíôáé
åíçìåñùìÝíá. Ç ðñïåðéëïãÞ åßíáé íá åíçìåñþíåôáé ï ðçãáßïò êþäéêáò,
üëï ôï âáóéêü óýóôçìá, êáé ï ðõñÞíáò. Ôá ôìÞìáôá åßíáé ôá ßäéá
ðïõ äéáôßèåíôáé êáé êáôÜ ôçí åãêáôÜóôáóç, ãéá ðáñÜäåéãìá áí âÜëåôå
ôçí åðéëïãÞ world/games èá åãêáèßóôáíôáé åíçìåñþóåéò
ãéá ôá ðáé÷íßäéá. Áí âÜëåôå src/bin èá åðéôñÝøåôå
ôçí åíçìÝñùóç ôïõ ðçãáßïõ êþäéêá ôïõ êáôáëüãïõ
src/bin.Ç êáëýôåñç åðéëïãÞ åßíáé íá áöÞóåôå åäþ ôçí ðñïåðéëåãìÝíç ôéìÞ,
êáèþò áí ôçí áëëÜîåôå þóôå íá ðåñéÝ÷åé óõãêåêñéìÝíá ìüíï ôìÞìáôá,
èá áíáãêáóôåßôå íá áíáöÝñåôå ÷ùñéóôÜ ìÝóá óôï áñ÷åßï ñõèìßóåùí êÜèå
ôìÞìá ðïõ èÝëåôå íá åíçìåñþíåôáé. Áõôü ßóùò Ý÷åé êáôáóôñïöéêÜ
áðïôåëÝóìáôá, êáèþò åßíáé ðéèáíü ï ðçãáßïò êþäéêáò êáé ôá åêôåëÝóéìá
ðñïãñÜììáôá íá ìçí åßíáé ðëÝïí óå óõã÷ñïíéóìü ìåôáîý ôïõò.# Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePathsÐñïóèÝóôå äéáäñïìÝò óå êáôáëüãïõò, üðùò
/bin Þ
/sbin ãéá íá áöÞóåôå
áðåßñá÷ôïõò ôïõò óõãêåêñéìÝíïõò êáôáëüãïõò êáôÜ ôçí äéáäéêáóßá
åíçìÝñùóçò. Ç åðéëïãÞ áõôÞ ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá íá áðïôñÝøåé
ôï freebsd-update íá ãñÜøåé ðÜíù óå ðéèáíüí
äéêÝò óáò ôïðéêÝò áëëáãÝò.# Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profileÇ åðéëïãÞ áõôÞ èá åíçìåñþóåé ôá áñ÷åßá ñõèìßóåùí óôïõò êáôáëüãïõò
ðïõ êáèïñßæïíôáé, ìüíï áí áõôÜ äåí Ý÷ïõí ìåôáâëçèåß áðü ôï ÷ñÞóôç.
Áí õðÜñ÷ïõí ôïðéêÝò áëëáãÝò, äåí èá ãßíåé åíçìÝñùóç. ÕðÜñ÷åé ìéá
áêüìá åðéëïãÞ, ç KeepModifiedMetadata, ç ïðïßá
ïäçãåß ôï freebsd-update íá áðïèçêåýóåé ôéò áëëáãÝò
ìåôáîý ôùí äýï åêäüóåùí êáôÜ ôç äéÜñêåéá ôçò óõã÷þíåõóçò
(merge).# When upgrading to a new &os; release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /var/named/etc/Ðñüêåéôáé ãéá ôç ëßóôá ôùí êáôáëüãùí ðïõ ðåñéÝ÷ïõí áñ÷åßá
ñõèìßóåùí, êáé óôá ïðïßá ôï freebsd-update èá
åðé÷åéñåß ôçí äéáäéêáóßá óõã÷þíåõóçò áëëáãþí. Ç äéáäéêáóßá
óõã÷þíåõóçò ãßíåôáé ìå ìéá óåéñÜ áðü patches ôýðïõ &man.diff.1;
ðáñüìïéá ìå ôï &man.mergemaster.8; áëëÜ ìå ëéãüôåñåò åðéëïãÝò. Ïé
óõã÷ùíåýóåéò åßôå ãßíïíôáé äåêôÝò, åßôå ðñïêáëïýí ôï Üíïéãìá êÜðïéïõ
óõíôÜêôç êåéìÝíïõ, äéáöïñåôéêÜ ç åêôÝëåóç ôïõ
freebsd-update áêõñþíåôáé. Áí äåí åßóôå
óßãïõñïò, êñáôÞóôå áíôßãñáöï áóöáëåßáò ôïõ êáôáëüãïõ
/etc êáé áðëþò äå÷èåßôå ôéò
áëëáãÝò. Äåßôå ôï ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí åíôïëÞ
mergemaster.# Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-updateÓôïí êáôÜëïãï áõôü öõëÜóóïíôáé üëá ôá patches êáé ôá ðñïóùñéíÜ
áñ÷åßá. Óå ðåñéðôþóåéò üðïõ ï ÷ñÞóôçò åêôåëåß áíáâÜèìéóç óå ìéá
íåüôåñç Ýêäïóç ôïõ &os;, èá ðñÝðåé íá äéáèÝôåé ôïõëÜ÷éóôïí Ýíá
gigabyte åëåýèåñïõ ÷þñïõ.# When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents noÁí èÝóåôå ôçí ðáñáðÜíù åðéëïãÞ óôï yes,
ôï freebsd-update èá õðïèÝóåé üôé ç ëßóôá
Components åßíáé ðëÞñçò êáé äåí èá åðé÷åéñÞóåé
íá ðñï÷ùñÞóåé óå áëëáãÝò åêôüò ëßóôáò. ÏõóéáóôéêÜ, ôï
freebsd-update èá ðñïóðáèÞóåé íá åíçìåñþóåé êÜèå
áñ÷åßï ðïõ áíÞêåé óôç ëßóôá Components.Patches Ó÷åôéêÜ ìå ôçí ÁóöÜëåéáÔá patches ðïõ ó÷åôßæïíôáé ìå ôçí áóöÜëåéá, áðïèçêåýïíôáé óå
Ýíá áðïìáêñõóìÝíï ìç÷Üíçìá êáé ìðïñïýí íá ìåôáöïñôùèïýí êáé íá
åãêáôáóôáèïýí ìå ôçí áêüëïõèç åíôïëÞ:&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update installÁí ìå ôçí ðáñáðÜíù åíôïëÞ åãêáôáóôáèïýí åíçìåñþóåéò óôïí ðõñÞíá,
èá ÷ñåéáóôåß íá åðáíåêêéíÞóåôå ôï óýóôçìá. Áí üëá ðÜíå êáëÜ, ôï
óýóôçìá èá åßíáé ðëÝïí åíçìåñùìÝíï êáé ìðïñåßôå íá åêôåëåßôå ôï
freebsd-update áõôüìáôá ìå ôçí âïÞèåéá ôïõ
&man.cron.8;. Ìéá áðëÞ êáôá÷þñéóç óôï áñ÷åßï
/etc/crontab åßíáé åðáñêÞò ãéá áõôü
ôï óêïðü:@daily root freebsd-update cronÇ ðáñáðÜíù êáôá÷þñéóç ïñßæåé üôé ôï
freebsd-update èá åêôåëåßôáé ìéá öïñÜ ôçí çìÝñá.
Ìå ôïí ôñüðï áõôü, êáé üôáí ç åêôÝëåóç åßíáé ìÝóù ôçò åðéëïãÞò
, ôï freebsd-update áðëþò
èá åëÝã÷åé ãéá åíçìåñþóåéò. Áí õðÜñ÷ïõí, ç åöáñìïãÞ èá ôéò
êáôåâÜæåé, áëëÜ äåí èá ôéò åãêáèéóôÜ. Èá óôÝëíåé üìùò Ýíá email
óôï ÷ñÞóôç root þóôå íá ôéò åãêáôáóôÞóåé
÷åéñïêßíçôá.Áí ïôéäÞðïôå ðÜåé óôñáâÜ, ôï freebsd-update
Ý÷åé ôçí éêáíüôçôá íá åðéóôñÝöåé óôçí ðñïçãïýìåíç óôáèåñÞ êáôÜóôáóç,
áíáéñþíôáò ôï ôåëåõôáßï óåô áëëáãþí ìå ôçí áêüëïõèç åíôïëÞ:&prompt.root; freebsd-update rollbackÌå ôçí ïëïêëÞñùóç ôçò åíôïëÞò, èá ðñÝðåé íá åðáíåêêéíÞóåôå ôï
óýóôçìá áí Ý÷ïõí ãßíåé áëëáãÝò óôïí ðõñÞíá Þ óå êÜðïéï áðü ôá
áñèñþìáôá ôïõ. Áõôü èá åðéôñÝøåé óôï &os; íá öïñôþóåé ôá íÝá
åêôåëÝóéìá óôç ìíÞìç.Ôï âïçèçôéêü ðñüãñáììá freebsd-update ìðïñåß
íá åíçìåñþóåé áõôüìáôá ìüíï ôïí ðõñÞíá GENERIC.
Áí ÷ñçóéìïðïéåßôáé ðñïóáñìïóìÝíïò ðõñÞíáò, èá ðñÝðåé íá
ìåôáãëùôôéóôåß îáíÜ, üôáí ôï freebsd-update
ôåëåéþóåé ìå ôçí åãêáôÜóôáóç ôùí õðüëïéðùí åíçìåñþóåùí. Ùóôüóï, ôï
freebsd-update èá áíé÷íåýóåé êáé èá åíçìåñþóåé
ôïí ðõñÞíá GENERIC óôï /boot/GENERIC (áí õðÜñ÷åé), áêüìá
êáé áí äåí åßíáé ï åíåñãüò ðõñÞíáò ôïõ óõóôÞìáôïò (áõôüò ðïõ
åêôåëåßôáé ôç óõãêåêñéìÝíç óôéãìÞ).Åßíáé ãåíéêÜ êáëÞ éäÝá íá Ý÷åôå ðÜíôá Ýíá áíôßãñáöï ôïõ
ðõñÞíá GENERIC óôïí êáôÜëïãï /boot/GENERIC. Èá óáò âïçèÞóåé óôçí
äéÜãíùóç äéÜöïñùí ðñïâëçìÜôùí, êáèþò êáé óôçí áíáâÜèìéóç óå åðüìåíåò
åêäüóåéò ôïõ &os;, ìÝóù ôïõ freebsd-update.
Ç äéáäéêáóßá áõôÞ ðåñéãñÜöåôáé óôï
.Áí äåí Ý÷ïõí ãßíåé áëëáãÝò óôéò ðñïåðéëåãìÝíåò ñõèìßóåéò óôï
áñ÷åßï /etc/freebsd-update.conf, ôï
freebsd-update èá åãêáôáóôÞóåé ôá áíáíåùìÝíá áñ÷åßá
ðçãáßïõ êþäéêá ìáæß ìå ôéò õðüëïéðåò åíçìåñþóåéò. Ìðïñåßôå Ýðåéôá íá
ðñï÷ùñÞóåôå óôç ìåôáãëþôôéóç êáé åãêáôÜóôáóç íÝïõ ðñïóáñìïóìÝíïõ
ðõñÞíá, ìå ôï óõíÞèç ôñüðï.Ïé åíçìåñþóåéò ðïõ äéáíÝìïíôáé ìÝóù ôïõ
freebsd-update äåí ðåñéëáìâÜíïõí ðÜíôïôå áëëáãÝò
óôïí ðõñÞíá. Äåí åßíáé áðáñáßôçôï íá åðáíáìåôáãëùôôßóåôå ôïí
ðñïóáñìïóìÝíï ðõñÞíá óáò, áí ç åêôÝëåóç ôïõ
freebsd-update install äåí åðÝöåñå áëëáãÝò óôá
áñ÷åßá ðçãáßïõ êþäéêá ôïõ ðõñÞíá. Ùóôüóï, ôï
freebsd-update åíçìåñþíåé ðÜíôïôå ôï áñ÷åßï
/usr/src/sys/conf/newvers.sh. Ôï áñ÷åßï áõôü
ðåñéÝ÷åé ôï ôñÝ÷ïí åðßðåäï åíçìåñþóåùí (patch level) ôï ïðïßï êáé
áíáöÝñåôáé ùò áñéèìüò -p áðü åíôïëÝò üðùò ç
uname -r. Ìåôáãëùôôßæïíôáò îáíÜ ôïí
ðñïóáñìïóìÝíï ðõñÞíá óáò (áêüìá êáé áí äåí õðÜñ÷ïõí Üëëåò áëëáãÝò)
èá äþóåôå ôç äõíáôüôçôá óôçí &man.uname.1; íá áíáöÝñåé ìå áêñßâåéá
ôï åðßðåäï åíçìåñþóåùí. Áõôü ìðïñåß íá åßíáé éäéáßôåñá ÷ñÞóéìï
üôáí óõíôçñåßôå ðïëëáðëÜ óõóôÞìáôá, êáèþò óáò åðéôñÝðåé íá
áîéïëïãÞóåôå ìå ìéá ìáôéÜ ôé åíçìåñþóåéò Ý÷ïõí åãêáôáóôáèåß óôï
êáèÝíá.Áíáâáèìßóåéò óå ÌéêñÝò êáé ÌåãÜëåò ÅêäüóåéòÇ äéáäéêáóßá áõôÞ èá áðïìáêñýíåé ôá ðáëéÜ áñ÷åßá áíôéêåéìåíéêïý
êþäéêá (object files) êáèþò êáé ôéò ðáëéÝò âéâëéïèÞêåò, êÜíïíôáò
ôéò ðåñéóóüôåñåò åöáñìïãÝò ôñßôùí êáôáóêåõáóôþí íá ìç ëåéôïõñãïýí.
Óáò óõíéóôïýìå åßôå íá áðåãêáôáóôÞóåôå üëá ôá åãêáôåóôçìÝíá ports êáé
íá ôá åãêáôáóôÞóåôå îáíÜ, Þ íá ôá áíáâáèìßóåôå áñãüôåñá,
÷ñçóéìïðïéþíôáò ôï âïçèçôéêü ðñüãñáììá
ports-mgmt/portupgrade.
Ïé ðåñéóóüôåñïé ÷ñÞóôåò èá èÝëïõí íá êÜíïõí ìéá äïêéìáóôéêÞ
ìåôáãëþôôéóç ÷ñçóéìïðïéþíôáò ôçí áêüëïõèç åíôïëÞ:&prompt.root; portupgrade -afÌå áõôü ôïí ôñüðï åîáóöáëßæåôáé üôé ôá ðÜíôá èá åðáíåãêáôáóôáèïýí
óùóôÜ. Óçìåéþóôå üôé áí èÝóåôå ôçí ìåôáâëçôÞ ðåñéâÜëëïíôïò
BATCH óôçí ôéìÞ yes, üëåò ïé
ðéèáíÝò åñùôÞóåéò ðïõ èá åìöáíéóôïýí êáôÜ ôç äéáäéêáóßá, èá
áðáíôçèïýí áõôüìáôá ìå yes. ¸ôóé äåí õðÜñ÷åé ðëÝïí
áíÜãêç ãéá ðáñÝìâáóç ôïõ ÷ñÞóôç êáôÜ ôç äéÜñêåéá ôçò äéáäéêáóßáò
ìåôáãëþôôéóçò.Áí ÷ñçóéìïðïéåßôáé ðñïóáñìïóìÝíïò ðõñÞíáò, ç äéáäéêáóßá
áíáâÜèìéóçò åßíáé åëáöñÜ ðéï ðïëýðëïêç. Èá ÷ñåéáóôåßôå Ýíá áíôßãñáöï
ôïõ ðõñÞíá GENERIC óôïí êáôÜëïãï /boot/GENERIC. Áí äåí õðÜñ÷åé Þäç ï
ðõñÞíáò GENERIC óôï óýóôçìá óáò, ìðïñåßôå íá ôïí
áíáêôÞóåôå ÷ñçóéìïðïéþíôáò ìéá áðü ôéò ðáñáêÜôù ìåèüäïõò:Áí Ý÷åôå ìåôáãëùôôßóåé ðñïóáñìïóìÝíï ðõñÞíá ìüíï ìéá öïñÜ, ï
ðõñÞíáò óôïí êáôÜëïãï /boot/kernel.old åßíáé óôçí
ðñáãìáôéêüôçôá ï GENERIC. Áðëþò ìåôïíïìÜóôå
ôïí êáôÜëïãï óå /boot/GENERIC.Áí Ý÷åôå öõóéêÞ ðñüóâáóç óôï ìç÷Üíçìá, ìðïñåßôå íá
åãêáôáóôÞóåôå Ýíá áíôßãñáöï ôïõ ðõñÞíá GENERIC
áðü ôï CD-ROM ôçò åãêáôÜóôáóçò. ÔïðïèåôÞóôå ôï CD-ROM óôïí ïäçãü
êáé ÷ñçóéìïðïéÞóôå ôéò ðáñáêÜôù åíôïëÝò:&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERICÁíôéêáôáóôÞóôå ôï X.Y-RELEASE
ìå ôïõò ðñáãìáôéêïýò áñéèìïýò ôçò Ýêäïóçò ðïõ ÷ñçóéìïðïéåßôå.
Ï ðõñÞíáò GENERIC èá åãêáôáóôáèåß áðü
ðñïåðéëïãÞ óôïí êáôÜëïãï /boot/GENERIC.Áí äåí Ý÷åôå êÜðïéá áðü ôéò ðáñáðÜíù åðéëïãÝò, ìðïñåßôå íá
ìåôáãëùôôßóåôå êáé íá åãêáôáóôÞóåôå ôïí ðõñÞíá
GENERIC ìÝóù ôïõ ðçãáßïõ êþäéêá:&prompt.root; cd /usr/src/
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/bootÃéá íá áíáãíùñéóôåß áõôüò ï ðõñÞíáò ùò
GENERIC áðü ôï
freebsd-update, äåí èá ðñÝðåé íá Ý÷ïõí ãßíåé
áëëáãÝò óôï áñ÷åßï ñõèìßóåùí ôïõ GENERIC.
Óõíßóôáôáé åðßóçò ç ìåôáãëþôôéóç íá ãßíåé ÷ùñßò Üëëåò
åîåéäéêåõìÝíåò ñõèìßóåéò (êáôÜ ðñïôßìçóç ìå êåíü ôï
/etc/make.conf).Äåí ÷ñåéÜæåôáé ôç äåäïìÝíç óôéãìÞ íá åðáíåêêéíÞóåôå ìå ôïí ðõñÞíá
GENERIC.Åßíáé äõíáôÝò ïé áíáâáèìßóåéò ôüóï óå ìéêñÝò üóï êáé óå ìåãÜëåò
åêäüóåéò, äßíïíôáò óôçí åíôïëÞ freebsd-update ôïí
åðéèõìçôü áñéèìü Ýêäïóçò. Ãéá ðáñÜäåéãìá, ç áêüëïõèç åíôïëÞ èá
áíáâáèìßóåé ôï óýóôçìá óå &os; 8.1:&prompt.root; freebsd-update -r 8.1-RELEASE upgradeÌåôÜ ôç ëÞøç ôçò åíôïëÞò, ôï
freebsd-update èá áîéïëïãÞóåé ôçí êáôÜóôáóç ôïõ
óõóôÞìáôïò êáé ôïõ áñ÷åßïõ ñõèìßóåùí ôïõ, óå ìéá áðüðåéñá íá ìáæÝøåé
ôéò áðáñáßôçôåò ðëçñïöïñßåò ãéá ôçí áíáâÜèìéóç ôïõ óõóôÞìáôïò.
Ïé ðëçñïöïñßåò ðïõ áíé÷íåýèçêáí èá åìöáíéóôïýí óôçí ïèüíç ìå ôç ìïñöÞ
ìéáò ëßóôáò åãêáôåóôçìÝíùí ðñïãñáììÜôùí. Ãéá ðáñÜäåéãìá:Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? yÓôï óçìåßï áõôü, ôï freebsd-update èá
êáôåâÜóåé üëá ôá áñ÷åßá ðïõ áðáéôïýíôáé ãéá ôçí áíáâÜèìéóç. Óå
ìåñéêÝò ðåñéðôþóåéò, ï ÷ñÞóôçò èá êëçèåß íá áðáíôÞóåé óå åñùôÞóåéò
ó÷åôéêÜ ìå ôï ôé èá åãêáôáóôáèåß Þ ðùò ðñÝðåé íá ðñï÷ùñÞóåé ç
äéáäéêáóßá.¼ôáí ÷ñçóéìïðïéåßôáé ðñïóáñìïóìÝíïò ðõñÞíáò, ôï ðáñáðÜíù âÞìá
èá ðñïêáëÝóåé ôçí åìöÜíéóç ôçò ðáñáêÜôù ðñïåéäïðïßçóçò:WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"Ìðïñåßôå íá áãíïÞóåôå áõôÞ ôçí ðñïåéäïðïßçóç. Èá ÷ñçóéìïðïéÞóïõìå
ôïí åíçìåñùìÝíï ðõñÞíá GENERIC ùò åíäéÜìåóï âÞìá
óôç äéáäéêáóßá áíáâÜèìéóçò.Áöïý ìåôáöïñôùèïýí üëá ôá patches óôï ôïðéêü óýóôçìá, èá ãßíåé
êáé ç åöáñìïãÞ ôïõò. Ç äéáäéêáóßá áõôÞ ßóùò ðÜñåé ëßãï ÷ñüíï,
áíÜëïãá ìå ôçí ôá÷ýôçôá êáé ôï öïñôßï ôïõ ìç÷áíÞìáôïò. ¸ðåéôá èá
ãßíåé ç óõã÷þíåõóç ôùí áñ÷åßùí ñõèìßóåùí. Áõôü ôï ìÝñïò ôçò
äéáäéêáóßáò áðáéôåß ðáñÝìâáóç ôïõ ÷ñÞóôç, êáèþò óå êÜðïéá áñ÷åßá èá
÷ñåéáóôåß ç óõã÷þíåõóç íá ãßíåé ÷åéñïêßíçôá ìå ôç âïÞèåéá êÜðïéïõ
óõíôÜêôç êåéìÝíïõ. Ï ÷ñÞóôçò èá åíçìåñþíåôáé ãéá ôï áðïôÝëåóìá êÜèå
åðéôõ÷çìÝíçò óõã÷þíåõóçò êáèþò åîåëßóóåôáé ç äéáäéêáóßá. Óå
ðåñßðôùóç áðïôõ÷çìÝíçò óõã÷þíåõóçò (Þ áãíüçóçò ôçò), ç äéáäéêáóßá
áíáâÜèìéóçò èá äéáêïðåß. Åíäå÷ïìÝíùò íá èÝëåôå íá êñáôÞóåôå áíôßãñáöï
áóöáëåßáò ôïõ êáôáëüãïõ /etc
êáé íá óõã÷ùíåýóåôå áñãüôåñá (÷åéñïêßíçôá) êÜðïéá óçìáíôéêÜ áñ÷åßá,
üðùò ôï master.passwd Þ ôï
group.Óôï óçìåßï áõôü äåí Ý÷åé ãßíåé áêüìá êáìéÜ áëëáãÞ óôï óýóôçìá,
êáèþò üëç ç äéáäéêáóßá ôçò áíáâÜèìéóçò êáé óõã÷þíåõóçò ãßíåôáé óå
äéáöïñåôéêü êáôÜëïãï. ¼ôáí åöáñìïóôïýí åðéôõ÷þò üëá ôá patches
êáé ïëïêëçñùèåß ìå åðéôõ÷ßá ç äéáäéêáóßá ôçò óõã÷þíåõóçò üëùí ôùí
áñ÷åßùí ñýèìéóçò, ï ÷ñÞóôçò èá ðñÝðåé íá åðéâåâáéþóåé ôçí ôåëéêÞ
åãêáôÜóôáóç.Ìå ôï ôÝëïò áõôÞò ôç äéáäéêáóßáò, ç áíáâÜèìéóç ìðïñåß íá
ïñéóôéêïðïéçèåß óôï äßóêï, ìå ôç ÷ñÞóç ôçò áêüëïõèçò åíôïëÞò:&prompt.root; freebsd-update installÓôçí ðñþôç öÜóç, èá áëëá÷èåß ï ðõñÞíáò êáé ôá ó÷åôéêÜ áñèñþìáôá.
Óôï óçìåßï áõôü, èá ðñÝðåé íá ãßíåé åðáíåêêßíçóç ôïõ ìç÷áíÞìáôïò.
Óå ìç÷Üíçìá ìå ðñïóáñìïóìÝíï ðõñÞíá, ÷ñçóéìïðïéÞóôå ôçí åíôïëÞ
&man.nextboot.8; þóôå íá èÝóåôå ôïí ðõñÞíá ãéá ôçí åðüìåíç åêêßíçóç
óôïí /boot/GENERIC (ï ïðïßïò
Ý÷åé Þäç áíáâáèìéóôåß):&prompt.root; nextboot -k GENERICÐñéí åðáíåêêéíÞóåôå ìå ôïí ðõñÞíá GENERIC,
âåâáéùèåßôå üôé ðåñéÝ÷åé üëá ôá ðñïãñÜììáôá ïäÞãçóçò ðïõ áðáéôïýíôáé
ãéá ôçí åðéôõ÷Þ åêêßíçóç ôïõ óõóôÞìáôïò óáò (êáé ôç ëåéôïõñãßá ôïõ
äéêôýïõ, áí áíáâáèìßæåôå êÜðïéï áðïìáêñõóìÝíï ìç÷Üíçìá).
Åéäéêüôåñá, áí ï ðñïçãïýìåíïò ðñïóáñìïóìÝíïò ðõñÞíáò ðåñéåß÷å
ëåéôïõñãßåò ðïõ óõíÞèùò ðáñÝ÷ïíôáé áðü áñèñþìáôá (modules),
âåâáéùèåßôå üôé öñïíôßóáôå íá öïñôùèïýí ðñïóùñéíÜ óôïí ðõñÞíá
GENERIC ÷ñçóéìïðïéþíôáò ôéò äõíáôüôçôåò ôïõ
áñ÷åßïõ /boot/loader.conf. ºóùò åðßóçò íá
èÝëåôå íá áðåíåñãïðïéÞóåôå õðçñåóßåò, ðñïóáñôÞóåéò äßóêùí êáé
äéêôýïõ ê.ë.ð. ðïõ äåí åßíáé áðáñáßôçôåò, ìÝ÷ñé ôçí ïëïêëÞñùóç ôçò
äéáäéêáóßáò áíáâÜèìéóçò.Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí áêüëïõèç åíôïëÞ ãéá íá
åðáíåêêéíÞóåôå ôï ìç÷Üíçìá ìå ôïí íÝï ðõñÞíá:&prompt.root; shutdown -r nowÌüëéò ôï óýóôçìá åðáíÝëèåé óå ëåéôïõñãßá, èá ðñÝðåé íá åêôåëÝóåôå
îáíÜ ôï freebsd-update. Ç ðñïçãïýìåíç ëåéôïõñãßá
Ý÷åé áðïèçêåõèåß, êáé Ýôóé ôï freebsd-update äåí èá
îåêéíÞóåé áðü ôçí áñ÷Þ, áëëÜ èá áðïìáêñýíåé üëåò ôéò ðáëéÝò
êïéíü÷ñçóôåò âéâëéïèÞêåò êáé ôá áñ÷åßá áíôéêåéìåíéêïý êþäéêá. Ãéá íá
óõíå÷ßóåôå óå áõôü ôï óôÜäéï, äþóôå ôçí áêüëïõèç åíôïëÞ:&prompt.root; freebsd-update installÁíÜëïãá ìå ôï áí õðÞñîáí áëëáãÝò óôïõò áñéèìïýò åêäüóåùí ôùí
âéâëéïèçêþí, ßóùò íá õðÜñ÷ïõí ìüíï äýï öÜóåéò åãêáôÜóôáóçò áíôß ãéá
ôñåéò.¼ëï ôï ëïãéóìéêü ôñßôïõ êáôáóêåõáóôÞ èá ðñÝðåé ôþñá íá
ìåôáãëùôôéóôåß êáé íá åðáíåãêáôáóôáèåß áðü ôçí áñ÷Þ. Áõôü áðáéôåßôáé
êáèþò ôï åãêáôåóôçìÝíï ëïãéóìéêü ßóùò åîáñôÜôáé áðü âéâëéïèÞêåò ïé
ïðïßåò áöáéñÝèçêáí êáôÜ ôç äéáäéêáóßá ôçò áíáâÜèìéóçò. Ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ
ports-mgmt/portupgrade
ãéá íá áõôïìáôïðïéÞóåôå áõôÞ ôç äéáäéêáóßá. Ãéá íá îåêéíÞóåôå, äþóôå
ôéò ðáñáêÜôù åíôïëÝò:&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -afÌüëéò ïëïêëçñùèåß ôï ðáñáðÜíù, ïëïêëçñþóôå ôç äéáäéêáóßá
áíáâÜèìéóçò ìå ìéá ôåëåõôáßá êëÞóç ôçò åíôïëÞò
freebsd-update. Äþóôå ôçí ðáñáêÜôù åíôïëÞ ãéá íá
ïëïêëçñþóåôå ïôéäÞðïôå Ý÷åé áðïìåßíåé óôç äéáäéêáóßá
áíáâÜèìéóçò:&prompt.root; freebsd-update installÁí ÷ñçóéìïðïéïýóáôå ðñïóùñéíÜ ôïí ðõñÞíá
GENERIC, áõôÞ åßíáé ç êáôÜëëçëç óôéãìÞ ãéá íá
ìåôáãëùôôßóåôå êáé íá åãêáôáóôÞóåôå íÝï ðñïóáñìïóìÝíï ðõñÞíá, ìå ôï
óõíÞèç ôñüðï.ÅðáíåêêéíÞóôå ôï ìç÷Üíçìá óáò óôçí íÝá Ýêäïóç ôïõ &os;.
Ç äéáäéêáóßá Ý÷åé ïëïêëçñùèåß.Óýãêñéóç ÊáôÜóôáóçò ôïõ ÓõóôÞìáôïòÔï âïçèçôéêü ðñüãñáììá freebsd-update ìðïñåß íá
÷ñçóéìïðïéçèåß ãéá íá åëÝãîåôå ôçí êáôÜóôáóç ôçò åãêáôåóôçìÝíçò
Ýêäïóçò ôïõ &os; óå ó÷Ýóç ìå ìéá ãíùóôÞ êáé óùóôÞ åãêáôÜóôáóç.
Ç åðéëïãÞ áõôÞ óõãêñßíåé êáé áîéïëïãåß ôçí ôñÝ÷ïõóá Ýêäïóç ôùí
ðñïãñáììÜôùí óõóôÞìáôïò, ôùí âéâëéïèçêþí êáé ôùí áñ÷åßùí ñýèìéóçò.
Ãéá íá îåêéíÞóåôå ôç óýãêñéóç, äþóôå ôçí áêüëïõèç åíôïëÞ:&prompt.root; freebsd-update IDS >> outfile.idsÁí êáé ôï üíïìá ôçò åíôïëÞò åßíáé IDS, äåí
èá ðñÝðåé óå êáìéÜ ðåñßðôùóç íá èåùñçèåß õðïêáôÜóôáôï åíüò
óõóôÞìáôïò áíß÷íåõóçò åéóâïëÝá (intrusion detection system) üðùò
åßíáé ãéá ðáñÜäåéãìá ôï
security/snort.
Êáèþò ôï freebsd-update áðïèçêåýåé ôá äåäïìÝíá
ôïõ óôï äßóêï, õðÜñ÷åé ðÜíôá ç ðéèáíüôçôá íá Ý÷åé ãßíåé áëëïßùóç
ôïõò. Áí êáé ç ðéèáíüôçôá áõôÞ ìðïñåß íá ìåéùèåß ÷ñçóéìïðïéþíôáò
ôç ñýèìéóç kern.securelevel êáé áðïèçêåýïíôáò
ôá äåäïìÝíá ôçò åíôïëÞò freebsd-update óå Ýíá
óýóôçìá áñ÷åßùí ìüíï ãéá áíÜãíùóç, ìéá áêüìá êáëýôåñç ëýóç èá Þôáí
íá óõãêñßíåôå ôï óýóôçìá ìå êÜðïéï äßóêï ðïõ èåùñåßôå óßãïõñá
áóöáëÞ. Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå Ýíá äßóêï
DVD Þ Ýíá åîùôåñéêü äßóêï USB
ðïõ öõëÜóóåôå óå áóöáëÞ ôïðïèåóßá.Èá ãßíåé ôþñá ìéá åðéèåþñçóç ôïõ óõóôÞìáôïò êáé èá åêôõðùèåß
ìéá ëßóôá áðü áñ÷åßá êáé ôéìÝò hash ôïõ ôýðïõ &man.sha256.1;,
ôüóï ãéá ôï åãêáôåóôçìÝíï üóï êáé ãéá ôï ãíùóôü óýóôçìá. ÅðåéäÞ
ðñüêåéôáé ãéá ìåãÜëç ëßóôá, ôçí áíáêáôåõèýíïõìå óôï áñ÷åßï
outfile.ids. Óôçí ïèüíç ôï êåßìåíï èá êõëïýóå
ðïëý ãñÞãïñá, êáé óýíôïìá èá ãÝìéæå ôçí ðñïóùñéíÞ ìíÞìç áðåéêüíéóçò
ôçò êïíóüëáò.Ïé ãñáììÝò áõôÝò Ý÷ïõí ãåíéêÜ ìåãÜëï ìÞêïò, áëëÜ åßíáé åýêïëï
íá åðåîåñãáóôïýìå ôçí Ýîïäï. Ãéá ðáñÜäåéãìá, ãéá íá äåßôå ìéá ëßóôá
üëùí ôùí áñ÷åßùí ðïõ äéáöÝñïõí áðü áõôÜ ôçò åðßóçìçò Ýêäïóçò, äþóôå
ôçí áêüëïõèç åíôïëÞ:&prompt.root; cat outfile.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.confÔá ðáñáðÜíù åßíáé ìüíï Ýíá ìÝñïò ôçò åîüäïõ, õðÜñ÷ïõí áêüìá
ðïëëÜ äéáöïñåôéêÜ áñ÷åßá. ÊÜðïéá áðü áõôÜ ôá áñ÷åßá åßíáé öõóéïëïãéêü
íá Ý÷ïõí ôñïðïðïéçèåß. Ãéá ðáñÜäåéãìá, ôï
/etc/passwd Ý÷åé ôñïðïðïéçèåß, êáèþò Ý÷ïõí
ðñïóôåèåß ÷ñÞóôåò óôï óýóôçìá. Óå ìåñéêÝò ðåñéðôþóåéò, ìðïñåß íá
õðÜñ÷ïõí êáé Üëëá áñ÷åßá, üðùò ð.÷. áñèñþìáôá ðõñÞíá ôá ïðïßá
äéáöÝñïõí áöïý Ý÷ïõí åíçìåñùèåß ìÝóù ôçò
freebsd-update. Ãéá íá åîáéñÝóåôå óõãêåêñéìÝíá
áñ÷åßá Þ êáôáëüãïõò, ðñïóèÝóôå ôá óôçí åðéëïãÞ
IDSIgnorePaths óôï áñ÷åßï ñõèìßóåùí
/etc/freebsd-update.conf.Åêôüò áðü ôçí ÷ñÞóç ðïõ áíáöÝñáìå ðñïçãïõìÝíùò, ôï óýóôçìá áõôü
ìðïñåß íá ÷ñçóéìïðïéçèåß êáé ùò ôìÞìá ìéáò ëåðôïìåñïýò äéáäéêáóßáò
áíáâÜèìéóçò.TomRhodesÃñÜöçêå áðü ôïí ColinPercivalÂáóéóìÝíï óå óçìåéþóåéò ðïõ ðáñåß÷å ï Portsnap: ¸íá Åñãáëåßï ÅíçìÝñùóçò ôçò ÓõëëïãÞò ôùí PortsUpdating and UpgradingPortsnapUpdating and UpgradingÔï âáóéêü óýóôçìá ôïõ &os; ðåñéëáìâÜíåé åðßóçò Ýíá âïçèçôéêü
ðñüãñáììá ãéá ôçí åíçìÝñùóç ôçò ÓõëëïãÞò ôùí Ports. Ðñüêåéôáé ãéá ôï
&man.portsnap.8;. ¼ôáí ôï åêôåëÝóåôå, èá óõíäåèåß óå Ýíá áðïìáêñõóìÝíï
äéáêïìéóôÞ, èá åðáëçèåýóåé ôï êëåéäß ôïõ ðçãáßïõ êþäéêá, êáé èá
êáôåâÜóåé Ýíá íÝï áíôßãñáöï ôçò ÓõëëïãÞò ôùí Ports. Ôï êëåéäß
÷ñçóéìïðïéåßôáé ãéá íá åðáëçèåýóåé ôçí áêåñáéüôçôá üëùí ôùí áñ÷åßùí
ðïõ ìåôáöïñôþíïíôáé, åîáóöáëßæïíôáò üôé äåí Ý÷ïõí áëëïéùèåß êáôÜ
ôçí ìåôáöïñÜ. Ãéá íá êáôåâÜóåôå ôá ôåëåõôáßá áñ÷åßá ôçò ÓõëëïãÞò ôùí
Ports, åêôåëÝóôå ôçí áêüëïõèç åíôïëÞ:&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 9 mirrors found.
Fetching snapshot tag from geodns-1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Tue May 22 02:12:15 CEST 2012 to Wed May 23 16:28:31 CEST 2012.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.Ôï ðáñáðÜíù ðáñÜäåéãìá äåß÷íåé üôé ôï &man.portsnap.8;
âñÞêå êáé åðáëÞèåõóå áñêåôÜ patches ôá ïðïßá ðñÝðåé íá åöáñìïóôïýí
óôï õðÜñ÷ïí äÝíôñï ôùí ports. Áõôü äåß÷íåé åðßóçò üôé ôï ðñüãñáììá
Ý÷åé åêôåëåóôåß êáôÜ ôï ðáñåëèüí. Áí áõôÞ Þôáí ç ðñþôç öïñÜ ðïõ
åêôåëïýíôáí, èá ãßíïíôáí áðëþò êáôÝâáóìá ôçò óõëëïãÞò.¼ôáí ôï &man.portsnap.8; åêôåëÝóåé åðéôõ÷þò ôç ëåéôïõñãßá
fetch, ç ÓõëëïãÞ ôùí Ports êáé ôá
áíôßóôïé÷á patches Ý÷ïõí áðïèçêåõèåß óôï ôïðéêü óýóôçìá êáé Ý÷åé ãßíåé
ç åðáëÞèåõóç ôïõò. Ôçí ðñþôç öïñÜ ðïõ èá åêôåëÝóåôå ôï
portsnap, èá ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôï
extract ãéá íá åãêáôáóôÞóåôå ôá åíçìåñùìÝíá
áñ÷åßá:&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...Áí Ý÷åôå Þäç åãêáôåóôçìÝíç ôçí ÓõëëïãÞ ôùí Ports, ÷ñçóéìïðïéÞóôå
ôçí åíôïëÞ portsnap update ãéá íá ôçí
åíçìÝñùóåôå:&prompt.root; portsnap updateÇ äéáäéêáóßá Ý÷åé ðëÝïí ïëïêëçñùèåß, êáé ìðïñåßôå íá åãêáôáóôÞóåôå
Þ íá áíáâáèìßóåôå åöáñìïãÝò ÷ñçóéìïðïéþíôáò ôçí åíçìåñùìÝíç ÓõëëïãÞ ôùí
Ports.Ìðïñåßôå íá åêôåëÝóåôå ôéò äéáäéêáóßåò fetch êáé
extract Þ update äéáäï÷éêÜ, üðùò
öáßíåôáé óôï ðáñáêÜôù ðáñÜäåéãìá:&prompt.root; portsnap fetch updateÇ ðáñáðÜíù åíôïëÞ èá êáôåâÜóåé ôçí ôåëåõôáßá Ýêäïóç ôçò ÓõëëïãÞò
ôùí Ports êáé èá åíçìåñþóåé ôá ôïðéêÜ áñ÷åßá óáò óôïí êáôÜëïãï
/usr/ports.Åíçìåñþíïíôáò ôçí ÔåêìçñßùóçUpdating and UpgradingDocumentationUpdating and UpgradingÅêôüò áðü ôï âáóéêü óýóôçìá êáé ôçí ÓõëëïãÞ ôùí Ports, ç ôåêìçñßùóç
áðïôåëåß åðßóçò âáóéêü ôìÞìá åíüò óõóôÞìáôïò &os;. Áí êáé ðÜíôá
ìðïñåßôå íá âñåßôå ôçí ðéï ðñüóöáôç ôåêìçñßùóç óôçí äéêôõáêÞ ôïðïèåóßá ôïõ &os;,
ïñéóìÝíïé ÷ñÞóôåò ßóùò Ý÷ïõí áñãÞ Þ ìç óôáèåñÞ óýíäåóç ìå ôï Äéáäßêôõï.
Åõôõ÷þò õðÜñ÷ïõí áñêåôïß ôñüðïé ãéá íá åíçìåñþóåôå ôçí ôåêìçñßùóç ç
ïðïßá ðáñÝ÷åôáé ìå êÜèå åðßóçìç Ýêäïóç, äéáôçñþíôáò ôï äéêü óáò ôïðéêü
áíôßãñáöï ôçò ðéï ðñüóöáôçò ôåêìçñßùóçò ôïõ &os;.×ñçóéìïðïéþíôáò ôï CVSup ãéá ôçí ÅíçìÝñùóç ôçò
ÔåêìçñßùóçòÏ ðçãáßïò êþäéêáò êáé ôï åãêáôåóôçìÝíï áíôßãñáöï ôçò ôåêìçñßùóçò
ôïõ &os;, ìðïñïýí íá åíçìåñùèïýí ìå ôçí âïÞèåéá ôïõ
CVSup, ÷ñçóéìïðïéþíôáò Ýíá ìç÷áíéóìü
ðáñüìïéï ìå áõôüí ðïõ ÷ñçóéìïðïéåßôáé óôï âáóéêü óýóôçìá (äåßôå ôï
). Ç åíüôçôá áõôÞ ðåñéãñÜöåé:Ðùò íá åãêáôáóôÞóåôå ôá åñãáëåßá ðïõ áðáéôïýíôáé ãéá ôçí
ôåêìçñßùóç, ìå ôá ïðïßá ìðïñåßôå íá äçìéïõñãÞóåôå ôçí ôåêìçñßùóç
ôïõ &os; îåêéíþíôáò áðü ôïí ðçãáßï ôçò êþäéêá.Ðùò íá êáôåâÜóåôå Ýíá áíôßãñáöï ôïõ ðçãáßïõ êþäéêá ôçò
ôåêìçñßùóçò óôïí êáôÜëïãï /usr/doc ÷ñçóéìïðïéþíôáò ôï
CVSup.Ðùò íá áíáäçìéïõñãÞóåôå ôçí ôåêìçñßùóç ôïõ &os; áðü ôïí
ðçãáßï ôçò êþäéêá, êáé íá ôçí åãêáôáóôÞóåôå óôïí êáôÜëïãï
/usr/share/doc/.Åãêáèéóôþíôáò ôï CVSup êáé ôç ÓåéñÜ Åñãáëåßùí ôçò
ÔåêìçñßùóçòÇ áíáäçìéïõñãßá ôçò ôåêìçñßùóçò ôïõ &os; áðü ôïí ðçãáßï êþäéêá,
áðáéôåß ìéá ó÷åôéêÜ ìåãÜëç óõëëïãÞ åñãáëåßùí. Ôá åñãáëåßá áõôÜ äåí
åßíáé ìÝñïò ôïõ âáóéêïý óõóôÞìáôïò ôïõ &os;, êáèþò ÷ñåéÜæïíôáé áñêåôü
÷þñï óôï äßóêï êáé äåí åßíáé ÷ñÞóéìá óå üëïõò ôïõò ÷ñÞóôåò.
Åßíáé ÷ñÞóéìá ìüíï óôïõò ÷ñÞóôåò ðïõ áó÷ïëïýíôáé ìå ôç óõããñáöÞ íÝáò
ôåêìçñßùóçò ãéá ôï &os;, Þ ðïõ åíçìåñþíïõí óõ÷íÜ ôçí ôïðéêÞ ôïõò
ôåêìçñßùóç ìÝóù ôïõ ðçãáßïõ êþäéêá.¼ëá ôá áðáéôïýìåíá åñãáëåßá äéáôßèåíôáé ìÝóù ôçò ÓõëëïãÞò ôùí
Ports. Ôï textproc/docproj åßíáé ôï êýñéï port ôï
ïðïßï Ý÷åé áíáðôõ÷èåß áðü ôçí ÏìÜäá Ôåêìçñßùóçò ôïõ &os;, ãéá íá
âïçèÞóåé óôçí áñ÷éêÞ åãêáôÜóôáóç êáé ôéò ìåëëïíôéêÝò áíáâáèìßóåéò
áõôþí ôùí åñãáëåßùí.Áí äåí áðáéôåßôáé ç äçìéïõñãßá ôåêìçñßùóçò óå ìïñöÝò
&postscript; Þ PDF, ìðïñåßôå íá åãêáôáóôÞóåôå ôï port textproc/docproj-nojadetex. ÁõôÞ ç
Ýêäïóç ôùí åñãáëåßùí ðåñéÝ÷åé ôá ðÜíôá åêôüò áðü ôçí ìç÷áíÞ
óôïé÷åéïèåóßáò teTeX.
Ôï teTeX åßíáé ìéá áñêåôÜ ìåãÜëç óõëëïãÞ
åñãáëåßùí, êáé äåí Ý÷åé íüçìá íá ôï åãêáôáóôÞóåôå áí äåí óáò
åßíáé áðáñáßôçôç ç ðáñáãùãÞ ôçò ôåêìçñßùóçò óå ìïñöÞ
PDF.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí åãêáôÜóôáóç êáé ÷ñÞóç
ôïõ CVSup, äåßôå ôçí åíüôçôá ×ñçóéìïðïéþíôáò ôï CVSup.Åíçìåñþíïíôáò ôïí Ðçãáßï Êþäéêá ôçò ÔåêìçñßùóçòÔï âïçèçôéêü ðñüãñáììá CVSup ìðïñåß íá
êáôåâÜóåé Ýíá êáèáñü áíôßãñáöï ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò,
÷ñçóéìïðïéþíôáò ôï
/usr/share/examples/cvsup/doc-supfile
ùò ðñüôõðï áñ÷åßï ñõèìßóåùí. Ï ðñïåðéëåãìÝíïò õðïëïãéóôÞò åíçìåñþóåùí
óôï ðáñáðÜíù áñ÷åßï åßíáé ñõèìéóìÝíïò óå ðëáóìáôéêÞ ôéìÞ. Ùóôüóï,
ç &man.cvsup.1; äÝ÷åôáé üíïìá õðïëïãéóôÞ ìÝóù ôçò ãñáììÞò åíôïëþí,
Ýôóé ìðïñåßôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá ôçò ôåêìçñßùóçò ìÝóù
êÜðïéïõ åîõðçñåôçôÞ CVSup ãñÜöïíôáò:&prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfileÁëëÜîôå ôï cvsup.FreeBSD.org ìå ôïí
êïíôéíüôåñï óáò åîõðçñåôçôÞ CVSup. Äåßôå
ôï ãéá ìéá ðëÞñç ëßóôá ôùí mirror
sites.Ôï áñ÷éêü êáôÝâáóìá ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò ìðïñåß
íá äéáñêÝóåé áñêåôÞ þñá. ÁöÞóôå ôï íá åêôåëåßôáé ìÝ÷ñé íá
ïëïêëçñùèåß.Ìðïñåßôå íá óõíå÷ßóåôå íá åíçìåñþíåôå ôïí ðçãáßï êþäéêá ôçò
ôåêìçñßùóçò ÷ñçóéìïðïéþíôáò ôçí ßäéá åíôïëÞ. Ôï âïçèçôéêü ðñüãñáììá
CVSup êáôåâÜæåé êáé áíôéãñÜöåé ìüíï ôéò
åíçìåñþóåéò óå ó÷Ýóç ìå ôçí ôåëåõôáßá åêôÝëåóç ôïõ, Ýôóé êÜèå åêôÝëåóç
ôïõ CVSup ìåôÜ ôçí ðñþôç èá ðñÝðåé íá
åßíáé áñêåôÜ ãñÞãïñç.ÌåôÜ ôçí áñ÷éêÞ áíÜêôçóç ôïõ ðçãáßïõ êþäéêá, Ýíáò åíáëëáêôéêüò
ôñüðïò åíçìÝñùóçò ôçò ôåêìçñßùóçò åßíáé ìÝóù ôïõ áñ÷åßïõ
Makefile óôïí êáôÜëïãï /usr/doc. ÈÝôïíôáò ôéò ìåôáâëçôÝò
SUP_UPDATE, SUPHOST êáé
DOCSUPFILE óôï áñ÷åßï
/etc/make.conf, ìðïñåßôå íá åêôåëÝóåôå:&prompt.root; cd /usr/doc
&prompt.root; make updateÔõðéêÝò ôéìÝò ãéá ôéò ðáñáðÜíù åðéëïãÝò ôïõ &man.make.1; óôï
áñ÷åßï /etc/make.conf åßíáé:SUP_UPDATE= yes
SUPHOST?= cvsup.freebsd.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfileÁí èÝóåôå ôéò ôéìÝò ôùí SUPHOST êáé
DOCSUPFILE óå ?=, èá ìðïñåßôå
íá ïñßóåôå Üëëåò ôéìÝò ãéá áõôÝò óôç ãñáììÞ åíôïëÞò ôïõ make.
Áõôüò åßíáé êáé ï óõíéóôþìåíïò ôñüðïò íá ðñïóèÝóåôå åðéëïãÝò óôï
make.conf, þóôå íá áðïöåýãåôå íá ôñïðïðïéåßôå
óõíÝ÷åéá ôï áñ÷åßï êÜèå öïñÜ ðïõ èÝëåôå íá äïêéìÜóåôå ìéá íÝá ôéìÞ
óå ìéá åðéëïãÞ.ÐñïóáñìïãÞ Åðéëïãþí óôïí Ðçãáßï Êþäéêá ôçò ÔåêìçñßùóçòÔï óýóôçìá åíçìÝñùóçò êáé ìåôáãëþôôéóçò ôçò ôåêìçñßùóçò ôïõ &os;,
õðïóôçñßæåé ìåñéêÝò åðéëïãÝò ðïõ äéåõêïëýíïõí ôç äéáäéêáóßá
åíçìÝñùóçò åíüò ìüíï ìÝñïõò ôçò ôåêìçñßùóçò, Þ ôçí ìåôáãëþôôéóç
ôçò ôåêìçñßùóçò êÜðïéùí óõãêåêñéìÝíùí ìåôáöñÜóåùí. Áí èÝëåôå ïé
åðéëïãÝò áõôÝò íá éó÷ýïõí ìüíéìá, ìðïñåßôå íá ôéò ïñßóåôå ìÝóá óôï
áñ÷åßï /etc/make.conf, äéáöïñåôéêÜ ìðïñåßôå íá
ôéò ïñßæåôå êÜèå öïñÜ óôç ãñáììÞ åíôïëÞò ôçò &man.make.1;.ÊÜðïéåò áðü ôéò åðéëïãÝò áõôÝò öáßíïíôáé ðáñáêÜôù:DOC_LANGËßóôá ôùí ãëùóóþí êáé êùäéêïðïéÞóåùí ðïõ èá ìåôáãëùôôéóôïýí
êáé èá åãêáôáóôáèïýí, ð.÷. en_US.ISO8859-1
áí åßíáé åðéèõìçôÞ ìüíï ç ÁããëéêÞ ôåêìçñßùóç.FORMATSÇ ìïñöÞ (Þ ìéá ëßóôá áðü ìïñöÝò) óôçí ïðïßá èá ðáñá÷èåß ç
ìåôáãëùôôéóìÝíç ôåêìçñßùóç. Ôç äåäïìÝíç óôéãìÞ õðïóôçñßæïíôáé
ïé ìïñöÝò html,
html-split, txt,
ps, pdf êáé
rtf.SUPHOSTÔï üíïìá ôïõ åîõðçñåôçôÞ CVSup
ðïõ èá ÷ñçóéìïðïéçèåß êáôÜ ôçí åíçìÝñùóç.DOCDIRÏ êáôÜëïãïò óôïí ïðïßï èá åãêáôáóôáèåß ç ôåêìçñßùóç. Áðü
ðñïåðéëïãÞ åßíáé ï /usr/share/doc.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôéò ìåôáâëçôÝò ôïõ make
ðïõ õðïóôçñßæïíôáé ùò åðéëïãÝò óõóôÞìáôïò óôï &os;, äåßôå ôçí óåëßäá
manual ôïõ &man.make.conf.5;.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò êáé ìåôáâëçôÝò make ðïõ
õðïóôçñßæïíôáé áðü ôï óýóôçìá ìåôáãëþôôéóçò ôçò ôåêìçñßùóçò ôïõ &os;,
ðáñáêáëïýìå äåßôå ôéò Ïäçãßåò ôçò ÏìÜäáò
Ôåêìçñßùóçò ôïõ &os; ãéá ÍÝïõò Óõããñáöåßò.ÅãêáôÜóôáóç ôçò Ôåêìçñßùóçò ôïõ FreeBSD áðü ôïí Ðçãáßï
Êþäéêá¸÷ïíôáò åíçìåñþóåé ôï ôïðéêü áíôßãñáöï ôïõ ðçãáßïõ êþäéêá ôçò
ôåêìçñßùóçò óôïí êáôÜëïãï /usr/doc, åßìáóôå Ýôïéìïé ãéá ôçí
åíçìÝñùóç ôçò åãêáôåóôçìÝíçò ôåêìçñßùóçò.Ìðïñåßôå íá ðñï÷ùñÞóåôå óå ðëÞñç åíçìÝñùóç üëùí ôùí ãëùóóþí ðïõ
ïñßæïíôáé óôçí åðéëïãÞ DOC_LANG ôïõ Makefile,
ãñÜöïíôáò:&prompt.root; cd /usr/doc
&prompt.root; make install cleanÁí Ý÷åôå ñõèìßóåé ôï make.conf ìå ôéò óùóôÝò
ôéìÝò ãéá ôéò åðéëïãÝò DOCSUPFILE,
SUPHOST êáé SUP_UPDATE, ìðïñåßôå
íá óõíäõÜóåôå ôá âÞìáôá åíçìÝñùóçò êáé åãêáôÜóôáóçò ôïõ ðçãáßïõ
êþäéêá óå Ýíá, ãñÜöïíôáò:&prompt.root; cd /usr/doc
&prompt.root; make update install cleanÁí åðéèõìåßôå ôçí åíçìÝñùóç ìéáò ìüíï óõãêåêñéìÝíçò ãëþóóáò,
ìðïñåßôå íá êáëÝóåôå ôçí &man.make.1; óå Ýíá óõãêåêñéìÝíï
õðïêáôÜëïãï ôïõ /usr/doc,
ð.÷.:&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make update install cleanÌðïñåßôå íá êáèïñßóåôå ôç ìïñöÞ ôçò ôåêìçñßùóçò ðïõ èá
åãêáôáóôáèåß, ñõèìßæïíôáò ôç ìåôáâëçôÞ FORMATS ôïõ
make, ð.÷.:&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install cleanMarcFonvieilleÂáóéóìÝíï óå åñãáóßá ôïõ ×ñçóéìïðïéþíôáò ôá Ports ôçò ÔåêìçñßùóçòUpdating and Upgradingdocumentation packageUpdating and UpgradingÓôçí ðñïçãïýìåíç åíüôçôá, ðáñïõóéÜóáìå ìéá ìÝèïäï ãéá ôçí
åíçìÝñùóç ôçò ôåêìçñßùóçò ôïõ &os; ìÝóù ôïõ ðçãáßïõ êþäéêá.
Ùóôüóï, ïé åíçìåñþóåéò ðïõ âáóßæïíôáé óôïí ðçãáßï êþäéêá ìðïñåß íá
ìçí åßíáé äõíáôÝò Þ ðñáêôéêÝò ãéá êÜèå óýóôçìá &os;. Ç äéáäéêáóßá
ìåôáãëþôôéóçò ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò áðáéôåß ó÷åôéêÜ
ìåãÜëï áñéèìü åñãáëåßùí êáé âïçèçôéêþí ðñïãñáììÜôùí, ãíùóôÜ ùò
åñãáëåßá ôåêìçñßùóçò. Áðáéôåß åðßóçò êáé ìéá
ó÷åôéêÞ åîïéêåßùóç ìå ôï CVS êáé ôç
äéáäéêáóßá áíÜêôçóçò ôùí áñ÷åßùí áðü áõôü, êáèþò êáé ìéá óåéñÜ
áðü âÞìáôá ãéá ôç ìåôáãëþôôéóç ôïõ êþäéêá. Óôçí åíüôçôá áõôÞ
ðåñéãñÜöïõìå Ýíá åíáëëáêôéêü ôñüðï åíçìÝñùóçò ôçò ôåêìçñßùóçò ðïõ
åãêáèßóôáôáé ìáæß ìå ôï &os;. Ç ìÝèïäïò áõôÞ ÷ñçóéìïðïéåß ôçí
ÓõëëïãÞ ôùí Ports êáé äßíåé ôéò ðáñáêÜôù äõíáôüôçôåò:ÊáôÝâáóìá êáé åãêáôÜóôáóç ðñï-ìåôáãëùôôéóìÝíùí óôéãìéüôõðùí
ôçò ôåêìçñßùóçò, ÷ùñßò íá áðáéôåßôáé êáìéÜ ôïðéêÞ ìåôáãëþôôéóç
(åîáëåßöïíôáò Ýôóé êáé ôçí áíÜãêç åãêáôÜóôáóçò üëùí ôùí åñãáëåßùí
ôåêìçñßùóçò).ÊáôÝâáóìá ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò êáé
ìåôáãëþôôéóç ôïõ ìÝóù ôùí äõíáôïôÞôùí ðïõ ðáñÝ÷ïõí ôá åñãáëåßá
ôùí ports (áðëïðïéþíôáò ìå áõôü ôïí ôñüðï ôç ÷åéñïêßíçôç
äéáäéêáóßá áíÜêôçóçò êáé ìåôáãëþôôéóçò).ÁõôÝò ïé äýï ìÝèïäïé åíçìÝñùóçò ôçò ôåêìçñßùóçò ôïõ &os;
õðïóôçñßæïíôáé áðü ìéá óåéñÜ áðü
ports ôåêìçñßùóçò ôá ïðïßá åíçìåñþíïíôáé êÜèå
ìÞíá áðü ôçí &a.doceng;. Óôç ÓõëëïãÞ ôùí Ports, èá ôá âñåßôå êÜôù
áðü ôçí êáôçãïñßá docs.Ìåôáãëþôôéóç êáé ÅãêáôÜóôáóç ôùí Ports ôçò ÔåêìçñßùóçòÔá ports ôçò ôåêìçñßùóçò ÷ñçóéìïðïéïýí ôéò äõíáôüôçôåò
ìåôáãëþôôéóçò ðïõ ðáñÝ÷åé ôï óýóôçìá ôùí ports þóôå íá äéåõêïëýíïõí
ôç äéáäéêáóßá äçìéïõñãßáò ôçò ôåêìçñßùóçò. Ìå áõôü ôïí ôñüðï
ç áíÜêôçóç ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò ãßíåôáé áõôüìáôá ìå
ôçí åêôÝëåóç ôçò &man.make.1; êáé ôéò êáôÜëëçëåò ñõèìßóåéò óôï
ðåñéâÜëëïí. Ç åãêáôÜóôáóç êáé áðåãêáôÜóôáóç ôçò ôåêìçñßùóçò
åßíáé ôï ßäéï åýêïëç ìå ôçí åãêáôÜóôáóç ïðïéïõäÞðïôå Üëëïõ port
Þ ðáêÝôïõ óôï &os;.Óå ðåñßðôùóç ôïðéêÞò ìåôáãëþôôéóçò ôùí ports ôçò ôåêìçñßùóçò,
áðáéôåßôáé êáé ç åãêáôÜóôáóç ôùí
åñãáëåßùí ôåêìçñßùóçò. Ôá åñãáëåßá áõôÜ
ùóôüóï èá åãêáôáóôáèïýí áõôüìáôá.Ç ïñãÜíùóç ôùí ports ôåêìçñßùóçò öáßíåôáé ðáñáêÜôù:ÕðÜñ÷åé Ýíá êåíôñéêü master port, ôï
misc/freebsd-doc-en ôï
ïðïßï äéáèÝôåé ôá áðáñáßôçôá áñ÷åßá êáé áðïôåëåß ôçí
âÜóç üëùí ôùí Üëëùí ports ôåêìçñßùóçò. Áðü ðñïåðéëïãÞ, ôï
port áõôü ìåôáãëùôôßæåé ìüíï ôçí ÁããëéêÞ ôåêìçñßùóç.ÕðÜñ÷åé Ýíá port üëá óå Ýíá, ôï
misc/freebsd-doc-all ôï
ïðïßï ìåôáãëùôôßæåé êáé åãêáèéóôÜ üëç ôçí ôåêìçñßùóç óå üëåò ôéò
äéáèÝóéìåò ãëþóóåò.ÔÝëïò, õðÜñ÷åé Ýíá åîáñôþìåíï port ãéá êÜèå
ìåôÜöñáóç, ð.÷.: misc/freebsd-doc-el ãéá ôçí
ÅëëçíéêÞ ôåêìçñßùóç. ¼ëá áõôÜ ôá ports åîáñôþíôáé áðü ôï
master port êáé åãêáèéóôïýí ôçí ôåêìçñßùóç ðïõ Ý÷åé ìåôáöñáóôåß
óôçí áíôßóôïé÷ç ãëþóóá.Ãéá íá åãêáôáóôÞóåôå Ýíá port ôåêìçñßùóçò áðü ôïí ðçãáßï êþäéêá,
åêôåëÝóôå ôéò ðáñáêÜôù åíôïëÝò
(ùò root):&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install cleanÔï ðáñáðÜíù èá ìåôáãëùôôßóåé êáé èá åãêáôáóôÞóåé ôçí ÁããëéêÞ
ôåêìçñßùóç óå ìïñöÞ ôìçìáôéêþí HTML êåéìÝíùí
(üðùò ÷ñçóéìïðïéïýíôáé êáé óôï ), óôïí êáôÜëïãï /usr/local/share/doc/freebsd.ÓõíçèéóìÝíåò ÅðéëïãÝò êáé ÐáñÜìåôñïé ÌåôáãëþôôéóçòÌðïñåßôå íá ÷ñçóéìïðïéÞóåôå áñêåôÝò åðéëïãÝò ãéá ôçí
ôñïðïðïßçóç ôçò ðñïåðéëåãìÝíçò óõìðåñéöïñÜò ôùí ports ôåêìçñßùóçò.
ÐáñáêÜôù äåß÷íïõìå ìåñéêÝò ìüíï áðü áõôÝò:WITH_HTMLÅðéôñÝðåé ôç äçìéïõñãßá ôçò ôåêìçñßùóçò óå ìïñöÞ HTML.
Èá äçìéïõñãçèåß Ýíá áñ÷åßï HTML ãéá êÜèå êåßìåíï.
Ç ìïñöïðïéçìÝíç ôåêìçñßùóç èá áðïèçêåõèåß, áíÜëïãá ìå ôçí
ðåñßðôùóç, óå Ýíá áñ÷åßï ìå üíïìá
article.html Þ
book.html. Èá ãßíåé åðßóçò êáé
áðïèÞêåõóç ôùí áíôßóôïé÷ùí åéêüíùí.WITH_PDFÅðéôñÝðåé ôç äçìéïõñãßá åããñÜöïõ óå ìïñöÞ &adobe;
Portable Document Format (PDF) ãéá ÷ñÞóç ìå ôïí &adobe;
&acrobat.reader;, ôï Ghostscript,
Þ Üëëá ðñïãñÜììáôá ðñïâïëÞò åããñÜöùí PDF. Ç ìïñöïðïéçìÝíç
ôåêìçñßùóç èá áðïèçêåõèåß, áíÜëïãá ìå ôçí ðåñßðôùóç, óå Ýíá
áñ÷åßï article.pdf Þ
book.pdf.DOCBASEÐñüêåéôáé ãéá ôçí èÝóç óôçí ïðïßá èá åãêáôáóôáèåß ç
ôåêìçñßùóç. Áðü ðñïåðéëïãÞ, åßíáé ï êáôÜëïãïò /usr/local/share/doc/freebsd.ÐáñáôçñÞóôå üôé ï ðñïåðéëåãìÝíïò êáôÜëïãïò äéáöÝñåé
áðü áõôüí ðïõ ÷ñçóéìïðïéåßôáé óôç ìÝèïäï
CVSup. Áõôü óõìâáßíåé åðåéäÞ
ãßíåôáé åãêáôÜóôáóç port, ôá ïðïßá áðü ðñïåðéëïãÞ
÷ñçóéìïðïéïýí ôïí êáôÜëïãï /usr/local. Ìðïñåßôå
íá ðáñáêÜìøåôå áõôÞ ôçí ðñïåðéëïãÞ, áëëÜæïíôáò ôçí ôéìÞ
ôçò ìåôáâëçôÞò PREFIX.ÐáñáêÜôù èá âñåßôå Ýíá óýíôïìï ðáñÜäåéãìá ó÷åôéêü ìå ôç ÷ñÞóç
ôùí ìåôáâëçôþí ãéá ôçí åãêáôÜóôáóç ôçò ÁããëéêÞò ôåêìçñßùóçò óå
ìïñöÞ PDF:&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/en install clean×ñÞóç ¸ôïéìùí ÐáêÝôùí ÔåêìçñßùóçòÇ ìåôáãëþôôéóç ôùí ports ôåêìçñßùóçò áðü ôïí ðçãáßï êþäéêá
(üðùò åßäáìå óôçí ðñïçãïýìåíç åíüôçôá), áðáéôåß ôïðéêÞ åãêáôÜóôáóç
ôùí áíôßóôïé÷ùí åñãáëåßùí ôåêìçñßùóçò êáé åðÜñêåéá ÷þñïõ óôï äßóêï
ãéá ôçí äéáäéêáóßá. ¼ôáí äåí äéáôßèåíôáé ïé áðáñáßôçôïé ðüñïé ãéá
ôçí åãêáôÜóôáóç ôùí åñãáëåßùí ôåêìçñßùóçò (Þ åðåéäÞ ç ìåôáãëþôôéóç
áðü ôá ports èá ÷ñçóéìïðïéïýóå ðïëý ÷þñï), ç åãêáôÜóôáóç ìðïñåß
íá ãßíåé ìÝóù Ýôïéìùí ðáêÝôùí ôåêìçñßùóçò.H &a.doceng; ðñïåôïéìÜæåé ìçíéáßá óôéãìéüôõðá ðáêÝôùí
ôåêìçñßùóçò ôïõ &os;. Ôá Ýôïéìá áõôÜ ðáêÝôá ìðïñïýí íá
÷ñçóéìïðïéçèïýí ìå ôçí âïÞèåéá ïðïéïõäÞðïôå åñãáëåßïõ äéá÷åßñéóçò
ðáêÝôùí ðïõ äéáôßèåôáé ìå ôï &os;, üðùò ãéá ðáñÜäåéãìá ôá
&man.pkg.add.1;, &man.pkg.delete.1; ê.ë.ð.¼ôáí ÷ñçóéìïðïéåßôå Ýôïéìá ðáêÝôá, ç åãêáôÜóôáóç ôçò
ôåêìçñßùóçò ôçò åðéëåãìÝíçò ãëþóóáò èá ãßíåôáé óå üëåò ôéò
äéáèÝóéìåò ìïñöÝò.Ãéá ðáñÜäåéãìá, ç ðáñáêÜôù åíôïëÞ èá åãêáôáóôÞóåé ôçí ôåëåõôáßá
Ýêäïóç ôïõ Ýôïéìïõ ðáêÝôïõ ôçò ÅëëçíéêÞò ôåêìçñßùóçò:&prompt.root; pkg_add -r el-freebsd-docÔá ðáêÝôá ÷ñçóéìïðïéïýí ôç ìïñöÞ
lang-freebsd-doc óôï
üíïìá ôïõò, ç ïðïßá äéáöÝñåé áðü ôçí áíôßóôïé÷ç ìïñöÞ ôïõ port.
Ôï lang åßíáé ç óýíôïìç ìïñöÞ ôçò
ãëþóóáò, ð.÷. el ãéá ÅëëçíéêÜ Þ
zh_cn ãéá ÁðëïðïéçìÝíá ÊéíÝæéêá.Åíçìåñþíïíôáò ôá Ports ôçò ÔåêìçñßùóçòÃéá íá åíçìåñþóåôå Ýíá Þäç åãêáôåóôçìÝíï port ôåêìçñßùóçò,
ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ïðïéïäÞðïôå åñãáëåßï áíáâÜèìéóçò ports.
Ãéá ðáñÜäåéãìá, ç ðáñáêÜôù åíôïëÞ åíçìåñþíåé ôçí åãêáôåóôçìÝíç
ÅëëçíéêÞ ôåêìçñßùóç ìÝóù ôïõ åñãáëåßïõ ports-mgmt/portupgrade ìå ôç ÷ñÞóç ìüíï
Ýôïéìùí ðáêÝôùí:&prompt.root; portupgrade -PP el-freebsd-docÐáñáêïëïýèçóç Åíüò ÊëÜäïõ ÁíÜðôõîçò-CURRENT-STABLEÕðÜñ÷ïõí äýï êëÜäïé áíÜðôõîçò óôï &os;, ôï &os.current; êáé ôï
&os.stable;. Óôçí åíüôçôá áõôÞ, èá åîçãÞóïõìå êÜðïéá ðñÜãìáôá ó÷åôéêÜ
ìå áõôïýò ôïõò êëÜäïõò, êáé èá ðåñéãñÜøïõìå ðùò ìðïñåßôå íá äéáôçñÞóåôå
ôï óýóôçìá óáò åíçìåñùìÝíï óå êÜðïéïí áðü áõôïýò. Èá ìéëÞóïõìå áñ÷éêÜ
ãéá ôï &os.current; êáé Ýðåéôá ãéá ôï &os.stable;.Ðáñáêïëïõèþíôáò ôï &os.current;Êáèþò äéáâÜæåôå áõôü ôï êåßìåíï, íá Ý÷åôå õðüøéí óáò üôé ôï
&os.current; åßíáé ðñÜãìáôé ç êüøç ôïõ îõñáöéïý óôçí
áíÜðôõîç ôïõ &os;. Ïé ÷ñÞóôåò ôïõ &os.current; áíáìÝíåôáé íá Ý÷ïõí
áõîçìÝíåò ôå÷íéêÝò ãíþóåéò, êáé íá åßíáé éêáíïß íá åðéëýïõí äýóêïëá
ðñïâëÞìáôá ôïõ óõóôÞìáôïò ôïõò, ÷ùñßò âïÞèåéá. Áí åßóôå êáéíïýñéïò
óôï &os;, ìÜëëïí èá ðñÝðåé íá ôï îáíáóêåöôåßôå ðñéí ôï
åãêáôáóôÞóåôå.Ôé Åßíáé ôï &os.current;;snapshotÔï &os.current; áðïôåëåßôáé áðü ôïí ðëÝïí ðñüóöáôï ëåéôïõñãéêü
ðçãáßï êþäéêá ôïõ &os;. ÐåñéëáìâÜíåé áëëáãÝò ðïõ âñßóêïíôáé óå
åîÝëéîç, ðåéñáìáôéêÝò áëëáãÝò, êáé ìç÷áíéóìïýò ìåôÜâáóçò ïé ïðïßïé
äåí åßíáé óßãïõñï üôé èá ðåñéëáìâÜíïíôáé óôçí åðüìåíç åðßóçìç
Ýêäïóç ôïõ ëïãéóìéêïý. Áí êáé ðïëëÜ ìÝëç ôçò ïìÜäáò áíÜðôõîçò ôïõ
&os; ìåôáãëùôôßæïõí êáèçìåñéíÜ ôïí ðçãáßï êþäéêá ôïõ &os.current;,
õðÜñ÷ïõí ÷ñïíéêÝò ðåñßïäïé ðïõ ç ìåôáãëþôôéóç ôïõ åßíáé áäýíáôç.
Ôá ðñïâëÞìáôá áõôÜ ãåíéêÜ åðéëýïíôáé üóï ðéï ãñÞãïñá ãßíåôáé, áëëÜ
ôï áí ôï &os.current; èá óáò öÝñåé ôçí êáôáóôñïöÞ Þ êÜðïéï
ðïëõðüèçôï ÷áñáêôçñéóôéêü, åßíáé ðåñéóóüôåñï èÝìá ôçò ÷ñïíéêÞò
óôéãìÞò ðïõ èá åðéëÝîåôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá!Ðïéïò ×ñåéÜæåôáé ôï &os.current;;Ôï &os.current; äéáôßèåôáé êáé åíäéáöÝñåé êõñßùò ôéò ðáñáêÜôù
ôñåéò ïìÜäåò:ÌÝëç ôçò êïéíüôçôáò ôïõ &os; ðïõ äïõëåýïõí åíåñãÜ óå êÜðïéï
ôìÞìá ôïõ ðçãáßïõ êþäéêá, êáé ãéá ôïõò ïðïßïõò ç ðáñáêïëïýèçóç
ôïõ &os.current; åßíáé áðüëõôá áðáñáßôçôç.ÌÝëç ôçò êïéíüôçôáò ôïõ &os; ðïõ åßíáé åíåñãïß testers
êáé åßíáé ðñüèõìïé íá áíáëþóïõí ôï ÷ñüíï ôïõò ãéá íá ëýóïõí
ðñïâëÞìáôá, þóôå íá åîáóöáëßóïõí üôé ôï &os.current;
èá ðáñáìåßíåé üóï ôï äõíáôüí ðéï óùóôü. ÓõíÞèùò, ôá ìÝëç áõôÜ
êÜíïõí ðñïôÜóåéò ãéá ôïðéêÝò áëëáãÝò êáé ãéá ôçí ãåíéêÞ
êáôåýèõíóç ôïõ &os;, êáé óôÝëíïõí patches ãéá ôçí
ðñáãìáôïðïßçóç ôïõò.Áõôïß ðïõ áðëþò èÝëïõí íá âëÝðïõí ôéò ôåëåõôáßåò
åíçìåñþóåéò, Þ íá ÷ñçóéìïðïéïýí ôïí ôåëåõôáßï ðçãáßï êþäéêá ùò
áíáöïñÜ (ð.÷. ãéá ìåëÝôç êáé ü÷é ãéá
åêôÝëåóç). ÌÝëç áõôÞò ôçò ïìÜäáò ìðïñåß åðßóçò ðåñéóôáóéáêÜ íá
óõíåéóöÝñïõí ó÷üëéá Þ êþäéêá.Ôé Äåí Åßíáé ôï &os.current;;Äåí åßíáé Ýíáò ãñÞãïñïò ôñüðïò íá ðÜñåôå êþäéêá ï
ïðïßïò äåí Ý÷åé êõêëïöïñÞóåé áêüìá óå êÜðïéá Ýêäïóç, ìå ôçí
åëðßäá üôé ðåñéÝ÷åé êÜðïéá íÝá åêðëçêôéêÞ äõíáôüôçôá êáé
èÝëåôå íá åßóôå ï ðñþôïò ðïõ ôç ÷ñçóéìïðïéåß. Áí åßóôå
ðñÜãìáôé ï ðñþôïò ðïõ ôçí ÷ñçóéìïðïéåß, èá åßóôå åðßóçò êáé ï
ðñþôïò ðïõ èá óõíáíôÞóåôå ôá íÝá ðñïâëÞìáôá êáé bugs.Äåí åßíáé Ýíáò ãñÞãïñïò ôñüðïò ãéá íá áíáêôÞóåôå
äéïñèþóåéò ðñïâëçìÜôùí. ÊÜèå íÝá Ýêäïóç ôïõ &os.current;
ìðïñåß íá åéóÜãåé ôüóá íÝá bugs üóá êáé áõôÜ ðïõ
äéïñèþíåé.Ôï &os.current; äåí áðïôåëåß
åðßóçìá õðïóôçñéæüìåíï êþäéêá. Áí êáé
êáôáâÜëëïõìå êÜèå äõíáôÞ ðñïóðÜèåéá íá âïçèÞóïõìå üóïõò
áíÞêïõí ðñáãìáôéêÜ óå êÜðïéá áðü ôéò ôñåéò
ïìÜäåò ðïõ áíáöÝñáìå, ùóôüóï äåí Ý÷ïõìå ôï
÷ñüíï íá ðáñÝ÷ïõìå ôå÷íéêÞ õðïóôÞñéîç. Áõôü äåí
óõìâáßíåé åðåéäÞ åßìáóôå êáêïÞèåéò êáé äýóêïëïé êáé äåí èÝëïõìå
íá âïçèÜìå ôïõò áíèñþðïõò (äåí èá åß÷áìå êáí äçìéïõñãÞóåé ôï
&os; áí óêåöôüìáóôáí Ýôóé). Ðïëý áðëÜ, äåí ìðïñïýìå íá
áðáíôÜìå åêáôïíôÜäåò ìçíýìáôá ôçí çìÝñá êáé
ôáõôü÷ñïíá íá äïõëåýïõìå óôï &os;! Áí
äþóåôå óå ïðïéïäÞðïôå ìÝëïò ôçò ïìÜäáò áíÜðôõîçò ôçí åðéëïãÞ
íá áðáíôÜåé óå ðïëëÝò åñùôÞóåéò ó÷åôéêÜ ìå ðåéñáìáôéêü êþäéêá
Þ íá äïõëåýåé ãéá ôç âåëôßùóç ôïõ &os;, èá åðéëÝîåé óßãïõñá ôï
äåýôåñï.×ñçóéìïðïéþíôáò ôï &os.current;
-
- -CURRENT
- using
- Ãñáöôåßôå óôéò ëßóôåò &a.current.name; êáé
- &a.svn-src-head.name;. Äåí åßíáé áðëþò êáëÞ éäÝá, åßíáé
+ &a.svn-src-head.name;-CURRENTusing. Äåí åßíáé áðëþò êáëÞ éäÝá, åßíáé
âáóéêü íá ôï êÜíåôå. Áí äåí åßóôå
ãñáììÝíïò óôç ëßóôá &a.current.name;, äåí
èá âëÝðåôå ôá ó÷üëéá ó÷åôéêÜ ìå ôçí ôñÝ÷ïõóá êáôÜóôáóç ôïõ
óõóôÞìáôïò áðü üóïõò ôï ÷ñçóéìïðïéïýí, êáé Ýôóé ðéèáíþò èá
êáôáëÞîåôå íá áíôéìåôùðßæåôå ðïëëÜ ðñïâëÞìáôá ðïõ Üëëïé Ý÷ïõí
Þäç áíáêáëýøåé êáé ëýóåé. Áêüìá ðéï óçìáíôéêü åßíáé üôé èá
÷Üíåôå óçìáíôéêÝò áíáêïéíþóåéò, ïé ïðïßåò ìðïñåß íá åßíáé
êñßóéìåò ãéá ôçí äéáôÞñçóç ôïõ óõóôÞìáôïò óáò óå õãéÞ
êáôÜóôáóç.Ç ëßóôá &a.svn-src-head.name; èá óáò åðéôñÝøåé íá âëÝðåôå
ôéò êáôá÷ùñÞóåéò óôï commit log ãéá êÜèå áëëáãÞ ðïõ ãßíåôáé,
êáèþò êáé ðëçñïöïñßåò ãéá ðéèáíÝò ðáñåíÝñãåéåò ðïõ ìðïñåß íá
Ý÷åé.Ãéá íá ãñáöôåßôå óå áõôÝò, Þ óå ïðïéåóäÞðïôå áðü ôéò
õðÜñ÷ïõóåò ëßóôåò, åðéóêåöèåßôå ôçí ôïðïèåóßá
&a.mailman.lists.link; êáé åðéëÝîôå ôç ëßóôá óôçí ïðïßá èÝëåôå
íá ãßíåôå óõíäñïìçôÞò. Ïäçãßåò ãéá ôçí õðüëïéðç äéáäéêáóßá
èá âñåßôå åðéôüðïõ. Áí óáò åíäéáöÝñåé íá ðáñáêïëïõèåßôå ôéò
áëëáãÝò óå üëï ôï äÝíôñï ðçãáßïõ êþäéêá, óáò óõíéóôïýìå íá
åããñáöåßôå óôç ëßóôá &a.svn-src-all.name;.ÁíáêôÞóôå ôïí ðçãáßï êþäéêá áðü Ýíá
mirror site ôïõ &os;. Áõôü
ìðïñåß íá ãßíåé ìå äýï ôñüðïõò:
-
- cvsup
-
-
- cron
-
-
- -CURRENT
- Syncing with CVSup
-
-
×ñçóéìïðïéÞóôå ôï ðñüãñáììá cvsup óå óõíäõáóìü ìå ôï
+ linkend="cvsup">cvsupcvsup óå óõíäõáóìü ìå ôï
supfile ìå ôçí ïíïìáóßá
standard-supfile ôï ïðïßï èá âñåßôå
óôïí êáôÜëïãï
/usr/share/examples/cvsup.
ÁõôÞ åßíáé êáé ç ðëÝïí óõíéóôþìåíç ìÝèïäïò, êáèþò óáò
åðéôñÝðåé íá áíáêôÞóåôå üëç ôç óõëëïãÞ ìå ìéá êßíçóç, êáé
óôéò åðüìåíåò áíáíåþóåéò èá ðáßñíåôå ìüíï ôéò áëëáãÝò.
- Ðïëëïß ÷ñÞóôåò åêôåëïýí ôï cvsup ìÝóù
+ Ðïëëïß ÷ñÞóôåò åêôåëïýí ôï cvsup-CURRENTSyncing with CVSup ìÝóù
ôïõ cron þóôå íá êñáôÜíå ôïí ðçãáßï
êþäéêá ôïõ óõóôÞìáôïò ôïõò ðÜíôá áíáíåùìÝíï áõôüìáôá. Èá
ðñÝðåé íá ðñïóáñìüóåôå ôï õðüäåéãìá ôïõ
supfile ðïõ äßíïõìå ðáñáðÜíù, êáé íá
ñõèìßóåôå ôï cvsup ãéá ôï
ðåñéâÜëëïí óáò.Ôï õðüäåéãìá ôïõ áñ÷åßïõ
standard-supfile ðñïïñßæåôáé ãéá
÷ñÞóç ìå êÜðïéï óõãêåêñéìÝíï êëÜäï áóöÜëåéáò (security
branch) ôïõ &os;, êáé ü÷é ìå ôï &os.current;. Èá ðñÝðåé
íá åðåîåñãáóôåßôå ôï áñ÷åßï êáé íá áíôéêáôáóôÞóåôå ôçí
ðáñáêÜôù ãñáììÞ:*default release=cvs tag=RELENG_X_Yìå ôçí áêüëïõèç:*default release=cvs tag=.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôá tags ðïõ
ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå, ðáñáêáëïýìå äéáâÜóôå óôï
Åã÷åéñßäéï ôçí åíüôçôá ÅôéêÝôåò (Tags) ãéá ôï CVS.
-
- -CURRENT
- Syncing with CTM
-
-
×ñçóéìïðïéÞóôå ôçí õðçñåóßá CTM. Áí Ý÷åôå ðïëý êáêÞ
+ linkend="ctm">CTM-CURRENTSyncing with CTM. Áí Ý÷åôå ðïëý êáêÞ
óõíäåóéìüôçôá (õøçëü êüóôïò óýíäåóçò Þ ðñüóâáóç ìüíï ìÝóù
email) ôï CTM áðïôåëåß ãéá óáò
ìéá åíáëëáêôéêÞ ëýóç. Ìðïñåß ùóôüóï íá óáò äçìéïõñãÞóåé
äéÜöïñá ðñïâëÞìáôá êáé íá êáôáëÞîåôå ìå ÷áëáóìÝíá áñ÷åßá.
Ãéá ôï ëüãï áõôü, ôï CTM
÷ñçóéìïðïéåßôáé óðÜíéá, êÜôé ôï ïðïßï áõîÜíåé áêüìá
ðåñéóóüôåñï ôçí ðéèáíüôçôá íá ìç äïõëåýåé óùóôÜ ãéá ìåãÜëá
÷ñïíéêÜ äéáóôÞìáôá. Óáò óõíéóôïýìå íá ÷ñçóéìïðïéÞóåôå ôï
CVSup
áí äéáèÝôåôå modem 9600 bps Þ ôá÷ýôåñï.Áí óêïðåýåôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá ãéá êáíïíéêÞ
÷ñÞóç (åêôÝëåóç) êáé ü÷é áðëþò ãéá íá ôïí äåßôå, ôüôå
áíáêôÞóôå ïëüêëçñï ôï &os.current; êáé ü÷é
êÜðïéá åðéëåãìÝíá ôìÞìáôá. Óå äéáöïñåôéêÞ ðåñßðôùóç, åßíáé
áñêåôÜ ðéèáíü íá óõíáíôÞóåôå ðñïâëÞìáôá, êáèþò ðïëëÜ êïììÜôéá
ôïõ êþäéêá åîáñôþíôáé áðü áíáíåþóåéò óå Üëëá, êáé äåí ìðïñïýí
íá ìåôáãëùôôéóôïýí áõôüíïìá.
-
- -CURRENT
- compiling
-
- Ðñéí ìåôáãëùôôßóåôå ôï &os.current;, äéáâÜóôå ðñïóåêôéêÜ ôï
+ Ðñéí ìåôáãëùôôßóåôå ôï &os.current;-CURRENTcompiling, äéáâÜóôå ðñïóåêôéêÜ ôï
Makefile óôïí êáôÜëïãï
/usr/src. Èá ðñÝðåé íá ìåôáãëùôôßóåôå ôïí ðõñÞíá êáé üëï ôï
âáóéêü óýóôçìá (world) ôçí ðñþôç öïñÜ, ùò ìÝñïò ôçò
äéáäéêáóßáò áíáâÜèìéóçò. ÄéáâÜæïíôáò ôçí &a.current;
êáé ôï /usr/src/UPDATING èá åßóôå
åíçìåñùìÝíïé ãéá íÝåò äéáäéêáóßåò üóï áöïñÜ ôçí åêêßíçóç óôï íÝï
óáò óýóôçìá. Ïé äéáäéêáóßåò áõôÝò åßíáé óõ÷íÜ áðáñáßôçôåò üóï
ðëçóéÜæïõìå óå ìéá íÝá åðßóçìç Ýêäïóç.Ãßíåôå åíåñãü ìÝëïò! Áí ÷ñçóéìïðïéåßôå ôï &os.current;,
èÝëïõìå íá îÝñïõìå ôç ãíþìç óáò ãéá áõôü, åéäéêÜ áí Ý÷åôå
ðñïôÜóåéò ãéá âåëôéþóåéò Þ äéïñèþóåéò ëáèþí. ÐñïôÜóåéò ðïõ
óõíïäåýïíôáé êáé áðü êþäéêá ãßíïíôáé äåêôÝò ìå
åíèïõóéáóìü!×ñçóéìïðïéþíôáò ôï &os;-STABLEÔé Åßíáé ôï &os.stable;;-STABLEÔï &os.stable; åßíáé Ýíáò êëÜäïò áíÜðôõîçò áðü ôïí ïðïßï
ðñïêýðôïõí ïé ìåãÜëåò (major) åêäüóåéò. Ïé áëëáãÝò
åéóÜãïíôáé óå áõôü ôïí êëÜäï ìå äéáöïñåôéêü ñõèìü, êáé ìå ôç ãåíéêÞ
ðáñáäï÷Þ üôé Ý÷ïõí ðñþôá ðåñÜóåé áðü ôï &os.current; ãéá äïêéìÞ.
Ùóôüóï, äåí ðáýåé íá åßíáé Ýíáò êëÜäïò
áíÜðôõîçò, êáé áõôü óçìáßíåé üôé ï êþäéêáò ôïõ &os.stable; ìðïñåß
ìéá äåäïìÝíç ÷ñïíéêÞ óôéãìÞ íá åßíáé áêáôÜëëçëïò ãéá óõãêåêñéìÝíåò
åöáñìïãÝò. Ðñüêåéôáé ãéá ìéá áêüìá ãñáììÞ áíÜðôõîçò ãéá ôïõò
ðñïãñáììáôéóôÝò, êáé äåí åßíáé áðáñáßôçôá êáôÜëëçëç ãéá ôïõò
ôåëéêïýò ÷ñÞóôåò.Ðïéïò ×ñåéÜæåôáé ôï &os.stable;;Áí óáò åíäéáöÝñåé íá ðáñáêïëïõèåßôå Þ íá óõìâÜëëåôå óôçí
áíÜðôõîç ôïõ &os;, êáé åéäéêÜ üóï áöïñÜ ôçí åðüìåíç åðßóçìç
Ýêäïóç ôïõ áðü ôïí ßäéï êëÜäï (point release), åßíáé êáëÞ éäÝá íá
ðáñáêïëïõèåßôå ôï &os.stable;.Áí êáé åßíáé áëÞèåéá üôé ïé äéïñèþóåéò áóöÜëåéáò ãßíïíôáé êáé
óôïí êëÜäï &os.stable;, ùóôüóï äåí ÷ñåéÜæåôáé
íá ðáñáêïëïõèåßôå ôï &os.stable; ìüíï ãéá áõôü ôï ëüãï. ÊÜèå
áíáöïñÜ ðñïâëÞìáôïò áóöÜëåéáò ôïõ &os; åîçãåß ðùò íá äéïñèþóåôå ôï
ðñüâëçìá ãéá êÜèå åðßóçìç Ýêäïóç ç ïðïßá åðçñåÜæåôáé áðü áõôü
Áõôü âÝâáéá äåí åßíáé áðüëõôá áëçèéíü. Äåí ìðïñïýìå
íá óõíå÷ßóïõìå íá õðïóôçñßæïõìå ôéò ðáëéÝò åêäüóåéò ôïõ &os; ãéá
ðÜíôá, áí êáé ôéò õðïóôçñßæïõìå ãéá ðïëëÜ ÷ñüíéá. Ãéá ðëÞñç
ðåñéãñáöÞ ôçò ôñÝ÷ïõóáò ðïëéôéêÞò üóï áöïñÜ ôçí áóöÜëåéá ôùí
ðáëéþí åêäüóåùí ôïõ &os;, äåßôå http://www.FreeBSD.org/security/.,
êáé ç ðáñáêïëïýèçóç åíüò êëÜäïõ áíÜðôõîçò ìüíï ãéá ëüãïõò
áóöáëåßáò, ðéèáíüí íá öÝñåé åðßóçò êáé Üëëåò áíåðéèýìçôåò áëëáãÝò
ìáæß ôçò.Áí êáé êáôáâÜëëïõìå êÜèå äõíáôÞ ðñïóðÜèåéá þóôå íá åîáóöáëßóïõìå
üôé ï êëÜäïò &os.stable; ìðïñåß íá ìåôáãëùôôéóôåß êáé íá åêôåëåóôåß
óå êÜèå äåäïìÝíç ÷ñïíéêÞ óôéãìÞ, äåí ìðïñïýìå ùóôüóï íá ôï
åããõçèïýìå. Åðéðñüóèåôá, áí êáé ï êþäéêáò áíáðôýóóåôáé óôï
&os.current; ðñéí ðåñÜóåé óôï &os.stable;, ï êüóìïò ðïõ åêôåëåß ôï
&os.stable; åßíáé ðåñéóóüôåñïò, êáé Ýôóé åßíáé áíáðüöåõêôï íá
áíáêáëýðôïíôáé ðéï ðïëëÜ óöÜëìáôá êáé áêñáßåò ðåñéðôþóåéò óôï
&os.stable; ôá ïðïßá äåí Ý÷ïõí ãßíåé åìöáíÞ óôï &os.current;.Ãéá ôïõò ëüãïõò áõôïýò, äåí óõíéóôïýìå íá
ðáñáêïëïõèåßôå ôõöëÜ ôï &os.stable;, êáé åéäéêüôåñá åßíáé óçìáíôéêü
íá ìçí áíáâáèìßæåôå óå áõôü åîõðçñåôçôÝò óå ðåñéâÜëëïíôá ðáñáãùãÞò,
÷ùñßò íá Ý÷åôå ðñþôá åëÝãîåé áíáëõôéêÜ ôïí êþäéêá óôï äéêü óáò
ðåñéâÜëëïí áíÜðôõîçò.Áí äåí äéáèÝôåôå ôïõò ðüñïõò ãéá íá ôï êÜíåôå áõôü, óáò
óõíéóôïýìå íá ÷ñçóéìïðïéåßôå ôçí ôåëåõôáßá åðßóçìç Ýêäïóç ôïõ &os;,
êáé íá áíáâáèìßæåóôå áðü ôç ìéá Ýêäïóç óôçí åðüìåíç ìÝóù ôïõ
ìç÷áíéóìïý äõáäéêþí åíçìåñþóåùí.×ñçóéìïðïéþíôáò ôï &os.stable;
-
- -STABLE
- using
- Ãñáöôåßôå óõíäñïìçôÞò óôç ëßóôá &a.stable.name;. Èá åßóôå
Ýôóé åíçìåñùìÝíïé ãéá åîáñôÞóåéò ìåôáãëþôôéóçò ðïõ ßóùò
- åìöáíéóôïýí óôï &os.stable;, Þ ãéá Üëëá ðñïâëÞìáôá ðïõ ÷ñÞæïõí
+ åìöáíéóôïýí óôï &os.stable;-STABLEusing, Þ ãéá Üëëá ðñïâëÞìáôá ðïõ ÷ñÞæïõí
åéäéêÞò ðñïóï÷Þò. Óôç ëßóôá áõôÞ èá âñßóêåôå åðßóçò
áíáêïéíþóåéò áðü ìÝëç ôçò ïìÜäáò áíÜðôõîçò, üôáí ðñüêåéôáé íá
óõìðåñéëçöèåß êÜðïéá áìöéëåãüìåíç áíáíÝùóç Þ äéüñèùóç, äßíïíôáò
Ýôóé óôïõò ÷ñÞóôåò ôçí åõêáéñßá íá åêöÝñïõí ãíþìç ó÷åôéêÜ ìå ôá
ðñïâëÞìáôá ðïõ èá ðñïêáëÝóåé ç ðñïôåéíüìåíç áëëáãÞ.Èá ðñÝðåé íá åããñáöåßôå óôçí êáôÜëëçëç ëßóôá
SVN áíÜëïãá ìå ôïí êëÜäï ðïõ
ðáñáêïëïõèåßôå. Ãéá ðáñÜäåéãìá, áí ðáñáêïëïõèåßôå ôïí êëÜäï
7-STABLE, ç êáôÜëëçëç ëßóôá åßíáé ç &a.svn-src-stable-7.name;.
Áõôü èá óáò åðéôñÝøåé íá âëÝðåôå ôéò
êáôá÷ùñÞóåéò óôï commit log ãéá êÜèå áëëáãÞ ðïõ ãßíåôáé, êáèþò
êáé ðëçñïöïñßåò ãéá ðéèáíÝò ðáñåíÝñãåéåò ðïõ ìðïñåß íá
Ý÷åé.Ãéá íá ãñáöôåßôå óå áõôÝò, Þ óå ïðïéåóäÞðïôå áðü ôéò
õðÜñ÷ïõóåò ëßóôåò, åðéóêåöèåßôå ôçí ôïðïèåóßá
&a.mailman.lists.link; êáé åðéëÝîôå ôç ëßóôá óôçí ïðïßá èÝëåôå
íá ãßíåôå óõíäñïìçôÞò. Ïäçãßåò ãéá ôçí õðüëïéðç äéáäéêáóßá
èá âñåßôå åðéôüðïõ. Áí óáò åíäéáöÝñåé íá ðáñáêïëïõèåßôå ôéò
áëëáãÝò óå üëï ôï äÝíôñï ðçãáßïõ êþäéêá, óáò óõíéóôïýìå íá
åããñáöåßôå óôç ëßóôá &a.svn-src-all.name;.Áí ðñüêåéôáé íá åãêáôáóôÞóåôå Ýíá íÝï óýóôçìá ìå óêïðü íá
åêôåëåßôå ôá ìçíéáßá snapshot ôïõ &os.stable;, ðáñáêáëïýìå íá
åëÝãîåôå ôçí ôïðïèåóßá Snapshots ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò. ÅíáëëáêôéêÜ, åßíáé äõíáôüí íá
åãêáôáóôÞóåôå ôï ðéï ðñüóöáôï &os.stable; áðü êÜðïéï
mirror site áêïëïõèþíôáò ôéò
ðáñáêÜôù ïäçãßåò þóôå íá áíáâáèìßóåôå ôï óýóôçìá óáò óôçí ðëÝïí
ðñüóöáôç Ýêäïóç ðçãáßïõ êþäéêá ôïõ &os.stable;.Áí äéáèÝôåôå Þäç êÜðïéá ðñïçãïýìåíç Ýêäïóç ôïõ &os; êáé
åðéèõìåßôå íá áíáâáèìéóôåßôå ìÝóù ôïõ ðçãáßïõ êþäéêá, ìðïñåßôå
åýêïëá íá ÷ñçóéìïðïéÞóåôå êÜðïéï mirror site ôïõ &os;. ÕðÜñ÷ïõí äýï
ôñüðïé ãéá íá ãßíåé áõôü:
-
- cvsup
-
-
- cron
-
-
- -STABLE
- syncing with CVSup
- ×ñçóéìïðïéÞóôå ôï ðñüãñáììá cvsup óå óõíäõáóìü ìå ôï
+ linkend="cvsup">cvsupcvsup óå óõíäõáóìü ìå ôï
supfile ìå ôçí ïíïìáóßá
stable-supfile ôï ïðïßï èá âñåßôå
óôïí êáôÜëïãï
/usr/share/examples/cvsup.
ÁõôÞ åßíáé êáé ç ðëÝïí óõíéóôþìåíç ìÝèïäïò, êáèþò óáò
åðéôñÝðåé íá áíáêôÞóåôå üëç ôç óõëëïãÞ ìå ìéá êßíçóç, êáé
óôéò åðüìåíåò áíáíåþóåéò èá ðáßñíåôå ìüíï ôéò áëëáãÝò.
Ðïëëïß ÷ñÞóôåò åêôåëïýí ôï cvsup ìÝóù
ôïõ cron þóôå íá êñáôÜíå ôïí ðçãáßï
êþäéêá ôïõ óõóôÞìáôïò ôïõò ðÜíôá áíáíåùìÝíï áõôüìáôá. Èá
ðñÝðåé íá ðñïóáñìüóåôå ôï õðüäåéãìá ôïõ
supfile ðïõ äßíïõìå ðáñáðÜíù, êáé íá
- ñõèìßóåôå ôï cvsup ãéá ôï
+ ñõèìßóåôå ôï cvsup-STABLEsyncing with CVSup ãéá ôï
ðåñéâÜëëïí óáò.
-
- -STABLE
- syncing with CTM
-
-
×ñçóéìïðïéÞóôå ôçí õðçñåóßá CTM. Áí äåí Ý÷åôå
+ linkend="ctm">CTM-STABLEsyncing with CTM. Áí äåí Ý÷åôå
ãñÞãïñç êáé öôçíÞ óýíäåóç ìå ôï Internet, áõôÞ åßíáé ç
óõíéóôþìåíç ìÝèïäïò.ÏõóéáóôéêÜ, áí ÷ñåéÜæåóôå ãñÞãïñç êáé êáôÜ áðáßôçóç
ðñüóâáóç óôïí ðçãáßï êþäéêá, êáé ôï åýñïò æþíçò ôçò óýíäåóçò
äåí áðïôåëåß ðñüâëçìá, ÷ñçóéìïðïéÞóôå ôï
cvsup Þ ôï ftp.
ÄéáöïñåôéêÜ, ÷ñçóéìïðïéÞóôå ôï
CTM.
-
- -STABLE
- compiling
-
-
- Ðñéí ìåôáãëùôôßóåôå ôï &os.stable;, äéáâÜóôå ðñïóåêôéêÜ ôï
+ Ðñéí ìåôáãëùôôßóåôå ôï &os.stable;-STABLEcompiling, äéáâÜóôå ðñïóåêôéêÜ ôï
Makefile óôïí êáôÜëïãï
/usr/src. Èá ðñÝðåé íá ìåôáãëùôôßóåôå ôïí ðõñÞíá êáé üëï ôï
âáóéêü óýóôçìá (world) ôçí ðñþôç öïñÜ, ùò ìÝñïò ôçò
äéáäéêáóßáò áíáâÜèìéóçò. ÄéáâÜæïíôáò ôçí &a.stable;
êáé ôï /usr/src/UPDATING èá åßóôå
åíçìåñùìÝíïé ãéá íÝåò äéáäéêáóßåò üóï áöïñÜ ôçí åêêßíçóç óôï íÝï
óáò óýóôçìá. Ïé äéáäéêáóßåò áõôÝò åßíáé óõ÷íÜ áðáñáßôçôåò üóï
ðëçóéÜæïõìå óå ìéá íÝá åðßóçìç Ýêäïóç.Óõã÷ñïíßæïíôáò ôïí Ðçãáßï óáò ÊþäéêáÕðÜñ÷ïõí äéÜöïñïé ôñüðïé íá ÷ñçóéìïðïéÞóåôå ìéá óýíäåóç Internet
(Þ email) ãéá íá åíçìåñþíåôå ïðïéïäÞðïôå ôìÞìá ðçãáßïõ
êþäéêá ôïõ &os; Project óáò åíäéáöÝñåé, Þ êáé üëá áí ôï
åðéèõìåßôå. Ïé âáóéêÝò õðçñåóßåò ðïõ ðñïóöÝñïõìå åßíáé ôï
Áíþíõìï CVS, ôï
CVSup, êáé ôï CTM.Áí êáé åßíáé äõíáôüí íá åíçìåñþóåôå ìüíï êÜðïéá ôìÞìáôá ôïõ
äÝíôñïõ ðçãáßïõ êþäéêá, ç ìüíç äéáäéêáóßá åíçìÝñùóçò ðïõ
õðïóôçñßæåôáé áöïñÜ ôçí åíçìÝñùóç ïëüêëçñïõ ôïõ äÝíôñïõ. ÌåôÜ ôçí
åíçìÝñùóç, èá ðñÝðåé íá ìåôáãëùôôßóåôå îáíÜ ôüóï ôï userland (äçë. ôá
ðñïãñÜììáôá ðïõ åêôåëïýíôáé óôçí ðåñéï÷Þ ÷ñÞóôç, üðùò áõôÜ ðïõ
âñßóêïíôáé óôïõò êáôáëüãïõò /bin êáé
/sbin) üóï êáé ôïí ðçãáßï êþäéêá ôïõ ðõñÞíá.
Áí åíçìåñþóåôå ìüíï Ýíá ôìÞìá ôïõ ðçãáßïõ êþäéêá, ìüíï ôïí ðõñÞíá Þ
ìüíï ôï userland, èá áíôéìåôùðßóåôå ðñïâëÞìáôá. Ôá ðñïâëÞìáôá áõôÜ
ìðïñåß íá êõìáßíïíôáé áðü óöÜëìáôá ìåôáãëþôôéóçò ìÝ÷ñé kernel panic
êáé êáôáóôñïöÞ äåäïìÝíùí.CVSanonymousÔï Áíþíõìï CVS êáé ôï
CVSup ÷ñçóéìïðïéïýí ôç ìÝèïäï
pull ãéá ôçí åíçìÝñùóç ôïõ ðçãáßïõ êþäéêá. Óôçí
ðåñßðôùóç ôïõ CVSup, ï ÷ñÞóôçò (ç êÜðïéï
script ðïõ åêôåëåßôáé ìÝóù cron) åêôåëåß ôï ðñüãñáììá
cvsup ôï ïðïßï áëëçëåðéäñÜ ìå Ýíá áíôßóôïé÷ï
åîõðçñåôçôÞ cvsupd þóôå íá åíçìåñþóåé ôá ó÷åôéêÜ
áñ÷åßá. Ïé åíçìåñþóåéò ðïõ ëáìâÜíåôå åßíáé ðÜíôïôå ïé ôåëåõôáßåò
äéáèÝóéìåò, êáé èá ôéò ëÜâåôå ìüíï üôáí ôéò æçôÞóåôå. Ìðïñåßôå åýêïëá
íá ðåñéïñßóåôå ôéò åíçìåñþóåéò óå óõãêåêñéìÝíá áñ÷åßá Þ êáôáëüãïõò ôá
ïðïßá óáò åíäéáöÝñïõí. Ïé åíçìåñþóåéò äçìéïõñãïýíôáé äõíáìéêÜ áðü ôïí
åîõðçñåôçôÞ, áíÜëïãá ìå ôï ôé Ý÷åôå åãêáôåóôçìÝíï êáé ôé åðéèõìåßôå íá
ëÜâåôå. Ôï Áíþíõìï CVS åßíáé êÜðùò ðéï
áðëïúêü áðü ôï CVSup, äåäïìÝíïõ üôé åßíáé
áðëþò ìéá åðÝêôáóç ôïõ CVS ðïõ åðéôñÝðåé ôçí
áíÜêôçóç áëëáãþí áðåõèåßáò áðü êÜðïéï áðïìáêñõóìÝíï CVS repository. Ôï
CVSup åßíáé áñêåôÜ ðéï áðïôåëåóìáôéêü óå
áõôüí ôï ôïìÝá, áëëÜ ôï Áíþíõìï CVS åßíáé
áðëïýóôåñï óôç ÷ñÞóç.CTMÁðü ôçí Üëëç ìåñéÜ, ôï CTM äåí óõãêñßíåé
Üìåóá ôïí ðçãáßï êþäéêá ðïõ Ý÷åôå ìå áõôüí ðïõ õðÜñ÷åé óôïí êåíôñéêü
åîõðçñåôçôÞ þóôå íá áíáêôÞóåé ìüíï ôéò áëëáãÝò. Áíôßèåôá, óôï êåíôñéêü
ìç÷Üíçìá CTM, åêôåëåßôáé áñêåôÝò öïñÝò ôçí çìÝñá Ýíá script. Ôï script
áõôü áíáãíùñßæåé ôéò áëëáãÝò óôá áñ÷åßá óå ó÷Ýóç ìå ôçí ðñïçãïýìåíç
åêôÝëåóç ôïõ, êáé Ýðåéôá ðáêåôÜñåé êáé óõìðéÝæåé ôéò áëëáãÝò ìå ôñüðï
êáôÜëëçëï ãéá áðïóôïëÞ ìÝóù email (ìüíï åêôõðþóéìïé ASCII ÷áñáêôÞñåò).
Óå êÜèå ôÝôïéï ðáêÝôï áëëáãþí áíôéóôïé÷ßæåôáé Ýíáò ìïíáäéáßïò áñéèìüò
áêïëïõèßáò (sequence number) ðïõ ôï áíáãíùñßæåé. ÌåôÜ ôç ëÞøç ôïõò,
ìðïñåßôå íá äþóåôå áõôÜ ôá áñ÷åßá äéáöïñþí ôïõ
CTM (CTM deltas) óôï âïçèçôéêü
ðñüãñáììá &man.ctm.rmail.1; ôï ïðïßï áõôüìáôá èá ôá áðïêùäéêïðïéÞóåé,
èá ôá åðáëçèåýóåé, êáé èá åöáñìüóåé ôéò áëëáãÝò óôï áíôßãñáöï ðçãáßïõ
êþäéêá ôïõ ÷ñÞóôç. Ç äéáäéêáóßá áõôÞ åßíáé ðïëý ðéï áðïäïôéêÞ áðü ôï
CVSup, êáé åðéâáñýíåé ëéãüôåñï ôïõò
åîõðçñåôçôÝò ìáò, êáèþò åßíáé ìéá äéáäéêáóßá ôýðïõ
push áíôß ãéá pull.ÕðÜñ÷ïõí öõóéêÜ êÜðïéá óçìåßá ðïõ õóôåñåß. Áí áðü ëÜèïò äéáãñÜøåôå
êÜðïéá ôìÞìáôá ôïõ ðçãáßïõ óáò êþäéêá, ôï
CVSup èá áíé÷íåýóåé êáé èá äéïñèþóåé áõôüìáôá
ôç âëÜâç ãéá óáò. Ôï CTM äåí èá ôï êÜíåé
áõôü, êáé áí óâÞóåôå êÜðïéï ôìÞìá ôïõ äÝíôñïõ óáò (êáé äåí Ý÷åôå
áíôßãñáöï áóöáëåßáò) èá ðñÝðåé íá îåêéíÞóåôå áðü ôçí áñ÷Þ (áðü ôï ðéï
ðñüóöáôï CVS base delta) êáé íá ôï îáíáêôßóåôå áðü ôçí
áñ÷Þ ìå ôï CTM. Ìå ôï
Áíþíõìï CVS, ìðïñåßôå áðëþò íá äéáãñÜøåôå
ôá ðñïâëçìáôéêÜ áñ÷åßá êáé íá óõã÷ñïíßóåôå îáíÜ ôïí ðçãáßï óáò
êþäéêá.Ìåôáãëùôôßæïíôáò ôï Âáóéêü Óýóôçìá (world)Rebuilding world¸÷ïíôáò óõã÷ñïíßóåé ôï ôïðéêü óáò äÝíôñï ðçãáßïõ êþäéêá óå êÜðïéá
óõãêåêñéìÝíç Ýêäïóç ôïõ &os; (&os.stable;, &os.current;, ê.ï.ê.),
ìðïñåßôå Ýðåéôá íá ôï ÷ñçóéìïðïéÞóåôå ãéá íá ìåôáãëùôôßóåôå ôï
óýóôçìá óáò áðü ôçí áñ÷Þ.ÄçìéïõñãÞóôå ¸íá Áíôßãñáöï ÁóöáëåßáòÄåí ìðïñïýìå ðáñÜ íá ôïíßóïõìå ðüóï óçìáíôéêü åßíáé íá
äçìéïõñãÞóåôå Ýíá áíôßãñáöï áóöáëåßáò ôïõ óõóôÞìáôïò óáò
ðñéí îåêéíÞóåôå áõôÞ ôç äéáäéêáóßá. Áí êáé ç
ìåôáãëþôôéóç ôïõ âáóéêïý óõóôÞìáôïò åßíáé (üóï ôïõëÜ÷éóôïí áêïëïõèåßôå
áõôÝò ôéò ïäçãßåò) ìéá ó÷åôéêÜ áðëÞ äéáäéêáóßá, áíáìößâïëá èá õðÜñîïõí
êáé ðåñéðôþóåéò ðïõ ëÜèç äéêÜ óáò, Þ Üëëùí (óôï äÝíôñï ðçãáßïõ
êþäéêá), èá óáò ïäçãÞóïõí óå Ýíá óýóôçìá ðïõ äåí èá ìðïñåß íá
åêêéíÞóåé.Âåâáéùèåßôå üôé Ý÷åôå åíçìåñùìÝíï áíôßãñáöï áóöáëåßáò. Êáëü èá
åßíáé íá Ý÷åôå åðßóçò ðñü÷åéñç ìéá äéóêÝôá fixit Þ Ýíá CD åêêßíçóçò.
ºóùò íá ìçí ÷ñåéáóôåß ðïôÝ íá ôá ÷ñçóéìïðïéÞóåôå, áëëÜ êáëýôåñá íá
åßóôå áóöáëÞò ðáñÜ íá ôï ìåôáíïéþíåôå áñãüôåñá!Ãßíåôå ÓõíäñïìçôÞò óôç ÓùóôÞ Ëßóôá Çë. Ôá÷õäñïìåßïõmailing listÁðü ôç öýóç ôïõò, ïé êëÜäïé &os.stable; êáé &os.current;
âñßóêïíôáé óå óõíå÷Þ áíÜðôõîç. ¼óïé óõíåéóöÝñïõí
óôï &os; åßíáé áðëþò Üíèñùðïé, êáé ðåñéóôáóéáêÜ ëÜèç áðëþò
óõìâáßíïõí.ÏñéóìÝíåò öïñÝò ôá ëÜèç áõôÜ åßíáé ìÜëëïí áêßíäõíá, êáé ôï ìüíï
ðïõ êÜíïõí åßíáé íá åìöáíßæïõí ìåñéêÝò äéáãíùóôéêÝò ðñïåéäïðïéÞóåéò
óôï óýóôçìá óáò. ¹ ìðïñåß ç áëëáãÞ íá åßíáé êáôáóôñïöéêÞ, êáé íá
ïäçãÞóåé ôï óýóôçìá óáò óå áäõíáìßá åêêßíçóçò Þ áêüìá êáé íá
êáôáóôñÝøåé ôá óõóôÞìáôá áñ÷åßùí óáò (Þ êáé áêüìá ÷åéñüôåñåò
óõíÝðåéåò).Áí óõìâïýí ôÝôïéá ðñïâëÞìáôá, óýíôïìá èá åìöáíéóôåß Ýíá ìÞíõìá
ôýðïõ heads up óôéò ó÷åôéêÝò ëßóôåò ôá÷õäñïìåßïõ, ôï
ïðïßï èá åîçãåß ôï ðñüâëçìá êáé ðïéá óõóôÞìáôá åðçñåÜæåé. ¼ôáí ôï
ðñüâëçìá ëõèåß, èá ãßíåé ìéá áíôßóôïé÷ç all clear
áíáêïßíùóç.Áí ðñïóðáèåßôå íá áêïëïõèÞóåôå ôï &os.stable; Þ ôï &os.current;,
êáé äåí äéáâÜæåôå ôéò áíôßóôïé÷åò ëßóôåò &a.stable.name; êáé
&a.current.name;, øÜ÷íåôå ãéá ìðåëÜäåò.Ìçí ×ñçóéìïðïéÞóåôå ôçí åíôïëÞ
make worldÌåãÜëï ìÝñïò ôçò ðáëáéüôåñçò ôåêìçñßùóçò, óõíéóôÜ ôç ÷ñÞóç ôçò
åíôïëÞò make world. Áí ôçí ÷ñçóéìïðïéÞóåôå, èá
ðáñáëåéöèïýí ïñéóìÝíá óçìáíôéêÜ âÞìáôá ôçò äéáäéêáóßáò.
×ñçóéìïðïéÞóôå ôç ìüíï áí åßóôå áðüëõôá óßãïõñïé ãéá áõôü ðïõ êÜíåôå.
Ãéá ôéò ðåñéóóüôåñåò ðåñéðôþóåéò, ç åíôïëÞ
make world åßíáé ëáíèáóìÝíç, êáé áíôß ãéá áõôÞ
èá ðñÝðåé íá áêïëïõèÞóåôå ôç äéáäéêáóßá ðïõ ðåñéãñÜöïõìå
ðáñáêÜôù.Ï Êáíïíéêüò Ôñüðïò íá Åíçìåñþóåôå ôï Óýóôçìá óáòÐñéí åíçìåñþóåôå ôï óýóôçìá óáò, èá ðñÝðåé íá åëÝãîåôå ôï
/usr/src/UPDATING ãéá ôõ÷üí âÞìáôá ðïõ èá ðñÝðåé
íá åêôåëÝóåôå ðñéí ôçí åêêßíçóç ôçò ìåôáãëþôôéóçò. Ôá âÞìáôá áõôÜ
åîáñôþíôáé áðü ôçí Ýêäïóç ôïõ ðçãáßïõ êþäéêá ðïõ ðñüêåéôáé íá
÷ñçóéìïðïéÞóåôå. ¸ðåéôá, áêïëïõèÞóôå ôç äéáäéêáóßá ðïõ ðåñéãñÜöåôáé
óôéò åðüìåíåò ðáñáãñÜöïõò.Ç äéáäéêáóßá áíáâÜèìéóçò ç ïðïßá ðåñéãñÜöåôáé åäþ âáóßæåôáé óôçí
õðüèåóç üôé Ý÷åôå Þäç åãêáôáóôÞóåé ìéá ðáëéüôåñç Ýêäïóç ôïõ &os;, ìå
ìéá ðáëéÜ Ýêäïóç ôïõ ìåôáãëùôôéóôÞ, Ýíá ðáëéü ðõñÞíá,
ðáëéÜ åñãáëåßá ÷ñÞóôç êáé áñ÷åßá ñõèìßóåùí. Åñãáëåßá
÷ñÞóôç èåùñïýíôáé ôá âáóéêÜ åêôåëÝóéìá, ïé âéâëéïèÞêåò êáé ôá áñ÷åßá
ðñïãñáììáôéóìïý. Ï ìåôáãëùôôéóôÞò åßíáé êé áõôüò ìÝñïò ôùí
åñãáëåßùí ÷ñÞóôç óôï &os;, áëëÜ ÷ñåéÜæåôáé åéäéêÞ
ìåôá÷åßñéóç êáôÜ ôç äéáäéêáóßá áíáâÜèìéóçò.ÕðïèÝôïõìå, åðßóçò, üôé Ý÷åôå Þäç êáôåâÜóåé ìéá åíçìåñùìÝíç Ýêäïóç
áðü ôïí ðçãáßï êþäéêá ôïõ óõóôÞìáôïò. Áí ï ðçãáßïò êþäéêáò óôï
óõãêåêñéìÝíï óýóôçìá åßíáé áðü ðáëéüôåñç Ýêäïóç, äåßôå
ôï ãéá ëåðôïìåñåßò ïäçãßåò ó÷åôéêÜ ìå ôï ðùò
íá óõã÷ñïíßóåôå ôïí ðçãáßï êþäéêá óå ìéá íåüôåñç Ýêäïóç.Ç áíáâÜèìéóç ôïõ &os; áðü ôïí ðçãáßï êþäéêÜ ôïõ öáßíåôáé íá åßíáé
ðïëý áðëÞ äéáäéêáóßá. Óôçí ðñáãìáôéêüôçôá, Ý÷åé êÜðïéåò
éäéáéôåñüôçôåò. Ìå ôá ÷ñüíéá, êáèþò ïé åîáñôÞóåéò ìåôáîý ôùí âçìÜôùí
ôçò áíáâÜèìéóçò áíáêáëýðôïíôáé Þ áíáëýïíôáé êáëýôåñá, ïé
ðñïãñáììáôéóôÝò ôïõ &os; áëëÜæïõí óéãÜ-óéãÜ áõôÞ ôç äéáäéêáóßá. Ïé
ðáñáêÜôù ðáñÜãñáöïé ðåñéãñÜöïõí ôç ëïãéêÞ ìå ôçí ïðïßá Ý÷åé ó÷åäéáóèåß
ç ðñïôåéíüìåíç äéáäéêáóßá áíáâÜèìéóçò.Ìéá åðéôõ÷Þò äéáäéêáóßá áíáâÜèìéóçò ðñÝðåé íá êáëýøåé ôïõëÜ÷éóôïí
ôéò äýï ðéï âáóéêÝò éäéáéôåñüôçôåò ìéáò áíáâÜèìéóçò áðü ðçãáßï
êþäéêá:Ï ðáëéüò ìåôáãëùôôéóôÞò óõóôÞìáôïò ìðïñåß íá åßíáé áêáôÜëëçëïò
ãéá ìåôáãëþôôéóç ôïõ íÝïõ ðõñÞíá. (Êáé ïé ìåôáãëùôôéóôÝò Ý÷ïõí
ïñéóìÝíåò öïñÝò ðñïâëÞìáôá, üðùò êÜèå Üëëï ëïãéóìéêü.) Ïðüôå ï
íÝïò ðõñÞíáò ðñÝðåé íá ìåôáãëùôôéóôåß ìå ôï íÝï ìåôáãëùôôéóôÞ.
Ðéï óõãêåêñéìÝíá, ï íÝïò ìåôáãëùôôéóôÞò ðñÝðåé íá áíáâáèìéóôåß
ðñéí áðü ôï íÝï ðõñÞíá. Áõôü äå óçìáßíåé âÝâáéá üôé áõôüò ï íÝïò
ìåôáãëùôôéóôÞò ðñÝðåé íá åãêáôáóôáèåß ðñéí
ìåôáãëùôôéóôåß ï íÝïò ðõñÞíáò.Ôá íÝá åñãáëåßá ÷ñÞóôç áðü ôï âáóéêü óýóôçìá ôïõ &os; ìðïñåß
íá åîáñôþíôáé áðü ôïí ôñüðï ëåéôïõñãßáò ôïõ íÝïõ ðõñÞíá. Ïðüôå ï
íÝïò ðõñÞíáò ðñÝðåé íá åãêáôáóôáèåß ðñéí áðü ôï íÝï âáóéêü
óýóôçìá.ÁõôÜ ôá äýï óçìåßá åßíáé ïé âáóéêïß ëüãïé ãéá ôïõò ïðïßïõò
ðñïôåßíïíôáé ôá êåíôñéêÜ âÞìáôá ìéáò áíáâÜèìéóçò, ôá
âÞìáôá buildworld,
buildkernel,
installkernel,
êáé installworld. Óôéò åðüìåíåò ðáñáãñÜöïõò
èá ðåñéãñÜøïõìå ðéï áíáëõôéêÜ áõôÜ ôá âÞìáôá. ÕðÜñ÷ïõí êé Üëëïé ëüãïé
üìùò ãéá ôïõò ïðïßïõò ÷ñåéÜæåôáé ðñïóï÷Þ üôáí êÜíåôå ìéá ôÝôïéá
áíáâÜèìéóç. Ìåñéêïß áðü áõôïýò åßíáé ïé åîÞò:Ôá ðáëéÜ åñãáëåßá ôïõ âáóéêïý óõóôÞìáôïò ìðïñåß íá ìçí ôñÝ÷ïõí
óùóôÜ ìå ôï íÝï ðõñÞíá. Ãé áõôü ðñÝðåé íá åãêáôáóôáèåß ôï
åíçìåñùìÝíï âáóéêü óýóôçìá áìÝóùò ìåôÜ ôçí åãêáôÜóôáóç ôïõ íÝïõ
ðõñÞíá.ÌåñéêÝò öïñÝò ÷ñåéÜæïíôáé áëëáãÝò óôá áñ÷åßá ñõèìßóåùí ðñéí
åãêáôáóôáèåß ôï íÝï âáóéêü óýóôçìá. ¶ëëåò öïñÝò ç åãêáôÜóôáóç
üëùí ôùí áñ÷åßùí ñõèìßóåùí ìðïñåß íá äçìéïõñãÞóåé ðñïâëÞìáôá óôçí
åãêáôÜóôáóç. Ãé áõôü Ý÷ïõìå ÷ùñßóåé ôçí åíçìÝñùóç ôùí áñ÷åßùí
ñõèìßóåùí óå äýï îå÷ùñéóôÜ âÞìáôá.Óôçí ðëåéïøçößá ôùí ðåñéðôþóåùí ç äéáäéêáóßá åãêáôÜóôáóçò
áíôéêáèéóôÜ Þ ðñïóèÝôåé áñ÷åßá ôïõ óõóôÞìáôïò· äå óâÞíåé êáíÝíá
õðÜñ÷ïí áñ÷åßï. Óå ìåñéêÝò ðåñéðôþóåéò áõôü ìðïñåß íá
äçìéïõñãÞóåé ðñïâëÞìáôá. ¼ôáí õðÜñ÷åé ôÝôïéá ðåñßðôùóç, ç
äéáäéêáóßá åãêáôÜóôáóçò ôõðþíåé åíçìåñùôéêÜ ìçíýìáôá ãéá ôá áñ÷åßá
ôá ïðïßá ðñÝðåé íá óâçóôïýí ÷åéñïêßíçôá. Áõôü ôï âÞìá ìðïñåß íá
áõôïìáôïðïéçèåß óôï ìÝëëïí.¸÷ïíôáò üëåò áõôÝò ôéò éäéáéôåñüôçôåò ìéáò áíáâÜèìéóçò áðü ðçãáßï
êþäéêá, êáôáëÞîáìå óôçí ðáñáêÜôù äéáäéêáóßá áíáâÜèìéóçò. ÏñéóìÝíåò
öïñÝò ìðïñåß íá ÷ñåéÜæåôáé íá ðñïóèÝóåôå êÜðïéá âÞìáôá óå áõôÞ ôç
äéáäéêáóßá. Ôá âáóéêÜ âÞìáôá üìùò ðáñáìÝíïõí ôá ßäéá, êé åßíáé ôá
åîÞò:make buildworldÁõôü ôï âÞìá ìåôáãëùôôßæåé ðñþôá ìéá åíçìåñùìÝíç Ýêäïóç ôïõ
ßäéïõ ôïõ ìåôáãëùôôéóôÞ óõóôÞìáôïò êáé ìåñéêþí áðáñáßôçôùí
åñãáëåßùí. ¾óôåñá, ÷ñçóéìïðïéþíôáò ôï íÝï ìåôáãëùôôéóôÞ,
ðñïåôïéìÜæåé ìéá íÝá Ýêäïóç üëïõ ôïõ âáóéêïý óõóôÞìáôïò ôïõ &os;.
Ôá åíçìåñùìÝíá åêôåëÝóéìá, âéâëéïèÞêåò êáé áñ÷åßá ðñïãñáììáôéóìïý
êáôáëÞãïõí óôïí
êáôÜëïãï /usr/obj.make buildkernelÓå áíôßèåóç ìå ðáëéüôåñåò äéáäéêáóßåò áíáâÜèìéóçò (ïé ïðïßåò
êáëïýóáí ÷åéñïêßíçôá ôï &man.config.8; êáé ôï &man.make.1;) áõôü
ôï âÞìá ìåôáãëùôôßæåé ôïí ðõñÞíá ôïõ &os; ÷ñçóéìïðïéþíôáò ôïí
åíçìåñùìÝíï ìåôáãëùôôéóôÞ óõóôÞìáôïò áðü ôïí
êáôÜëïãï /usr/obj. Áõôü
óáò ðñïóôáôåýåé áðü ðñïâëÞìáôá áóõìâáôüôçôáò ìåôáîý ôïõ
ìåôáãëùôôéóôÞ êáé ôïõ ðõñÞíá.make installkernelÅãêáôÜóôáóç ôïõ íÝïõ ðõñÞíá êáé ôùí áñèñùìÜôùí ôïõ óôï äßóêï
ôïõ óõóôÞìáôïò. ¸ôóé ìðïñåß ðëÝïí ôï óýóôçìá íá îåêéíÞóåé ìå ôï
íÝï, åíçìåñùìÝíï ðõñÞíá.Åêêßíçóç óå ëåéôïõñãßá single user.Ç ëåéôïõñãßá single user åëá÷éóôïðïéåß ôçí ðéèáíüôçôá íá Ý÷åôå
ðñïâëÞìáôá åðåéäÞ áíáâáèìßóáôå êÜðïéï ðñüãñáììá ðïõ ôñÝ÷åé Þäç.
Åßíáé åðßóçò ðéï áóöáëÞò, áöïý äå ÷ñåéÜæåôáé íá ôñÝîåôå ôéò
åöáñìïãÝò ôïõ ðáëéïý âáóéêïý óõóôÞìáôïò ìå ôï íÝï ðõñÞíá.mergemaster Áõôü ôï âÞìá åíçìåñþíåé ôá áðïëýôùò âáóéêÜ áñ÷åßá ñõèìßóåùí
ôïõ &os;, ãéá íá ìðïñÝóåôå íá åãêáôáóôÞóåôå óùóôÜ ôï íÝï âáóéêü
óýóôçìá. Åíçìåñþíåé, ãéá ðáñÜäåéãìá, ôç âÜóç ÷ñçóôþí êáé ïìÜäùí
÷ñçóôþí ôïõ &os;. ÊÜèå öïñÜ ðïõ ðñïóôßèåôáé Ýíáò íÝïò ÷ñÞóôçò
óõóôÞìáôïò Þ ìéá íÝá ïìÜäá ÷ñçóôþí, ôï
âÞìá installworld ôçò áíáâÜèìéóçò èåùñåß
üôé Ý÷åôå Þäç ñõèìßóåé ôïõò íÝïõò ÷ñÞóôåò Þ ôéò íÝåò ïìÜäåò. Áõôü
áêñéâþò êÜíåé óå áõôü ôï óçìåßï ôï åñãáëåßï
&man.mergemaster.8;.make installworldÔï åðüìåíï âÞìá åßíáé íá åãêáôáóôÞóåôå ôï åíçìåñùìÝíï âáóéêü
óýóôçìá áðü ôïí
êáôÜëïãï /usr/obj. ÌåôÜ
áðü áõôü Ý÷åôå ðëÝïí Ýíá íÝï ðõñÞíá êáé Ýíá åíçìåñùìÝíï âáóéêü
óýóôçìá, ôï ïðïßï ôáéñéÜæåé ìå ôïí íÝï ðõñÞíá.mergemaster¸íá áðü ôá ôåëåõôáßá âÞìáôá åßíáé ç áíáâÜèìéóç ôùí áñ÷åßùí
ñõèìßóåùí ôïõ óõóôÞìáôïò. Ôï åñãáëåßï &man.mergemaster.8; ìðïñåß
íá óáò âïçèÞóåé óå áõôü ôï âÞìá, áöïý åíçìåñþíåé ôá áñ÷åßá
ñõèìßóåùí êñáôþíôáò êáé ïðïéåóäÞðïôå ôïðéêÝò áëëáãÝò Ý÷åôå êÜíåé
óôï óýóôçìÜ óáò.ÅðáíåêêéíÞóôå ôï óýóôçìá.Ìéá ôåëåõôáßá åðáíåêêßíçóç ôïõ óõóôÞìáôïò óáò åîáóöáëßæåé üôé
ôï óýóôçìá îåêéíÜåé ìå ôï íÝï ðõñÞíá, ôï åíçìåñùìÝíï âáóéêü
óýóôçìá êáé ôá êáéíïýñéá áñ÷åßá ñõèìßóåùí.Áí ç áíáâÜèìéóç ðïõ êÜíåôå åßíáé áðü ìéá Ýêäïóç ôïõ &os; óå ìéá
ðéï êáéíïýñéá Ýêäïóç ôïõ ßäéïõ êëÜäïõ áíÜðôõîçò, ð.÷. áðü 7.0 óå 7.1,
ôüôå ìåñéêÜ áðü ôá âÞìáôá áõôÞ ôçò äéáäéêáóßáò ìðïñåß íá ìç
÷ñåéÜæïíôáé áöïý åßíáé ëéãüôåñï ðéèáíü íá óõíáíôÞóåôå áóõìâáôüôçôåò
ìåôáîý ôïõ ìåôáãëùôôéóôÞ óõóôÞìáôïò, ôïõ ðõñÞíá, ôïõ âáóéêïý
óõóôÞìáôïò êáé ôùí áñ÷åßùí ñõèìßóåùí. Ç áíáâÜèìéóç óå ôÝôïéåò
ðåñéðôþóåéò, ìåôáîý äýï minor åêäüóåùí ôïõ &os;, ßóùò ìðïñåß íá ãßíåé
êáé ìå ôçí ðáëéüôåñç äéáäéêáóßá:
ôñÝ÷ïíôáòmake world êáé
ýóôåñá ìåôáãëùôôßæïíôáò êáé óôÞíïíôáò Ýíá íÝï ðõñÞíá.¼ôáí üìùò áíáâáèìßóåôå ôï &os; ìåôáîý major åêäüóåùí, êáëýôåñá íá
÷ñçóéìïðïéÞóåôå ôç äéáäéêáóßá ðïõ ðåñéãñÜöïõìå åäþ. Áëëéþò ìðïñåß íá
áíôéìåôùðßóåôå ðñïâëÞìáôá åßôå êáôÜ ôç äéÜñêåéá ôçò áíáâÜèìéóçò Þ áöïý
Ý÷åé ðëÝïí ïëïêëçñùèåß.ÊÜðïéåò áðü ôéò áíáâáèìßóåéò (ð.÷. áðü ìéá Ýêäïóç
4.X óå 5.0) ìðïñåß íá áðáéôïýí ìåñéêÜ
÷åéñïêßíçôá âÞìáôá (üðùò ôï íá ìåôáêéíÞóåôå Þ íá óâÞóåôå óõãêåêñéìÝíá
áñ÷åßá ðñéí ôï âÞìá installworld). Ðñéí áðü
êÜèå áíáâÜèìéóç äéáâÜóôå ðñïóåêôéêÜ ôéò ïäçãßåò óôï
áñ÷åßï /usr/src/UPDATING· åéäéêÜ ôéò ïäçãßåò óôï
ôÝëïò ôïõ áñ÷åßïõ, ïé ïðïßåò ðåñéãñÜöïõí áíáëõôéêÜ ôçí ðñïôåéíüìåíç
äéáäéêáóßá áíáâÜèìéóçò.ÁõôÞ ç äéáäéêáóßá áíáâÜèìéóçò åîåëßóóåôáé êáé äéïñèþíåôáé êáèþò ïé
ðñïãñáììáôéóôÝò ôïõ &os; áíáêáëýðôïõí êáéíïýñéåò åîáñôÞóåéò ìåôáîý ôùí
óõóôáôéêþí ôïõ óõóôÞìáôïò Þ êÜíïõí äéïñèþóåéò ãéá íá áðïöýãïõí
áóõìâáôüôçôåò ìåôáîý ôùí äéáöïñåôéêþí õðïóõóôçìÜôùí. Åëðßæïõìå üôé ôá
êåíôñéêÜ âÞìáôá ôçò äéáäéêáóßáò ðïõ ðåñéãñÜöåôáé åäþ äå èá áëëÜîïõí
ðïëý ãéá áñêåôü êáéñü ðëÝïí.Áíáêåöáëáéþíïíôáò üëá ôá âÞìáôá ôá ïðïßá ðåñéãñÜøáìå
ðáñáðÜíù, ç ðñïôåéíüìåíç äéáäéêáóßá áíáâÜèìéóçò ôïõ &os; áðü ôïí
ðçãáßï êþäéêá ôïõ óõóôÞìáôïò åßíáé:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowÕðÜñ÷ïõí êÜðïéåò ìÜëëïí óðÜíéåò ðåñéðôþóåéò, ðïõ áðáéôåßôáé
ìéá åðéðëÝïí åêôÝëåóç ôïõ mergemaster -p ðñéí
ôï âÞìá buildworld. Ïé ðåñéðôþóåéò áõôÝò
ðåñéãñÜöïíôáé óôï UPDATING. Óå ãåíéêÝò
ãñáììÝò ðÜíôùò, ìðïñåßôå ìå áóöÜëåéá íá ðáñáëåßøåôå áõôü ôï âÞìá,
áí äåí áíáâáèìßæåôå ôï óýóôçìá óáò ìåôáîý ðïëëáðëþí åêäüóåùí ôïõ
&os;.ÌåôÜ ôçí åðéôõ÷Þ ïëïêëÞñùóç ôïõ
installkernel, èá ðñÝðåé íá åðáíåêêéíÞóåôå
óå êáôÜóôáóç åíüò ÷ñÞóôç (ð.÷. ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ
boot -s óôçí ðñïôñïðÞ ôïõ öïñôùôÞ åêêßíçóçò).
¸ðåéôá åêôåëÝóôå:&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; adjkerntz -i
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootÄéáâÜóôå ôéò ÅðéðëÝïí ÅîçãÞóåéòÇ äéáäéêáóßá ðïõ ðåñéãñÜøáìå ðáñáðÜíù åßíáé ìéá áðëÞ ðåñßëçøç
ãéá íá óáò âïçèÞóåé íá îåêéíÞóåôå. Èá ðñÝðåé ùóôüóï íá äéáâÜóåôå
ôéò ðáñáêÜôù åíüôçôåò ãéá íá êáôáíïÞóåôå ðëÞñùò êÜèå âÞìá, åéäéêÜ
áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå äéêü óáò ðñïóáñìïóìÝíï ðõñÞíá.ÄéáâÜóôå ôï /usr/src/UPDATINGÐñéí êÜíåôå ïôéäÞðïôå Üëëï, äéáâÜóôå ôï
/usr/src/UPDATING (Þ ôï áíôßóôïé÷ï áñ÷åßï, áí
Ý÷åôå áðïèçêåýóåé ôïí ðçãáßï êþäéêá óå Üëëï êáôÜëïãï). Ôï áñ÷åßï
áõôü ðåñéÝ÷åé óçìáíôéêÝò ðëçñïöïñßåò ó÷åôéêÜ ìå ðñïâëÞìáôá ðïõ ìðïñåß
íá óõíáíôÞóåôå Þ ßóùò íá êáèïñßæåé ôç óåéñÜ ìå ôçí ïðïßá ðñÝðåé íá
åêôåëåóôïýí êÜðïéåò åíôïëÝò. Áí ôï áñ÷åßï
UPDATING Ýñ÷åôáé óå óýãêñïõóç ìå êÜôé ðïõ
äéáâÜóáôå åäþ, ðñïôåñáéüôçôá Ý÷åé ôï áñ÷åßï
UPDATING.Ç áíÜãíùóç ôïõ áñ÷åßïõ UPDATING äåí åßíáé
áðïäåêôü õðïêáôÜóôáôï ôçò óõíäñïìÞò óôç óùóôÞ ëßóôá çëåêôñïíéêïý
ôá÷õäñïìåßïõ, üðùò ðåñéãñÜøáìå ðñïçãïõìÝíùò. Ïé äýï áðáéôÞóåéò
åßíáé óõìðëçñùìáôéêÝò, äåí áëëçëïáíáéñïýíôáé.ÅëÝãîôå ôï /etc/make.confmake.confÅîåôÜóôå ôá áñ÷åßá
/usr/share/examples/etc/make.conf
êáé
/etc/make.conf. Ôï ðñþôï ðåñéÝ÷åé êÜðïéåò
ðñïåðéëåãìÝíåò ìåôáâëçôÝò (defines), ïé ðåñéóóüôåñåò áðü ôéò ïðïßåò
åßíáé ùò ó÷üëéá. Ãéá íá ôá ÷ñçóéìïðïéÞóåôå üôáí ìåôáãëùôôßæåôå ôï
óýóôçìá óáò, ðñïóèÝóôå ôá óôï /etc/make.conf.
Íá Ý÷åôå õðüøç óáò, ðùò ïôéäÞðïôå ðñïóèÝôåôå óôï áñ÷åßï
/etc/make.conf ÷ñçóéìïðïéåßôå åðßóçò êÜèå öïñÜ
ðïõ åêôåëåßôå ôçí åíôïëÞ make, Ýôóé åßíáé ãåíéêÜ
êáëÞ éäÝá íá âÜëåôå ôéìÝò ðïõ åßíáé ëïãéêÝò ãéá ôï
óýóôçìá óáò.¸íáò ôõðéêüò ÷ñÞóôçò èá èÝëåé ðéèáíþò íá áíôéãñÜøåé ôéò ãñáììÝò
CFLAGS êáé
NO_PROFILE áðü ôï áñ÷åßï
/usr/share/examples/etc/make.conf
óôï
/etc/make.conf áöáéñþíôáò ôáõôü÷ñïíá êáé ôï
óýìâïëï ôïõ ó÷ïëßïõ.ÅîåôÜóôå êáé ôéò Üëëåò ìåôáâëçôÝò (COPTFLAGS,
NOPORTDOCS ê.ï.ê.) êáé áðïöáóßóôå áí ó÷åôßæïíôáé
ìå ôï åðéèõìçôü ãéá óáò áðïôÝëåóìá.Åíçìåñþóôå ôá Áñ÷åßá óôï /etcÏ êáôÜëïãïò /etc ðåñéÝ÷åé ìåãÜëï ìÝñïò ôùí
ðëçñïöïñéþí ñýèìéóçò ôïõ óõóôÞìáôïò óáò, üðùò åðßóçò êáé scripts ðïõ
åêôåëïýíôáé êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò. ÌåñéêÜ áðü ôá scripts
áõôÜ áëëÜæïõí áðü Ýêäïóç óå Ýêäïóç ôïõ &os;.ÏñéóìÝíá áðü ôá áñ÷åßá ñõèìßóåùí ÷ñçóéìïðïéïýíôáé åðßóçò êáôÜ ôçí
êáèçìåñéíÞ ÷ñÞóç ôïõ óõóôÞìáôïò. Ôï /etc/group
åßíáé Ýíá áðü áõôÜ.¸÷ïõí õðÜñîåé ðåñéðôþóåéò óôï ðáñåëèüí, üðïõ ôï
make installworld áíÝìåíå áðü ðñéí ôçí ýðáñîç
óõãêåêñéìÝíùí ïíïìÜôùí ÷ñçóôþí (usernames) Þ ïìÜäùí (groups). ÊáôÜ
ôç äéáäéêáóßá ôçò áíáâÜèìéóçò Þôáí áñêåôÜ ðéèáíü áõôïß ïé ÷ñÞóôåò Þ
ïìÜäåò íá ìçí õðÞñ÷áí. Áõôü äçìéïõñãïýóå ðñïâëÞìáôá óôçí
äéáäéêáóßá. Óå êÜðïéåò ðåñéðôþóåéò, ôï
make buildworld èá åëÝãîåé áí õðÜñ÷ïõí áõôïß ïé
÷ñÞóôåò Þ ïìÜäåò.Ìéá ôÝôïéá ðåñßðôùóç ðáñïõóéÜóôçêå üôáí ðñïóôÝèçêå ï ÷ñÞóôçò
smmsp. Ç äéáäéêáóßá áíáâÜèìéóçò áðïôýã÷áíå óå
ðïëëïýò ÷ñÞóôåò, ôç óôéãìÞ ðïõ ôï &man.mtree.8; ðñïóðáèïýóå íá
äçìéïõñãÞóåé ôïí êáôÜëïãï
/var/spool/clientmqueue.Ç ëýóç åßíáé íá åêôåëÝóåôå ôï &man.mergemaster.8; óå êáôÜóôáóç
ðñï-åãêáôÜóôáóçò, äßíïíôáò ôçí åðéëïãÞ . ÁõôÞ
èá óõãêñßíåé ìüíï ôá áñ÷åßá ðïõ åßíáé áðáñáßôçôá ãéá ôçí åðéôõ÷ßá
åêôÝëåóçò ôïõ buildworld Þ ôïõ
installworld.&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pÁí áéóèÜíåóôå éäéáßôåñá ðáñáíïúêüò, ìðïñåßôå íá åëÝãîåôå ôï
óýóôçìá óáò ãéá íá äåßôå ðïéá áñ÷åßá áíÞêïõí óôçí ïìÜäá ðïõ
ìåôïíïìÜæåôå Þ äéáãñÜöåôå:&prompt.root; find / -group GID -printÇ ðáñáðÜíù åíôïëÞ èá óáò äåßîåé üëá ôá áñ÷åßá ôá ïðïßá áíÞêïõí
óôçí ïìÜäá GID (ìðïñåßôå íá äþóåôå üíïìá
Þ áñéèìçôéêü áíáãíùñéóôéêü ôçò ïìÜäáò).Ìåôáâåßôå óå ÊáôÜóôáóç Åíüò ×ñÞóôçsingle-user modeºóùò ðñïôéìÜôå íá ìåôáãëùôôßóåôå ôï óýóôçìá óå êáôÜóôáóç åíüò
÷ñÞóôç. Åêôüò áðü ôï ðñïöáíÝò ðëåïíÝêôçìá ôçò åëáöñÜ ìåãáëýôåñçò
ôá÷ýôçôáò, ç åðáíåãêáôÜóôáóç ôïõ óõóôÞìáôïò èá åðçñåÜóåé ðïëëÜ
óçìáíôéêÜ áñ÷åßá ôïõ óõóôÞìáôïò, üëá ôá åêôåëÝóéìá áñ÷åßá ôïõ âáóéêïý
óõóôÞìáôïò, ôéò âéâëéïèÞêåò, ôá áñ÷åßá include ê.á. Áí ôá áëëÜîåôå
áõôÜ óå Ýíá óýóôçìá ðïõ âñßóêåôáé óå êáíïíéêÞ ëåéôïõñãßá (êáé åéäéêÜ
áí õðÜñ÷ïõí åíåñãïß ÷ñÞóôåò ôçí äåäïìÝíç óôéãìÞ), øÜ÷íåôå ãéá
ìðåëÜäåò.multi-user modeÌéá Üëëç ìÝèïäïò åßíáé íá ìåôáãëùôôßóåôå ôï óýóôçìá óå êáôÜóôáóç
êáíïíéêÞò ëåéôïõñãßáò, áëëÜ íá ìåôáâåßôå óå êáôÜóôáóç åíüò ÷ñÞóôç ãéá
ôçí åãêáôÜóôáóç. Áí èÝëåôå íá ôï êÜíåôå ìå áõôü ôïí ôñüðï, áðëþò
ìçí åêôåëÝóåôå ôá áêüëïõèá âÞìáôá ìÝ÷ñé ôï ôÝëïò ôçò ìåôáãëþôôéóçò.
Ìðïñåßôå íá áíáâÜëëåôå ôç ìåôÜâáóç óå êáôÜóôáóç åíüò ÷ñÞóôç ìÝ÷ñé
íá åßóôå Ýôïéìïé ãéá ôï installkernel Þ
installworld.Ùò õðåñ÷ñÞóôçò ìðïñåßôå íá åêôåëÝóåôå:&prompt.root; shutdown nowóå Ýíá óýóôçìá óå êáíïíéêÞ ëåéôïõñãßá ãéá íá ìåôáâåßôå óå
êáôÜóôáóç åíüò ÷ñÞóôç.ÅíáëëáêôéêÜ, åðáíåêêéíÞóôå ôï óýóôçìá êáé óôçí ðñïôñïðÞ ôïõ
öïñôùôÞ åêêßíçóçò, åðéëÝîôå single user. Ôï óýóôçìá
èá îåêéíÞóåé óå êáôÜóôáóç åíüò ÷ñÞóôç. Óôçí ðñïôñïðÞ ôçò ãñáììÞò
åíôïëþí èá ðñÝðåé íá ãñÜøåôå:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aÈá ãßíåé Ýëåã÷ïò óôá óõóôÞìáôá áñ÷åßùí, êáé ðñïóÜñôçóç ôïõ
/ ìå äõíáôüôçôá áíÜãíùóçò/åããñáöÞò. ¸ðåéôá èá
ðñïóáñôçèïýí üëá ôá Üëëá óõóôÞìáôá áñ÷åßùí UFS ôá ïðïßá áíáöÝñïíôáé
óôï /etc/fstab, êáé èá åíåñãïðïéçèåß ôï
swap.Áí ôï CMOS ñïëüé ôïõ õðïëïãéóôÞ óáò åßíáé ñõèìéóìÝíï óå
ôïðéêÞ þñá êáé ü÷é óå GMT (áõôü åßíáé áëÞèåéá áí ç Ýîïäïò ôçò
åíôïëÞò &man.date.1; äåí äåß÷íåé óùóôÞ çìåñïìçíßá êáé þñá), ßóùò
÷ñåéáóôåß íá åêôåëÝóåôå åðßóçò ôçí ðáñáêÜôù åíôïëÞ:&prompt.root; adjkerntz -iÌå áõôü ôïí ôñüðï èá âåâáéùèåßôå üôé ïé ôïðéêÝò óáò ñõèìßóåéò
þñáò Ý÷ïõí ñõèìéóôåß óùóôÜ. ÄéáöïñåôéêÜ, ìðïñåß íá óõíáíôÞóåôå
ðñïâëÞìáôá áñãüôåñá.ÄéáãñÜøôå ôï /usr/objÊáèþò ãßíåôáé ç åðáíáìåôáãëþôôéóç, ôìÞìáôá ôïõ óõóôÞìáôïò
ôïðïèåôïýíôáé áðü ðñïåðéëïãÞ óå õðïêáôáëüãïõò ôïõ
/usr/obj. Ïé õðïêáôÜëïãïé áõôïß áíôéãñÜöïõí ôç
äïìÞ ðïõ áêïëïõèåßôáé óôï /usr/src.Ìðïñåßôå íá åðéôá÷ýíåôå ôç äéáäéêáóßá ôïõ
make buildworld êáé åðßóçò íá ãëõôþóåôå áðü êÜðïéá
ðéèáíÜ ðñïâëÞìáôá, áí äéáãñÜøåôå êáé áõôü ôïí êáôÜëïãï.ÊÜðïéá áñ÷åßá óå õðïêáôáëüãïõò ôïõ /usr/obj
ìðïñåß íá Ý÷ïõí ÷áñáêôçñéóôåß ùò immutable ìÝóù ôïõ áíôßóôïé÷ïõ flag
(ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò äåßôå ôï &man.chflags.1;). Ðñéí
äéáãñÜøåôå áõôÜ ôá áñ÷åßá, èá ðñÝðåé ðñþôá íá êáôáñãÞóåôå áõôü ôï
flag.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Åðáíáìåôáãëùôôßóôå ôï Âáóéêü ÓýóôçìáÁðïèçêåýóôå ôçí ¸îïäïÊáèþò åêôåëåßôáé ç &man.make.1;, åßíáé êáëÞ éäÝá ç Ýîïäïò ôçò
íá áðïèçêåýåôáé óå êÜðïéï Üëëï áñ÷åßï. Áí êÜôé ðÜåé óôñáâÜ, èá
Ý÷åôå Ýíá áíôßãñáöï ôïõ ìçíýìáôïò ëÜèïõò. Áí êáé áõôü ßóùò äåí óáò
âïçèÞóåé íá âñåßôå ôé ðÞãå óôñáâÜ, ìðïñåß íá äéåõêïëýíåé Üëëïõò áí
óôåßëåôå ôï ìÞíõìá óáò óå ìéá áðü ôéò ëßóôåò çëåêôñïíéêïý
ôá÷õäñïìåßïõ ôïõ &os;.Ï åõêïëüôåñïò ôñüðïò ãéá íá ãßíåé áõôü, åßíáé ÷ñçóéìïðïéþíôáò
ôçí åíôïëÞ &man.script.1; ìå ìéá ðáñÜìåôñï ðïõ íá êáèïñßæåé ôï üíïìá
ôïõ áñ÷åßïõ óôï ïðïßï èá áðïèçêåõôåß ç Ýîïäïò. Èá ðñÝðåé íá
ôï åêôåëÝóåôå áìÝóùò ðñéí îåêéíÞóåôå ôçí ìåôáãëþôôéóç ôïõ âáóéêïý
óõóôÞìáôïò, êáé íá ãñÜøåôå exit ìüëéò
ç äéáäéêáóßá ïëïêëçñùèåß.&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… ìåôáãëþôôéóç, ìåôáãëþôôéóç, ìåôáãëþôôéóç …
&prompt.root; exit
Script done, …Áí áðïöáóßóåôå íá áðïèçêåýóåôå ôçí Ýîïäï,
ìç ÷ñçóéìïðïéÞóåôå ãéá áõôü ôï óêïðü ôïí
êáôÜëïãï /tmp. Ôá ðåñéå÷üìåíá áõôïý ôïõ
êáôáëüãïõ ðéèáíþò íá äéáãñáöïýí ôçí åðüìåíç öïñÜ ðïõ èá åêêéíÞóåôå
ôï óýóôçìá óáò. ¸íáò êáëýôåñïò êáôÜëïãïò ãéá ôçí áðïèÞêåõóç ôïõ
åßíáé ï /var/tmp (üðùò óôï ðñïçãïýìåíï
ðáñÜäåéãìá) Þ ï ðñïóùðéêüò êáôÜëïãïò ôïõ
root.Ìåôáãëùôôßóôå ôï Âáóéêü ÓýóôçìáÈá ðñÝðåé íá âñßóêåóôå óôïí êáôÜëïãï
/usr/src:&prompt.root; cd /usr/src(åêôüò áí öõóéêÜ Ý÷åôå áðïèçêåýóåé ôïí ðçãáßï êþäéêá óå êÜðïéï
Üëëï êáôÜëïãï, ïðüôå áðëþò ìåôáêéíçèåßôå óå áõôüí).makeÃéá íá åðáíáìåôáãëùôôßóåôå ôï âáóéêü óýóôçìá, ÷ñçóéìïðïéÞóôå
ôçí åíôïëÞ &man.make.1;. Ç åíôïëÞ áõôÞ äéáâÜæåé ôéò ó÷åôéêÝò
ïäçãßåò áðü ôï áñ÷åßï Makefile, ôï ïðïßï
ðåñéãñÜöåé ìå ðïéï ôñüðï ðñÝðåé íá ìåôáãëùôôéóôïýí ôá ðñïãñÜììáôá
áðü ôá ïðïßá áðïôåëåßôáé ôï &os;, ôç óåéñÜ ìå ôçí ïðïßá ðñÝðåé íá
ãßíåé ç ìåôáãëþôôéóç ê.ï.ê.Ç ãåíéêÞ ìïñöÞ ôçò åíôïëÞò ðïõ èá ðëçêôñïëïãÞóåôå åßíáé ç
ðáñáêÜôù:&prompt.root; make -x -DVARIABLEtargetÓôï ðáñÜäåéãìá áõôü, ôï
áíôéðñïóùðåýåé ìéá
åðéëïãÞ ðïõ èÝëåôå íá äþóåôå óôçí &man.make.1;. Äåßôå ôçí óåëßäá
manual ôïõ &man.make.1; ãéá ðáñáäåßãìáôá äõíáôþí åðéëïãþí.Ç åðéëïãÞ
ðåñíÜåé ìéá ìåôáâëçôÞ óôï Makefile.
Ç óõìðåñéöïñÜ ôïõ Makefile åëÝã÷åôáé áðü
ôÝôïéïõ åßäïõò ìåôáâëçôÝò. Ðñüêåéôáé ãéá ôéò ßäéåò ìåôáâëçôÝò ðïõ
êáèïñßæïíôáé êáé óôï /etc/make.conf, êáé áõôüò
åßíáé Ýíáò áêüìá ôñüðïò êáèïñéóìïý ôïõò.&prompt.root; make -DNO_PROFILE targetÔï ðáñáðÜíù äåß÷íåé Ýíá åðéðëÝïí ôñüðï íá êáèïñßóåôå üôé äåí
èÝëåôå íá ìåôáãëùôôéóôïýí ïé âéâëéïèÞêåò ìå ðëçñïöïñßåò profiling,
êáé áíôéóôïé÷åß ìå ôçí ðáñáêÜôù ãñáììÞ óôï
/etc/make.conf:NO_PROFILE= true # Avoid compiling profiled librariesÔï target äçëþíåé óôï &man.make.1;
ôé èÝëåôå íá êÜíåôå. Óå êÜèå Makefile ïñßæåôáé
Ýíáò áñéèìüò äéáöïñåôéêþí targets, êáé ç åðéëïãÞ ðïõ
èá êÜíåôå, êáèïñßæåé ôé áêñéâþò èá ãßíåé.ÊÜðïéá áðü ôá targets ðïõ êáèïñßæïíôáé óôï
Makefile, äåí ðñïïñßæïíôáé ãéá Üìåóç åêôÝëåóç
áðü ôï ÷ñÞóôç. Áíôß ãéá áõôü, ÷ñçóéìïðïéïýíôáé áðü ôç äéáäéêáóßá
ìåôáãëþôôéóçò ãéá íá ìïéñáóôåß ï áñéèìüò ôùí âçìÜôùí ðïõ áðáéôïýíôáé
ãéá ôç ìåôáãëþôôéóç ôïõ óõóôÞìáôïò, óå Ýíá áñéèìü
õðo-âçìÜôùí.Óôéò ðåñéóóüôåñåò ðåñéðôþóåéò äåí èá ÷ñåéáóôåß íá äþóåôå êáìßá
ðáñÜìåôñï óôï &man.make.1;, êáé Ýôóé ç åíôïëÞ óáò èá ìïéÜæåé ìå ôçí
ðáñáêÜôù:&prompt.root; make target¼ðïõ ôï target èá åßíáé ìéá áðü ôéò
ðïëëÝò åðéëïãÝò ìåôáãëþôôéóçò. Ôï ðñþôï target èá ðñÝðåé ðÜíôá íá
åßíáé ôï buildworld.¼ðùò åííïåßôáé êáé áðü ôï üíïìá, ôï
buildworld ìåôáãëùôôßæåé Ýíá ðëÞñåò äÝíôñï
ìÝóá óôïí êáôÜëïãï /usr/obj, åíþ ôï
installworld, åãêáèéóôÜ áõôü ôï äÝíôñï óôï
ôñÝ÷ïí ìç÷Üíçìá.Ç ýðáñîç äéáöïñåôéêþí åðéëïãþí, åßíáé ÷ñÞóéìç ãéá äýï ëüãïõò.
Ðñþôá áðü üëá, óáò åðéôñÝðåé íá åêôåëÝóåôå ôç äéáäéêáóßá
ìåôáãëþôôéóçò ìå áóöÜëåéá, ãíùñßæïíôáò üôé äåí ðñüêåéôáé íá
åðçñåáóôåß êáíÝíá ôìÞìá ôïõ ôñÝ÷ïíôïò óõóôÞìáôïò óáò. Ç äéáäéêáóßá
ìåôáãëþôôéóçò åßíáé self hosted, áðïìïíùìÝíç áðü ôçí
õðüëïéðç ëåéôïõñãßá ôïõ ìç÷áíÞìáôïò. Ìðïñåßôå Ýôóé íá åêôåëÝóåôå
ôï buildworld óå Ýíá ìç÷Üíçìá ðïõ âñßóêåôáé
óå êáíïíéêÞ ëåéôïõñãßá (ðïëëáðëþí ÷ñçóôþí) ÷ùñßò íá õðÜñ÷åé öüâïò
ðáñåíåñãåéþí. Ùóôüóï, óõíßóôáôáé íá åêôåëÝóåôå ôï
installworld óå êáôÜóôáóç ëåéôïõñãßáò
åíüò ÷ñÞóôç.Ï äåýôåñïò ëüãïò åßíáé üôé óáò åðéôñÝðåé íá ÷ñçóéìïðïéÞóåôå
ðñïóáñôÞóåéò NFS ãéá íá áíáâáèìßóåôå ðïëëÜ ìç÷áíÞìáôá ôïõ äéêôýïõ
óáò. Áí Ý÷åôå ôñßá ìç÷áíÞìáôá, ôá
A, B êáé C
ôá ïðïßá èÝëåôå íá áíáâáèìßóåôå, åêôåëÝóôå ôï
make buildworld êáé ôï
make installworld óôï ìç÷Üíçìá
A. Ôï B êáé ôï
C ìðïñïýí íá ðñïóáñôÞóïõí ôïí êáôÜëïãï
/usr/src êáé ôïí
/usr/obj áðü ôïí A ìÝóù NFS,
êáé Ýðåéôá ìðïñåßôå íá åêôåëÝóåôå ôï
make installworld ãéá íá åãêáôáóôÞóåôå ôï
Ýôïéìï ðëÝïí óýóôçìá óôïí B êáé
C.Áí êáé õðÜñ÷åé áêüìá ôï target world,
äåí óõíßóôáôáé ðëÝïí ç ÷ñÞóç ôïõ.ÅêôåëÝóôå ôçí åíôïëÞ:&prompt.root; make buildworldÌðïñåßôå íá êáèïñßóåôå ôçí åðéëïãÞ óôçí
make þóôå íá åêôåëåóôåß óå ðïëëáðëÝò äéåñãáóßåò.
Áõôü åßíáé ðåñéóóüôåñï ÷ñÞóéìï óå ìç÷áíÞìáôá ìå ðïëëïýò
åðåîåñãáóôÝò, ùóôüóï êáèþò ôï ìåãáëýôåñï ìÝñïò ôçò äéáäéêáóßáò
ìåôáãëþôôéóçò êáèõóôåñåß åîáéôßáò ôïõ óêëçñïý äßóêïõ (IO bound)
êáé ü÷é ôçò CPU, ìðïñåß íá óáò öáíåß ÷ñÞóéìï áêüìá êáé óå ìç÷áíÞìáôá
ìå Ýíá åðåîåñãáóôÞ.Óå Ýíá ôõðéêü ìç÷Üíçìá ìå ìéá CPU, èá ìðïñïýóáôå íá
äþóåôå:&prompt.root; make -j4 buildworldÌå ôçí ðáñáðÜíù åíôïëÞ, ôï &man.make.1; èá ÷ñçóéìïðïéåß ìÝ÷ñé
4 äéåñãáóßåò êÜèå ÷ñïíéêÞ óôéãìÞ. Áðü ôçí åìðåéñßá ðïõ Ý÷ïõìå
êáé áðü üôé áíáöÝñïõí ïé ÷ñÞóôåò óôéò ëßóôåò, öáßíåôáé üôé ç
ñýèìéóç áõôÞ äßíåé ãåíéêÜ ôçí êáëýôåñç áðüäïóç.Áí Ý÷åôå ìç÷Üíçìá ìå ðïëëïýò åðåîåñãáóôÝò, êáé ÷ñçóéìïðïéåßôå
ðõñÞíá ìå äõíáôüôçôá SMP, äïêéìÜóôå ôéìÝò ìåôáîý ôïõ 6 êáé ôïõ 10
ãéá íá äåßôå ðïéá åðéôá÷ýíåé êáëýôåñá ôï áðïôÝëåóìá.×ñüíïò Ìåôáãëþôôéóçòrebuilding worldtimingsÏ ÷ñüíïò ðïõ áðáéôåßôáé ãéá ôçí ìåôáãëþôôéóç åðçñåÜæåôáé áðü
ðïëëïýò ðáñÜãïíôåò. Ùóôüóï, óå óýã÷ñïíá ìç÷áíÞìáôá ç äéáäéêáóßá
äåí êñáôÜåé óõíÞèùò ðáñáðÜíù áðü ìßá Þ äýï þñåò, üôáí ãßíåôáé
ìåôáãëþôôéóç ôïõ äÝíôñïõ &os.stable;, êáé ìÜëéóôá ÷ùñßò íá
÷ñåéÜæåôáé íá ãßíïõí åéäéêÝò ñõèìßóåéò Þ êüëðá. Ôï äÝíôñï
&os.current; ÷ñåéÜæåôáé ãåíéêÜ ëßãï ðåñéóóüôåñï ÷ñüíï ãéá íá
ìåôáãëùôôéóôåß.Ìåôáãëùôôßóôå êáé ÅãêáôáóôÞóôå ÍÝï ÐõñÞíákernelcompilingÃéá íá åêìåôáëëåõèåßôå ðëÞñùò ôï íÝï óáò óýóôçìá, èá ðñÝðåé íá
åðáíáìåôáãëùôôßóåôå ôïí ðõñÞíá. Áõôü åßíáé ðñáêôéêÜ áíáãêáßï, êáèþò
êÜðïéåò äïìÝò óôç ìíÞìç ðéèáíþò íá Ý÷ïõí áëëÜîåé, êáé Ýôóé
ðñïãñÜììáôá üðùò ôá &man.ps.1; êáé &man.top.1; äåí èá ëåéôïõñãïýí
óùóôÜ ìÝ÷ñé íá óõã÷ñïíßóåôå ôïí ðõñÞíá ìå ôçí Ýêäïóç ðçãáßïõ
êþäéêá ôïõ âáóéêïý óõóôÞìáôïò.Ï áðëïýóôåñïò êáé ðëÝïí áóöáëÞò ôñüðïò, åßíáé íá ìåôáãëùôôßóåôå
êáé íá åãêáôáóôÞóåôå Ýíá ðõñÞíá âáóéóìÝíï óôïí
GENERIC. Áí êáé ï GENERIC
ìðïñåß íá ìçí ðåñéÝ÷åé üëåò ôéò áðáñáßôçôåò óõóêåõÝò ãéá ôï óýóôçìá
óáò, èá ðñÝðåé íá ðåñéÝ÷åé üôé ÷ñåéÜæåôáé þóôå íá îåêéíÞóåôå îáíÜ
ôï óýóôçìá óáò óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç. Áõôü åßíáé Ýíá
êáëü ôåóô óùóôÞò ëåéôïõñãßáò ôïõ óõóôÞìáôïò. ÌåôÜ ôçí åêêßíçóç ìå
ôïí GENERIC, êáé áöïý åðáëçèåýóåôå ôç óùóôÞ
ëåéôïõñãßá ôïõ óõóôÞìáôïò, ìðïñåßôå íá ìåôáãëùôôßóåôå Ýíá íÝï
ðõñÞíá âáóéóìÝíï óôï äéêü óáò ðñïóáñìïóìÝíï áñ÷åßï ñõèìßóåùí.Óôï &os; åßíáé óçìáíôéêü íá åêôåëÝóåôå ôï build world ðñéí ìåôáãëùôôßóåôå íÝï
ðõñÞíá.Áí èÝëåôå íá ìåôáãëùôôßóåôå íÝï ðõñÞíá, êáé Ý÷åôå Þäç Ýíá
áñ÷åßï ìå ðñïóáñìïóìÝíåò ñõèìßóåéò, ÷ñçóéìïðïéÞóôå áðëþò ôçí åðéëïãÞ
KERNCONF=MYKERNEL
ìå ôïí ôñüðï ðïõ öáßíåôáé ðáñáêÜôù:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELÓçìåéþóôå üôé áí Ý÷åôå áíåâÜóåé ôçí ôéìÞ ôïõ
kern.securelevel ðÜíù áðü ôï 1,
êáé Ý÷åôå èÝóåé ôï flag
noschg Þ êÜðïéï áíôßóôïé÷ï óôï åêôåëÝóéìï áñ÷åßï
ôïõ ðõñÞíá, ìÜëëïí èá ÷ñåéáóôåß íá ìåôáâåßôå óå êáôÜóôáóç ëåéôïõñãßáò
åíüò ÷ñÞóôç ãéá íá ÷ñçóéìïðïéÞóåôå ôï
installkernel. ÄéáöïñåôéêÜ, ìðïñåßôå íá
åêôåëÝóåôå êáé ôéò äýï áõôÝò åíôïëÝò áðü ôçí êáíïíéêÞ êáôÜóôáóç
ëåéôïõñãßáò (ðïëëþí ÷ñçóôþí) ÷ùñßò íá äçìéïõñãçèïýí ðñïâëÞìáôá.
Äåßôå ôç óåëßäá manual ôïõ &man.init.8; ãéá ëåðôïìÝñåéåò ó÷åôéêÜ ìå
ôç ñýèìéóç kern.securelevel êáé ôç óåëßäá
ôïõ &man.chflags.1; ãéá ëåðôïìÝñåéåò ó÷åôéêÜ ìå ôá äéÜöïñá flags
ðïõ ÷ñçóéìïðïéïýíôáé óå áñ÷åßá.ÅðáíåêêéíÞóôå óå ÊáôÜóôáóç Ëåéôïõñãßáò Åíüò ×ñÞóôçsingle-user modeÈá ðñÝðåé íá åðáíåêêéíÞóåôå óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç
ãéá íá åðáëçèåýóåôå ôç ëåéôïõñãßá ôïõ íÝïõ ðõñÞíá. Ãéá ôï óêïðü
áõôü, ÷ñçóéìïðïéÞóôå ôéò ïäçãßåò ðïõ åßäáìå óôï
.ÅãêáôáóôÞóôå ôá ÍÝá ÅêôåëÝóéìá ôïõ ÓõóôÞìáôïòÈá ðñÝðåé ôþñá íá ÷ñçóéìïðïéÞóåôå ôï
installworld ãéá íá åãêáôáóôÞóåôå ôá íÝá
åêôåëÝóéìá ôïõ óõóôÞìáôïò.ÅêôåëÝóôå ôéò ðáñáêÜôù åíôïëÝò:&prompt.root; cd /usr/src
&prompt.root; make installworldÁí Ý÷åôå êáèïñßóåé ìåôáâëçôÝò óôç ãñáììÞ åíôïëþí ôïõ
make buildworld èá ðñÝðåé íá êáèïñßóåôå ôéò
ßäéåò ìåôáâëçôÝò êáé óôçí ãñáììÞ åíôïëþí ôïõ
make installworld. Áõôü äåí åßíáé áðáñáßôçôá
áëÞèåéá ãéá Üëëåò åðéëïãÝò. Ãéá ðáñÜäåéãìá, ç åðéëïãÞ
äåí ðñÝðåé ðïôÝ íá ÷ñçóéìïðïéåßôå ìå ôï
installworld.Ãéá ðáñÜäåéãìá áí åêôåëÝóåôå:&prompt.root; make -DNO_PROFILE buildworldÈá ðñÝðåé íá åãêáôáóôÞóåôå ôï áðïôÝëåóìá ÷ñçóéìïðïéþíôáò:&prompt.root; make -DNO_PROFILE installworldäéáöïñåôéêÜ ôï &man.make.1; èá ðñïóðáèÞóåé íá åãêáôáóôÞóåé
âéâëéïèÞêåò ìå profiling, ôéò ïðïßåò üìùò äåí ìåôáãëùôôßóáôå êáôÜ
ôç äéÜñêåéá ôçò öÜóçò make buildworld.Åíçìåñþóôå ¼óá Áñ÷åßá äåí Åíçìåñþèçêáí áðü ôï
make installworldÇ åðáíáìåôáãëþôôéóç ôïõ âáóéêïý óõóôÞìáôïò äåí èá åíçìåñþóåé
ïñéóìÝíïõò êáôáëüãïõò (åéäéêüôåñá ôïõò
/etc, /var êáé
/usr) ìå ôá íÝá Þ áëëáãìÝíá áñ÷åßá
ñõèìßóåùí.Ï áðëïýóôåñïò ôñüðïò ãéá íá åíçìåñþóåôå ôá áñ÷åßá áõôÜ åßíáé íá
÷ñçóéìïðïéÞóåôå ôï &man.mergemaster.8;, áí êáé ìðïñåßôå íá ôï êÜíåôå
êáé ÷åéñïêßíçôá áí ðñïôéìÜôå. ¶ó÷åôá áðü ôïí ôñüðï ðïõ èá
ðñïôéìÞóåôå, âåâáéùèåßôå üôé Ý÷åôå ðÜñåé áíôßãñáöï áóöáëåßáò ôïõ
/etc óå ðåñßðôùóç ðïõ êÜôé ðÜåé óôñáâÜ.TomRhodesÓõíåéóöïñÜ ôïõ mergemastermergemasterÔï âïçèçôéêü ðñüãñáììá &man.mergemaster.8; åßíáé Ýíá Bourne
script ôï ïðïßï èá óáò âïçèÞóåé íá êáèïñßóåôå ôéò äéáöïñÝò ìåôáîý
ôùí åãêáôåóôçìÝíùí óôï /etc áñ÷åßùí ñõèìßóåùí,
êáé ôùí áíôßóôïé÷ùí óôï äÝíôñï ðçãáßïõ êþäéêá óôï
/usr/src/etc. ÁõôÞ åßíáé êáé ç óõíéóôþìåíç
ëýóç ãéá íá åíçìåñþóåôå ôá áñ÷åßá ñõèìßóåùí ôïõ óõóôÞìáôïò ìå ôõ÷üí
áëëáãÝò ðïõ Ý÷ïõí ãßíåé óôïí íÝï ðçãáßï êþäéêá.Ãéá íá îåêéíÞóåôå, áðëþò ãñÜøôå mergemaster
óôçí ðñïôñïðÞ ôçò ãñáììÞò åíôïëþí êáé ðáñáêïëïõèÞóôå ôçí êáèþò
ëåéôïõñãåß. Ôï mergemaster èá äçìéïõñãÞóåé Ýíá
ðñïóùñéíü ðåñéâÜëëïí root, áðü ôï / êáé êÜôù,
êáé èá ôï ãåìßóåé ìå äéÜöïñá áñ÷åßá ñõèìßóåùí ôïõ óõóôÞìáôïò. ¸ðåéôá
èá ãßíåé óýãêñéóç áõôþí ôùí áñ÷åßùí ìå ôá áíôßóôïé÷á ðïõ âñßóêïíôáé
Þäç åãêáôåóôçìÝíá óôï óýóôçìá óáò. Óôï óçìåßï áõôü, èá óáò äåßîåé
ôá áñ÷åßá ðïõ äéáöÝñïõí ìå ìïñöÞ &man.diff.1;, üðïõ ïé ãñáììÝò ðïõ
Ý÷ïõí ôñïðïðïéçèåß Þ åßíáé íÝåò èá öáßíïíôáé ìå Ýíá
, åíþ ìå ôï èá öáßíïíôáé ïé
ãñáììÝò ðïõ åßôå áöáéñïýíôáé åíôåëþò Þ ðïõ áíôéêáèßóôáíôáé áðü ìéá
íÝá ãñáììÞ. Äåßôå ôç óåëßäá manual ôïõ &man.diff.1; ãéá ðåñéóóüôåñåò
ðëçñïöïñßåò ó÷åôéêÜ ìå ôç óýíôáîç ôïõ &man.diff.1; êáé ãéá ôïí ôñüðï
ìå ôïí ïðïßï öáßíïíôáé ïé äéáöïñÝò ìåôáîý ôùí áñ÷åßùí.Ôï &man.mergemaster.8; èá óáò äåßîåé Ýðåéôá êÜèå áñ÷åßï ðïõ
ðáñïõóéÜæåé äéáöïñÝò, êáé óôï óçìåßï áõôü èá Ý÷åôå ôçí äõíáôüôçôá
åßôå íá äéáãñÜøåôå ôï íÝï áñ÷åßï (ôï ïðïßï áíáöÝñåôáé ùò ðñïóùñéíü
áñ÷åßï), åßôå íá åãêáôáóôÞóåôå ôï ðñïóùñéíü áñ÷åßï ÷ùñßò íá êÜíåôå
óå áõôü êáìéÜ áëëáãÞ, åßôå íá óõã÷ùíåýóåôå ôéò áëëáãÝò ôùí äýï
áñ÷åßùí, Þ ôÝëïò íá îáíáäåßôå ôéò äéáöïñÝò ìÝóù ôçò
&man.diff.1;.Áí åðéëÝîåôå íá äéáãñÜøåôå ôï ðñïóùñéíü áñ÷åßï, ôï
&man.mergemaster.8; èá êáôáëÜâåé üôé åðéèõìåßôå íá äéáôçñÞóåôå ôï
ôñÝ÷ïí áñ÷åßï óáò ÷ùñßò áëëáãÝò, êáé íá äéáãñÜøåôå ôç íÝá Ýêäïóç.
Ç åðéëïãÞ áõôÞ ãåíéêÜ äåí óõíßóôáôáé, åêôüò áí äåí âëÝðåôå êáíÝíá
ëüãï íá áëëÜîåôå ôï ôñÝ÷ïí áñ÷åßï. Ìðïñåßôå íá äåßôå âïÞèåéá
ïðïéáäÞðïôå óôéãìÞ êáôÜ ôç äéÜñêåéá ôçò äéáäéêáóßáò, ðëçêôñïëïãþíôáò
? óôçí ðñïôñïðÞ ôïõ &man.mergemaster.8;. Áí
áðïöáóßóåôå íá ðáñáëåßøåôå êÜðïéï áñ÷åßï, áõôü èá åìöáíéóôåß
îáíÜ ìåôÜ ôï ôÝëïò üëùí ôùí Üëëùí áñ÷åßùí.Áí åðéëÝîåôå íá åãêáôáóôÞóåôå ôï ðñïóùñéíü áñ÷åßï ÷ùñßò áëëáãÝò,
áõôü èá áíôéêáôáóôÞóåé ôï Þäç åãêáôåóôçìÝíï óáò áñ÷åßï. ÁõôÞ åßíáé
êáé ç êáëýôåñç åðéëïãÞ ãéá ôá áñ÷åßá ôá ïðïßá äåí Ý÷åôå áëëÜîåé
åóåßò ÷åéñïêßíçôá.Áí åðéëÝîåôå íá óõã÷ùíåýóåôå ôá äýï áñ÷åßá, èá åìöáíéóôåß Ýíáò
åðåîåñãáóôÞò êåéìÝíïõ ìå ôá ðåñéå÷üìåíá êáé ôùí äýï áñ÷åßùí.
Ìðïñåßôå ôþñá íá ôá óõã÷ùíåýóåôå ðáñáôçñþíôáò ôáõôü÷ñïíá êáé ôá äýï
áñ÷åßá äßðëá-äßðëá, êáé åðéëÝãïíôáò ôìÞìáôá êáé áðü ôá äýï ãéá íá
äçìéïõñãÞóåôå ôçí ôåëéêÞ Ýêäïóç. ÊáôÜ ôç óýãêñéóç áõôÞ, ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå ôï ðëÞêôñï l ãéá íá åðéëÝîåôå ôá
ðåñéå÷üìåíá ðïõ öáßíïíôáé óôçí áñéóôåñÞ ðëåõñÜ, Þ ôï
r ãéá ôá áíôßóôïé÷á ðåñéå÷üìåíá óôç äåîéÜ.
Ôï ôåëéêü áðïôÝëåóìá èá åßíáé Ýíá áñ÷åßï ðïõ èá áðïôåëåßôáé áðü
ôìÞìáôá êáé ôùí äýï áñ÷åßùí, êáé ôï ïðïßï ìðïñåßôå íá åãêáôáóôÞóåôå.
Ç åðéëïãÞ áõôÞ ÷ñçóéìïðïéåßôáé óõíÞèùò ãéá áñ÷åßá ôùí ïðïßùí ôï
ðåñéå÷üìåíï Ý÷åé ìåôáâëçèåß áðü ôï ÷ñÞóôç.Áí åðéëÝîåôå íá äåßôå îáíÜ ôéò äéáöïñÝò ìÝóù ôçò &man.diff.1;,
áõôÝò èá åìöáíéóôïýí áêñéâþò üðùò Ýãéíå êáé ðñéí
óáò ñùôÞóåé ôï &man.mergemaster.8; íá åðéëÝîåôå ôé èÝëåôå íá êÜíåôå
ìå ôï áñ÷åßï.Ìüëéò ïëïêëçñùèåß ç ëåéôïõñãßá ôïõ &man.mergemaster.8; óôá áñ÷åßá
óõóôÞìáôïò, èá óáò ñùôÞóåé ãéá Üëëåò åðéëïãÝò.
Ôï &man.mergemaster.8; ßóùò óáò ñùôÞóåé áí èÝëåôå íá áíáäçìéïõñãÞóåôå
ôï áñ÷åßï ôùí êùäéêþí (password file), êáé èá ôåëåéþóåé äßíïíôáò óáò
ôçí åðéëïãÞ íá äéáãñÜøåôå ôõ÷üí ðñïóùñéíÜ áñ÷åßá ðïõ äçìéïõñãÞèçêáí
êáôÜ ôçí äéáäéêáóßá.×åéñïêßíçôç ÅíçìÝñùóçÁí åðéèõìåßôå íá êÜíåôå ôçí åíçìÝñùóç ÷åéñïêßíçôá, äåí ìðïñåßôå
áðëþò íá áíôéãñÜøåôå ôá áñ÷åßá áðü ôïí êáôÜëïãï
/usr/src/etc óôïí /etc êáé
íá ðåñéìÝíåôå üôé ôï óýóôçìá óáò èá ëåéôïõñãÞóåé óùóôÜ. ÊÜðïéá áðü
áõôÜ ôá áñ÷åßá èá ðñÝðåé íá åãêáôáóôáèïýí ðñþôá. Áõôü
óõìâáßíåé åðåéäÞ ï êáôÜëïãïò /usr/src/etcäåí åßíáé êáíïíéêü áíôßãñáöï ôïõ
/etc. Åðéðñüóèåôá, õðÜñ÷ïõí áñ÷åßá ôá ïðïßá
ðñÝðåé íá âñßóêïíôáé óôïí êáôÜëïãï /etc, áëëÜ
äåí õðÜñ÷ïõí óôïí /usr/src/etc.Áí ÷ñçóéìïðïéåßôå ôï &man.mergemaster.8; (üðùò êáé óõíßóôáôáé),
ìðïñåßôå íá äéáâÜóåôå êáôåõèåßáí ôçí åðüìåíç åíüôçôá.Ï áðëïýóôåñïò ôñüðïò íá ôï êÜíåôå áõôü ÷åéñïêßíçôá, åßíáé íá
åãêáôáóôÞóåôå ôá áñ÷åßá óå Ýíá íÝï êáôÜëïãï, êáé Ýðåéôá íá ôá
åîåôÜóåôå Ýíá-Ýíá øÜ÷íïíôáò ãéá ôéò áëëáãÝò.ÊñáôÞóôå ¸íá Áíôßãñáöï Áóöáëåßáò ôïõ Êáôáëüãïõ
/etcÁí êáé èåùñçôéêÜ, ôßðïôá äåí ðñüêåéôáé íá ðåéñÜîåé áõôü ôïí
êáôÜëïãï áõôüìáôá, åßíáé ðÜíôá êáëýôåñá íá åßìáóôå óßãïõñïé.
Ãéá ôï ëüãï áõôü, áíôéãñÜøôå ôïí õðÜñ÷ïíôá êáôÜëïãï
/etc óå êÜðïéï áóöáëÝò ìÝñïò. ×ñçóéìïðïéÞóôå
ìéá åíôïëÞ üðùò ç ðáñáêÜôù:&prompt.root; cp -Rp /etc /etc.oldÇ åðéëïãÞ ðñáãìáôïðïéåß áíáäñïìéêÞ
áíôéãñáöÞ, åíþ ç äéáôçñåß ôá äéêáéþìáôá, ôçí
éäéïêôçóßá, ôéò çìåñïìçíßåò ôùí áñ÷åßùí, ê.ï.ê.èá ðñÝðåé íá äçìéïõñãÞóåôå ìéá øåõôï-äïìÞ êáôáëüãùí ãéá íá
åãêáôáóôÞóåôå ôï íÝï êáôÜëïãï /etc êáé Üëëá
áñ÷åßá. Ìéá ëïãéêÞ åðéëïãÞ åßíáé ï êáôÜëïãïò
/var/tmp/root, êáé êÜôù áðü áõôüí, èá ðñÝðåé
åðßóçò íá äçìéïõñãÞóåôå êáé ìéá ïëüêëçñç óåéñÜ áðü ôïõò õðïêáôáëüãïõò
ðïõ áðáéôïýíôáé.&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionÏé ðáñáðÜíù åíôïëÝò èá äçìéïõñãÞóïõí ôçí áðáéôïýìåíç äïìÞ
êáôáëüãùí êáé èá åãêáôáóôÞóïõí ôá áñ÷åßá. ÌåãÜëï ìÝñïò ôùí
õðïêáôáëüãùí ðïõ Ý÷ïõí äçìéïõñãçèåß êÜôù áðü ôïí
/var/tmp/root åßíáé Üäåéïé, êáé ðñÝðåé íá
äéáãñáöïýí. Ï áðëïýóôåñïò ôñüðïò ãéá íá ãßíåé áõôü, öáßíåôáé
ðáñáêÜôù:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullÁõôü èá äéáãñÜøåé üëïõò ôïõò Üäåéïõò õðïêáôáëüãïõò. (Ç Ýîïäïò
óöÜëìáôïò áíáêáôåõèýíåôáé óôï /dev/null þóôå
íá ìçí åìöáíßæïíôáé óôçí ïèüíç ðñïåéäïðïéÞóåéò ãéá êáôáëüãïõò ðïõ
äåí åßíáé Üäåéïé.)Ôþñá, ï /var/tmp/root ðåñéÝ÷åé üëá ôá áñ÷åßá
ðïõ èá ðñÝðåé íá ôïðïèåôçèïýí óå êáôÜëëçëåò èÝóåéò êÜôù áðü ôïí
/. Èá ðñÝðåé ôþñá íá äéáôñÝîåôå êáèÝíá áðü
áõôÜ ôá áñ÷åßá, êáé íá êáèïñßóåôå ðùò êáèÝíá áðü áõôÜ äéáöÝñåé áðü
ôï áíôßóôïé÷ï õðÜñ÷ïí (åãêáôåóôçìÝíï) áñ÷åßï.Óçìåéþóôå üôé êÜðïéá áðü ôá áñ÷åßá ôá ïðïßá Ý÷ïõí
åãêáôáóôáèåß óôïí /var/tmp/root Ý÷ïõí ìéá
áñ÷éêÞ .. Ôç óôéãìÞ ðïõ ãñÜöïíôáé áõôÝò ïé ãñáììÝò,
ôá ìüíá áñ÷åßá óôá ïðïßá óõìâáßíåé áõôü åßíáé ôá áñ÷åßá åêêßíçóçò
ôïõ êåëýöïõò óôïí êáôÜëïãï /var/tmp/root/ êáé
/var/tmp/root/root/, áí êáé ìðïñåß íá õðÜñ÷ïõí
êáé Üëëá (áíÜëïãá ìå ôï ðüôå äéáâÜæåôå ôï êåßìåíï). Âåâáéùèåßôå üôé
÷ñçóéìïðïéåßôå ôçí åíôïëÞ ls -a ãéá íá ôá äåßôå
üëá.Ï áðëïýóôåñïò ôñüðïò ãéá íá óõãêñßíåôå äýï áñ÷åßá, åßíáé íá
÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ &man.diff.1;:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsÇ ðáñáðÜíù åíôïëÞ èá óáò äåßîåé ôéò äéáöïñÝò ìåôáîý ôïõ áñ÷åßïõ
/etc/shells êáé ôïõ íÝïõ áñ÷åßïõ
/var/tmp/root/etc/shells. ×ñçóéìïðïéÞóôå ôéò
äéáöïñÝò áõôÝò ãéá íá áðïöáóßóåôå áí èá ðñÝðåé íá óõã÷ùíåýóåôå ôéò
áëëáãÝò ðïõ Ý÷åôå êÜíåé, Þ áðëþò íá áíôéãñÜøåôå ôï ðáëéü óáò áñ÷åßï
ðÜíù áðü ôï íÝï.ÐñïóèÝóôå ôçí Çìåñïìçíßá óôï ¼íïìá ôïõ ÍÝïõ Root Êáôáëüãïõ,
(/var/tmp/root) ¿óôå íá Ìðïñåßôå Åýêïëá íá
Óõãêñßíåôå ÄéáöïñåôéêÝò Åêäüóåéò Ìåôáîý ôïõòÁí ìåôáãëùôôßæåôå óõ÷íÜ ôï âáóéêü óýóôçìá, èá ðñÝðåé åðßóçò
íá åíçìåñþíåôå óõ÷íÜ ôïí êáôÜëïãï /etc, ôï
ïðïßï ìðïñåß íá åßíáé åíï÷ëçôéêü.Ìðïñåßôå íá åðéôá÷ýíåôå áõôÞ ôç äéáäéêáóßá, ôçñþíôáò Ýíá
áíôßãñáöï ôïõ ôåëåõôáßïõ óåô áëëáãìÝíùí áñ÷åßùí ôá ïðïßá
óõã÷ùíåýóáôå óôïí êáôÜëïãï /etc. Ç ðáñáêÜôù
äéáäéêáóßá èá óáò äþóåé ìéá éäÝá ãéá ôï ðùò ìðïñåß íá
ãßíåé áõôü:Ìåôáãëùôôßóôå ôï âáóéêü óýóôçìá üðùò êÜíåôå óõíÞèùò. ¼ôáí
èÝëåôå íá åíçìåñþóåôå ôïí /etc êáé ôïõò
Üëëïõò êáôáëüãïõò, äþóôå óôïí êáôÜëïãï ðñïïñéóìïý Ýíá üíïìá
âáóéóìÝíï óôçí ôñÝ÷ïõóá çìåñïìçíßá. Áí ôï êÜíáôå áõôü
óôéò 14 Öåâñïõáñßïõ 1998, èá ãñÜöáôå êÜôé óáí ôï
ðáñáêÜôù:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionÓõã÷ùíåýóôå ôéò áëëáãÝò áðü áõôü ôïí êáôÜëïãï, ìå ôïí ôñüðï
ðïõ ðåñéãñÜøáìå ðáñáðÜíù.Ìçí äéáãñÜøåôå ôïí êáôÜëïãï
/var/tmp/root-19980214 üôáí ôåëåéþóåôå
ìå ôçí ðáñáðÜíù äéáäéêáóßá.¼ôáí êáôåâÜóåôå ôçí ôåëåõôáßá Ýêäïóç ôïõ ðçãáßïõ êþäéêá êáé
ôïí ìåôáãëùôôßóåôå îáíÜ, áêïëïõèÞóôå ôï âÞìá 1. Áõôü èá óáò
äþóåé Ýíá êáôÜëïãï ðïõ ìðïñåß íá ïíïìÜæåôáé
/var/tmp/root-19980221 (áí áíÜìåóá óôéò
äýï ìåôáãëùôôßóåéò ðáñåìâÜëëåôáé äéÜóôçìá ìéáò
åâäïìÜäáò).Ìðïñåßôå ôþñá íá äåßôå ôéò äéáöïñÝò ðïõ õðÜñ÷ïõí áíÜìåóá
óôéò äýï åâäïìÜäåò, ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ
&man.diff.1; óå áíáäñïìéêÞ ëåéôïõñãßá ãéá íá äçìéïõñãÞóåôå ôéò
äéáöïñÝò ìåôáîý ôùí äýï êáôáëüãùí:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221ÔõðéêÜ, áõôü ôï óåô áëëáãþí èá åßíáé ðïëý ìéêñüôåñï áðü
áõôü ìåôáîý ôïõ /var/tmp/root-19980221/etc
êáé ôïõ /etc. Êáèþò áõôü ôï óåô áëëáãþí
åßíáé ìéêñüôåñï, åßíáé êáé ðéï åýêïëï íá åöáñìüóåôå áõôÝò
ôéò áëëáãÝò óôïí êáôÜëïãï /etc.Ìðïñåßôå ôþñá íá äéáãñÜøåôå ôïí ðáëéüôåñï áðü ôïõò äýï
êáôáëüãïõò /var/tmp/root-*:&prompt.root; rm -rf /var/tmp/root-19980214ÅðáíáëÜâåôå áõôÞ ôç äéáäéêáóßá êÜèå öïñÜ ðïõ èÝëåôå íá
óõã÷ùíåýóåôå ôéò áëëáãÝò óôïí êáôÜëïãï
/etc.Ìðïñåßôå åðßóçò íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ &man.date.1; ãéá
íá áõôïìáôïðïéÞóåôå ôçí äçìéïõñãßá ôùí ïíïìÜôùí êáôáëüãùí:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`ÅðáíåêêßíçóçÇ äéáäéêáóßá Ý÷åé ðëÝïí ïëïêëçñùèåß. Áöïý åðáëçèåýóåôå üôé üëá
âñßóêïíôáé óôéò óùóôÝò èÝóåéò, ìðïñåßôå íá åðáíåêêéíÞóåôå ôï óýóôçìá.
Ìéá áðëÞ åíôïëÞ &man.shutdown.8; åßíáé åðáñêÞò:&prompt.root; shutdown -r nowÏëïêëÞñùóç¸÷åôå ðëÝïí áíáâáèìßóåé ôï &os; óýóôçìá óáò. Óõã÷áñçôÞñéá.Áí ôá ðñÜãìáôá äåí ðÞãáí åíôåëþò óùóôÜ, åßíáé åýêïëï íá
ìåôáãëùôôßóåôå îáíÜ ïðïéïäÞðïôå ôìÞìá ôïõ óõóôÞìáôïò.
Ãéá ðáñÜäåéãìá, áí äéáãñÜøåôå êáôÜ ëÜèïò ôï
/etc/magic ùò ìÝñïò ìéáò áíáâÜèìéóçò Þ
óõã÷þíåõóçò ôïõ /etc, ç åíôïëÞ &man.file.1;
èá óôáìáôÞóåé íá ëåéôïõñãåß. Óôçí ðåñßðôùóç áõôÞ, ç äéüñèùóç åßíáé
íá åêôåëÝóåôå:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installÅñùôÞóåéòÐñÝðåé íá ìåôáãëùôôßóù îáíÜ ïëüêëçñï ôï âáóéêü óýóôçìá óå
êÜèå áëëáãÞ;Äåí õðÜñ÷åé åýêïëç áðÜíôçóç óå áõôü ôï åñþôçìá, êáèþò
åîáñôÜôáé áðü ôç öýóç ôçò áëëáãÞò. Ãéá ðáñÜäåéãìá, áí
åêôåëÝóåôå ôï CVSup, êáé äåßôå üôé
åíçìåñþèçêáí ôá ðáñáêÜôù áñ÷åßá:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkÔï ðéèáíüôåñï åßíáé üôé äåí ÷ñåéÜæåôáé íá ìåôáãëùôôßóåôå
îáíÜ üëï ôï âáóéêü óýóôçìá. Ìðïñåßôå áðëþò íá ìåôáâåßôå óôïõò
ó÷åôéêïýò õðïêáôáëüãïõò êáé íá åêôåëÝóåôå ôï
make all install, êáé èá Ý÷åôå ôåëåéþóåé.
Áí üìùò õðÜñ÷åé êÜðïéá óçìáíôéêÞ áëëáãÞ, ãéá ðáñÜäåéãìá ôï
src/lib/libc/stdlib, èá ðñÝðåé åßôå íá
åðáíáìåôáãëùôôßóåôå ôï âáóéêü óýóôçìá, Þ ôïõëÜ÷éóôïí áõôÜ ôá
êïììÜôéá ôá ïðïßá åßíáé óôáôéêÜ óõíäåäåìÝíá (üðùò êáé ïôéäÞðïôå
Üëëï Ý÷åôå ðñïóèÝóåé åóåßò êáé ôï ïðïßï åßíáé óôáôéêÜ
óõíäåäåìÝíï).ÔåëéêÜ, ç áðüöáóç åßíáé äéêÞ óáò. Ìðïñåß íá åßóôå
éêáíïðïéçìÝíïò áí ìåôáãëùôôßæåôå ôï âáóéêü óýóôçìá êÜèå äýï
âäïìÜäåò, áöÞíïíôáò ôéò áëëáãÝò íá óõãêåíôñùèïýí óôç äéÜñêåéá
áõôïý ôïõ äéáóôÞìáôïò. ¹ ìðïñåß íá èÝëåôå íá ìåôáãëùôôßóåôå
ìüíï ôéò áëëáãÝò, áí Ý÷åôå ôçí ðåðïßèçóç üôé ìðïñåßôå íá
åíôïðßóåôå üëåò ôéò åîáñôÞóåéò ôïõò.Êáé öõóéêÜ, üëá áõôÜ åîáñôþíôáé áðü ôï ðüóï óõ÷íÜ èÝëåôå íá
åíçìåñþíåôå ôï óýóôçìá óáò, êáé áðü ôï áí áêïëïõèåßôå ôï
&os.stable; Þ ôï &os.current;.Ç ìåôáãëþôôéóç ìïõ áðÝôõ÷å ìå ðëÞèïò ìçíõìÜôùí
signal 11signal 11
(Þ ëÜèç ìå Üëëá óÞìáôá). Ôé Ý÷åé óõìâåß;Áõôü óõíÞèùò äåß÷íåé ðñïâëÞìáôá õëéêïý. Ç äéáäéêáóßá
ìåôáãëþôôéóçò ôïõ âáóéêïý óõóôÞìáôïò åßíáé Ýíáò áðïôåëåóìáôéêüò
ôñüðïò íá äïêéìÜóåôå ôï õëéêü óáò óôá üñéá ôïõ, êáé óõ÷íÜ èá
äåßîåé ðñïâëÞìáôá ðïõ ó÷åôßæïíôáé ìå ôç ìíÞìç. Ôï ðéï óýíçèåò
óýìðôùìá, åßíáé ç áðüôïìç äéáêïðÞ ôçò ìåôáãëþôôéóçò, ìå ôïí
ìåôáãëùôôéóôÞ íá öáßíåôáé üôé Ý÷åé ëÜâåé êÜðïéï ìõóôçñéþäåò
óÞìá.¸íá óßãïõñï óçìÜäé ãéá ôï ðáñáðÜíù, åßíáé íá åðáíåêêéíÞóåôå
ôç äéáäéêáóßá, êáé áõôÞ íá óôáìáôÞóåé óå äéáöïñåôéêü
óçìåßï.Óôçí ðåñßðôùóç áõôÞ, äåí õðÜñ÷ïõí êáé ðïëëÜ ðïõ ìðïñåßôå íá
êÜíåôå, åêôüò áðü ôï íá áñ÷ßóåôå íá áëëÜæåôå åîáñôÞìáôá óôï
ìç÷Üíçìá óáò ìÝ÷ñé íá âñåßôå áõôü ðïõ åßíáé õðáßôéï.Ìðïñþ íá äéáãñÜøù ôï /usr/obj üôáí
ôåëåéþóù;Ç óýíôïìç áðÜíôçóç åßíáé íáé.Ôï /usr/obj ðåñéÝ÷åé üëá ôá
áíôéêåéìåíéêÜ áñ÷åßá ðïõ ðáñÜãïíôáé êáôÜ ôç äéÜñêåéá ôçò
ìåôáãëþôôéóçò. ÓõíÞèùò, Ýíá áðü ôá ðñþôá âÞìáôá óôçí
äéáäéêáóßá make buildworld åßíáé ç äéáãñáöÞ
áõôïý ôïõ êáôáëüãïõ êáé ç áíáäçìéïõñãßá ôïõ. Óôçí ðåñßðôùóç
áõôÞ, ôï íá êñáôÞóåôå ôïí êáôÜëïãï
/usr/obj áöïý Ý÷åôå ôåëåéþóåé, äåí Ý÷åé
êáé ðïëý íüçìá, åíþ áí ôïí óâÞóåôå èá êåñäßóåôå Ýíá ìåãÜëï
êïììÜôé åëåýèåñïõ ÷þñïõ (ôçí ðáñïýóá óôéãìÞ ðåñßðïõ
2 GB).¼ìùò, áí îÝñåôå ôé êÜíåôå, ìðïñåßôå íá ïäçãÞóåôå ôï
make buildworld íá ðáñáëåßøåé áõôü ôï âÞìá.
Áõôü èá åðéôá÷ýíåé éäéáßôåñá ôéò íÝåò ìåôáãëùôôßóåéò, êáèþò
ôá ðåñéóóüôåñá ôìÞìáôá ôïõ ðçãáßïõ êþäéêá äåí èá ÷ñåéÜæïíôáé
îáíÜ ìåôáãëþôôéóç. Ôï ìåéïíÝêôçìá åßíáé üôé ïñéóìÝíåò öïñÝò
åìöáíßæïíôáé ðñïâëÞìáôá ðïõ Ý÷ïõí ó÷Ýóç ìå ü÷é êáé ôüóï
åìöáíåßò åîáñôÞóåéò, êáé ìðïñåß íá ïäçãÞóïõí óå ìõóôçñéþäç
áðïôõ÷ßá ôçò ìåôáãëþôôéóçò. ÔÝôïéá ðñïâëÞìáôá óõ÷íÜ äçìéïõñãïýí
èüñõâï óôéò ëßóôåò ôïõ &os;, üôáí êÜðïéïò ÷ñÞóôçò
ðáñáðïíéÝôáé üôé ç ìåôáãëþôôéóç ôïõ áðïôõã÷Üíåé, ÷ùñßò íá
áíôéëáìâÜíåôáé üôé áõôü ïöåßëåôáé óôçí ðñïóðÜèåéá ôïõ íá
óõíôïìåýóåé ôçí äéáäéêáóßá.Ìðïñþ íá óõíå÷ßóù ìéá ìåôáãëþôôéóç ðïõ äéÝêïøá;Áõôü åîáñôÜôáé áðü ôï ðüóï Ý÷åôå ðñï÷ùñÞóåé óôç äéáäéêáóßá
ìÝ÷ñé ôç óôéãìÞ ðïõ âñÞêáôå ôï ðñüâëçìá.Óå ãåíéêÝò ãñáììÝò (êáé áõôüò äåí
åßíáé êáíüíáò ðïõ éó÷ýåé ðÜíôá), ç äéåñãáóßá ôïõ
make buildworld ìåôáãëùôôßæåé íÝá áíôßãñáöá
âáóéêþí åñãáëåßùí (üðùò ôá &man.gcc.1;, êáé &man.make.1;) êáèþò
êáé ôùí âéâëéïèçêþí óõóôÞìáôïò. ¸ðåéôá åãêáèéóôþíôáé áõôÜ
ôá åñãáëåßá êáé ïé âéâëéïèÞêåò. Ôá íÝá åñãáëåßá êáé
âéâëéïèÞêåò ÷ñçóéìïðïéïýíôáé Ýðåéôá ãéá íá åðáíáìåôáãëùôôßóïõí
ôïõò åáõôïýò ôïõò, êáé åãêáèßóôáíôáé îáíÜ. Ïëüêëçñï ôï óýóôçìá
(ôï ïðïßï ôþñá ðåñéëáìâÜíåé êáé ôá óõíçèéóìÝíá ðñïãñÜììáôá
÷ñÞóôç üðùò ôï &man.ls.1; Þ ôï &man.grep.1;)
åðáíáìåôáãëùôôßæåôáé ÷ñçóéìïðïéþíôáò ôá íÝá áñ÷åßá ôïõ
óõóôÞìáôïò.Áí âñßóêåóôå óôï ôåëåõôáßï óôÜäéï, ôï ïðïßï èá ôï ãíùñßæåôå
êïéôÜæïíôáò ôçí Ýîïäï ðïõ Ý÷åôå áðïèçêåýóåé, åßíáé ó÷åôéêÜ
áóöáëÝò íá êÜíåôå:… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allÌå ôïí ôñüðï áõôü äåí èá áíáéñÝóåôå ôçí åñãáóßá ðïõ Ý÷åé
ãßíåé áðü ôï ðñïçãïýìåíï
make buildworld.Áí äåßôå ôï ìÞíõìá:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------óôçí Ýîïäï ôçò åíôïëÞò make buildworld,
ôüôå åßíáé ìÜëëïí áóöáëÝò íá ðñï÷ùñÞóåôå ìå áõôü ôïí
ôñüðï.Áí äåí äåßôå áõôü ôï ìÞíõìá, Þ áí äåí åßóôå óßãïõñïò, ôüôå
åßíáé êáëýôåñá íá êÜíåôå ðëÞñç ìåôáãëþôôéóç ðáñÜ íá ìåôáíéþíåôå
áñãüôåñá.Ðùò ìðïñþ íá åðéôá÷ýíù ôç ìåôáãëþôôéóç ôïõ âáóéêïý
óõóôÞìáôïò;ÅêôåëÝóôå ôçí óå êáôÜóôáóç åíüò ÷ñÞóôç.ÂÜëôå ôïõò êáôáëüãïõò /usr/src
êáé /usr/obj óå äéáöïñåôéêÜ óõóôÞìáôá
áñ÷åßùí ôá ïðïßá âñßóêïíôáé êáé óå äéáöïñåôéêïýò öõóéêïýò
äßóêïõò. Áí åßíáé äõíáôüí, âÜëôå áõôïýò ôïõò äßóêïõò óå
÷ùñéóôïýò åëåãêôÝò.Áêüìá êáëýôåñá, ìïéñÜóôå áõôÜ ôá óõóôÞìáôá áñ÷åßùí
óå ðïëëáðëïýò äßóêïõò, ÷ñçóéìïðïéþíôáò ôï ðñüãñáììá
ïäÞãçóçò &man.ccd.4; (concatenated disk driver, ïäÞãçóçò
óõíåíùìÝíùí äßóêùí).ÁðåíåñãïðïéÞóôå ôï profiling (èÝóôå ôçí ìåôáâëçôÞ
NO_PROFILE=true óôï
/etc/make.conf). Åßíáé ó÷åäüí óßãïõñï
üôé äåí ôï ÷ñåéÜæåóôå.Óôï áñ÷åßï /etc/make.conf, èÝóôå
ôï CFLAGS óå êÜôé üðùò
. Ç âåëôéóôïðïßçóç
÷ñåéÜæåôáé áñêåôÜ ðåñéóóüôåñï ÷ñüíï,
êáé ç äéáöïñÜ áðüäïóçò ìåôáîý
êáé åßíáé óõíÞèùò
áìåëçôÝá. Ôï åðéôñÝðåé óôïí
ìåôáãëùôôéóôÞ íá ÷ñçóéìïðïéÞóåé pipes ãéá åðéêïéíùíßá áíôß
ãéá ðñïóùñéíÜ áñ÷åßá. Áõôü êáôáíáëþíåé ðåñéóóüôåñç ìíÞìç,
áëëÜ ÷ñçóéìïðïéåß ëéãüôåñï ôï óêëçñü äßóêï.×ñçóéìïðïéÞóôå ôçí åðéëïãÞ
óôï
&man.make.1; þóôå íá åêôåëïýíôáé ðáñÜëëçëá ðïëëáðëÝò
äéåñãáóßåò ìåôáãëþôôéóçò. Áõôü óõíÞèùò âïçèÜåé áêüìá êáé
óå ðåñßðôùóç ðïõ Ý÷åôå ìç÷Üíçìá ìå Ýíá åðåîåñãáóôÞ.Ìðïñåßôå íá ðñïóáñôÞóåôå (Þ íá åðáíáðñïóáñôÞóåôå) ôï
óýóôçìá áñ÷åßùí óôï ïðïßï åßíáé áðïèçêåõìÝíï ôï
/usr/src ìå ôçí åðéëïãÞ
. Áõôü áðïôñÝðåé ôçí êáôáãñáöÞ
çìåñïìçíßáò / þñáò ðñüóâáóçò óôï óýóôçìá áñ÷åßùí. ÊáôÜ ðÜóá
ðéèáíüôçôá, äåí ÷ñåéÜæåóôå áõôÞ ôçí ðëçñïöïñßá Ýôóé êáé
áëëéþò.&prompt.root; mount -u -o noatime /usr/srcÔï ðáñÜäåéãìá ðñïûðïèÝôåé üôé Ý÷åôå ôï
/usr/src óôï äéêü ôïõ óýóôçìá
áñ÷åßùí. Áí áõôü äåí óõìâáßíåé (áí åßíáé ìÝñïò ôïõ
/usr ãéá ðáñÜäåéãìá) èá ÷ñåéáóôåß
íá ÷ñçóéìïðïéÞóåôå áõôü ôï óçìåßï ðñïóÜñôçóçò, êáé ü÷é
ôï /usr/src.Ìðïñåßôå íá ðñïóáñôÞóåôå (Þ íá åðáíáðñïóáñôÞóåôå) ôï
óýóôçìá áñ÷åßùí ðïõ ðåñéÝ÷åé ôï
/usr/obj ìå ôçí åðéëïãÞ
. Ìå ôïí ôñüðï áõôü, ïé åããñáöÝò óôï
äßóêï èá ãßíïíôáé áóýã÷ñïíá. Ìå Üëëá ëüãéá, ïé åããñáöÝò
öáßíåôáé üôé ïëïêëçñþíïíôáé Üìåóá, åíþ ç ðñáãìáôéêÞ åããñáöÞ
óôï äßóêï ãßíåôáé ëßãá äåõôåñüëåðôá áñãüôåñá. Áõôü
åðéôñÝðåé ôçí ïìáäïðïßçóç ôùí åããñáöþí, ôï ïðïßï ìðïñåß íá
ðñïóöÝñåé äñáìáôéêÞ âåëôßùóç áðüäïóçò.Íá Ý÷åôå õðüøéí óáò üôé áõôÞ ç åðéëïãÞ ìðïñåß íá
êÜíåé ôï óýóôçìá áñ÷åßùí óáò ðïëý ðéï åõáßóèçôï. Ìå ôçí
åðéëïãÞ áõôÞ, õðÜñ÷åé áõîçìÝíç ðéèáíüôçôá ôï óýóôçìá
áñ÷åßùí íá âñåèåß óå ìç
åðéóêåõÜóéìç êáôÜóôáóç áí õðÜñîåé äéáêïðÞ
ñåýìáôïò.Áí ôï óýóôçìá áñ÷åßùí ðåñéÝ÷åé ìüíï ôï
/usr/obj, ôï ðáñáðÜíù äåí åßíáé
ðñüâëçìá. Áí ùóôüóï Ý÷åôå êáé Üëëá ðïëýôéìá äåäïìÝíá
óôï ßäéï óýóôçìá áñ÷åßùí, óéãïõñåõôåßôå üôé Ý÷åôå
åíçìåñùìÝíá áíôßãñáöá áóöáëåßáò ðñéí åíåñãïðïéÞóåôå áõôÞ
ôçí åðéëïãÞ.&prompt.root; mount -u -o async /usr/obj¼ðùò êáé ðñïçãïõìÝíùò, áí ôï
/usr/obj äåí åßíáé óýóôçìá áñ÷åßùí
áðü ìüíï ôïõ, áíôéêáôáóôÞóôå ôï óôï ðáñÜäåéãìá ìå ôï
üíïìá ôïõ ðñáãìáôéêïý óçìåßïõ ðñïóÜñôçóçò.Ôé íá êÜíù áí êÜôé ðÜåé óôñáâÜ;Óéãïõñåõôåßôå üôé ôï ðåñéâÜëëïí óáò äåí Ý÷åé õðïëåßììáôá
áðü ðñïçãïýìåíåò ìåôáãëùôôßóåéò. Áõôü åßíáé áñêåôÜ áðëü.&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirÍáé, èá ðñÝðåé íá åêôåëÝóåôå ôï
make cleandir äýï öïñÝò.ÅðáíåêêéíÞóôå Ýðåéôá üëç ôç äéáäéêáóßá, îåêéíþíôáò ìå ôï
make buildworld.Áí Ý÷åôå áêüìá ðñïâëÞìáôá, óôåßëôå ôï ìÞíõìá ëÜèïõò êáé ôçí
Ýîïäï ôïõ uname -a óôçí &a.questions;. Íá
åßóôå ðñïåôïéìáóìÝíïé íá áðáíôÞóåôå åðéðëÝïí åñùôÞóåéò ó÷åôéêÜ
ìå ôçí åãêáôÜóôáóç óáò!AntonShterenlikhtÂáóéóìÝíï óå óçìåéþóåéò ðïõ ðáñåß÷å ï ÄéáãñáöÞ Ðáñù÷çìÝíùí Áñ÷åßùí, Êáôáëüãùí êáé ÂéâëéïèçêþíDelete obsolete files, directories and librariesÊáôÜ ôçí óõíå÷Þ áíÜðôõîç ôïõ &os; åßíáé öõóéïëïãéêü êÜðïéá áñ÷åßá
êáôÜ êáéñïýò íá ÷áñáêôçñßæïíôáé ùò ðáñù÷çìÝíá. Áõôü ìðïñåß íá óõìâåß
áí ïé ëåéôïõñãßåò ðïõ ðáñåß÷áí õëïðïéïýíôáé ðëÝïí äéáöïñåôéêÜ, áí ï
ï áñéèìüò Ýêäïóçò ôçò âéâëéïèÞêçò Ý÷åé áëëÜîåé Þ áêüìá êáé áí Ý÷åé
äéáãñáöåß ïñéóôéêÜ áðü ôï óýóôçìá. Óôá áñ÷åßá áõôÜ ðåñéëáìâÜíïíôáé
åðßóçò âéâëéïèÞêåò êáôÜëïãïé ðïõ ðñÝðåé íá äéáãñáöïýí üôáí ãßíåôáé
áíáâÜèìéóç ôïõ óõóôÞìáôïò. Ôï üöåëïò ãéá ôï ÷ñÞóôç åßíáé üôé ôï
óýóôçìá ôïõ äåí ãåìßæåé áðü ðáëéÜ áñ÷åßá ôá ïðïßá êáôáëáìâÜíïõí
Ü÷ñçóôï ÷þñï óôï ìÝóï áðïèÞêåõóçò êáé óôï backup. Åðéðñüóèåôá, áí
êÜðïéá ðáëéÜ âéâëéïèÞêç åß÷å ðñïâëÞìáôá óôáèåñüôçôáò Þ áóöÜëåéáò
èá ðñÝðåé íá ôçí áíáâáèìßóåôå ãéá íá êñáôÞóåôå ôï óýóôçìá óáò
óôáèôåñü êáé áóöáëÝò. Ôá áñ÷åßá, ïé êáôÜëïãïé êáé ïé âéâëéïèÞêåò ðïõ
èåùñïýíôáé ðáñù÷çìÝíåò öáßíïíôáé óôï
/usr/src/ObsoleteFiles.inc. Ïé ðáñáêÜôù ïäçãßåò
èá óáò âïçèÞóïõí íá äéáãñÜøåôå áõôÜ ôá áñ÷åßá êáôÜ ôç äéáäéêáóßá
áíáâÜèìéóçò ôïõ óõóôÞìáôïò.ÕðïèÝôïõìå üôé ÷ñçóéìïðïéåßôå ôá âÞìáôá ðïõ ðåñéãñÜöïíôáé óôï
. ÌåôÜ ôçí åðéôõ÷Þ åêôÝëóç ôçò åíôïëÞò
make installworld êáé ôïõ
mergemaster ðïõ áêïëïõèåß, èá ðñÝðåé íá åëÝãîåôå ãéá
ðáñù÷çìÝíá áñ÷åßá êáé âéâëéïèÞêåò üðùò öáßíåôáé ðáñáêÜôù:&prompt.root; cd /usr/src
&prompt.root; make check-oldÁí âñåèïýí ðáñù÷çìÝíá áñ÷åßá, ìðïñåßôå íá ôá äéáãñÜøåôå ìå ôéò
ðáñáêÜôù åíôïëÝò:&prompt.root; make delete-oldÄåßôå ôï /usr/src/Makefile ãéá ðåñéóóüôåñåò
åíäéáöÝñïõóåò åðéëïãÝò ôçò make.Ãéá êÜèå áñ÷åßï ðïõ èá äéáãñáöåß, èá óáò æçôçèåß íá åðéâåâáéþóåôå
ôçí åíÝñãåéá. Ìðïñåßôå íá ðáñáëåßøåôå ôçí åñþôçóç êáé íá áöÞóåôå ôï
óýóôçìá íá äéáãñÜøåé áõôÜ ôá áñ÷åßá áõôüìáôá ÷ñçóéìïðïéþíôáò ôçí
ìåôáâëçôÞ ôïõ make BATCH_DELETE_OLD_FILES ìå ôïí
ôñüðï ðïõ öáßíåôáé ðáñáêÜôù:&prompt.root; make -DBATCH_DELETE_OLD_FILES delete-oldÐñïåéäïðïßçóçÇ äéáãñáöÞ ðáñù÷çìÝíùí áñ÷åßùí, èá ðñïêáëÝóåé äõóëåéôïõñãßá ôùí
åöáñìïãþí ðïõ åîáêïëïõèïýí íá âáóßæïíôáé óå áõôÜ. Áõôü óõìâáßíåé
éäéáßôåñá óå ðáëéÝò âéâëéïèÞêåò. Óôéò ðåñéóóüôåñåò ðåñéðôþóåéò, èá
ðñÝðåé íá åðáíáìåôáãëùôôßóåôå ôá ðñïãñÜììáôá, ports Þ âéâëéïèÞêåò ðïõ
÷ñçóéìïðïéïýóáí ôçí ðáëéÜ âéâëéïèÞêç ðñéí åêôåëÝóåôå ôçí åíôïëÞ
make delete-old-libs.Ìðïñåßôå íá âñåßôå ðñïãñÜììáôá ðïõ åëÝã÷ïõí ôéò åîáñôÞóåéò ôùí
êïéíü÷ñçóôùí âéâëéïèçêþí óôç ÓõëëïãÞ ôùí Ports, óôï sysutils/libchk Þ sysuilts/bsdadminscripts.Ïé ðáñù÷çìÝíåò êïéíü÷ñçóôåò âéâëéïèÞêåò ìðïñïýí íá äçìéïõñãÞóïõí
ðñïâëÞìáôá ëüãù óõãêñïýóåùí ìå íåþôåñåò åêäüóåéò. Óå áõôÝò ôéò
ðåñéðôþóåéò, èá äåßôåé ìçíýìáôá üðùò ôá ðáñáêÜôù:/usr/bin/ld: warning libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so may conflict with librpcsvc.so.5Ãéá íá åðéëýóåôå ôÝôïéïõ åßäïõò ðñïâëÞìáôá, âñåßôå ðïéï port
åãêáôÝóôçóå ôçí âéâëéïèÞêç:&prompt.root; pkg_info -W /usr/local/lib/libtiff.so
/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
&prompt.root; pkg_info -W /usr/local/lib/libXext.so
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1¸ðåéôá, áðåãêáôáóôÞóôå, åðáíáìåôáãëùôôßóôå êáé åðáíåãêáôáóÞóôå ôï
port. Ãéá íá áõôïìáôïðïéÞóåôå áõôÞ ôç äéáäéêáóßá ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå ôá âïçèçôéêÜ ðñïãñÜììáôá ports-mgmt/portmaster êáé ports-mgmt/portupgrade. Áöïý âåâáéùèåßôå
üôé ïé ðáëéÝò âéâëéïèÞêåò äåí ÷ñçóéìïðïéïýíôáé ðëÝïí áðü êáíÝíá
ðñüãñáììá, ìðïñåßôå íá ôéò äéáãñÜøåôå ìå ôçí ðáñáêÜôù åíôïëÞ:&prompt.root; make delete-old-libsMikeMeyerÓõíåéóöïñÜ ôïõ Äéáäéêáóßá ãéá ÐïëëáðëÜ Ìç÷áíÞìáôáNFSinstalling multiple machinesÁí Ý÷åôå ðïëëáðëÜ ìç÷áíÞìáôá óôá ïðïßá ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå
ôï ßäéï äÝíôñï ðçãáßïõ êþäéêá, åßíáé óðáôÜëç ðüñùí (äßóêïõ, äéêôýïõ êáé
åðåîåñãáóôÞ) íá åðáíáëáìâÜíåôå óå üëá ôç äéáäéêáóßá áíÜêôçóçò êáé
ìåôáãëþôôéóçò. Ç ëýóç åßíáé íá ïñßóåôå Ýíá ìç÷Üíçìá íá åêôåëåß ôï
ìåãáëýôåñï ìÝñïò ôçò åñãáóßáò, åíþ ôá õðüëïéðá èá ìðïñïýí íá ôçí
áíáêôïýí ìÝóù NFS. Óôçí åíüôçôá áõôÞ èá ðáñïõóéÜóïõìå Ýíá ôñüðï ìå
ôïí ïðïßï ìðïñåß íá ãßíåé áõôü.ÐñïêáôáñêôéêÜÐñþôá áðü üëá, áíáãíùñßóôå ôï óåô ôùí ìç÷áíçìÜôùí óôá ïðïßá
óêïðåýåôå íá ÷ñçóéìïðïéÞóåôå ôá ßäéá åêôåëÝóéìá. Èá ïíïìÜóïõìå áõôÞ
ôçí ïìÜäá óåô ìåôáãëþôôéóçò. ÊÜèå ìç÷Üíçìá
ìðïñåß íá Ý÷åé äéêü ôïõ ðñïóáñìïóìÝíï ðõñÞíá, áëëÜ èá Ý÷ïõí üëá ôá
ßäéá åêôåëÝóéìá userland. Áðü ôï óåô áõôü, åðéëÝîôå Ýíá ìç÷Üíçìá ôï
ïðïßï èá ãßíåé ôï ìç÷Üíçìá ìåôáãëþôôéóçò.
Èá åßíáé ôï ìç÷Üíçìá óôï ïðïßï èá ìåôáãëùôôßæåôáé ôï âáóéêü óýóôçìá
êáé ï ðõñÞíáò. Ôï éäáíéêü åßíáé íá åðéëÝîåôå Ýíá ãñÞãïñï ìç÷Üíçìá,
óôï ïðïßï íá õðÜñ÷åé áñêåôüò åëåýèåñïò ÷ñüíïò óôïí åðåîåñãáóôÞ ãéá íá
åêôåëåß ôá make buildworld êáé
make buildkernel. Èá ðñÝðåé åðßóçò íá åðéëÝîåôå
Ýíá ìç÷Üíçìá äïêéìþí óôï ïðïßï èá äïêéìÜæåôå ôéò
åíçìåñþóåéò ëïãéóìéêïý ðñéí ôéò ìåôáöÝñåôå óôçí ðáñáãùãÞ. Ìðïñåß íá
åßíáé êáé ôï ßäéï ôï ìç÷Üíçìá ìåôáãëþôôéóçò, áëëÜ áõôü äåí åßíáé
áðáñáßôçôï.¼ëá ôá ìç÷áíÞìáôá óôï óåô ìåôáãëþôôéóçò ÷ñåéÜæåôáé íá
ðñïóáñôÞóïõí ôï /usr/obj êáé ôï
/usr/src áðü ôï ßäéï ìç÷Üíçìá, êáé óôï ßäéï
óçìåßï ðñïóÜñôçóçò. Ôï éäáíéêü åßíáé áõôÜ ôá äýï óõóôÞìáôá áñ÷åßùí
íá âñßóêïíôáé óå äéáöïñåôéêü öõóéêü äßóêï óôï ìç÷Üíçìá ìåôáãëþôôéóçò,
áëëÜ ìðïñåßôå íá ôá ðñïóáñôÞóåôå ìÝóù NFS áêüìá êáé óå áõôü ôï
ìç÷Üíçìá. Áí Ý÷åôå ðïëëáðëÜ óåô ìåôáãëþôôéóçò, ôï
/usr/src èá ðñÝðåé íá âñßóêåôáé óå Ýíá áðü ôá
ìç÷áíÞìáôá ìåôáãëþôôéóçò, êáé íá ðñïóáñôÜôáé óôá õðüëïéðá ìÝóù
NFS.ÔÝëïò, âåâáéùèåßôå üôé ôá áñ÷åßá
/etc/make.conf êáé
/etc/src.conf óå üëá ôá ìç÷áíÞìáôá ôïõ óåô
ìåôáãëþôôéóçò, åßíáé ßäéá ìå ôá áíôßóôïé÷á óôï ìç÷Üíçìá ìåôáãëþôôéóçò.
Áõôü óçìáßíåé üôé ôï ìç÷Üíçìá ìåôáãëþôôéóçò èá ðñÝðåé íá
ìåôáãëùôôßæåé üëá ôá ôìÞìáôá ôïõ âáóéêïý óõóôÞìáôïò ôá ïðïßá èá
åãêáôáóôáèïýí óå êÜèå ìç÷Üíçìá ôïõ óåô. Åðßóçò, óå êÜèå ìç÷Üíçìá
óôï óåô ìåôáãëþôôéóçò èá ðñÝðåé íá ïñéóôåß ôï üíïìá ôïõ äéêïý ôïõ
ðñïóáñìïóìÝíïõ ðõñÞíá ìÝóù ôçò ìåôáâëçôÞò
KERNCONF óôï /etc/make.conf,
åíþ êáé ôï ìç÷Üíçìá ìåôáãëþôôéóçò èá ðñÝðåé íá Ý÷åé ìéá ëßóôá üëùí
ôùí Üëëùí óôï KERNCONF, îåêéíþíôáò áðü ôï äéêü
ôïõ. Ôï ìç÷Üíçìá ìåôáãëþôôéóçò, èá ðñÝðåé íá Ý÷åé ôá áñ÷åßá ñýèìéóçò
ôïõ ðõñÞíá üëùí ôùí Üëëùí ìç÷áíçìÜôùí óôïí êáôÜëïãï
/usr/src/sys/arch/conf
áí ðñüêåéôáé íá ìåôáãëùôôßæåé ôïõò ðõñÞíåò ôïõò.Ôï Âáóéêü Óýóôçìá¸÷ïíôáò ðñáãìáôïðïéÞóåé üëá ôá ðáñáðÜíù, åßóôå Ýôïéìïò íá
ìåôáãëùôôßóåôå ôá ðÜíôá. Ìåôáãëùôôßóôå ôïí ðõñÞíá êáé ôï âáóéêü
óýóôçìá üðùò ðåñéãñÜøáìå óôï
÷ñçóéìïðïéþíôáò ôï ìç÷Üíçìá ìåôáãëþôôéóçò, áëëÜ ìçí åãêáôáóôÞóåôå
ôßðïôá. ÌåôÜ ôï ôÝëïò ôçò ìåôáãëþôôéóçò, ÷ñçóéìïðïéÞóôå ôï ìç÷Üíçìá
äïêéìþí êáé åãêáôáóôÞóôå ôïí ðõñÞíá ðïõ ìüëéò äçìéïõñãÞóáôå. Áí ôï
ìç÷Üíçìá áõôü ðñïóáñôÜ ôï /usr/src êáé ôï
/usr/obj ìÝóù NFS, üôáí ôï åðáíåêêéíÞóåôå óå
êáôÜóôáóç åíüò ÷ñÞóôç, èá ÷ñåéáóôåß íá åíåñãïðïéÞóåôå ôï äßêôõï êáé
íá ôá ðñïóáñôÞóåôå. Ï åõêïëüôåñïò ôñüðïò ãéá áõôü, åßíáé íá
åêêéíÞóåôå óå êáôÜóôáóç ðïëëáðëþí ÷ñçóôþí êáé Ýðåéôá íá åêôåëÝóåôå
shutdown now ãéá íá ìåôáâåßôå óå êáôÜóôáóç åíüò
÷ñÞóôç. Ìüëéò ãßíåé áõôü, ìðïñåßôå íá åãêáôáóôÞóåôå ôïí íÝï ðõñÞíá
êáé ôï âáóéêü óýóôçìá, êáé íá åêôåëÝóåôå ôï
mergemaster üðùò èá êÜíáôå óõíÞèùò. ¼ôáí
ôåëåéþóåôå, åðáíåêêéíÞóôå áõôü ôï ìç÷Üíçìá óôçí êáíïíéêÞ ëåéôïõñãßá
ðïëëáðëþí ÷ñçóôþí.¼ôáí âåâáéùèåßôå üôé üëá ëåéôïõñãïýí óùóôÜ óôï ìç÷Üíçìá äïêéìþí,
÷ñçóéìïðïéÞóôå ôçí ßäéá äéáäéêáóßá ãéá íá åãêáôáóôÞóåôå ôï íÝï
ëïãéóìéêü óå êÜèå Ýíá áðü ôá õðüëïéðá ìç÷áíÞìáôá ôïõ óåô
ìåôáãëþôôéóçò.PortsÌðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôéò ßäéåò éäÝåò êáé ãéá ôï äÝíôñï
ôùí ports. Ôï ðñþôï êñßóéìï âÞìá åßíáé íá ðñïóáñôÞóåôå ôï
/usr/ports áðü ôï ßäéï ìç÷Üíçìá, óå üëá ôá
ìç÷áíÞìáôá ôïõ óåô ìåôáãëþôôéóçò. Ìðïñåßôå Ýðåéôá íá ñõèìßóåôå ôï
/etc/make.conf þóôå íá äéáìïéñÜæïíôáé ôá
distfiles. Èá ðñÝðåé íá èÝóåôå ôï DISTDIR óå Ýíá
êïéíü÷ñçóôï êáôÜëïãï, óôïí ïðïßï èá äþóåôå äéêáéþìáôá åããñáöÞò óå
ïðïéïäÞðïôå ÷ñÞóôç Ý÷åôå äçëþóåé ùò root óôï
NFS. Óå êÜèå ìç÷Üíçìá èá ðñÝðåé åðßóçò íá ïñéóôåß ç ìåôáâëçôÞ
WRKDIRPREFIX þóôå íá äåß÷íåé óå Ýíá ôïðéêü
êáôÜëïãï. ÔÝëïò, áí óêïðåýåôå íá ìåôáãëùôôßæåôå êáé íá äéáíÝìåôå
Ýôïéìá ðáêÝôá, èá ðñÝðåé íá èÝóåôå ôçí ìåôáâëçôÞ
PACKAGES óå Ýíá êáôÜëïãï, üðùò êÜíáôå êáé ìå ôçí
DISTDIR.
diff --git a/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml b/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml
index 3a0c9e58b9..b38fb4360c 100644
--- a/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml
@@ -1,1028 +1,1025 @@
AndreyChernovÓõíåéóöïñÜ ôïõ Michael C.WuÃñÜöçêå îáíÜ áðü ôïí ÔïðéêÝò Ñõèìßóåéò - ×ñÞóç êáé ñýèìéóç I18N/L10NÓýíïøçÔï &os; åßíáé Ýíá éäéáßôåñá áðïêåíôñùìÝíï Ýñãï ìå ÷ñÞóôåò êáé
åèåëïíôÝò óå ïëüêëçñï ôïí êüóìï. Óôï êåöÜëáéï áõôü óõæçôïýíôáé
ïé äõíáôüôçôåò ôïðéêþí êáé äéåèíþí ñõèìßóåùí ôïõ &os;, ïé ïðïßåò
åðéôñÝðïõí óå ÷ñÞóôåò ãëùóóþí åêôüò ôçò ÁããëéêÞò íá åêôåëÝóïõí
ðñáãìáôéêÞ åñãáóßá. ÕðÜñ÷ïõí ðïëëïß ðáñÜãïíôåò óôçí õëïðïßçóç ôïõ
ðëáéóßïõ i18n, ôüóï óå åðßðåäï óõóôÞìáôïò, üóï êáé åöáñìïãþí, êáé
ãéá ôï ëüãï áõôü, üðïõ ÷ñåéÜæåôáé, ðáñáðÝìðïõìå ôïí áíáãíþóôç óå ðéï
óõãêåêñéìÝíåò ðçãÝò ôåêìçñßùóçò.Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:Ðùò êùäéêïðïéïýíôáé ïé ãëþóóåò êáé ïé ôïðéêÝò ñõèìßóåéò
óôá óýã÷ñïíá ëåéôïõñãéêÜ óõóôÞìáôá.Ðùò íá âÜëåôå ôïðéêÝò ñõèìßóåéò óôï êÝëõöïò óáò (login
shell).Ðùò íá ñõèìßóåôå ôçí êïíóüëá ãéá ãëþóóåò åêôüò ôçò
ÁããëéêÞò.Ðùò íá ÷ñçóéìïðïéÞóåôå áðïôåëåóìáôéêÜ ôï óýóôçìá X
Windows ìå äéáöïñåôéêÝò ãëþóóåò.Ðïõ íá âñåßôå ðåñéóóüôåñåò ðëçñïöïñßåò ãéá ôç óõããñáöÞ
åöáñìïãþí óõìâáôþí ìå ôï ðñüôõðï i18n.Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:Íá ãíùñßæåôå ðùò íá åãêáôáóôÞóåôå ðñüóèåôï ëïãéóìéêü
ôñßôïõ êáôáóêåõáóôÞ ().ÂáóéêÝò ÃíþóåéòÔé Åßíáé ôï I18N/L10N;internationalizationlocalizationlocalizationÏé ïìÜäåò áíÜðôõîçò ëïãéóìéêïý äçìéïýñãçóáí ôïí üñï I18N,
ùò óõíôüìåõóç ôçò ëÝîçò internationalization
(äéåèíïðïßçóç), ìåôñþíôáò áðëþò ôá ãñÜììáôá ôçò ëÝîçò áíÜìåóá
óôï ðñþôï êáé ôï ôåëåõôáßï. Ï üñïò L10N Ý÷åé ðñïêýøåé ìå ôïí ßäéï
ôñüðï, áõôÞ ôç öïñÜ áðü ôç ëÝîç localization
(ôïðéêïðïßçóç, Þ áðëþò ôïðéêÝò ñõèìßóåéò). ÓõíäõÜæïíôáò ìåôáîý ôïõò
ôéò ìåèüäïõò, ôá ðñùôüêïëëá, êáé ôéò åöáñìïãÝò ðïõ óõìâáäßæïõí ìå ôá
I18N/L10N, ïé ÷ñÞóôåò ìðïñïýí íá ÷ñçóéìïðïéÞóïõí ôéò ãëþóóåò ôçò
åðéëïãÞò ôïõò.Ïé åöáñìïãÝò I18N ðñïãñáììáôßæïíôáé ìå ôç âïÞèåéá åñãáëåßùí
(kits) êáé âéâëéïèçêþí. ÅðéôñÝðåôáé Ýôóé óôïõò ðñïãñáììáôéóôÝò íá
ãñÜøïõí Ýíá áðëü áñ÷åßï êáé íá ìåôáöñÜóïõí ôá ìåíïý êáé ôá êåßìåíá
ðïõ áðåéêïíßæåé ç åöáñìïãÞ, óå êÜèå ãëþóóá ðïõ áðáéôåßôáé.
Óõíéóôïýìå Ýíèåñìá óôïõò ðñïãñáììáôéóôÝò íá áêïëïõèïýí ôçí ðáñáðÜíù
óýìâáóç.Ãéáôß ÐñÝðåé íá ×ñçóéìïðïéÞóù ôá I18N/L10N;Ôá I18N/L10N ÷ñçóéìïðïéïýíôáé êÜèå öïñÜ ðïõ åðéèõìåßôå íá äåßôå,
íá åéóÜãåôå, Þ íá åðåîåñãáóôåßôå äåäïìÝíá óå ãëþóóåò åêôüò ôçò
ÁããëéêÞò.Ðïéåò Ãëþóóåò Õðïóôçñßæïíôáé óôï I18N;Ôï I18N êáé ôï L10N äåí åßíáé åéäéêÜ öôéáãìÝíá ãéá ôï &os;. Ôçí
äåäïìÝíç óôéãìÞ, õðïóôçñßæïíôáé ïé ðåñéóóüôåñåò ãíùóôÝò ãëþóóåò,
óõìðåñéëáìâáíïìÝíùí ôùí: Êéíåæéêþí, Ãåñìáíéêþí, ÃéáðùíÝæéêùí,
Êïñåáôéêþí, Ãáëëéêþí, Ñùóéêþí, ÂéåôíáìÝæéêùí, ê.á.×ñÞóç ôùí Ôïðéêþí ÑõèìßóåùíÔï I18N åßíáé óôçí ðñáãìáôéêüôçôá ìéá óýìâáóç, êáé äåí Ý÷åé
äçìéïõñãçèåß áðïêëåéóôéêÜ ãéá ôï &os;. Åðéèõìïýìå ôç âïÞèåéá óáò
þóôå ôï &os; íá áêïëïõèåß áõôÞ ôç óýìâáóç.localeÏé ôïðéêÝò ñõèìßóåéò âáóßæïíôáé óå ôñåéò âáóéêïýò üñïõò:
Êùäéêü Ãëþóóáò, Êùäéêü ×þñáò êáé Êùäéêïðïßçóç. Ôá ïíüìáôá ôùí ôïðéêþí
ñõèìßóåùí ðñïêýðôïõí áðü ôïõò ðáñáðÜíù üñïõò, ìå ôïí ôñüðï ðïõ
ðåñéãñÜöåôáé ðáñáêÜôù:ÊùäéêüòÃëþóóáò_Êùäéêüò×þñáò.ÊùäéêïðïßçóçÊùäéêïß Ãëùóóþí êáé ×ùñþílanguage codescountry codesÃéá íá ÷ñçóéìïðïéçèïýí ïé ôïðéêÝò ñõèìßóåéò ãéá ìéá óõãêåêñéìÝíç
ãëþóóá óå Ýíá óýóôçìá &os; (Þ óå Üëëï óýóôçìá ôýðïõ &unix; ðïõ
õðïóôçñßæåé ôï ðñüôõðï I18N), ï ÷ñÞóôçò èá ðñÝðåé íá âñåé ôïõò
êùäéêïýò ôçò óõãêåêñéìÝíçò ÷þñáò êáé ãëþóóáò (ïé êùäéêïß ÷ùñþí
êáèïäçãïýí ôéò åöáñìïãÝò ó÷åôéêÜ ìå ôç äéÜëåêôï ôçò ãëþóóáò ðïõ ðñÝðåé
íá ÷ñçóéìïðïéçèåß). ÐñïãñÜììáôá üðùò öõëëïìåôñçôÝò, åîõðçñåôçôÝò
éóôïóåëßäùí, åîõðçñåôçôÝò SMTP/POP êëð. ðáßñíïõí åðßóçò êÜðïéåò
áðïöÜóåéò ðïõ åîáñôþíôáé áðü ôïõò êùäéêïýò áõôïýò. ÐáñáêÜôù öáßíïíôáé
ìåñéêÜ ðáñáäåßãìáôá ãëùóóþí/÷ùñþí:Êùäéêüò Ãëþóóáò/×þñáòÐåñéãñáöÞen_USÁããëéêÜ - ÇíùìÝíåò Ðïëéôåßåòru_RUÑþóéêá - Ñùóßázh_TWÐáñáäïóéáêÜ ÊéíÝæéêá - ÔáúâÜíÊùäéêïðïéÞóåéòencodingsASCIIÊÜðïéåò ãëþóóåò ÷ñçóéìïðïéïýí êùäéêïðïéÞóåéò ðïõ äåí åßíáé ASCII,
áëëÜ ðåñéÝ÷ïõí ÷áñáêôÞñåò 8-bit, wide, Þ multibyte (äåßôå ôç
óåëßäá manual &man.multibyte.3; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò). Ïé
ðéï êáéíïýñéåò åöáñìïãÝò óõíÞèùò áíáãíùñßæïõí ôïõò ÷áñáêôÞñåò 8-bit.
ÁíÜëïãá ìå ôçí õëïðïßçóç, ïé ÷ñÞóôåò ìðïñåß íá ÷ñåéÜæåôáé íá
ìåôáãëùôôßóïõí ìéá åöáñìïãÞ ìå õðïóôÞñéîç ÷áñáêôÞñùí wide Þ
multibyte, Þ íá ðñïóáñìüóïõí ôéò ñõèìßóåéò ôïõ ðñïãñÜììáôïò. Ãéá íá
Ý÷åôå ôçí éêáíüôçôá íá åéóÜãåôå êáé íá åðåîåñãÜæåóôå ÷áñáêôÞñåò
multibyte, ç ÓõëëïãÞ ôùí Ports
ôïõ &os; äéáèÝôåé ðñïãñÜììáôá ãéá êÜèå ãëþóóá. Äåßôå ôçí
ôåêìçñßùóç ãéá ôï I18N óôï áíôßóôïé÷ï Port ôïõ &os;.Åéäéêüôåñá, ï ÷ñÞóôçò ÷ñåéÜæåôáé íá äéáâÜóåé ôçí ôåêìçñßùóç ôçò
åöáñìïãÞò, ãéá íá áðïöáóßóåé ðùò ðñÝðåé íá ôç ñõèìßóåé óùóôÜ Þ ðùò íá
ðåñÜóåé ôéò óùóôÝò ôéìÝò óôï configure, ôï Makefile Þ ôïí
ìåôáãëùôôéóôÞ.Èá ðñÝðåé íá Ý÷åôå êáôÜ íïõ êÜðïéá ðñÜãìáôá:Óåô ÷áñáêôÞñùí ðïõ åîáñôþíôáé áðü ôç ãëþóóá (single C chars
character set, äåßôå ôçí &man.multibyte.3;), ð.÷.
ISO8859-1, ISO8859-15, KOI8-R, CP437.ÊùäéêïðïéÞóåéò Wide Þ multibyte, ð.÷. EUC, Big5.Ìðïñåßôå íá äåßôå ôçí åíåñãÞ ëßóôá ôùí óåô ÷áñáêôÞñùí óôï
Ìçôñþï
IANA.Ôï &os; ÷ñçóéìïðïéåß ãéá ôéò ôïðéêÝò ñõèìßóåéò êùäéêïðïéÞóåéò
óõìâáôÝò ìå ôï X11.ÅöáñìïãÝò I18NÓôï óýóôçìá ðáêÝôùí êáé ports ôïõ &os;, ïé åöáñìïãÝò ðïõ
ó÷åôßæïíôáé ìå ôï I18N Ý÷ïõí óôï üíïìá ôïõò ôç ëÝîç
I18N þóôå íá áíáãíùñßæïíôáé åýêïëá. Ùóôüóï, ìðïñåß
íá ìçí õðïóôçñßæïõí ðÜíôïôå ôç ãëþóóá ðïõ ÷ñåéÜæåóôå.ÔïðéêÝò ÑõèìßóåéòÅßíáé óõíÞèùò áñêåôü íá ãßíåé export ç ôéìÞ ìå ôçí ïíïìáóßá ôçò
åðéèõìçôÞò ôïðéêÞò ñýèìéóçò, ìÝóù ôçò ìåôáâëçôÞò ðåñéâÜëëïíôïò
LANG óôï êÝëõöïò åéóüäïõ. Áõôü ìðïñåß íá ãßíåé óôï
áñ÷åßï ~/.login_conf ôïõ ÷ñÞóôç, Þ óôï áñ÷åßï
åêêßíçóçò ôïõ êåëýöïõò ôïõ ÷ñÞóôç (~/.profile,
~/.bashrc, ~/.cshrc).
Äåí åßíáé áíÜãêç íá èÝóåôå êáé ôéò õðüëïéðåò ìåôáâëçôÝò ôùí ôïðéêþí
ñõèìßóåùí, üðùò ïé LC_CTYPE, LC_CTIME.
Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, äéáâÜóôå ôçí ôåêìçñßùóç ôïõ &os; ðïõ
ó÷åôßæåôáé ìå ôçí õðïóôÞñéîç ôçò åðéèõìçôÞò ãëþóóáò.Èá ðñÝðåé íá èÝóåôå ôéò äýï ðáñáêÜôù ìåôáâëçôÝò ðåñéâÜëëïíôïò,
óôá áñ÷åßá ñõèìßóåùí:
- POSIXÔçí LANG ãéá ëåéôïõñãßåò ðïõ áíÞêïõí óôçí
- ïéêïãÝíåéá &posix; &man.setlocale.3;
+ ïéêïãÝíåéá &posix;POSIX &man.setlocale.3;
- MIME
-
- Ôçí MM_CHARSET ãéá ôï óýíïëï ÷áñáêôÞñùí MIME
+ Ôçí MM_CHARSET ãéá ôï óýíïëï ÷áñáêôÞñùí MIMEMIME
ôùí åöáñìïãþí.Ôï ðáñáðÜíù ðåñéëáìâÜíåé ôçí ñýèìéóç ôïõ êåëýöïõò ÷ñÞóôç, ôçí
ñýèìéóç ãéá ìéá óõãêåêñéìÝíç åöáñìïãÞ, êáé ôç ñýèìéóç ãéá ôá
X11.ÌÝèïäïé ÁëëáãÞò Ôïðéêþí Ñõèìßóåùílocalelogin classÕðÜñ÷ïõí äýï ìÝèïäïé ãéá ôçí áëëáãÞ ôùí ôïðéêþí ñõèìßóåùí, ôéò
ïðïßåò êáé ðåñéãñÜöïõìå ðáñáêÜôù. Ç ðñþôç (ôçí ïðïßá êáé
óõíéóôïýìå) õëïðïéåßôáé èÝôïíôáò ôéìÝò óôéò ìåôáâëçôÝò ðåñéâÜëëïíôïò
óôï login class, êáé ç äåýôåñç
áëëÜæïíôáò ôéò ôéìÝò ôùí ìåôáâëçôþí ðåñéâÜëëïíôïò óôï
áñ÷åßï åêêßíçóçò ôïõ êåëýöïõò
ôïõ ÷ñÞóôç.ÌÝèïäïò ÊëÜóåùí Åéóüäïõ (Login Class)Ç ìÝèïäïò áõôÞ åðéôñÝðåé íá ãßíåé ç ñýèìéóç ôùí ìåôáâëçôþí
ðåñéâÜëëïíôïò ìéá öïñÜ ãéá êÜèå êÝëõöïò, áíôß íá ÷ñåéÜæåôáé íá
ôåèïýí óõãêåêñéìÝíåò ôéìÝò óôï áñ÷åßï åêêßíçóçò ôïõ êáèåíüò
÷ùñéóôÜ. Ïé Ñõèìßóåéò óå Åðßðåäï
×ñÞóôç ìðïñïýí íá ãßíïõí áðü ôïí ßäéï ôï ÷ñÞóôç, åíþ ïé
Ñõèìßóåéò óå Åðßðåäï Äéá÷åéñéóôÞ
áðáéôïýí ðñïíüìéá õðåñ÷ñÞóôç.Ñõèìßóåéò óå Åðßðåäï ×ñÞóôçÔï ðáñáêÜôù áðëü ðáñÜäåéãìá, äåß÷íåé Ýíá áñ÷åßï
.login_conf óôïí êáôÜëïãï êÜðïéïõ ÷ñÞóôç
óôï ïðïßï êáé ïé äýï ìåôáâëçôÝò Ý÷ïõí ôåèåß ãéá êùäéêïðïßçóç
Latin-1:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:Traditional ChineseBIG-5 encodingÐáñáêÜôù âëÝðåôå Ýíá .login_conf óôï
ïðïßï ïé ìåôáâëçôÝò Ý÷ïõí ôåèåß ãéá ÐáñáäïóéáêÜ ÊéíÝæéêá óå
êùäéêïðïßçóç BIG-5. ÐáñáôçñÞóôå üôé Ý÷ïõìå èÝóåé ðïëý
ðåñéóóüôåñåò ìåôáâëçôÝò, êáèþò êÜðïéåò åöáñìïãÝò äåí óÝâïíôáé
óùóôÜ ôéò ìåôáâëçôÝò ãéá ÊéíÝæéêá, ÃéáðùíÝæéêá êáé
ÊïñåÜôéêá.#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
:lang=zh_TW.Big5:\
:setenv=LC_ALL=zh_TW.Big5:\
:setenv=LC_COLLATE=zh_TW.Big5:\
:setenv=LC_CTYPE=zh_TW.Big5:\
:setenv=LC_MESSAGES=zh_TW.Big5:\
:setenv=LC_MONETARY=zh_TW.Big5:\
:setenv=LC_NUMERIC=zh_TW.Big5:\
:setenv=LC_TIME=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=gcin": #Set gcin as the XIM Input ServerÃéá ðåñéóóüôåñåò ðëçñïöïñßåò, äåßôå ôéò Ñõèìßóåéò óå Åðßðåäï Äéá÷åéñéóôÞ
êáé ôçí &man.login.conf.5;.Ñõèìßóåéò óå Åðßðåäï Äéá÷åéñéóôÞÂåâáéùèåßôå üôé Ý÷åé ïñéóôåß ç óùóôÞ ãëþóóá óôçí êëÜóç ôïõ
÷ñÞóôç, óôï áñ÷åßï /etc/login.conf.
Óôï áñ÷åßï áõôü èá ðñÝðåé íá õðÜñ÷ïõí ïé ðáñáêÜôù
ñõèìßóåéò:language_name|Account Type Description:\
:charset=MIME_charset:\
:lang=locale_name:\
:tc=default:Ìå âÜóç ôï ðñïçãïýìåíï ðáñÜäåéãìá ìáò ðïõ ÷ñçóéìïðïéÞóáìå
Latin-1, ôï áñ÷åßï èá ìïéÜæåé ìå ôï ðáñáêÜôù:german|German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Ðñéí êÜíåôå áëëáãÝò óôéò ÊëÜóåéò Åéóüäïõ (Login Classes) ôùí
÷ñçóôþí, åêôåëÝóôå ôçí ðáñáêÜôù åíôïëÞ:&prompt.root; cap_mkdb /etc/login.confþóôå íá åíåñãïðïéçèïýí óôï óýóôçìá ïé áëëáãÝò ðïõ êÜíáôå óôï
/etc/login.conf.ÁëëáãÞ ÊëÜóåùí Åéóüäïõ ìÝóù ôçò &man.vipw.8;vipw×ñçóéìïðïéÞóôå ôçí vipw ãéá íá
ðñïóèÝóåôå íÝïõò ÷ñÞóôåò, êáé êÜíôå ôçí êáôá÷þñéóç íá ìïéÜæåé ìå
ôçí ðáñáêÜôù:user:password:1111:11:language:0:0:User Name:/home/user:/bin/shÁëëáãÞ ÊëÜóåùí Åéóüäïõ ìÝóù ôçò &man.adduser.8;adduserlogin class×ñçóéìïðïéÞóôå ôçí adduser ãéá íá
ðñïóèÝóåôå íÝïõò ÷ñÞóôåò, êáé Ýðåéôá áêïëïõèÞóôå ôéò ðáñáêÜôù
ïäçãßåò:ÈÝóôå ôï defaultclass =
language óôï
/etc/adduser.conf. Íá Ý÷åôå õðüøç óáò
üôé óå áõôÞ ôçí ðåñßðôùóç, èá ðñÝðåé íá ïñßóåôå ìéá êëÜóç
default ãéá üëïõò ôïõò ÷ñÞóôåò Üëëùí
ãëùóóþí.Ìéá åíáëëáêôéêÞ ëýóç, åßíáé íá áðáíôÜôå êÜèå öïñÜ óôçí
åñþôçóçEnter login class: default []: ðïõ åìöáíßæåôáé áðü ôçí &man.adduser.8;.Áêüìá ìéá åíáëëáêôéêÞ ëýóç, åßíáé íá ÷ñçóéìïðïéÞóåôå ôï
ðáñáêÜôù óå êÜèå ÷ñÞóôç ðïõ èÝëåôå íá ðñïóèÝóåôå êáé ï
ïðïßïò ÷ñçóéìïðïéåß äéáöïñåôéêÞ ãëþóóá:&prompt.root; adduser -class languageÁëëáãÞ ÊëÜóåùí Åéóüäïõ ìÝóù ôçò &man.pw.8;pwÁí ÷ñçóéìïðïéåßôå ôçí &man.pw.8; ãéá íá ðñïóèÝóåôå íÝïõò
÷ñÞóôåò, êáëÝóôå ôçí ìå ôïí ðáñáêÜôù ôñüðï:&prompt.root; pw useradd user_name -L languageÌÝèïäïò Áñ÷åßùí Åêêßíçóçò ÊåëýöïõòÇ ìÝèïäïò áõôÞ äåí óõíßóôáôáé, êáèþò áðáéôåß äéáöïñåôéêÝò
ñõèìßóåéò ãéá êÜèå äéáöïñåôéêü ðñüãñáììá êåëýöïõò ðïõ
÷ñçóéìïðïéåßôáé. ÐñïôéìÞóôå êáëýôåñá ôçí ìÝèïäï ôùí
ÊëÜóåùí Åéóüäïõ.MIMElocaleÃéá íá ðñïóèÝóåôå ôéò ôïðéêÝò ñõèìßóåéò êáé ôï óåô ÷áñáêôÞñùí
MIME, ñõèìßóôå áðëþò ôéò äýï ìåôáâëçôÝò ðåñéâÜëëïíôïò ðïõ
öáßíïíôáé ðáñáêÜôù óôï áñ÷åßï
/etc/profile Þ/êáé óôï
/etc/csh.login. Èá ÷ñçóéìïðïéÞóïõìå ôá
ÃåñìáíéêÜ ùò ãëþóóá ãéá ôï ðáñáêÜôù ðáñÜäåéãìá:Óôï /etc/profile:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSET¹ óôï /etc/csh.login:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1ÅíáëëáêôéêÜ, ìðïñåßôå íá ðñïóèÝóåôå ôéò ðáñáðÜíù ïäçãßåò óôï
/usr/share/skel/dot.profile (áíôßóôïé÷á ìå
ôéò ïäçãßåò ãéá ôï /etc/profile ðïõ åßäáìå
ðáñáðÜíù), Þ óôï /usr/share/skel/dot.login
(áíôßóôïé÷á ìå ôéò ïäçãßåò ãéá ôï
/etc/csh.login ðïõ åßäáìå åðßóçò
ðáñáðÜíù).Ãéá ôï X11:Óôï $HOME/.xinitrc:LANG=de_DE.ISO8859-1; export LANG¹:setenv LANG de_DE.ISO8859-1ÁíÜëïãá ìå ôï êÝëõöïò ðïõ ÷ñçóéìïðïéåßôå (äåßôå
ðáñáðÜíù).Ñõèìßóåéò ãéá ôçí ÊïíóüëáÃéá üëá ôá single C óåô ÷áñáêôÞñùí, ìðïñåßôå íá èÝóåôå ôéò
ãñáììáôïóåéñÝò ôçò êïíóüëáò óôï /etc/rc.conf
ãéá ôçí åðéèõìçôÞ ãëþóóá, ãñÜöïíôáò:font8x16=font_name
font8x14=font_name
font8x8=font_nameÔï font_name åäþ ðñïêýðôåé áðü ôï
áíôßóôïé÷ï áñ÷åßï ôïõ êáôáëüãïõ
/usr/share/syscons/fonts, áöáéñþíôáò ôçí
êáôÜëçîç .fnt.sysinstallkeymapscreenmapÁí ÷ñåéÜæåôáé, ÷ñçóéìïðïéÞóôå ôçí êáôÜëëçëç áíôéóôïß÷çóç
ðëçêôñïëïãßïõ (keymap) êáé ïèüíçò ãéá ôï óåô ÷áñáêôÞñùí single C ðïõ
÷ñçóéìïðïéåßôå, ìÝóù ôïõ
sysinstall.
Ìüëéò åêôåëÝóåôå ôï sysinstall, åðéëÝîôå
ôï Configure, êáé Ýðåéôá ôï
Console. ÅíáëëáêôéêÜ, ìðïñåßôå íá
ðñïóèÝóåôå ôï ðáñáêÜôù óôï /etc/rc.conf:scrnmap=screenmap_name
keymap=keymap_name
keychange="fkey_number sequence"Óôçí ðåñßðôùóç áõôÞ, ôï screenmap_name
ðñïÝñ÷åôáé áðü Ýíá áñ÷åßï ôïõ êáôáëüãïõ
/usr/share/syscons/scrnmaps, ÷ùñßò ôçí êáôÜëçîç
.scm. Ç áíôéóôïß÷çóç ïèüíçò ìáæß ìå ôçí
áíôßóôïé÷ç ãñáììáôïóåéñÜ, ÷ñçóéìïðïéåßôáé óõíÞèùò ãéá ôçí åðÝêôáóç ôïõ
8ïõ bit óôï 9o, ãéá êÜñôåò VGA ðïõ ÷ñçóéìïðïéïýí ìÞôñá ÷áñáêôÞñùí ìå
8 óôÞëåò.Áí Ý÷åôå åíåñãïðïéçìÝíï ôïí äáßìïíá
moused óôï áñ÷åßï
/etc/rc.conf:moused_enable="YES"êáëü èá åßíáé íá åîåôÜóåôå ôéò ðëçñïöïñßåò ó÷åôéêÜ ìå ôïí äñïìÝá
ôïõ ðïíôéêéïý ðïõ åìöáíßæïíôáé óôçí ðáñáêÜôù ðáñÜãñáöï.mousedÏ ðñïåðéëåãìÝíïò äñïìÝáò ôïõ ðïíôéêéïý ðïõ ÷ñçóéìïðïéåßôáé áðü ôï
ðñüãñáììá ïäÞãçóçò &man.syscons.4;, êáôáëáìâÜíåé ôéò èÝóåéò 0xd0-0xd3
ôïõ óõíüëïõ ÷áñáêôÞñùí. Áí áõôÞ ç ðåñéï÷Þ ÷áñáêôÞñùí äåí åßíáé
äéáèÝóéìç óôç ãëþóóá ðïõ ÷ñçóéìïðïéåßôå, èá ðñÝðåé íá ìåôáêéíÞóåôå ôçí
ðåñéï÷Þ ôïõ äñïìÝá Ýîù áðü áõôÞí. Ãéá íá ãßíåé áõôü óôï &os;,
ðñïóèÝóôå ôçí áêüëïõèç ãñáììÞ óôï
/etc/rc.conf:mousechar_start=3Ôï keymap_name ðñïÝñ÷åôáé áðü Ýíá
áñ÷åßï ôïõ êáôáëüãïõ /usr/share/syscons/keymaps,
÷ùñßò ôçí êáôÜëçîç .kbd. Áí äåí åßóôå óßãïõñïò
ãéá ôçí áíôéóôïß÷çóç ðëçêôñïëïãßïõ ðïõ ÷ñåéÜæåôáé íá ÷ñçóéìïðïéÞóåôå,
ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï &man.kbdmap.1; ãéá íá êÜíåôå äïêéìÝò
óå äéÜöïñåò áíôéóôïé÷ßóåéò, ÷ùñßò íá ÷ñåéÜæåôáé íá êÜíåôå
åðáíåêêßíçóç.Ç ëåéôïõñãßá keychange ÷ñçóéìïðïéåßôáé óõíÞèùò
ãéá ôïí ðñïãñáììáôéóìü ôùí ðëÞêôñùí ëåéôïõñãéþí (function keys), þóôå
íá ôáéñéÜæïõí ìå ôïí åðéëåãìÝíï ôýðï ôåñìáôéêïý, êáèþò ïé áêïëïõèßåò
ôùí ðëÞêôñùí ëåéôïõñãéþí äåí ìðïñïýí íá êáèïñéóôïýí óôéò
áíôéóôïé÷ßóåéò ðëçêôñïëïãßïõ.Âåâáéùèåßôå åðßóçò üôé Ý÷åôå ñõèìßóåé ôï óùóôü ôýðïõ ôåñìáôéêïý
óôï /etc/ttys ãéá üëåò ôéò êáôá÷ùñßóåéò
ttyv*. Ôç äåäïìÝíç óôéãìÞ, ïé ðñïêáèïñéóìÝíåò
áíôéóôïé÷ßåò åßíáé:Óåô ×áñáêôÞñùíÔýðïò ÔåñìáôéêïýISO8859-1 Þ ISO8859-15cons25l1ISO8859-2cons25l2ISO8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (ðñïåðéëåãìÝíï VGA)cons25US-ASCIIcons25wÃéá ãëþóóåò ìå ÷áñáêôÞñåò wide Þ multibyte, ÷ñçóéìïðïéÞóôå ôï
óùóôü &os; port óôïí êáôÜëïãï
/usr/ports/language.
ÌåñéêÝò èýñåò åìöáíßæïíôáé ùò êïíóüëá, åíþ ôï óýóôçìá ôéò âëÝðåé ùò
óåéñéáêÜ vtty, êáé Ýôóé ðñÝðåé íá ðáñáêñáôÞóåôå áñêåôÜ vtty, ôüóï ãéá
ôï X11 üóï êáé ãéá ôçí øåõôü-óåéñéáêÞ êïíóüëá. ÐáñáêÜôù èá âñåßôå
ìéá ìåñéêþò åíçìåñùìÝíç ëßóôá ãéá ÷ñÞóç Üëëùí ãëùóóþí óôçí
êïíóüëá:ÃëþóóáÔïðïèåóßáÐáñáäïóéáêÜ ÊéíÝæéêá (BIG-5)chinese/big5conÃéáðùíÝæéêájapanese/kon2-16dot
Þ
japanese/mule-freewnnÊïñåÜôéêákorean/hanÑýèìéóç ôïõ X11Áí êáé ôï X11 äåí åßíáé ìÝñïò ôïõ &os; Project, èá äþóïõìå
åäþ êÜðïéåò ÷ñÞóéìåò ðëçñïöïñßåò ãéá üóïõò ôï ÷ñçóéìïðïéïýí óôï &os;.
Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, äåßôå ôçí äéêôõáêÞ ôïðïèåóßá ôïõ &xorg;,
Þ ôïõ åîõðçñåôçôÞ X11 ðïõ ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå.Óôï áñ÷åßï ~/.Xresources, ìðïñåßôå
åðéðñüóèåôá íá áëëÜîåôå êáé Üëëåò ñõèìßóåéò ðïõ ó÷åôßæïíôáé ìå ôï
I18N (ð.÷. ãñáììáôïóåéñÝò, ìåíïý, ê.ë.ð.).Áðåéêüíéóç ÃñáììáôïóåéñþíX11 True Type font serverÅãêáôáóôÞóôå ôïí åîõðçñåôçôÞ &xorg;
(x11-servers/xorg-server)
êáé Ýðåéôá åãêáôáóôÞóôå ôéò ãñáììáôïóåéñÝò &truetype; ãéá ôçí
åðéèõìçôÞ ãëþóóá. Ìå ôéò óùóôÝò ôïðéêÝò ñõèìßóåéò, èá ìðïñåßôå íá
äåßôå ôçí åðéëåãìÝíç ãëþóóá óôá ìåíïý êáé ôá ìçíýìáôá ôïõ ãñáöéêïý
ðåñéâÜëëïíôïò.ÅéóáãùãÞ ìç-Áããëéêþí ×áñáêôÞñùíX11 Input Method (XIM)Ç ìÝèïäïò åéóüäïõ X11 (XIM, X11 Input Method), åßíáé Ýíá íÝï
ðñüôõðï ãéá üëïõò ôïõò ðåëÜôåò X11. ¼ëåò ïé åöáñìïãÝò ôïõ X11 èá
ðñÝðåé íá ãñÜöïíôáé ùò ðåëÜôåò ôïõ XIM, êáé íá ëáìâÜíïõí åßóïäï áðü
åîõðçñåôçôÝò åéóüäïõ XIM. ÕðÜñ÷ïõí äéáèÝóéìïé äéÜöïñïé
åîõðçñåôçôÝò XIM, ãéá äéáöïñåôéêÝò ãëþóóåò.Ñýèìéóç ÅêôõðùôÞÊÜðïéá óåô ÷áñáêôÞñùí single C åßíáé óõíÞèùò åíóùìáôùìÝíá óôï
ßäéï ôï õëéêü ôùí åêôõðùôþí. Ôá óåô ÷áñáêôÞñùí ôýðïõ wide Þ multibyte
áðáéôïýí åéäéêÝò ñõèìßóåéò, êáé óõíéóôïýìå íá ÷ñçóéìïðïéÞóåôå ôï
apsfilter. Ìðïñåßôå åðßóçò íá ìåôáôñÝøåôå
ôï Ýããñáöï óáò óå &postscript; Þ PDF, ÷ñçóéìïðïéþíôáò åñãáëåßá åéäéêÜ
öôéáãìÝíá ãéá ôç óõãêåêñéìÝíç ãëþóóá.ÐõñÞíáò êáé ÓõóôÞìáôá Áñ÷åßùíÔï óýóôçìá áñ÷åßùí FFS (fast filesystem) ôïõ &os; ìðïñåß íá
äéá÷åéñéóôåß ïíüìáôá áñ÷åßùí ðïõ áíÞêïõí óå óåô single C (åßíáé 8-bit
clean, äåßôå êáé ôï &man.multibyte.3;), áëëÜ äåí áðïèçêåýåé ôï óåô
÷áñáêôÞñùí ðïõ ÷ñçóéìïðïéåßôáé. Ìå Üëëá ëüãéá, åßíáé 8-bit áëëÜ äåí
ãíùñßæåé ôßðïôá ãéá ôçí êùäéêïðïßçóç ôùí ÷áñáêôÞñùí. Åðßóçìá, ôï FFS
äåí õðïóôçñßæåé áêüìá óåô ÷áñáêôÞñùí wide Þ multibyte. ÕðÜñ÷ïõí
ùóôüóï êÜðïéá áíåîÜñôçôá patches ãéá ôï FFS ðïõ õðïóôçñßæïõí áõôÝò ôéò
äõíáôüôçôåò. Ðñüêåéôáé ìüíï ãéá ðñïóùñéíÝò êáé ìç ìåôáöÝñóéìåò ëýóåéò
Þ hacks, êáé Ý÷ïõìå áðïöáóßóåé íá ìçí ôá ðåñéëÜâïõìå óôï êåíôñéêü
äÝíôñï ðçãáßïõ êþäéêá. Äåßôå ôéò éóôïóåëßäåò ôùí áíôßóôïé÷ùí ãëùóóþí
ãéá ðåñéóóüôåñåò ðëçñïöïñßåò êáé ãéá íá áíáêôÞóåôå ôá áðáñáßôçôá
áñ÷åßá.DOSUnicodeÔï óýóôçìá áñ÷åßùí &ms-dos; óôï &os; Ý÷åé ôçí äõíáôüôçôá íá
ñõèìéóôåß þóôå íá ìåôáôñÝðåé ìåôáîý ôùí óåô ÷áñáêôÞñùí
Unicode, ôïõ &ms-dos;, êáé ôïõ óåô ÷áñáêôÞñùí ðïõ Ý÷åé åðéëåãåß ãéá
ôï óýóôçìá áñ÷åßùí ôïõ &os;. Ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò, äåßôå ôç
óåëßäá manual &man.mount.msdosfs.8;.Ìåôáãëþôôéóç ÐñïãñáììÜôùí I18NÐïëëÜ ports ôïõ &os; äéáèÝôïõí õðïóôÞñéîç I18N. Óå ìåñéêÜ áðü áõôÜ,
ôï -I18N åßíáé ìÝñïò ôïõ ïíüìáôïò ôïõò. Ôá ðñïãñÜììáôá áõôÜ, êáé ðïëëÜ
ðåñéóóüôåñá, Ý÷ïõí åíóùìáôùìÝíç õðïóôÞñéîç ãéá I18N êáé äåí ÷ñåéÜæïíôáé
Üëëåò åéäéêÝò ñõèìßóåéò.MySQLÙóôüóï, óå êÜðïéåò åöáñìïãÝò üðùò ç
MySQL, èá ðñÝðåé íá ñõèìéóôåß ôï
Makefile ìå ôï åðéèõìçôü óåô ÷áñáêôÞñùí. Áõôü
óõíÞèùò ãßíåôáé ðåñíþíôáò ìéá ôéìÞ óôï
configure óôïí ðçãáßï êþäéêá, Þ áëëÜæïíôáò
ôï ßäéï ôï Makefile.ÔïðéêÝò Ñõèìßóåéò ãéá ÓõãêåêñéìÝíåò ÃëþóóåòAndreyChernovÁñ÷éêÞ óõíåéóöïñÜ ôïõ Ñþóéêç Ãëþóóá (Êùäéêïðïßçóç KOI8-R)localizationRussianÃéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí êùäéêïðïßçóç KOI8-R,
äåßôå ôéò ÁíáöïñÝò Ó÷åôéêÜ ìå ôï Óåô
×áñáêôÞñùí KOIR-8 (Ñùóéêü Óýíïëï ×áñáêôÞñùí).ÔïðéêÝò ÑõèìßóåéòÔïðïèåôÞóôå ôéò áêüëïõèåò ãñáììÝò óôï áñ÷åßï óáò
~/.login_conf:me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:Ãéá ðáñáäåßãìáôá ðïõ ó÷åôßæïíôáé ìå ôéò
ÔïðéêÝò Ñõèìßóåéò, äåßôå
ðñïçãïýìåíåò åíüôçôåò óå áõôü ôï êåöÜëáéï.Ñýèìéóç ÊïíóüëáòÐñïóèÝóôå ôçí áêüëïõèç ãñáììÞ óôï áñ÷åßï
/etc/rc.conf:mousechar_start=3×ñçóéìïðïéÞóôå åðßóçò ôéò ðáñáêÜôù ñõèìßóåéò óôï
/etc/rc.conf:keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"Ãéá êÜèå êáôá÷þñéóç ttyv* óôï áñ÷åßï
/etc/ttys, ÷ñçóéìïðïéÞóôå ôï
cons25r ùò ôýðï ôåñìáôéêïý.Ãéá ðáñáäåßãìáôá ðïõ ó÷åôßæïíôáé ìå ôçí ñýèìéóç ôçò
êïíóüëáò, äåßôå ðñïçãïýìåíåò
åíüôçôåò áõôïý ôïõ êåöáëáßïõ.Ñýèìéóç ÅêôõðùôÞprintersÊáèþò ïé ðåñéóóüôåñïé åêôõðùôÝò ðïõ äéáèÝôïõí Ñùóéêïýò
÷áñáêôÞñåò Ý÷ïõí åíóùìáôùìÝíç ôçí êùäéêïóåëßäá CP866, èá ÷ñåéáóôåßôå
åéäéêü ößëôñï åîüäïõ ãéá íá ìåôáôñÝøåôå áðü ôï KOI8-R óôï CP866.
Ôï ößëôñï áõôü åãêáèßóôáôáé áðü ðñïåðéëïãÞ óôï
/usr/libexec/lpr/ru/koi2alt. Ç êáôá÷þñéóç ãéá
Ýíá Ñþóéêï åêôõðùôÞ óôï /etc/printcap èá
ìïéÜæåé ìå ôçí ðáñáêÜôù:lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:Äåßôå ôï &man.printcap.5; ãéá ðéï ëåðôïìåñÞ ðåñéãñáöÞ.Óýóôçìá Áñ÷åßùí &ms-dos; êáé Ñþóéêá Ïíüìáôá Áñ÷åßùíÔï ðáñáêÜôù õðüäåéãìá êáôá÷þñéóçò óôï &man.fstab.5; åíåñãïðïéåß
ôçí õðïóôÞñéîç ãéá Ñþóéêá ïíüìáôá áñ÷åßùí óå ðñïóáñôçìÝíá óõóôÞìáôá
áñ÷åßùí ôýðïõ &ms-dos;:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0Ç åðéëïãÞ åðéëÝãåé ôéò ôïðéêÝò ñõèìßóåéò ðïõ
èá ÷ñçóéìïðïéçèïýí, êáé ç ïñßæåé ôïí ðßíáêá
ìåôáôñïðÞò ÷áñáêôÞñùí. Ãéá íá ÷ñçóéìïðïéÞóåôå ôçí åðéëïãÞ
âåâáéùèåßôå üôé Ý÷åôå ðñïóáñôÞóåé ôçí êáôÜôìçóç
/usr ðñéí ôçí êáôÜôìçóç &ms-dos;, êáèþò ïé
ðßíáêåò ìåôáôñïðÞò âñßóêïíôáé óôï
/usr/libdata/msdosfs. Ãéá ðåñéóóüôåñåò
ðëçñïöïñßåò, äåßôå ôç óåëßäá manual ôïõ
&man.mount.msdosfs.8;.Ñýèìéóç X11ÅêôåëÝóôå ðñþôá ôéò ãåíéêÝò
ôïðéêÝò ñõèìßóåéò ðïõ Ý÷ïõìå Þäç ðåñéãñÜøåé.Áí ÷ñçóéìïðïéåßôå ôïí åîõðçñåôçôÞ
&xorg;, åãêáôáóôÞóôå ôï ðáêÝôï
x11-fonts/xorg-fonts-cyrillic.ÅëÝãîôå ôçí åíüôçôá "Files" óôï áñ÷åßï
/etc/X11/xorg.conf. Èá ðñÝðåé íá
ðñïóèÝóåôå ôçí ðáñáêÜôù ãñáììÞ ðñéí
áðü ïðïéáäÞðïôå Üëëç êáôá÷þñéóç
FontPath:FontPath "/usr/local/lib/X11/fonts/cyrillic"Äåßôå óôçí ÓõëëïãÞ ôùí Ports ãéá ðåñéóóüôåñåò êõñéëëéêÝò
ãñáììáôïóåéñÝò.Ãéá ôçí åíåñãïðïßçóç ôïõ Ñùóéêïý ðëçêôñïëïãßïõ, ðñïóèÝóôå
ôéò ðáñáêÜôù ãñáììÝò óôçí åíüôçôá "Keyboard"
ôïõ áñ÷åßïõ xorg.conf:Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:toggle"Âåâáéùèåßôå åðßóçò üôé ç ãñáììÞ
XkbDisable åßíáé áíåíåñãÞ (ìáñêáñéóìÝíç ùò
ó÷üëéï).Áí ÷ñçóéìïðïéÞóåôå ôï grp:toggle
ç åíáëëáãÞ RUS/LAT èá ãßíåôáé ìå ôï Äåîéü Alt,
åíþ áí èÝóåôå grp:ctrl_shift_toggle,
ç åíáëëáãÞ èá ãßíåôáé ìå ôï
CtrlShift.
Ãéá grp:caps_toggle, ç åíáëëáãÞ RUS/LAT èá
ãßíåôáé ìå ôï CapsLock.
Ç êáíïíéêÞ ëåéôïõñãßá ôïõ CapsLock åîáêïëïõèåß
íá åßíáé äéáèÝóéìç ìÝóù ôïõ óõíäõáóìïý ðëÞêôñùí
ShiftCapsLock
(ìüíï óå êáôÜóôáóç LAT). Ôï grp:caps_toggle
ãéá êÜðïéï Üãíùóôï ëüãï, äåí ëåéôïõñãåß óôï
&xorg;.Áí ôï ðëçêôñïëüãéï óáò äéáèÝôåé ðëÞêôñá
&windows;, êáé Ý÷åôå ðáñáôçñÞóåé üôé êÜðïéá áðü
ôá ìç-áëöáñéèìçôéêÜ ðëÞêôñá Ý÷ïõí ëÜèïò áíôéóôïß÷çóç üôáí åßóôå
óå êáôÜóôáóç RUS, ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ óôï áñ÷åßï
xorg.conf:Option "XkbVariant" ",winkeys"Ôï Ñþóéêï XKB ðëçêôñïëüãéï ßóùò äåí ëåéôïõñãåß ìå
åöáñìïãÝò ðïõ äåí Ý÷ïõí öôéá÷ôåß ãéá ôéò áíôßóôïé÷åò ôïðéêÝò
ñõèìßóåéò.Ïé åöáñìïãÝò ðïõ ôçñïýí ôéò åëÜ÷éóôåò ðñïäéáãñáöÝò ôïðéêþí
ñõèìßóåùí, èá ðñÝðåé íá êáëïýí áðü íùñßò ôç óõíÜñôçóç
XtSetLanguageProc (NULL, NULL, NULL); ìÝóá
óôïí êþäéêá ôïõò.Äåßôå ôï KOI8-R ãéá
ôï óýóôçìá X Window ãéá ðåñéóóüôåñåò ïäçãßåò ó÷åôéêÜ ìå
ôçí äçìéïõñãßá åöáñìïãþí X11 ðïõ íá ÷ñçóéìïðïéïýí ôïðéêÝò
ñõèìßóåéò.ÔïðéêÝò Ñõèìßóåéò ãéá ÐáñáäïóéáêÜ ÊéíÝæéêá ÔáúâÜílocalizationTraditional ChineseÔï &os;-Taiwan Project Ý÷åé äçìéïõñãÞóåé Ýíá HOWTO ãéá ôá
ÊéíÝæéêá óôï &os;, ôï ïðïßï ìðïñåßôå íá âñåßôå óôç äéåýèõíóç
,
÷ñçóéìïðïéþíôáò ðïëëÜ ÊéíÝæéêá ports.
Ï ôñÝ÷ùí óõíôÜêôçò ôïõ ÊéíÝæéêïõ &os; Howto åßíáé ï
Shen Chuan-Hsing statue@freebsd.sinica.edu.tw.
Ï Chuan-Hsing Shen statue@freebsd.sinica.edu.tw
Ý÷åé äçìéïõñãÞóåé ôçí ÊéíÝæéêç ÓõëëïãÞ
&os; (CFC) ÷ñçóéìïðïéþíôáò ôçí êùäéêïðïßçóç
zh-L10N-tut ôïõ &os;-ÔáÀâÜí. Ôá ðáêÝôá êáé ôá
scripts äéáôßèåíôáé óôç äéåýèõíóç .ÔïðéêÝò Ñõèìßóåéò ãéá ôçí ÃåñìáíéêÞ Ãëþóóá (ãéá ¼ëåò ôéò Ãëþóóåò
ðïõ Âáóßæïíôáé óôï ISO 8859-1)localizationGermanÏ Slaven Rezic eserte@cs.tu-berlin.de Ý÷åé ãñÜøåé
Ýíá ïäçãü ãéá ôçí ÷ñÞóç ôùí umlauts óå Ýíá ìç÷Üíçìá &os;. Ï ïäçãüò
åßíáé ãñáììÝíïò óôá ÃåñìáíéêÜ êáé äéáôßèåôáé óôçí ôïðïèåóßá
.ÔïðéêÝò Ñõèìßóåéò ãéá ôçí ÅëëçíéêÞ ÃëþóóálocalizationGreekÏ &a.el.kokkalis; Ý÷åé ãñÜøåé Ýíá ðëÞñåò Üñèñï ãéá ôçí õðïóôÞñéîç
ôçò ÅëëçíéêÞò ãëþóóáò óôï &os;. Ôï Üñèñï áõôü äéáôßèåôáé ùò ìÝñïò ôçò
åðßóçìçò ÅëëçíéêÞò ôåêìçñßùóçò ôïõ &os;, óôçí ôïðïèåóßá http://www.freebsd.org/doc/el_GR.ISO8859-7/artilces/greek-language-support/index.html.ÔïðéêÝò Ñõèìßóåéò Ãéá ÃéáðùíÝæéêá êáé ÊïñåÜôéêálocalizationJapaneselocalizationKoreanÃéá ÃéáðùíÝæéêá, äåßôå óôçí ôïðïèåóßá
,
åíþ ãéá ÊïñåÜôéêá, äåßôå óôçí ôïðïèåóßá
.Ôåêìçñßùóç ôïõ &os; óå Ãëþóóåò Åêôüò ôçò ÁããëéêÞòÊÜðïéïé åèåëïíôÝò ôïõ &os; Ý÷ïõí ìåôáöñÜóåé ôìÞìáôá ôçò
ôåêìçñßùóçò ôïõ óå Üëëåò ãëþóóåò. Ïé ìåôáöñÜóåéò áõôÝò äéáôßèåíôáé
ìÝóù óõíäÝóìùí óôçí êýñéá äéêôõáêÞ
ôïðïèåóßá ôïõ &os; Þ óôïí êáôÜëïãï
/usr/share/doc.
diff --git a/el_GR.ISO8859-7/books/handbook/mail/chapter.xml b/el_GR.ISO8859-7/books/handbook/mail/chapter.xml
index a453561fa8..ee9f55c4b5 100644
--- a/el_GR.ISO8859-7/books/handbook/mail/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/mail/chapter.xml
@@ -1,2394 +1,2393 @@
BillLloydÁñ÷éêÞ óõíåéóöïñÜ áðü ôïí JimMockÃñÜöôçêå îáíÜ áðü ôïí Çëåêôñïíéêü Ôá÷õäñïìåßïÓýíïøçemailÔï çëåêôñïíéêü ôá÷õäñïìåßï, åõñýôåñá ãíùóôü ùò
email, åßíáé óôéò ìÝñåò ìáò ìéá áðü ôéò ðëÝïí äéáäåäïìÝíåò ìïñöÝò
åðéêïéíùíßáò. Ôï êåöÜëáéï áõôü ðáñÝ÷åé ìéá âáóéêÞ åéóáãùãÞ óôç
ëåéôïõñãßá åíüò äéáêïìéóôÞ email óôï &os;, êáèþò êáé ìéá åéóáãùãÞ óôç
äéáäéêáóßá áðïóôïëÞò êáé ëÞøçò email óôï &os;. Ùóôüóï ç áíáöïñÜ áõôÞ
äåí ðñÝðåé íá èåùñçèåß ðëÞñçò, êáèþò õðÜñ÷ïõí áêüìá áñêåôïß ðáñÜãïíôåò
ðïõ ðñÝðåé íá ëçöèïýí õðüøéí êáé Ý÷ïõí åäþ ðáñáëåéöèåß. Ãéá ðéï ðëÞñç
áíÜëõóç ôïõ èÝìáôïò, ï áíáãíþóôçò ðáñáðÝìðåôáé óôá ðïëëÜ åîáéñåôéêÜ
âéâëßá ðïõ áíáöÝñïíôáé óôï .Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:Ôï ëïãéóìéêü ðïõ ÷ñçóéìïðïéåßôáé óôçí áðïóôïëÞ êáé ëÞøç
çëåêôñïíéêïý ôá÷õäñïìåßïõ.Ðïõ âñßóêïíôáé ôá âáóéêÜ áñ÷åßá ñõèìßóåùí ôïõ
sendmail óôï &os;.Ôç äéáöïñÜ ìåôáîý áðïìáêñõóìÝíùí êáé ôïðéêþí èõñßäùí
ôá÷õäñïìåßïõ (mailboxes).Ðùò íá åìðïäßóåôå áíåðéèýìçôïõò spammers áðü ôï íá
÷ñçóéìïðïéÞóïõí ôïí äéêü óáò åîõðçñåôçôÞ email ùò
áíáìåôáäüôç.Ðùò íá åãêáôáóôÞóåôå êáé íá ñõèìßóåôå Ýíá åíáëëáêôéêü
Áíôéðñüóùðï ÌåôáöïñÜò Ôá÷õäñïìåßïõ (Mail Transfer Agent) óôï
óýóôçìá óáò, áíôéêáèéóôþíôáò Ýôóé ôï
sendmail.Ðùò íá áíôéìåôùðßóåôå óõíçèéóìÝíá ðñïâëÞìáôá óôïí
äéáêïìéóôÞ ôá÷õäñïìåßïõ.Ðùò íá ÷ñçóéìïðïéÞóåôå ôï SMTP ìå ôï UUCP.Ðùò íá ñõèìßóåôå ôï óýóôçìá óáò ìüíï ãéá áðïóôïëÞ email.Ðùò íá ÷ñçóéìïðïéÞóåôå ôï email ìÝóù åðéëïãéêÞò (dialup)
óýíäåóçò.Ðùò íá ñõèìßóåôå ðéóôïðïßçóç áõèåíôéêüôçôáò óôï SMTP ãéá
ðñüóèåôç áóöÜëåéá.Ðùò íá åãêáôáóôÞóåôå êáé íá ÷ñçóéìïðïéÞóåôå ìéá åöáñìïãÞ
áðïóôïëÞò êáé ëÞøçò email ãéá ÷ñÞóôåò, üðùò ôï
mutt.Ðùò íá êáôåâÜóåôå ôï email óáò áðü Ýíá áðïìáêñõóìÝíï äéáêïìéóôÞ
POP Þ IMAP.Ðùò íá åöáñìüóåôå ößëôñá êáé êáíüíåò óôçí åéóåñ÷üìåíç
áëëçëïãñáößá óáò, ìå áõôüìáôï ôñüðï.Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:Íá ñõèìßóåôå óùóôÜ ôç óýíäåóç ôïõ äéêôýïõ óáò
().Íá ñõèìßóåôå óùóôÜ ôéò ðëçñïöïñßåò DNS ãéá ôïí äéáêïìéóôÞ
áëëçëïãñáößáò óáò ().Íá ãíùñßæåôå ðùò íá åãêáôáóôÞóåôå ðñüóèåôï ëïãéóìéêü ôñßôïõ
êáôáóêåõáóôÞ ().×ñçóéìïðïéþíôáò ôï Çëåêôñïíéêü Ôá÷õäñïìåßïPOPIMAPDNSÓå êÜèå áíôáëëáãÞ çëåêôñïíéêïý ôá÷õäñïìåßïõ, óõíåñãÜæïíôáé ðÝíôå
âáóéêÜ ôìÞìáôá: Ôï ðñüãñáììá ÷ñÞóôç,
ï äáßìïíáò ôïõ åîõðçñåôçôÞ, ôï DNS, ìéá áðïìáêñõóìÝíç Þ ôïðéêÞ èõñßäá ôá÷õäñïìåßïõ
(mailbox) êáé
öõóéêÜ ï õðïëïãéóôÞò ðïõ äéá÷åéñßæåôáé ôï
email (mailhost).Ôï Ðñüãñáììá ×ñÞóôçÇ êáôçãïñßá áõôÞ ðåñéëáìâÜíåé ðñïãñÜììáôá üðùò ôá
mutt,
alpine, elm,
êáé mail, êáèþò êáé ðñïãñÜììáôá ðïõ äéáèÝôïõí
GUI üðùò åßíáé ôá
balsa,
xfmail (ãéá íá äþóïõìå ìåñéêÜ
ðáñáäåßãìáôá) êáé êÜðïéá ðéï
åîåëéãìÝíá üðùò åßíáé ïé öõëëïìåôñçôÝò ãéá ôï WWW.
Ôá ðñïãñÜììáôá áõôÜ, áðëþò ìåôáâéâÜæïõí ôéò óõíáëëáãÝò ôá÷õäñïìåßïõ
óôïí ôïðéêü mailhost,
åßôå êáëþíôáò êÜðïéïí áðü ôïõò äáßìïíåò ôïõ
åîõðçñåôçôÞ ðïõ åßíáé äéáèÝóéìïé, Þ ðáñáäßäïíôáò ôéò
áðåõèåßáò ìÝóù TCP.Äáßìïíáò ÅîõðçñåôçôÞ Mailhostmail server daemonssendmailmail server daemonspostfixmail server daemonsqmailmail server daemonseximÔï &os; Ýñ÷åôáé ìå ôï sendmail
åãêáôåóôçìÝíï áðü ðñïåðéëïãÞ, áëëÜ õðïóôçñßæåé åðßóçò êáé ìåãÜëï
áñéèìü áðü Üëëïõò äáßìïíåò ôá÷õäñïìåßïõ, ðåñéëáìâáíïìÝíùí
êáé ôùí:eximpostfixqmailÏ äáßìïíáò Ý÷åé óõíÞèùò äýï ëåéôïõñãßåò—åßíáé õðåýèõíïò ãéá
ôç ëÞøç åéóåñ÷üìåíïõ mail, üðùò åðßóçò êáé ôçí ðáñÜäïóç ôïõ
åîåñ÷üìåíïõ mail. ¼ìùò, äåí åßíáé õðåýèõíïò ãéá
ôç óõëëïãÞ ôïõ mail ìå ôç ÷ñÞóç ðñùôïêüëëùí üðùò ôá
POP Þ IMAP ãéá ôçí áíÜãíùóç ôïõ
ôá÷õäñïìåßïõ óáò, ïýôå åðéôñÝðåé ôç óýíäåóç óôéò ôïðéêÝò èõñßäåò
ôýðïõ mbox Þ Maildir. Ðéèáíüí íá ÷ñåéáóôåßôå
êÜðïéï åðéðñüóèåôï äáßìïíá ãéá
áõôü ôï óêïðü.Ðáëéüôåñåò åêäüóåéò ôïõ sendmail
Ý÷ïõí êÜðïéá óïâáñÜ ðñïâëÞìáôá áóöáëåßáò, ìÝóù ôùí ïðïßùí ìðïñåß
êÜðïéïò åéóâïëÝáò íá áðïêôÞóåé ôïðéêÞ Þ áðïìáêñõóìÝíç
ðñüóâáóç óôï ìç÷Üíçìá óáò. Ãéá íá áðïöýãåôå ðñïâëÞìáôá ôÝôïéïõ
åßäïõò, âåâáéùèåßôå üôé ÷ñçóéìïðïéåßôå êÜðïéá ðñüóöáôç Ýêäïóç.
ÅíáëëáêôéêÜ, ìðïñåßôå íá åãêáôáóôÞóåôå êÜðïéï Üëëï
MTA áðü ôçí ÓõëëïãÞ ôùí
Ports ôïõ &os;.Email êáé DNSÔï Óýóôçìá Ïíïìáóßáò Ðåñéï÷þí (DNS) êáé ï äáßìïíáò ôïõ, ï
named, Ý÷ïõí óçìáíôéêü ñüëï óôçí ðáñÜäïóç ôïõ
email. Ãéá ôçí ðáñÜäïóç ôïõ email áðü ôï Ýíá site óå Ýíá Üëëï, ï
äáßìïíáò ôïõ åîõðçñåôçôÞ èá øÜîåé ãéá ôï áðïìáêñõóìÝíï site óôï DNS,
ãéá íá êáèïñßóåé ðïéïò õðïëïãéóôÞò ëáìâÜíåé ôï email ãéá ôï
óõãêåêñéìÝíï ðñïïñéóìü. Ç äéáäéêáóßá áõôÞ óõìâáßíåé åðßóçò üôáí ï
äéêüò óáò åîõðçñåôçôÞò ëáìâÜíåé email áðü êÜðïéï áðïìáêñõóìÝíï
õðïëïãéóôÞ.MX recordÔï DNS åßíáé õðåýèõíï ãéá ôçí áíôéóôïß÷çóç
ïíïìÜôùí õðïëïãéóôþí óå äéåõèýíóåéò IP, üðùò êáé ãéá ôçí áðïèÞêåõóç
ðëçñïöïñéþí ðïõ ó÷åôßæïíôáé ìå ôçí ðáñÜäïóç çëåêôñïíéêïý
ôá÷õäñïìåßïõ, üðùò ïé åããñáöÝò MX. Ç åããñáöÞ MX (Mail Exchanger)
áíáãíùñßæåé ðïéïò õðïëïãéóôÞò (Þ õðïëïãéóôÝò) èá åßíáé õðåýèõíïò
ãéá ôç ëÞøç ôá÷õäñïìåßïõ åíüò óõãêåêñéìÝíïõ ôïìÝá (domain). Áí äåí
Ý÷åôå åããñáöÞ MX ãéá ôïí õðïëïãéóôÞ Þ ôïí ôïìÝá óáò, ôï email èá
ðáñáäßäåôáé áðåõèåßáò óôïí õðïëïãéóôÞ óáò, ìå ôçí ðñïûðüèåóÞ üôé
Ý÷åôå åããñáöÞ ôýðïõ A ðïõ íá äåß÷íåé óôïí õðïëïãéóôÞ óáò Þ óôçí
IP äéåýèõíóç ôïõ.Ìðïñåßôå íá äåßôå ôéò åããñáöÝò MX ãéá ïðïéïäÞðïôå ôïìÝá,
÷ñçóéìïðïéþíôáò ôçí åíôïëÞ &man.host.1;, üðùò öáßíåôáé óôï
ðáñáêÜôù ðáñÜäåéãìá:&prompt.user; host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgËáìâÜíïíôáò MailemailreceivingÏ mailhost åßíáé õðåýèõíïò ãéá ôçí ëÞøç mail ðïõ ðñïïñßæåôáé ãéá
ôïí ôïìÝá óáò. Èá óõëëÝîåé üëï ôï mail ðïõ Ýñ÷åôáé ðñïò ôïí ôïìÝá,
êáé èá ôï áðïèçêåýóåé åßôå óôï
mbox (ôçí ðñïåðéëåãìÝíç ìÝèïäï ãéá áðïèÞêåõóç
mail) Þ óå ìïñöÞ Maildir, áíÜëïãá ìå ôéò ñõèìßóåéò ðïõ Ý÷åôå êÜíåé.
Áðü ôç óôéãìÞ ðïõ ôï mail Ý÷åé áðïèçêåõèåß, ìðïñåßôå åßôå íá ôï
äéáâÜóåôå ôïðéêÜ, ÷ñçóéìïðïéþíôáò åöáñìïãÝò üðùò ôï
&man.mail.1; Þ ôï mutt, Þ íá ôï äåßôå
ìÝóù áðïìáêñõóìÝíçò óýíäåóçò, ÷ñçóéìïðïéþíôáò êÜðïéï ðñùôüêïëëï üðùò
ôï POP Þ ôï IMAP.
Áõôü óçìáßíåé üôé áí åðéèõìåßôå íá äéáâÜæåôå ôï mail óáò ìüíï ôïðéêÜ,
äåí ÷ñåéÜæåôáé íá åãêáôáóôÞóåôå åîõðçñåôçôÞ
POP Þ IMAP.Ðñüóâáóç óå ÁðïìáêñõóìÝíåò Èõñßäåò ìÝóù POP
êáé IMAPPOPIMAPÃéá íá Ý÷åôå áðïìáêñõóìÝíç ðñüóâáóç óôéò èõñßäåò ôá÷õäñïìåßïõ,
åßíáé áðáñáßôçôï íá Ý÷åôå ðñüóâáóç óå Ýíá åîõðçñåôçôÞ
POP Þ IMAP. Ôá ðñùôüêïëëá
áõôÜ, åðéôñÝðïõí óôïõò ÷ñÞóôåò íá óõíäÝïíôáé óôéò èõñßäåò ôïõò
áðü áðüóôáóç, ìå ìåãÜëç åõêïëßá. Êáé ôá äýï ðñùôüêïëëá
(POP êáé IMAP) åðéôñÝðïõí
óôïõò ÷ñÞóôåò áðïìáêñõóìÝíç ðñüóâáóç óôéò èõñßäåò ôïõò, áëëÜ ôï
IMAP ðñïóöÝñåé áñêåôÜ ðëåïíåêôÞìáôá, ïñéóìÝíá
áðü ôá ïðïßá öáßíïíôáé ðáñáêÜôù:Ôï IMAP ìðïñåß íá áðïèçêåýóåé ìçíýìáôá
óå Ýíá áðïìáêñõóìÝíï åîõðçñåôçôÞ, üðùò åðßóçò êáé íá ôá
áíáêôÞóåé.Ôï IMAP õðïóôçñßæåé ôáõôü÷ñïíåò
åíçìåñþóåéò.Ôï IMAP ìðïñåß íá öáíåß åîáéñåôéêÜ
÷ñÞóéìï óå óõíäÝóåéò ÷áìçëÞò ôá÷ýôçôáò, êáèþò åðéôñÝðåé óôïõò
÷ñÞóôåò íá êáôåâÜóïõí ôç äïìÞ ôùí ìçíõìÜôùí, ÷ùñßò íá
êáôåâÜóïõí ôï ðåñéå÷üìåíï ôïõò. Ìðïñåß åðßóçò íá åêôåëÝóåé
åñãáóßåò üðùò åýñåóç ìçíõìÜôùí áðåõèåßáò óôïí åîõðçñåôçôÞ,
åëá÷éóôïðïéþíôáò ìå áõôü ôïí ôñüðï ôç ìåôáöïñÜ äåäïìÝíùí
ìåôáîý ôùí ðåëáôþí êáé ôùí åîõðçñåôçôþí.Ãéá íá åãêáôáóôÞóåôå Ýíá åîõðçñåôçôÞ POP Þ
IMAP èá ðñÝðåé íá áêïëïõèÞóåôå ôá åðüìåíá
âÞìáôá:ÅðéëÝîôå Ýíá åîõðçñåôçôÞ IMAP Þ
POP ðïõ íá åîõðçñåôåß ôéò áíÜãêåò óáò.
Ïé ðáñáêÜôù åîõðçñåôçôÝò POP êáé
IMAP åßíáé áñêåôÜ äéáäåäïìÝíïé êáé áðïôåëïýí
êáëÜ ðáñáäåßãìáôá:qpopperteapopimap-uwcourier-imapdovecotÅãêáôáóôÞóôå ôï äáßìïíá POP Þ
IMAP ôçò åðéëïãÞò óáò, áðü ôçí ÓõëëïãÞ ôùí
Ports.Áí ÷ñåéÜæåôáé, ôñïðïðïéÞóôå ôï áñ÷åßï
/etc/inetd.conf ãéá íá öïñôþóåôå ôïí
åîõðçñåôçôÞ POP Þ
IMAP.Èá ðñÝðåé íá óçìåéþóïõìå üôé ôüóï ôï POP
üóï êáé ôï IMAP ìåôáäßäïõí ðëçñïöïñßåò üðùò
ôï üíïìá ÷ñÞóôç êáé ôïí êùäéêü óå ìïñöÞ áðëïý êåéìÝíïõ. Áõôü
óçìáßíåé üôé áí èÝëåôå íá áóöáëßóåôå ôç ìåôÜäïóç ðëçñïöïñéþí
ìÝóù áõôþí ôùí ðñùôïêüëëùí, èá ðñÝðåé íá ðåñÜóåôå áõôÝò ôéò
óõíäÝóåéò ìÝóù ôïõ &man.ssh.1; (tunneling) Þ íá ÷ñçóéìïðïéÞóåôå
SSL. Ç äéáäéêáóßá tunneling ðåñéãñÜöåôáé ìå ëåðôïìÝñåéá óôï
êáé ôï SSL óôï
.Ðñüóâáóç óå ÔïðéêÝò Èõñßäåò Ôá÷õäñïìåßïõÌðïñåßôå íá Ý÷åôå ôïðéêÞ ðñüóâáóç óôéò èõñßäåò ôá÷õäñïìåßïõ
÷ñçóéìïðïéþíôáò áðåõèåßáò êÜðïéï ðñüãñáììá áðïóôïëÞò/ëÞøçò
(MUA) óôïí åîõðçñåôçôÞ ðïõ åßíáé áðïèçêåõìÝíåò.
ÊáôÜëëçëåò åöáñìïãÝò ãéá áõôü ôï óêïðü åßíáé ð.÷. ôï
mutt Þ ôï &man.mail.1;.Ï ÅîõðçñåôçôÞò Mailmail hostÅîõðçñåôçôÞò mail èåùñåßôáé ï õðïëïãéóôÞò ï ïðïßïò
åßíáé õðåýèõíïò ãéá ôçí ðáñÜäïóç êáé ëÞøç mail ãéá ôïí õðïëïãéóôÞ
óáò, êáé åíäå÷ïìÝíùò ãéá ôï äßêôõï óáò.ChristopherShumwayÓõíåéóöïñÜ ôïõ Ñýèìéóç ôïõ sendmailsendmailÔï &man.sendmail.8; åßíáé ï ðñïåðéëåãìÝíïò Áíôéðñüóùðïò ÌåôáöïñÜò
Ôá÷õäñïìåßïõ (Mail Transfer Agent, MTA) óôï &os;. ÄïõëåéÜ ôïõ åßíáé íá
äÝ÷åôáé ôï email áðü ôïõò Áíôéðñïóþðïõò Email ×ñÞóôç
(Mail User Agents, MUA) êáé íá ôï ðáñáäßäåé óôï
êáôÜëëçëï mailer ðïõ ïñßæåôáé óôï áñ÷åßï ñõèìßóåùí ôïõ. Ôï
sendmail ìðïñåß åðßóçò íá äå÷èåß óõíäÝóåéò
äéêôýïõ êáé íá ðáñáäþóåé ôï mail óå ôïðéêÝò èõñßäåò Þ êáé óå êÜðïéï
Üëëï ðñüãñáììá.Ôï sendmail ÷ñçóéìïðïéåß ôá áêüëïõèá
áñ÷åßá ñõèìßóåùí:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertable¼íïìá Áñ÷åßïõËåéôïõñãßá/etc/mail/accessÇ âÜóç äåäïìÝíùí ðñüóâáóçò ôïõ
sendmail./etc/mail/aliasesÐáñùíýìéá (aliases) ãéá ôéò èõñßäåò (Mailboxes)/etc/mail/local-host-namesËßóôá ôùí õðïëïãéóôþí ãéá ôïõò ïðïßïõò ôï
sendmail äÝ÷åôáé mail/etc/mail/mailer.confÑõèìßóåéò ôïõ ðñïãñÜììáôïò mailer/etc/mail/mailertableÐßíáêáò ðáñáäüóåùí ôïõ mailer/etc/mail/sendmail.cfÔï êåíôñéêü áñ÷åßï ñõèìßóåùí ôïõ
sendmail/etc/mail/virtusertableÐßíáêáò åéêïíéêþí ÷ñçóôþí êáé ðåñéï÷þí (domains)/etc/mail/accessÇ âÜóç äåäïìÝíùí ðñüóâáóçò êáèïñßæåé ðïéïé õðïëïãéóôÝò Þ
äéåõèýíóåéò IP Ý÷ïõí ðñüóâáóç óôïí ôïðéêü åîõðçñåôçôÞ mail êáé ôé
åßäïõò ðñüóâáóç Ý÷ïõí. Ç êáôá÷þñçóç åíüò õðïëïãéóôÞ ìðïñåß íá Ý÷åé
ôéò åðéëïãÝò , ,
Þ áðëÜ íá ìåôáâéâÜæåé ôïí Ýëåã÷ï óôç ñïõôßíá
äéá÷åßñéóçò ëáèþí ôïõ sendmail ìå êÜðïéï
óõãêåêñéìÝíï óöÜëìá. Ïé õðïëïãéóôÝò ðïõ åßíáé êáôá÷ùñçìÝíïé ìå ôçí
åðéëïãÞ , ç ïðïßá åßíáé êáé ç ðñïåðéëåãìÝíç,
åðéôñÝðåôáé íá óôåßëïõí email óå áõôü ôïí õðïëïãéóôÞ, åöüóïí ï
ôåëéêüò ðñïïñéóìüò ôïõ ìçíýìáôïò åßíáé ôï ôïðéêü ìç÷Üíçìá. Ïé
õðïëïãéóôÝò ðïõ åßíáé êáôá÷ùñçìÝíïé ìå ôçí åðéëïãÞ
áðïññßðôïíôáé ãéá ïðïéáäÞðïôå åðéêïéíùíßá
Ý÷åé íá êÜíåé ìå ìåôÜäïóç mail. Ïé õðïëïãéóôÝò ðïõ åßíáé
êáôá÷ùñçìÝíïé ìå ôçí åðéëïãÞ , Ý÷ïõí ôç
äõíáôüôçôá íá óôåßëïõí mail ðñïò ïðïéáäÞðïôå êáôåýèõíóç ìÝóù ôïõ
óõãêåêñéìÝíïõ åîõðçñåôçôÞ.Ñýèìéóç ôçò ÂÜóçò ÄåäïìÝíùí Ðñüóâáóçò ôïõ
sendmailcyberspammer.com 550 We do not accept mail from spammers
FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYÓå áõôü ôï ðáñÜäåéãìá Ý÷ïõìå ðÝíôå êáôá÷ùñÞóåéò. Ïé äéåõèýíóåéò
ðïõ öáßíïíôáé óôçí áñéóôåñÞ ðëåõñÜ ôïõ ðßíáêá, åðçñåÜæïíôáé áðü ôç
åíÝñãåéá ðïõ öáßíåôáé óôç äåîéÜ ðëåõñÜ. Ôá ðñþôá äýï ðáñáäåßãìáôá,
åðéóôñÝöïõí Ýíá êùäéêü óöÜëìáôïò óôç ñïõôßíá äéá÷åßñéóçò ëáèþí ôïõ
sendmail. Ôï ìÞíõìá åêôõðþíåôáé óôïí
áðïìáêñõóìÝíï õðïëïãéóôÞ, üôáí ôï mail ðïõ ëáìâÜíåôáé áíÞêåé óå
êÜðïéá áðü ôéò êáôçãïñßåò ôçò áñéóôåñÞò ðëåõñÜò ôïõ ðßíáêá.
Ç åðüìåíç êáôá÷þñçóç áðïññßðôåé ôçí ðáñáëáâÞ mail áðü Ýíá
óõãêåêñéìÝíï õðïëïãéóôÞ óôï Internet, ôïí
another.source.of.spam. Ç åðüìåíç êáôá÷þñçóç êÜíåé
äåêôÝò ôéò óõíäÝóåéò mail áðü ôïí õðïëïãéóôÞ
okay.cyberspammer.com, ôï üíïìá ôïõ
ïðïßïõ ðñïóäéïñßæåôáé áêñéâÝóôåñá óå ó÷Ýóç ìå ôç ãñáììÞ
cyberspammer.com ðïõ åßäáìå
ðáñáðÜíù. ÃñáììÝò ðïõ êáèïñßæïõí ïíüìáôá ìå ìåãáëýôåñç áêñßâåéá,
Ý÷ïõí ðñïôåñáéüôçôá óå ó÷Ýóç ìå ðéï áíáêñéâåßò. Ç ôåëåõôáßá
êáôá÷þñçóç åðéôñÝðåé ôçí áíáìåôÜäïóç (relaying) çëåêôñïíéêïý
ôá÷õäñïìåßïõ áðü õðïëïãéóôÝò ìå äéåõèýíóåéò IP ðïõ îåêéíÜíå ìå
128.32. Ïé õðïëïãéóôÝò áõôïß, ìðïñïýí íá óôåßëïõí
mail ìÝóù ôïõ óõãêåêñéìÝíïõ åîõðçñåôçôÞ, ôï ïðïßï íá êáôåõèýíåôáé óå
Üëëïõò åîõðçñåôçôÝò ôá÷õäñïìåßïõ.Óå ðåñßðôùóç áíáíÝùóçò áõôïý ôïõ áñ÷åßïõ, èá ðñÝðåé íá åêôåëÝóåôå
ôçí åíôïëÞ make óôïí êáôÜëïãï
/etc/mail/ ãéá íá áíáíåþóåôå ôç âÜóç
äåäïìÝíùí./etc/mail/aliasesÇ âÜóç äåäïìÝíùí ôùí ðáñùíõìßùí (aliases), ðåñéÝ÷åé ìéá ëßóôá áðü
åéêïíéêÝò èõñßäåò ôá÷õäñïìåßïõ ðïõ åðåêôåßíïíôáé óå Üëëïõò ÷ñÞóôåò,
áñ÷åßá Þ êáé Üëëá ðáñùíýìéá. ÌåñéêÜ ðáñáäåßãìáôá ÷ñÞóçò ôïõ
/etc/mail/aliases öáßíïíôáé ðáñáêÜôù:Ðáñùíýìéá Mailroot: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"Ç ìïñöÞ ôïõ áñ÷åßïõ åßíáé áðëÞ. Ôï üíïìá ôçò èõñßäáò âñßóêåôáé
óôçí áñéóôåñÞ ðëåõñÜ ôçò Üíù-êÜôù ôåëåßáò, êáé åðåêôåßíåôáé óôïí
ðñïïñéóìü ðïõ âñßóêåôáé óôç äåîéÜ ðëåõñÜ. Ôï ðñþôï ðáñÜäåéãìá,
ïñßæåé üôé ç èõñßäá ôïõ ÷ñÞóôç root èá
åßíáé óôçí ðñáãìáôéêüôçôá ç èõñßäá localuser.
Ãéá ôçí èõñßäá áõôÞ, ãßíåôáé îáíÜ áíáæÞôçóç óôç âÜóç äåäïìÝíùí ôùí
ðáñùíõìéþí. Áí äåí âñåèåß Üëëï üíïìá ðïõ íá ôáéñéÜæåé, ôï ìÞíõìá èá
ðáñáäïèåß óôïí ôïðéêü ÷ñÞóôç localuser. Ôï
åðüìåíï ðáñÜäåéãìá äåß÷íåé ìéá ëßóôá ôá÷õäñïìåßïõ. Ôá ìçíýìáôá ðïõ
áðåõèýíïíôáé óôç èõñßäá ftp-bugs, êáôåõèýíïíôáé
óå ôñåéò ôïðéêÝò èõñßäåò, ôéò joe,
eric êáé paul. Óçìåéþóôå
üôé åßíáé äõíáôüí íá êáèïñéóôåß ìéá áðïìáêñõóìÝíç èõñßäá
÷ñçóéìïðïéþíôáò ôç ìïñöÞ user@example.com.
Ôï åðüìåíï ðáñÜäåéãìá, äåß÷íåé ðùò ìðïñåß íá ãßíåé åããñáöÞ ôïõ mail
óå Ýíá áñ÷åßï, óôç óõãêåêñéìÝíç ðåñßðôùóç ôï
/dev/null. Ôï ôåëåõôáßï ðáñÜäåéãìá,
äåß÷íåé ðùò ãßíåôáé ç áðïóôïëÞ mail ðñïò Ýíá ðñüãñáììá.
Óôï ðáñÜäåéãìá áõôü, ôï ìÞíõìá ãñÜöåôáé óôçí ôõðïðïéçìÝíç åßóïäï
(standard input) ôïõ ðñïãñÜììáôïò
/usr/local/bin/procmail ÷ñçóéìïðïéþíôáò Ýíá
&unix; pipe.ÊÜèå öïñÜ ðïõ ãßíåôáé åíçìÝñùóç áõôïý ôïõ áñ÷åßïõ, èá ðñÝðåé íá
åêôåëåßôå ôçí åíôïëÞ make óôïí êáôÜëïãï
/etc/mail/, þóôå íá åíçìåñùèåß ç âÜóç
äåäïìÝíùí./etc/mail/local-host-namesÐñüêåéôáé ãéá ìéá ëßóôá áðü ïíüìáôá õðïëïãéóôþí, ôçí ïðïßá ôï
&man.sendmail.8; èá äÝ÷åôáé ùò ïíüìáôá ãéá ôï ôïðéêü ìç÷Üíçìá.
ÔïðïèåôÞóôå óå áõôÞí ôá ïíüìáôá ôùí õðïëïãéóôþí Þ ôùí ôïìÝùí ãéá ôïõò
ïðïßïõò èÝëåôå ôï sendmail íá ëáìâÜíåé
mail. Ãéá ðáñÜäåéãìá, áí ï óõãêåêñéìÝíïò åîõðçñåôçôÞò mail ðñüêåéôáé
íá ëáìâÜíåé mail ãéá ôïí ôïìÝá
example.com êáé ãéá ôïí õðïëïãéóôÞ
mail.example.com, ôï áñ÷åßï
local-host-names èá ìïéÜæåé ìå ôï
ðáñáêÜôù:example.com
mail.example.comÊÜèå öïñÜ ðïõ åíçìåñþíåôáé áõôü ôï áñ÷åßï, èá ðñÝðåé íá ãßíåôáé
åðáíåêêßíçóç ôïõ &man.sendmail.8; ãéá íá äéáâÜóåé ôéò áëëáãÝò./etc/mail/sendmail.cfÔï sendmail.cf åßíáé ôï êåíôñéêü áñ÷åßï
ñõèìßóåùí ôïõ sendmail. Ôï áñ÷åßï áõôü
ñõèìßæåé ôç óõíïëéêÞ óõìðåñéöïñÜ ôïõ
sendmail, ðïõ ðåñéëáìâÜíåé ìåôáîý Üëëùí
ôçí åðáíåããñáöÞ äéåõèýíóåùí êáé ôçí áðïóôïëÞ ìçíõìÜôùí áðüññéøçò ðñïò
áðïìáêñõóìÝíïõò åîõðçñåôçôÝò mail. Êáèþò ôï áñ÷åßï áõôü ðåñéÝ÷åé ôüóï
äéáöïñåôéêÝò ñõèìßóåéò, åßíáé öõóéêü íá åßíáé áñêåôÜ ðïëýðëïêï êáé
ïé ëåðôïìÝñåéåò ôïõ åßíáé Ýîù áðü ôï óêïðü áõôÞò ôçò åíüôçôáò.
Åõôõ÷þò, áõôü ôï áñ÷åßï óðÜíéá ÷ñåéÜæåôáé íá áëëá÷èåß óå ôõðéêïýò
åîõðçñåôçôÝò mail.Ôï âáóéêü áñ÷åßï ñõèìßóåùí ôïõ sendmail
ìðïñåß íá ðáñá÷èåß ìå ôç âïÞèåéá ìáêñïåíôïëþí ôýðïõ
&man.m4.1; ðïõ êáèïñßæïõí ôç óõìðåñéöïñÜ êáé ôá ÷áñáêôçñéóôéêÜ ôïõ
sendmail. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò,
ðáñáêáëïýìå äéáâÜóôå ôï
/usr/src/contrib/sendmail/cf/README.Ãéá íá éó÷ýóïõí ïé áëëáãÝò ðïõ êÜíåôå óå áõôü ôï áñ÷åßï, èá ðñÝðåé
íá åðáíåêêéíÞóåôå ôï sendmail./etc/mail/virtusertableÔï áñ÷åßï virtusertable áíôéóôïé÷åß
äéåõèýíóåéò mail åéêïíéêþí ôïìÝùí óå ðñáãìáôéêÝò èõñßäåò ôá÷õäñïìåßïõ.
Ïé èõñßäåò áõôÝò ìðïñåß íá åßíáé ôïðéêÝò, áðïìáêñõóìÝíåò, ðáñùíýìéá
ðïõ Ý÷ïõí ïñéóôåß óôï /etc/mail/aliases,
Þ áñ÷åßá.ÐáñÜäåéãìá Áíôéóôïß÷çóçò Mail Åéêïíéêïý ÔïìÝároot@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joeÓôï ðáñáðÜíù ðáñÜäåéãìá, Ý÷ïõìå ìéá áíôéóôïß÷çóç ãéá ôïí ôïìÝá
example.com. Ç åðåîåñãáóßá áõôïý
ôïõ áñ÷åßïõ ãßíåôáé áðü ðÜíù ðñïò ôá êÜôù, êáé óôáìáôÜåé óôçí åýñåóç
ôïõ ðñþôïõ ïíüìáôïò ðïõ ôáéñéÜæåé. Ç ðñþôç ãñáììÞ ôïõ ðáñáäåßãìáôïò,
áíôéóôïé÷åß ôï root@example.com óôçí ôïðéêÞ èõñßäá
root. Ç åðüìåíç êáôá÷þñçóç áíôéóôïé÷åß ôï
postmaster@example.com óôç èõñßäá
postmaster óôïí õðïëïãéóôÞ
noc.example.net. ÔÝëïò, áí äåí âñåèåß
êáìéÜ áíôéóôïß÷çóç ãéá ôïí ôïìÝá
example.com, èá åöáñìïóôåß ç
ôåëåõôáßá áíôéóôïß÷çóç, ç ïðïßá ôáéñéÜæåé ìå ïðïéïäÞðïôå mail óôáëèåß
ðñïò ôïí ôïìÝá example.com.
Óôçí ðåñßðôùóç áõôÞ, ôï ìÞíõìá èá ðáñáäïèåß óôçí ôïðéêÞ èõñßäá
joe.AndrewBoothmanÃñÜöçêå áðü ôïí GregoryNeil ShapiroÏé ðëçñïöïñßåò ðïõ ðñïÝñ÷ïíôáé áðü e-mails Ý÷ïõí ãñáöåß
áðü ôïí ÁëëÜæïíôáò ôïí Áíôéðñüóùðï ÌåôáöïñÜò Ôá÷õäñïìåßïõ (MTA)emailchange mta¼ðùò Ý÷ïõìå Þäç áíáöÝñåé, ôï &os; Ýñ÷åôáé ìå ôï
sendmail ðñïåãêáôåóôçìÝíï ùò Áíôéðñüóùðï
ÌåôáöïñÜò Ôá÷õäñïìåßïõ (Mail Transfer Agent, MTA). Ôï ðñüãñáììá áõôü
åßíáé áðü ðñïåðéëïãÞ õðåýèõíï ãéá ôçí åéóåñ÷üìåíç êáé åîåñ÷üìåíç
áëëçëïãñáößá.ÕðÜñ÷åé ùóôüóï ðëçèþñá ëüãùí ãéá ôïõò ïðïßïõò êÜðïéïé äéá÷åéñéóôÝò
åðéëÝãïõí íá áëëÜîïõí ôï MTA ôïõ óõóôÞìáôïò ôïõò. Ïé ëüãïé áõôïß
êõìáßíïíôáé áðü ôï üôé áðëÜ èÝëïõí íá äïêéìÜóïõí êÜðïéï Üëëï MTA, ùò
êáé ôï üôé ÷ñåéÜæïíôáé êÜðïéï éäéáßôåñï ÷áñáêôçñéóôéêü Þ äõíáôüôçôá ðïõ
õðÜñ÷åé óå êÜðïéï Üëëï mailer. Åõôõ÷þò, ôï &os; êÜíåé åýêïëç ôçí áëëáãÞ
ôïõ áíôéðñïóþðïõ.ÅãêáôáóôÞóôå ÍÝï MTAÕðÜñ÷ïõí áñêåôïß MTA ãéá íá åðéëÝîåôå. ¸íá êáëü óçìåßï åêêßíçóçò
åßíáé ç ÓõëëïãÞ ôùí Ports ôïõ &os; üðïõ
êáé èá ìðïñÝóåôå íá âñåßôå áñêåôïýò. ÖõóéêÜ åßóôå åëåýèåñïò íá
åðéëÝîåôå üðïéï MTA èÝëåôå áðü ïðïõäÞðïôå, üóï ôïõëÜ÷éóôïí ìðïñåßôå
íá ôï êÜíåôå íá åêôåëåßôå óôï &os;.ÎåêéíÞóôå åãêáèéóôþíôáò ôï íÝï óáò MTA. ÌåôÜ ôçí åãêáôÜóôáóç, èá
Ý÷åôå ôçí åõêáéñßá íá áðïöáóßóåôå áí ðñáãìáôéêÜ êáëýðôåé ôéò áíÜãêåò
óáò, êáèþò êáé íá ïëïêëçñþóåôå ôéò ñõèìßóåéò ôïõ ðñéí ìåôáöÝñåôå ôç
äéá÷åßñéóç mail ôïõ óõóôÞìáôïò áðü ôï
sendmail óôï íÝï óáò ðñüãñáììá. ÊáôÜ ôçí
åãêáôÜóôáóç, âåâáéùèåßôå üôé ôï íÝï óáò ëïãéóìéêü äåí èá ðñïóðáèÞóåé
íá åãêáôáóôáèåß ðÜíù óôá õðÜñ÷ïíôá åêôåëÝóéìá ôïõ óõóôÞìáôïò, üðùò ôï
/usr/bin/sendmail. ÄéáöïñåôéêÜ, èá Ý÷åôå
ïõóéáóôéêÜ âÜëåé ôï íÝï óáò ëïãéóìéêü mail óå ÷ñÞóç, ðñéí ðñïëÜâåôå
êáëÜ-êáëÜ íá ôï ñõèìßóåôå.Ðáñáêáëïýìå íá äéáâÜóåôå ôçí ôåêìçñßùóç ôïõ MTA ðïõ åðéëÝîáôå,
ãéá ðëçñïöïñßåò ó÷åôéêÜ ìå ôç ñýèìéóç ôïõ.ÁðåíåñãïðïéÞóôå ôï sendmailÁí áðåíåñãïðïéÞóåôå ôç äõíáôüôçôá áðïóôïëÞò (åîåñ÷üìåíá) ôïõ
sendmail, åßíáé óçìáíôéêü íá ôçí
áíôéêáôáóôÞóåôå ìå Ýíá åíáëëáêôéêü óýóôçìá ðáñÜäïóçò mail. Áí
åðéëÝîåôå íá ìçí êÜíåôå ôï ðáñáðÜíù, ôá ìçíýìáôá ôïõ óõóôÞìáôïò,
üðùò áõôÜ ðïõ ðáñÜãïíôáé áðü ôï &man.periodic.8;, äåí èá ìðïñïýí
íá ðáñáäïèïýí ìÝóù email, üðùò åßíáé ôï áíáìåíüìåíï. ÐïëëÜ
ôìÞìáôá ôïõ óõóôÞìáôïò óáò áíáìÝíïõí üôé õðÜñ÷åé óå ëåéôïõñãßá
Ýíá óýóôçìá óõìâáôü ìå ôï sendmail.
Áí ïé åöáñìïãÝò óõíå÷ßæïõí íá ÷ñçóéìïðïéïýí ôá åêôåëÝóéìá ôïõ
sendmail ðñïóðáèþíôáò íá óôåßëïõí
email ìåôÜ ôçí áðåíåñãïðïßçóç ôïõ, ôï mail ðéèáíþò èá
âñåèåß óå ìéá áíåíåñãÞ ïõñÜ ôïõ
sendmail êáé äåí èá ðáñáäïèåß
ðïôÝ.Ãéá íá áðåíåñãïðïéÞóåôå åíôåëþò ôï
sendmail, óõìðåñéëáìâáíïìÝíçò êáé ôçò
õðçñåóßáò åîåñ÷üìåíùí ìçíõìÜôùí, ÷ñçóéìïðïéÞóôå:sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"óôï /etc/rc.conf.Áí èÝëåôå íá áðåíåñãïðïéÞóåôå ìüíï ôçí õðçñåóßá åéóåñ÷ïìÝíùí
ôïõ sendmail èá ðñÝðåé íá èÝóåôå:sendmail_enable="NO"óôï /etc/rc.conf. Ðåñéóóüôåñåò ðëçñïöïñßåò
ãéá ôéò åðéëïãÝò åêêßíçóçò ôïõ sendmail,
äéáôßèåíôáé áðü ôçí áíôßóôïé÷ç óåëßäá manual,
&man.rc.sendmail.8;.Åêêßíçóç ôïõ ÍÝïõ óáò MTA êáôÜ ôçí ÅêêßíçóçÔï íÝï óáò MTA èá îåêéíÜåé êáôÜ ôçí åêêßíçóç, áí ðñïóèÝóåôå ìéá
êáôÜëëçëç ãñáììÞ óôï áñ÷åßï /etc/rc.conf. Äåßôå
ôï ðáñáêÜôù ðáñÜäåéãìá ãéá ôï
postfix:&prompt.root; echo 'postfix_enable="YES"' >> /etc/rc.confÔï MTA èá îåêéíÜåé ðëÝïí êáôÜ ôçí åêêßíçóç.Áíôéêáèéóôþíôáò ôï sendmail áðü
ÐñïåðéëåãìÝíï Mailer ÓõóôÞìáôïòÔï sendmail åßíáé ôüóï ãíùóôü ùò
óôÜíôáñ ëïãéóìéêü óôá óõóôÞìáôá &unix;, þóôå ðïëëÜ Üëëá ðñïãñÜììáôá
èåùñïýí üôé åßíáé Þäç åãêáôåóôçìÝíï êáé ñõèìéóìÝíï. Ãéá ôï ëüãï áõôü,
ðïëëÜ åíáëëáêôéêÜ MTA ðáñÝ÷ïõí äéêÝò ôïõò óõìâáôÝò õëïðïéÞóåéò ôïõ
sendmail. Ïé õëïðïéÞóåéò áõôÝò ðáñÝ÷ïõí
ðáñüìïéï óýíïëï åíôïëþí, êáé ìðïñïýí Ýôóé íá ÷ñçóéìïðïéçèïýí þóôå íá
áíôéêáôáóôÞóïõí áðåõèåßáò ôï
sendmail.Ãéá ôï ëüãï áõôü, áí ÷ñçóéìïðïéåßôå êÜðïéï åíáëëáêôéêü mailer, èá
èÝëåôå íá åîáóöáëßóåôå üôé Üëëá ðñïãñÜììáôá ðïõ ðñïóðáèïýí íá
åêôåëÝóïõí ôá ôõðéêÜ åêôåëÝóéìá ôïõ
sendmail üðùò ôï
/usr/bin/sendmail, èá åêôåëÝóïõí óôçí
ðñáãìáôéêüôçôá ôïí åðéëåãìÝíï óáò mailer. Åõôõ÷þò, ôï &os; ðáñÝ÷åé
Ýíá óýóôçìá ðïõ êáëåßôå &man.mailwrapper.8; êáé ôï ïðïßï áíáëáìâÜíåé
áõôÞ ôç äïõëåéÜ ãéá óáò.¼ôáí ôï sendmail ëåéôïõñãåß üðùò Ý÷åé
åãêáôáóôáèåß áñ÷éêÜ, èá âñåßôå êÜôé üðùò ôï ðáñáêÜôù óôï
/etc/mail/mailer.conf:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailÁõôü óçìáßíåé üôé üôáí åêôåëåßôáé êÜðïéá áðü áõôÝò ôéò
óõíçèéóìÝíåò åíôïëÝò (üðùò ôï ßäéï ôï sendmail),
ôï óýóôçìá óôçí ðñáãìáôéêüôçôá åêôåëåß Ýíá áíôßãñáöï ôïõ mailwrapper
ðïõ ïíïìÜæåôáé sendmail, êáé ôï ïðïßï åëÝã÷åé ôï
mailer.conf êáé åêôåëåß ôï
/usr/libexec/sendmail/sendmail áíôß áõôïý. Ôï
óýóôçìá áõôü äéåõêïëýíåé éäéáßôåñá ôçí áëëáãÞ ôùí åêôåëÝóéìùí ðïõ
åêôåëïýíôáé óôçí ðñáãìáôéêüôçôá üôáí ãßíåôáé êëÞóç ôùí ðñïåðéëåãìÝíùí
ëåéôïõñãéþí ôïõ sendmail.¸ôóé, áí èÝëåôå íá åêôåëåßôáé ôï
/usr/local/supermailer/bin/sendmail-compat
áíôß ãéá ôï sendmail, èá ìðïñïýóáôå íá
áëëÜîåôå ôï /etc/mail/mailer.conf þóôå íá
ãñÜöåé:sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatÏëïêëçñþíïíôáòÌüëéò Ý÷åôå ñõèìßóåé ôá ðÜíôá üðùò åðéèõìåßôå, ìðïñåßôå åßôå
íá êÜíåôå kill ôéò äéåñãáóßåò ôïõ
sendmail ðïõ äåí ÷ñåéÜæåóôå ðëÝïí êáé
íá åêêéíÞóåôå ôéò áíôßóôïé÷åò ôïõ íÝïõ óáò ëïãéóìéêïý, Þ áðëþò íá
êÜíåôå åðáíåêêßíçóç. Ç åðáíåêêßíçóç èá óáò äþóåé åðßóçò ôçí
åõêáéñßá íá âåâáéùèåßôå üôé ôï óýóôçìá óáò Ý÷åé ñõèìéóôåß óùóôÜ,
þóôå ôï íÝï óáò MTA íá îåêéíÜåé áõôüìáôá óå êÜèå åêêßíçóç.Áíôéìåôþðéóç ÐñïâëçìÜôùíemailtroubleshootingÃéáôß ðñÝðåé íá ÷ñçóéìïðïéþ ôï ðëÞñåò üíïìá (FQDN) ãéá
õðïëïãéóôÝò ðïõ âñßóêïíôáé óôïí ôïìÝá ìïõ;Ôï ðéï ðéèáíü åßíáé íá äéáðéóôþóåôå üôé ï õðïëïãéóôÞò
âñßóêåôáé óôçí ðñáãìáôéêüôçôá óå äéáöïñåôéêü ôïìÝá. Ãéá
ðáñÜäåéãìá, áí âñßóêåóôå óôï
foo.bar.edu êáé èÝëåôå íá
åðéêïéíùíÞóåôå ìå Ýíá õðïëïãéóôÞ ìå ôï üíïìá
mumble óôïí ôïìÝá bar.edu, èá ðñÝðåé íá áíáöåñèåßôå
óå áõôüí ìå ôï ðëÞñåò ôïõ üíïìá, mumble.bar.edu, áíôß ãéá áðëþò
mumble.ÐáñáäïóéáêÜ, áõôü åðéôñåðüôáí áðü ôïõò DNS resolvers ôïõ
BINDBIND.
Ùóôüóï, ç ôñÝ÷ïõóá Ýêäïóç ôïõ BIND ðïõ
ðåñéëáìâÜíåôáé óôï &os;, äåí ðáñÝ÷åé ðëÝïí óõíôïìåýóåéò ãéá
ìç-ðëÞñç ïíüìáôá ôïìÝùí, åêôüò ãéá ôïí ôïìÝá óôïí ïðïßï âñßóêåóôå.
¸ôóé, Ýíáò õðïëïãéóôÞò ìå ìç-ðëÞñåò üíïìá
mumble èá ðñÝðåé íá âñåèåß ùò mumble.foo.bar.edu, Þ èá ãßíåé áíáæÞôçóç
ãéá áõôüí óôï ñéæéêü ôïìÝá.Ç óõìðåñéöïñÜ áõôÞ åßíáé äéáöïñåôéêÞ áðü ôçí ðñïçãïýìåíç, üðïõ
ç áíáæÞôçóç óõíå÷éæüôáí êáé óôï mumble.bar.edu, êáé ôï mumble.edu. Ñßîôå ìéá ìáôéÜ óôï
RFC 1535 ãéá ôï ëüãï ðïõ ôï ðáñáðÜíù èåùñåßôå êáêÞ ðñáêôéêÞ, Þ
áêüìá êáé êåíü áóöáëåßáò.¸íáò ôñüðïò ãéá íá ðáñáêÜìøåôå ôï ðñüâëçìá åßíáé íá ðñïóèÝóåôå
ôç ãñáììÞ:
search foo.bar.edu bar.edu
áíôß ãéá ôçí ðñïçãïýìåíç:
domain foo.bar.edu
óôï áñ÷åßï /etc/resolv.conf. Âåâáéùèåßôå
ùóôüóï üôé ç óåéñÜ áíáæÞôçóçò äåí ðçãáßíåé ðÝñá áðü ôï
üñéï ìåôáîý ôïðéêÞò êáé äçìüóéáò äéá÷åßñéóçò,
üðùò ôï áðïêáëåß ôï RFC 1535.Ôï sendmail äßíåé ôï ìÞíõìá
mail loops back to myself (ôï mail
åðéóôñÝöåé óôïí åáõôü ìïõ)Ç áðÜíôçóç óå áõôü, õðÜñ÷åé óôï FAQ ôïõ
sendmail üðùò öáßíåôáé ðáñáêÜôù:ËáìâÜíù áõôÜ ôá ìçíýìáôá ëÜèïõò:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Ðùò ìðïñþ íá ëýóù ôï ðñüâëçìá;
¸÷åôå æçôÞóåé ôï mail ðñïò Ýíá ôïìÝá (ð.÷. ôï domain.net) íá
ðñïùèåßôáé ðñïò Ýíá óõãêåêñéìÝíï õðïëïãéóôÞ (óôçí ðåñßðôùóç áõôÞ
ôï relay.domain.net) ÷ñçóéìïðïéþíôáò ìéá åããñáöÞ
MXMX record, áëëÜ ôï
ìç÷Üíçìá áíáìåôÜäïóçò (relay) äåí áíáãíùñßæåé ôïí åáõôü ôïõ ùò
domain.net. ÐñïóèÝóôå ôï domain.net óôï /etc/mail/local-host-names
[åßíáé ãíùóôü ùò /etc/sendmail.cw ðñéí ôçí Ýêäïóç 8.10]
(áí ÷ñçóéìïðïéåßôå ôï FEATURE(use_cw_file)), äéáöïñåôéêÜ ðñïóèÝóôå ôï
Cw domain.net óôï /etc/mail/sendmail.cf.Ìðïñåßôå íá âñåßôå ôï FAQ ôïõ
sendmail óôç äéåýèõíóç
, êáé óõíßóôáôáé
íá ôï äéáâÜóåôå áí èÝëåôå íá ðåéñÜîåôå ôéò
ñõèìßóåéò ôïõ mail óáò.Ðùò ìðïñþ íá åêôåëÝóù åîõðçñåôçôÞ mail óå õðïëïãéóôÞ ðïõ
óõíäÝåôáé ìÝóù åðéëïãéêÞò óýíäåóçò
PPPPPP;ÈÝëåôå íá óõíäÝóåôå Ýíá &os; ìç÷Üíçìá óå Ýíá ôïðéêü äßêôõï
(LAN) óôï Internet. Ôï &os; ìç÷Üíçìá èá ãßíåé ðýëç ôá÷õäñïìåßïõ
ãéá ôï LAN. Ç óýíäåóç PPP äåí åßíáé áðïêëåéóôéêÞ.ÕðÜñ÷ïõí ôïõëÜ÷éóôïí äýï ôñüðïé ãéá íá ôï êÜíåôå áõôü. Ï Ýíáò
åßíáé ìå ôç ÷ñÞóç UUCPUUCP.¸íáò Üëëïò ôñüðïò åßíáé íá âÜëåôå Ýíá åîõðçñåôçôÞ Internet ï
ïðïßïò Ý÷åé óõíå÷Þ óýíäåóç, íá óáò ðáñÝ÷åé õðçñåóßá äåõôåñåýïíôïò
MX ãéá ôïí ôïìÝá óáò. Ãéá ðáñÜäåéãìá, áí ï ôïìÝáò ôçò åôáéñßáò
óáò åßíáé example.com êáé ï
ðáñï÷Ýáò óáò Internet Ý÷åé ïñßóåé ôï
example.net íá ðáñÝ÷åé
õðçñåóßåò äåõôåñåýïíôïò MXMX record ãéá ôïí ôïìÝá óáò:example.com. MX 10 example.com.
MX 20 example.net.Ìüíï Ýíáò õðïëïãéóôÞò ìðïñåß íá êáèïñéóôåß ùò ôåëéêüò
ðáñáëÞðôçò (ðñïóèÝóôå ôï Cw example.com óôï
áñ÷åßï /etc/mail/sendmail.cf óôï
example.com).¼ôáí ôï ìç÷Üíçìá ðïõ óôÝëíåé ìÝóù ôïõ
sendmail ðñïóðáèåß íá ðáñáäþóåé ôï mail èá
ðñïóðáèÞóåé íá óõíäåèåß óôï äéêü óáò
(example.com) ìÝóù ôçò óýíäåóçò
modem. Ôï ðéï ðéèáíü åßíáé üôé äåí èá ôá êáôáöÝñåé, ãéáôß äåí
èá åßóôå óõíäåìÝíïò åêåßíç ôç óôéãìÞ. Ôï
sendmail èá ôï ðáñáäþóåé áõôüìáôá óôçí
õðçñåóßá äåõôåñåýïíôïò MX, ð.÷. ôïí ðáñï÷Ýá óáò Internet
(example.net). Ôï äåõôåñåýïí
MX èá ðñïóðáèåß ðåñéïäéêÜ íá óõíäåèåß óôï ìç÷Üíçìá óáò êáé íá
ðáñáäþóåé ôï mail óôïí êýñéï åîõðçñåôçôÞ MX
(example.com).Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå êÜôé üðùò ôï ðáñáêÜôù ùò script
åéóüäïõ:#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyispÁí ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå ÷ùñéóôü script ãéá ôçí åßóïäï
êÜðïéïõ ÷ñÞóôç, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå áíôß ãéá ôï ðáñáðÜíù
ôï sendmail -qRexample.com óôï script. Áõôü
èá åîáíáãêÜóåé ôçí Üìåóç åðåîåñãáóßá üëïõ ôïõ mail óôçí ïõñÜ ãéá
ôï example.com.Ðéï ëåðôïìåñÞò ðåñéãñáöÞ ôçò êáôÜóôáóçò öáßíåôáé
ðáñáêÜôù:ÌÞíõìá áðü ôçí &a.isp;.> ðáñÝ÷ïõìå äåõôåñåýïí MX ãéá Ýíá ðåëÜôç. Ï ðåëÜôçò óõíäÝåôáé óôéò
> õðçñåóßåò ìáò áñêåôÝò öïñÝò ôç ìÝñá áõôüìáôá, ãéá íá ëáìâÜíåé ôá email ôïõ
> óôï ðñùôåýïí ôïõ MX (Äåí êáëïýìå ôçí ôïðïèåóßá ôïõ üôáí ëáìâÜíïõìå email
> ãéá ôïí ôïìÝá ôïõ). Ôï sendmail ìáò óôÝëíåé ôï mailqueue êÜèå 30 ëåðôÜ.
> Ôç äåäïìÝíç óôéãìÞ èá ðñÝðåé íá ìåßíåé óõíäåìÝíïò ãéá 30 ëåðôÜ,
> ãéá íá åßíáé âÝâáéïò üôé üëï ôï email ôïõ èá Ý÷åé
> ðáñáäïèåß óôïí ðñùôåýïíôá MX.
>
> ÕðÜñ÷åé êÜðïéá åíôïëÞ ðïõ íá åîáíáãêÜóåé ôï sendmail íá óôåßëåé
> üëá ôá mails Üìåóá; Ï ÷ñÞóôçò öõóéêÜ äåí Ý÷åé äéêáéþìáôá
> root óôï ìç÷Üíçìá ìáò.
Óôçí åíüôçôá privacy flags ôïõ sendmail.cf, õðÜñ÷åé Ýíáò
ïñéóìüò Opgoaway,restrictqrun
ÁöáéñÝóôå ôï restrictqrun ãéá íá åðéôñÝøåôå óå ìç-root ÷ñÞóôåò íá îåêéíÞóïõí
ôçí åðåîåñãáóßá ôçò ïõñÜò.
Ìðïñåß åðßóçò íá èÝëåôå íá áíáäéáôÜîåôå ôá MX. Åßìáóôå ôï 1ï MX ãéá áõôïý
ôïõ åßäïõò ôïõò ðåëÜôåò, êáé Ý÷ïõìå ïñßóåé:
# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue
Ìå ôïí ôñüðï áõôü, Ýíá áðïìáêñõóìÝíï site èá ðáñáäßäåé áðåõèåßáò óå óáò,
÷ùñßò íá ðñïóðáèåß ôç óýíäåóç ìå ôï ÷ñÞóôç. ¸ðåéôá ôá óôÝëíåôå óôïí
ðåëÜôç óáò. Áõôü ëåéôïõñãåß ìüíï ãéá ìç÷áíÞìáôá, êáé Ýôóé
÷ñåéÜæåôáé íá âÜëåôå ôïí ðåëÜôç óáò íá ïíïìÜóåé ôï ìç÷Üíçìá ôïõ mail
customer.com êáé åðßóçò
hostname.customer.com óôï DNS. Áðëþò ðñïóèÝóôå ìéá åããñáöÞ
ôýðïõ A óôï DNS ãéá ôï customer.com.Ãéáôß ëáìâÜíù óõíÝ÷åéá ìçíýìáôá ëÜèïõò Relaying
Denied üôáí óôÝëíù mail áðü Üëëïõò
õðïëïãéóôÝò;Óôéò ðñïåðéëåãìÝíåò åãêáôáóôÜóåéò ôïõ &os;, ôï
sendmail åßíáé ñõèìéóìÝíï íá
óôÝëíåé mail ìüíï áðü ôïí õðïëïãéóôÞ óôïí ïðïßï åêôåëåßôáé.
Ãéá ðáñÜäåéãìá, áí õðÜñ÷åé äéáèÝóéìïò äéáêïìéóôÞò
POP, ïé ÷ñÞóôåò èá ìðïñïýí íá åëÝã÷ïõí ôï
mail ôïõò áðü ôï ó÷ïëåßï, ôï ãñáöåßï, Þ Üëëç áðïìáêñõóìÝíç
ôïðïèåóßá, áëëÜ èá åîáêïëïõèïýí íá ìçí ìðïñïýí íá óôåßëïõí
ðñïò åîùôåñéêÝò äéåõèýíóåéò. ÔõðéêÜ, ëßãï ìåôÜ áðü ìéá áðüðåéñá
áðïóôïëÞò, èá óôáëåß Ýíá email áðü ôïí
MAILER-DAEMON ìå ôï ìÞíõìá ëÜèïõò
5.7 Relaying Denied.ÕðÜñ÷ïõí äéÜöïñïé ôñüðïé ãéá íá îåðåñÜóåôå ôï ðñüâëçìá.
Ï ðëÝïí áðëüò åßíáé íá âÜëåôå ôç äéåýèõíóç ôïõ ISP óáò óå
Ýíá áñ÷åßï relay-domains,
/etc/mail/relay-domains. ¸íáò ãñÞãïñïò
ôñüðïò ãéá íá ôï êÜíåôå áõôü åßíáé:&prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domainsÁöïý äçìéïõñãÞóåôå Þ åðåîåñãáóôåßôå áõôü ôï áñ÷åßï, èá
ðñÝðåé íá åðáíåêêéíÞóåôå ôï
sendmail. Áõôü äïõëåýåé ìéá ÷áñÜ
áí åßóôå äéá÷åéñéóôÞò åîõðçñåôçôÞ êáé äåí åðéèõìåßôå íá
óôÝëíåôå mail ôïðéêÜ, Þ áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå Ýíá
óýóôçìá ôýðïõ point êáé click óå Ýíá
Üëëï ìç÷Üíçìá Þ áêüìá êáé óå Üëëï ISP. Åßíáé åðßóçò ðïëý
÷ñÞóéìï áí Ý÷åôå ñõèìßóåé ìüíï Ýíá Þ äýï ëïãáñéáóìïýò mail.
Áí èÝëåôå íá ðñïóèÝóåôå ìåãáëýôåñï áñéèìü äéåõèýíóåùí, ìðïñåßôå
íá áíïßîåôå áõôü ôï áñ÷åßï ìå ôïí åðéèõìçôü óõíôÜêôç
êåéìÝíïõ, êáé íá ðñïóèÝóåôå üëïõò ôïõò ôïìåßò, Ýíá óå êÜèå
ãñáììÞ:your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.orgÔþñá, ïðïéáäÞðïôå áðïóôïëÞ mail áðü ôï óýóôçìá óáò
áðü ïðïéïäÞðïôå õðïëïãéóôÞ áõôÞò ôçò ëßóôáò (ìå ôçí
ðñïûðüèåóÞ ï ÷ñÞóôçò íá Ý÷åé ëïãáñéáóìü óôï óýóôçìá óáò), èá
åßíáé åðéôõ÷Þò. Ðñüêåéôáé ãéá Ýíá ðïëý êáëü ôñüðï íá
åðéôñÝøåôå óôïõò ÷ñÞóôåò íá óôÝëíïõí mail áðü ôï óýóôçìá óáò
ìÝóù áðïìáêñõóìÝíçò óýíäåóçò, ÷ùñßò íá åðéôñÝðåôå óå Üëëïõò íá
óôÝëíïõí SPAM ìÝóù ôïõ óõóôÞìáôïò óáò.Ðñï÷ùñçìÝíá ÈÝìáôáÇ áêüëïõèç åíüôçôá êáëýðôåé ðéï ðñï÷ùñçìÝíá èÝìáôá, üðùò ôç ñýèìéóç
ôïõ mail êáé ñõèìßóåéò ãéá Ýíá ïëüêëçñï ôïìÝá.ÂáóéêÝò Ñõèìßóåéòemailconfiguration×ùñßò íá ÷ñåéáóôåß íá êÜíåôå êáìéÜ ñýèìéóç, èá ìðïñåßôå íá
óôåßëåôå mail ðñïò åîùôåñéêïýò õðïëïãéóôÝò, áñêåß íá Ý÷åôå ñõèìßóåé
ôï /etc/resolv.conf Þ íá åêôåëåßôå ôï äéêü
óáò åîõðçñåôçôÞ DNS. Áí èÝëåôå íá ðáñáëáìâÜíåôå mail ãéá ôïí
õðïëïãéóôÞ óáò óôï äéêü óáò sendmail MTA,
õðÜñ÷ïõí äýï ìÝèïäïé:Ìðïñåßôå íá Ý÷åôå äéêü óáò ôïìÝá êáé äéêü óáò åîõðçñåôçôÞ
DNS ãéá ôïí ôïìÝá óáò. Ãéá ðáñÜäåéãìá, FreeBSD.orgÍá ðáñáëáìâÜíåôå mail áðåõèåßáò óôï ìç÷Üíçìá óáò. Áõôü
ãßíåôáé áí ôï mail ðáñáäßäåôáé áðåõèåßáò óôïí õðïëïãéóôÞ óáò,
÷ñçóéìïðïéþíôáò ôïí üíïìá ôïõ (ðñÝðåé íá âñßóêåôáé óôï DNS).
Ãéá ðáñÜäåéãìá,
example.FreeBSD.org.SMTP¼ðïéá åðéëïãÞ áðü ôéò ðáñáðÜíù êáé íá êÜíáôå, ãéá íá åßíáé äõíáôÞ
ç ðáñáëáâÞ mail áðåõèåßáò óôïí õðïëïãéóôÞ óáò, èá ðñÝðåé íá Ý÷åôå
ìüíéìç óôáôéêÞ äéåýèõíóç IP (ü÷é äõíáìéêÞ, üðùò åßíáé ïé ðåñéóóüôåñåò
åðéëïãéêÝò óõíäÝóåéò PPP). Áí âñßóêåóôå ðßóù áðü êÜðïéï firewall,
èá ðñÝðåé íá åðéôñÝðåé ôç äéáêßíçóç SMTP ðñïò åóÜò. Áí èÝëåôå íá
ëáìâÜíåôå mail áðåõèåßáò óôïí õðïëïãéóôÞ óáò, èá ðñÝðåé íá
åîáóöáëßóåôå Ýíá áðü ôá ðáñáêÜôù:
- MX record
- Íá âåâáéùèåßôå üôé ç åããñáöÞ MX (ìå ôï ÷áìçëüôåñï áñéèìü)
+ Íá âåâáéùèåßôå üôé ç åããñáöÞ MXMX record (ìå ôï ÷áìçëüôåñï áñéèìü)
óôï DNS óáò, äåß÷íåé ðñïò ôç äéåýèõíóç IP ôïõ
ìç÷áíÞìáôïò óáò.Íá âåâáéùèåßôå üôé äåí õðÜñ÷åé êáìéÜ åããñáöÞ MX óôï DNS ãéá
ôïí õðïëïãéóôÞ óáò.¼ðïéï áðü ôá ðáñáðÜíù êáé áí êÜíåôå, èá ìðïñåßôå íá ëáìâÜíåôå
mail áðåõèåßáò óôïí õðïëïãéóôÞ óáò.ÄïêéìÜóôå áõôü:&prompt.root; hostname
example.FreeBSD.org
&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XXÁí âëÝðåôå ôï ðáñáðÜíù, ôï mail ðïõ êáôåõèýíåôáé áðåõèåßáò óôï
yourlogin@example.FreeBSD.org èá ðñÝðåé
íá ëáìâÜíåôáé ÷ùñßò ðñïâëÞìáôá (èåùñþíôáò üôé ôï
sendmail åêôåëåßôå óùóôÜ óôïí õðïëïãéóôÞ
example.FreeBSD.org).Áí áíôß ãéá áõôü äåßôå êÜôé óáí ôï ðáñáêÜôù:&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org¼ëï ôï mail ðïõ êáôåõèýíåôáé ðñïò ôïí õðïëïãéóôÞ óáò (example.FreeBSD.org) èá êáôáëÞîåé íá
óõëëÝãåôáé óôï hub ìå ôï ßäéï üíïìá ÷ñÞóôç, áíôß íá
óôáëåß áðåõèåßáò óôï ìç÷Üíçìá óáò.Ôéò ðáñáðÜíù ðëçñïöïñßåò, ôéò ÷åéñßæåôáé ï äéêüò óáò åîõðçñåôçôÞò
DNS. Ç åããñáöÞ DNS ðïõ ðåñéÝ÷åé ôéò ðëçñïöïñßåò äñïìïëüãçóçò ãéá ôï
mail, åßíáé ç Mail eXchange.
Áí äåí õðÜñ÷åé åããñáöÞ MX, ôï mail èá ðáñáäßäåôáé áðåõèåßáò óôïí
õðïëïãéóôÞ ìÝóù ôçò IP äéåýèõíóçò ôïõ.Ç êáôá÷þñéóç MX ãéá ôïí freefall.FreeBSD.org Ýìïéáæå êÜðïéá óôéãìÞ ìå
ôçí ðáñáêÜôù:freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.com¼ðùò ìðïñåßôå íá äåßôå, ï freefall åß÷å ðïëëÝò
êáôá÷ùñÞóåéò MX. Ç êáôá÷þñçóç ìå ôïí ìéêñüôåñï áñéèìü, åßíáé ï
õðïëïãéóôÞò ðïõ ëáìâÜíåé ôï mail áðåõèåßáò, áí åßíáé äéáèÝóéìïò.
Áí ãéá êÜðïéï ëüãï äåí åßíáé ðñïóâÜóéìïò, ïé Üëëïé (ðïõ ïñéóìÝíåò
öïñÝò êáëïýíôáé backup MXes) äÝ÷ïíôáé ôá ìçíýìáôá
ðñïóùñéíÜ êáé ôá ìåôáâéâÜæïõí óå êÜðïéï õðïëïãéóôÞ ìå ÷áìçëüôåñç
áñßèìçóç, ìüëéò ãßíåé äéáèÝóéìïò. ÔåëéêÜ ôá ìçíýìáôá êáôáëÞãïõí
óôïí õðïëïãéóôÞ ìå ôï ìéêñüôåñï áñéèìü.Ïé åíáëëáêôéêÝò ôïðïèåóßåò MX, èá ðñÝðåé íá ÷ñçóéìïðïéïýí
äéáöïñåôéêÝò ãñáììÝò ãéá ôç óýíäåóç ôïõò ìå ôï Internet. ÁõôÞ åßíáé
ç êáëýôåñç ëýóç. Ï ðáñï÷Ýáò óáò Þ êÜðïéï Üëëï öéëéêü site, äåí
èá Ý÷ïõí êáíÝíá ðñüâëçìá íá óáò ðáñÝ÷ïõí áõôÞ ôçí õðçñåóßá.Mail ãéá ôïí ÔïìÝá ÓáòÃéá íá äçìéïõñãÞóåôå Ýíá mailhost (äçë. Ýíá
åîõðçñåôçôÞ mail) èá ðñÝðåé ïðïéïäÞðïôå mail óôÝëíåôáé ðñïò êÜðïéï
óôáèìü åñãáóßáò, íá ëáìâÜíåôáé óå áõôüí. ÂáóéêÜ èá èÝëåôå íá
äéåêäéêåßôå ïðïéïäÞðïôå mail ðïõ êáôåõèýíåôáé ðñïò
ïðïéïäÞðïôå üíïìá ìç÷áíÞìáôïò ôïõ ôïìÝá óáò (óôçí ðåñßðôùóç ìáò ôï
*.FreeBSD.org) êáé íá ôï áíáêáôåõèýíåôå
ðñïò ôïí åîõðçñåôçôÞ mail, þóôå ïé ÷ñÞóôåò óáò íá ìðïñïýí íá ëÜâïõí
ôï mail ôïõò áðü ôïí êåíôñéêü åîõðçñåôçôÞ.DNSÃéá åõêïëßá, èá ðñÝðåé íá Ý÷åôå Ýíá ëïãáñéáóìü ÷ñÞóôç ìå ôï ßäéï
üíïìá ÷ñÞóôç êáé óôá äýï ìç÷áíÞìáôá.
×ñçóéìïðïéÞóôå ãéá ôï óêïðü áõôü ôçí åíôïëÞ &man.adduser.8;.Ï mailhost ðïõ èá ÷ñçóéìïðïéÞóåôå, ðñÝðåé íá åßíáé ôï êáèïñéóìÝíï
ìç÷Üíçìá ãéá ôçí áíôáëëáãÞ ìçíõìÜôùí ãéá êÜèå óôáèìü åñãáóßáò ôïõ
äéêôýïõ. Áõôü ãßíåôáé óôéò ñõèìßóåéò DNS ìå ôïí áêüëïõèï
ôñüðï:example.FreeBSD.org A 204.216.27.XX ; Workstation
MX 10 hub.FreeBSD.org ; MailhostÌå ôïí ôñüðï áõôü, ôï mail ðïõ êáôåõèýíåôáé ðñïò êÜðïéï óôáèìü
åñãáóßáò èá áíáêáôåõèõíèåß ðñïò ôï mailhost, Üó÷åôá ìå ôï ðïõ äåß÷íåé
ç åããñáöÞ ôýðïõ Á. Ôï mail óôÝëíåôáé ðñïò ôïí õðïëïãéóôÞ MX.Äåí ìðïñåßôå íá êÜíåôå ôï ðáñáðÜíù, áí äåí åêôåëåßôå ôï äéêü óáò
åîõðçñåôçôÞ DNS. Áí áõôü äåí óõìâáßíåé, êáé äåí ìðïñåßôå íá ôï
áëëÜîåôå, óõíåííïçèåßôå ìå ôïí ðáñï÷Ýá óáò (ISP) Þ ìå üðïéïí óáò
ðáñÝ÷åé õðçñåóßåò DNS.Áí ðáñÝ÷åôå õðçñåóßåò åéêïíéêïý ôá÷õäñïìåßïõ, ïé ðáñáêÜôù
ðëçñïöïñßåò èá óáò öáíïýí ÷ñÞóéìåò. Ãéá ôï ðáñÜäåéãìá ìáò, èá
õðïèÝóïõìå üôé Ý÷åôå Ýíá ðåëÜôç ìå ôï äéêü ôïõ ôïìÝá, óôçí ðåñßðôùóç
ìáò ôï customer1.org, êáé èÝëåôå
üëï ôï mail ãéá ôï customer1.org
íá óôÝëíåôáé óôï äéêü óáò mailhost, mail.myhost.com. Ç êáôá÷þñéóç óáò óôï DNS èá
ìïéÜæåé ìå ôçí ðáñáêÜôù:customer1.org MX 10 mail.myhost.comÓçìåéþóôå üôé äåí ÷ñåéÜæåóôå åããñáöÞ ôýðïõ Á
ãéá ôï customer1.org áí èÝëåôå
áðëþò íá ÷åéñßæåóôå email ãéá áõôü ôïí ôïìÝá.Íá Ý÷åôå õðüøç óáò üôé äåí èá ìðïñåßôå íá êÜíåôå ping ôï customer1.org áí äåí õðÜñ÷åé ãéá áõôü
åããñáöÞ ôýðïõ Á.Ôï ôåëåõôáßï ðñÜãìá ðïõ ðñÝðåé íá êÜíåôå, åßíáé íá ïñßóåôå óôï
sendmail ðïõ åêôåëåßôáé óôï äéêü óáò
mailhost, ãéá ðïéïõò ôïìåßò Þ / êáé ìç÷áíÞìáôá èá äÝ÷åôáé mail.
ÕðÜñ÷ïõí ìåñéêïß äéáöïñåôéêïß ôñüðïé ãéá íá ãßíåé áõôü. Ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå Ýíáí áðü ôïõò ðáñáêÜôù:ÐñïóèÝóôå ôá ìç÷áíÞìáôá óôï áñ÷åßï
/etc/mail/local-host-names áí ÷ñçóéìïðïéåßôå
ôç äõíáôüôçôá FEATURE(use_cw_file).
Áí ÷ñçóéìïðïéåßôå êÜðïéá Ýêäïóç ôïõ
sendmail ðñéí ôçí 8.10, ôï áñ÷åßï åßíáé
ôï /etc/sendmail.cw.ÐñïóèÝóôå ìéá ãñáììÞ Cwyour.host.com óôï
áñ÷åßï óáò /etc/sendmail.cf Þ óôï áñ÷åßï
/etc/mail/sendmail.cf áí ÷ñçóéìïðïéåßôå
ôçí Ýêäïóç 8.10 ôïõ sendmail Þ êÜðïéá
ìåôáãåíÝóôåñç.SMTP ìå UUCPÇ ðñïåðéëåãìÝíç ñýèìéóç ôïõ sendmail
ðïõ Ýñ÷åôáé ìå ôï &os;, ðñïïñßæåôáé ãéá äéêôõáêÝò ôïðïèåóßåò ðïõ åßíáé
áðåõèåßáò óõíäåäåìÝíåò óôï Internet. Óå ðåñéðôþóåéò ðïõ åßíáé
åðéèõìçôÞ ç áíôáëëáãÞ email ìÝóù UUCP, èá ðñÝðåé íá ÷ñçóéìïðïéçèåß
äéáöïñåôéêü áñ÷åßï ñõèìßóåùí ãéá ôï
sendmail.Ç ÷åéñïêßíçôç ñýèìéóç ôïõ áñ÷åßïõ
/etc/mail/sendmail.cf áíÞêåé óôá ðñï÷ùñçìÝíá
èÝìáôá. Ç Ýêäïóç 8 ôïõ sendmail ðáñÜãåé
áñ÷åßá ñõèìßóåùí ìÝóù ôïõ ðñïåðåîåñãáóôÞ &man.m4.1;, üðïõ ïé ñõèìßóåéò
ãßíïíôáé óå Ýíá áíþôåñï åðßðåäï áöáßñåóçò. Ìðïñåßôå íá âñåßôå ôá
áñ÷åßá ñýèìéóçò ôïõ&man.m4.1; óôïí êáôÜëïãï
/usr/share/sendmail/cf. ÄéáâÜóôå ôï
README óôïí êáôÜëïãï cf
ãéá ìéá âáóéêÞ åéóáãùãÞ óôéò ñõèìßóåéò ôïõ &man.m4.1;.Ï êáëýôåñïò ôñüðïò ãéá ôçí ðáñÜäïóç mail ìÝóù ôïõ UUCP, åßíáé ìå
ôçí ÷ñÞóç ôçò äõíáôüôçôáò mailertable. ÐáñÜãåôáé ìå
áõôü ôïí ôñüðï ìéá âÜóç äåäïìÝíùí ðïõ ìðïñåß íá ÷ñçóéìïðïéÞóåé ôï
sendmail ãéá íá ðÜñåé áðïöÜóåéò ó÷åôéêÜ
ìå ôçí äñïìïëüãçóç.Èá ðñÝðåé áñ÷éêÜ íá äçìéïõñãÞóåôå ôï áñ÷åßï
.mc. Èá âñåßôå ìåñéêÜ ðáñáäåßãìáôá óôïí êáôÜëïãï
/usr/share/sendmail/cf/cf.
ÕðïèÝôïíôáò üôé Ý÷åôå ïíïìÜóåé ôï áñ÷åßï óáò
foo.mc, ôï ìüíï ðïõ ÷ñåéÜæåôáé íá êÜíåôå ãéá íá
ôï ìåôáôñÝøåôå óå Ýíá Ýãêõñï áñ÷åßï sendmail.cf
åßíáé:&prompt.root; cd /etc/mail
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cf¸íá ôõðéêü áñ÷åßï .mc èá äåß÷íåé üðùò ôï
ðáñáêÜôù:VERSIONID(`Your version number') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCPÏé ãñáììÝò ðïõ ðåñéÝ÷ïõí ôéò äõíáôüôçôåò
accept_unresolvable_domains,
nocanonify, and
confDONT_PROBE_INTERFACES èá áðïôñÝøïõí ôç ÷ñÞóç
ôïõ DNS êáôÜ ôçí ðáñÜäïóç ôïõ mail. Ç ïäçãßá
UUCP_RELAY áðáéôåßôáé ãéá ôçí õðïóôÞñéîç ðáñÜäïóçò
ìÝóù ôïõ UUCP. Áðëþò ôïðïèåôÞóôå åêåß Ýíá üíïìá ìç÷áíÞìáôïò óôï
Internet ðïõ íá ìðïñåß íá ÷åéñéóôåß äéåõèýíóåéò øåõäï-ôïìÝùí .UUCP.
Ôï ðéï ðéèáíü åßíáé íá âÜëåôå åêåß ôïí áíáìåôáäüôç (relay) ãéá mail
ðïõ ðáñÝ÷åé ï ISP óáò.¸÷ïíôáò êÜíåé ôï ðáñáðÜíù, èá ÷ñåéáóôåßôå Ýíá áñ÷åßï
/etc/mail/mailertable. Áí Ý÷åôå ìüíï ìéá óýíäåóç
ìå ôïí Ýîù êüóìï ðïõ ÷ñçóéìïðïéåßôáé ãéá üëá óáò ôá mail, ôï ðáñáêÜôù
áñ÷åßï åßíáé åðáñêÝò:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:your.uucp.relay¸íá ðéï ðïëýðëïêï ðáñÜäåéãìá èá ìïéÜæåé ìå ôï ðáñáêÜôù:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:Ïé ôñåéò ðñþôåò ãñáììÝò ÷åéñßæïíôáé åéäéêÝò ðåñéðôþóåéò, üðïõ ôï
mail ðïõ áðåõèýíåôáé óå êÜðïéï ôïìÝá äåí èá ðñÝðåé íá óôáëèåß óôçí
ðñïåðéëåãìÝíç äéáäñïìÞ, áëëÜ áíôßèåôá óå êÜðïéï ãåéôïíéêü UUCP
ðñïêåéìÝíïõ íá óõíôïìåõèåß ôï ìïíïðÜôé ðáñÜäïóçò.
Ç åðüìåíç ãñáììÞ ÷åéñßæåôáé ôï mail ðñïò ôïí ôïðéêü ôïìÝá Ethernet,
üðïõ åßíáé äõíáôÞ ç ðáñÜäïóç ìÝóù SMTP. ÔÝëïò, ïé ãåéôïíéêïß UUCP
áíáöÝñïíôáé ìå ãñáöÞ øåõäï-ôïìÝùí UUCP þóôå íá åðéôñÝðåôáé óå êÜðïéïí
uucp-neighbor
!recipient
íá ðáñáêÜìøåé ôïõò ðñïåðéëåãìÝíïõò êáíüíåò. Ç ôåëåõôáßá ãñáììÞ åßíáé
ðÜíôá ìéá ìïíáäéêÞ ôåëåßá, ç ïðïßá ôáéñéÜæåé ìå ïôéäÞðïôå Üëëï, ìå
ðáñÜäïóç UUCP óå Ýíá ãåéôïíéêü UUCP ï ïðïßïò åíåñãåß ùò ãåíéêÞ ðýëç
mail ðñïò ôïí õðüëïéðï êüóìï. ¼ëá ôá ïíüìáôá õðïëïãéóôþí ðïõ
âñßóêïíôáé ìåôÜ ôï uucp-dom: èá ðñÝðåé íá åßíáé
Ýãêõñïé UUCP ãåßôïíåò, üðùò ìðïñåßôå íá âåâáéþóåôå ÷ñçóéìïðïéþíôáò
ôï uuname.Óáò õðåíèõìßæïõìå üôé áõôü ôï áñ÷åßï ðñÝðåé íá ìåôáôñáðåß óå ìéá
âÜóç äåäïìÝíùí DBM ðñéí ÷ñçóéìïðïéçèåß. Ìðïñåßôå íá âÜëåôå ôç ãñáììÞ
åíôïëþí ðïõ áðáéôåßôáé ãéá íá åðéôåõ÷èåß áõôü ùò ó÷üëéï óôçí áñ÷Þ
ôïõ áñ÷åßïõ mailertable. ÐñÝðåé ðÜíôïôå íá
åêôåëåßôå áõôÞ ôçí åíôïëÞ êÜèå öïñÜ ðïõ áëëÜæåôå ôï áñ÷åßï
mailertable.Ìéá ôåëåõôáßá õðüäåéîç: áí äåí åßóôå âÝâáéïé ãéá ôï áí èá
ëåéôïõñãÞóåé êÜðïéá óõãêåêñéìÝíç äñïìïëüãçóç mail, èõìçèåßôå ôçí åðéëïãÞ
ôïõ sendmail. ÁõôÞ
îåêéíÜåé ôï sendmail óå
êáôÜóôáóç äïêéìÞò äéåõèýíóåùí. ÃñÜøôå
3,0, áêïëïõèïýìåíï áðü ôç äéåýèõíóç ðïõ èÝëåôå íá
åëÝãîåôå ãéá äñïìïëüãçóç mail. Ç ôåëåõôáßá ãñáììÞ èá óáò ðåé ôïí
åóùôåñéêü áíôéðñüóùðï mail ðïõ ÷ñçóéìïðïéÞèçêå, ôç äéåýèõíóç ðñïïñéóìïý
ìå ôçí ïðïßá êëÞèçêå, êáèþò êáé ôçí (ðéèáíþò ìåôáöñáóìÝíç) äéåýèõíóç.
Ìðïñåßôå íá âãåßôå áðü áõôÞ ôçí êáôÜóôáóç, ðëçêôñïëïãþíôáò
CtrlD.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
>^DBillMoranÓõíåéóöïñÜ áðü ôïí Ñýèìéóç ÅîõðçñåôçôÞ Ìüíï ãéá ÁðïóôïëÞÕðÜñ÷ïõí ðïëëÝò ðåñéðôþóåéò, ðïõ ìðïñåß íá èÝëåôå ìüíï íá óôÝëíåôå
mail ìÝóù êÜðïéïõ áíáìåôáäüôç. ÌåñéêÜ ðáñáäåßãìáôá:Ï õðïëïãéóôÞò óáò ÷ñçóéìïðïéåßôáé ùò desktop, áëëÜ èÝëåôå íá
÷ñçóéìïðïéÞóåôå ðñïãñÜììáôá üðùò ôï &man.send-pr.1;. Ãéá íá ãßíåé
áõôü èá ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôïí áíáìåôáäüôç mail ðïõ ðáñÝ÷åé
ï ISP óáò.Ï õðïëïãéóôÞò óáò åßíáé Ýíáò åîõðçñåôçôÞò ðïõ äåí ÷åéñßæåôáé ôï
mail ôïðéêÜ, áëëÜ ÷ñåéÜæåôáé íá ôï äþóåé åî' ïëïêëÞñïõ óå êÜðïéï
áíáìåôáäüôç ãéá åðåîåñãáóßá.ÏðïéïäÞðïôå ó÷åäüí MTA åßíáé éêáíü íá êáëýøåé
ôïí ðáñáðÜíù ñüëï. Äõóôõ÷þò, ìðïñåß íá åßíáé ðïëý äýóêïëï íá
ñõèìßóåôå óùóôÜ Ýíá ðëÞñåò MTA þóôå áðëþò íá
óôÝëíåé ôï mail ðñïò áíáìåôÜäïóç. ÐñïãñÜììáôá üðùò ôï
sendmail êáé ôï
postfix åßíáé õðåñâïëéêÜ ìåãÜëá ãéá áõôÞ
ôç äïõëåéÜ.Åðéðñüóèåôá, áí ÷ñçóéìïðïéåßôå êÜðïéá óõíçèéóìÝíç õðçñåóßá
ðñüóâáóçò óôï Internet, ç óõìöùíßá ìå ôçí åôáéñßá ðáñï÷Þò ìðïñåß íá
óáò áðáãïñåýåé íá åêôåëåßôå ôï äéêü óáò
åîõðçñåôçôÞ mail.Ï åõêïëüôåñïò ôñüðïò ãéá íá åêðëçñþóåôå áõôÝò ôéò áíÜãêåò åßíáé
íá åãêáôáóôÞóåôå ôï port mail/ssmtp
ÅêôåëÝóôå ôéò áêüëïõèåò åíôïëÝò ùò root:&prompt.root; cd /usr/ports/mail/ssmtp
&prompt.root; make install replace cleanÌåôÜ ôçí åãêáôÜóôáóç, ôï
mail/ssmtp ìðïñåß íá ñõèìéóôåß ìå
Ýíá áñ÷åßï ôåóóÜñùí ìüëéò ãñáììþí, ôï ïðïßï âñßóêåôáé óôï
/usr/local/etc/ssmtp/ssmtp.conf:root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_Âåâáéùèåßôå üôé ÷ñçóéìïðïéåßôå ôçí ðñáãìáôéêÞ äéåýèõíóç email ãéá
ôïí root. ÂÜëôå ôïí áíáìåôáäüôç mail ôïõ ISP óáò
óôç èÝóç mail.example.com (ìåñéêïß ISP ôïí
ïíïìÜæïõí åîõðçñåôçôÞ åîåñ÷üìåíïõ ôá÷õäñïìåßïõ Þ
åîõðçñåôçôÞ SMTP).Âåâáéùèåßôå üôé Ý÷åôå áðåíåñãïðïéÞóåé ðëÞñùò ôï
sendmail, áêüìá êáé ôçí õðçñåóßá åîåñ÷üìåíùí
ìçíõìÜôùí. Äåßôå ôï
ãéá ëåðôïìÝñåéåò.ÕðÜñ÷ïõí êÜðïéåò áêüìá äéáèÝóéìåò åðéëïãÝò óôï
mail/ssmtp. Äåßôå ôï ðáñÜäåéãìá ôïõ
áñ÷åßïõ ñõèìßóåùí óôï /usr/local/etc/ssmtp Þ ôç
óåëßäá manual ôïõ ssmtp ãéá ðåñéóóüôåñá
ðáñáäåßãìáôá êáé ðëçñïöïñßåò.Ñõèìßæïíôáò ôï ssmtp ìå áõôü ôïí ôñüðï,
èá åßíáé äõíáôÞ ç óùóôÞ ëåéôïõñãßá ïðïéïõäÞðïôå ëïãéóìéêïý óôïí
õðïëïãéóôÞ óáò ðïõ ÷ñåéÜæåôáé íá óôåßëåé mail. Åðßóçò äåí ðáñáâéÜæåôáé
ìå áõôü ôïí ôñüðï ç Üäåéá ÷ñÞóçò ôïõ ISP óáò êáé äåí ìðïñåß ï
õðïëïãéóôÞò óáò íá ðáñáâéáóôåß êáé íá ÷ñçóéìïðïéçèåß ãéá ôçí áðïóôïëÞ
áíåðéèýìçôùí ìçíõìÜôùí (spam).×ñçóéìïðïéþíôáò ôï Mail ÌÝóù ÅðéëïãéêÞò (Dialup) ÓýíäåóçòÁí Ý÷åôå óôáôéêÞ äéåýèõíóç IP, äåí èá ÷ñåéáóôåß íá áëëÜîåôå êáìéÜ
áðü ôéò ðñïåðéëïãÝò. Ñõèìßóôå ôï üíïìá ôïõ õðïëïãéóôÞ óáò þóôå íá
ôáéñéÜæåé ìå áõôü ðïõ óáò Ý÷åé ïñéóôåß ãéá ôï Internet, êáé ôï
sendmail èá êÜíåé ôá õðüëïéðá.Áí ëáìâÜíåôå äõíáìéêÞ IP êáé ÷ñçóéìïðïéåßôå åðéëïãéêÞ PPP óýíäåóç
ìå ôï Internet, ðéèáíüí äéáèÝôåôå ìéá èõñßäá ôá÷õäñïìåßïõ (mailbox)
óôïí åîõðçñåôçôÞ mail ôïõ ðáñï÷Ýá óáò. Áò õðïèÝóïõìå üôé ï ôïìÝáò ôïõ
ISP óáò åßíáé example.net, êáé üôé
ôï üíïìá ÷ñÞóôç óáò åßíáé user, ôï ìç÷Üíçìá óáò
ëÝãåôáé bsd.home, êáé ï ISP óáò, óáò Ý÷åé
ðåé üôé ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï
relay.example.net ùò áíáìåôáäüôç ãéá
ôï mail.Ãéá íá ìðïñÝóåôå íá ëÜâåôå mail áðü ôç èõñßäá óáò, èá ÷ñåéáóôåßôå
êÜðïéï áíôéðñüóùðï áíÜëçøçò (retrieval agent). Ôï âïçèçôéêü ðñüãñáììá
fetchmail åßíáé ìéá êáëÞ åðéëïãÞ, êáèþò
õðïóôçñßæåé ðïëëÜ äéáöïñåôéêÜ ðñùôüêïëëá. Ôï ðñüãñáììá áõôü åßíáé
äéáèÝóéìï ùò ðáêÝôï Þ áðü ôçí ÓõëëïãÞ ôùí Ports
(mail/fetchmail). ÓõíÞèùò, ï
ISP óáò èá ðáñÝ÷åé ôçí õðçñåóßá
POP. Áí ÷ñçóéìïðïéåßôå PPP
÷ñÞóôç, ìðïñåßôå íá êáôåâÜóåôå áõôüìáôá ôï mail óáò ìåôÜ ôçí
áðïêáôÜóôáóç ôçò óýíäåóçò óáò, ÷ñçóéìïðïéþíôáò ôçí áêüëïõèç êáôá÷þñéóç
óôï /etc/ppp/ppp.linkup:MYADDR:
!bg su user -c fetchmailÁí ÷ñçóéìïðïéåßôå ôï sendmail (üðùò
öáßíåôáé ðáñáêÜôù) ãéá íá ðáñáäþóåôå mail óå ìç-ôïðéêïýò ëïãáñéáóìïýò,
ðéèáíüí íá èÝëåôå ôï sendmail íá
åðåîåñãÜæåôáé ôçí ïõñÜ ôïõ mail áìÝóùò ìåôÜ ôçí áðïêáôÜóôáóç ôçò
óýíäåóçò. Ãéá íá ôï êÜíåôå áõôü, âÜëôå ôçí ðáñáêÜôù åíôïëÞ áìÝóùò ìåôÜ
ôçí åíôïëÞ fetchmail óôï áñ÷åßï
/etc/ppp/ppp.linkup: !bg su user -c "sendmail -q"Áò õðïèÝóïõìå üôé õðÜñ÷åé Ýíáò ëïãáñéáóìüò ãéá ôïí
user óôïí bsd.home. Óôïí ðñïóùðéêü êáôÜëïãï ôïõ
user óôï bsd.home, äçìéïõñãÞóôå Ýíá áñ÷åßï
.fetchmailrc:poll example.net protocol pop3 fetchall pass MySecretÔï áñ÷åßï áõôü äåí èá ðñÝðåé íá åßíáé áíáãíþóéìï áðü êáíÝíá, åêôüò
áðü ôïí user, êáèþò ðåñéÝ÷åé ôïí êùäéêü
MySecret.Ãéá íá ìðïñåßôå íá óôåßëåôå mail ìå ôç óùóôÞ åðéêåöáëßäá
from:, èá ðñÝðåé íá ñõèìßóåôå ôï
sendmail íá ÷ñçóéìïðïéåß ôï
user@example.net áíôß ãéá ôï
user@bsd.home. ºóùò åðßóçò íá èÝëåôå íá
ñõèìßóåôå ôï sendmail íá óôÝëíåé üëï ôï mail
ìÝóù ôïõ relay.example.net, þóôå ç ìåôÜäïóç
ôïõ mail íá åßíáé ôá÷ýôåñç.Ôï áêüëïõèï áñ÷åßï .mc èá ðñÝðåé íá åßíáé
åðáñêÝò:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnlÄéáâÜóôå ôçí ðñïçãïýìåíç åíüôçôá ãéá ëåðôïìÝñåéåò ó÷åôéêÜ ìå ôçí
ìåôáôñïðÞ áõôïý ôïõ áñ÷åßïõ .mc óå Ýíá áñ÷åßï
sendmail.cf. Åðßóçò, ìç îå÷Üóåôå íá
åðáíåêêéíÞóåôå ôï sendmail ìåôÜ ôçí
åíçìÝñùóç ôïõ sendmail.cf.JamesGorhamÃñÜöôçêå áðü ôïí Ðéóôïðïßçóç Áõèåíôéêüôçôáò óôï SMTPÇ ÷ñÞóç SMTP ìå ðéóôïðïßçóç áõèåíôéêüôçôáò óôïí
åîõðçñåôçôÞ ôá÷õäñïìåßïõ óáò, ìðïñåß íá óáò ðñïóöÝñåé ìéá óåéñÜ áðü
ïöÝëç. Ìðïñåß íá ðñïóèÝóåé Ýíá áêüìá åðßðåäï áóöÜëåéáò óôï
sendmail, åíþ Ý÷åé êáé ôï ðëåïíÝêôçìá üôé
äßíåé ôç äõíáôüôçôá óôïõò ÷ñÞóôåò öïñçôþí õðïëïãéóôþí (ðïõ óõ÷íÜ
óõíäÝïíôáé ìÝóù äéáöïñåôéêþí äéêôýùí) íá ÷ñçóéìïðïéïýí ôïí ßäéï
åîõðçñåôçôÞ ôá÷õäñïìåßïõ ÷ùñßò ôçí áíÜãêç åðáíáñýèìéóçò êÜèå öïñÜ ôïõ
ðñïãñÜììáôïò áðïóôïëÞò / ëÞøçò ôá÷õäñïìåßïõ.ÅãêáôáóôÞóôå ôï
security/cyrus-sasl2
áðü ôç ÓõëëïãÞ ôùí Ports. Ôï port áõôü
õðïóôçñßæåé ìéá óåéñÜ áðü åðéëïãÝò ðïõ ìðïñåßôå íá èÝóåôå êáôÜ
ôçí ìåôáãëþôôéóç. Ãéá íá ìðïñÝóåôå íá ÷ñçóéìïðïéÞóåôå ôçí
ìÝèïäï áõèåíôéêïðïßçóçò óôï SMTP ðïõ óõæçôÜìå åäþ, âåâáéùèåßôå
üôé åßíáé åíåñãïðïéçìÝíç ç åðéëïãÞ .ÌåôÜ ôçí åãêáôÜóôáóç ôïõ
security/cyrus-sasl2,
ôñïðïðïéÞóôå ôï áñ÷åßï
/usr/local/lib/sasl2/Sendmail.conf
(Þ äçìéïõñãÞóôå ôï áí äåí õðÜñ÷åé) êáé ðñïóèÝóôå ôçí ðáñáêÜôù
ãñáììÞ:pwcheck_method: saslauthdÅãêáôáóôÞóôå Ýðåéôá ôï
security/cyrus-sasl2-saslauthd,
êáé ðñïóèÝóôå óôï /etc/rc.conf ôçí áêüëïõèç
ãñáììÞ:saslauthd_enable="YES"ÔÝëïò, îåêéíÞóôå ôï äáßìïíá saslauthd:&prompt.root; /usr/local/etc/rc.d/saslauthd startÏ äáßìïíáò áõôüò äñá ùò åíäéÜìåóïò ãéá ôï
sendmail þóôå íá ãßíåôáé ðéóôïðïßçóç
áõèåíôéêüôçôáò ìÝóù ôçò âÜóçò äåäïìÝíùí êùäéêþí
passwd ôïõ &os; óõóôÞìáôïò óáò. Ìå áõôü ôïí
ôñüðï áðáëëÜóóåóôå áðü ôçí áíÜãêç äçìéïõñãßáò íÝïõ óåô áðü ïíüìáôá
÷ñçóôþí êáé êùäéêïýò ãéá êÜèå ÷ñÞóôç ðïõ ÷ñåéÜæåôáé íá
÷ñçóéìïðïéÞóåé ðéóôïðïßçóç óôï SMTP.
×ñçóéìïðïéåßôáé ôï ßäéï üíïìá êáé êùäéêüò, ôüóï ãéá åßóïäï óôï
óýóôçìá, üóï êáé ãéá ôï mail.Åðåîåñãáóôåßôå ôþñá ôï /etc/make.conf êáé
ðñïóèÝóôå ôéò áêüëïõèåò ãñáììÝò:SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2Ïé ãñáììÝò áõôÝò, ðáñÝ÷ïõí óôï
sendmail ôéò êáôÜëëçëåò ñõèìßóåéò þóôå
íá óõíäåèåß óùóôÜ ìå ôï
cyrus-sasl2 êáôÜ ôç äéÜñêåéá
ôçò ìåôáãëþôôéóçò. Âåâáéùèåßôå üôé åßíáé åãêáôåóôçìÝíï ôï ðáêÝôï
cyrus-sasl2 ðñéí îåêéíÞóåôå
ôçí åðáíáìåôáãëþôôéóç ôïõ
sendmail.Åðáíáìåôáãëùôôßóôå ôï sendmail
åêôåëþíôáò ôéò ðáñáêÜôù åíôïëÝò:&prompt.root; cd /usr/src/lib/libsmutil
&prompt.root; make cleandir && make obj && make
&prompt.root; cd /usr/src/lib/libsm
&prompt.root; make cleandir && make obj && make
&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir && make obj && make && make installÇ ìåôáãëþôôéóç ôïõ sendmail äåí
ðñÝðåé íá ðáñïõóéÜóåé ðñïâëÞìáôá, áí ôï
/usr/src äåí Ý÷åé áëëÜîåé óå ìåãÜëï âáèìü
êáé åöüóïí õðÜñ÷ïõí ïé êïéíü÷ñçóôåò âéâëéïèÞêåò ðïõ
áðáéôïýíôáé.ÌåôÜ ôçí ìåôáãëþôôéóç êáé åðáíåãêáôÜóôáóç ôïõ
sendmail, åðåîåñãáóôåßôå ôï áñ÷åßï
/etc/mail/freebsd.mc (Þ üðïéï áñ÷åßï
÷ñçóéìïðïéåßôå ùò .mc. Ðïëëïß äéá÷åéñéóôÝò
åðéëÝãïõí íá ÷ñçóéìïðïéÞóïõí ôçí Ýîïäï ôçò åíôïëÞò &man.hostname.1;
ùò üíïìá ãéá ôï áñ÷åßï .mc ãéá íá åîáóöáëßóïõí
üôé åßíáé ìïíáäéêü). ÐñïóèÝóôå óå áõôü ôéò áêüëïõèåò
ãñáììÝò:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnlÏé åðéëïãÝò áõôÝò ñõèìßæïõí ôéò äéáöïñåôéêÝò ìåèüäïõò ðïõ
Ý÷åé óôç äéÜèåóç ôïõ ôï sendmail,
ðñïêåéìÝíïõ íá ðéóôïðïéÞóåé ôïõò ÷ñÞóôåò. Áí èÝëåôå íá
÷ñçóéìïðïéÞóåôå êÜðïéá ìÝèïäï äéáöïñåôéêÞ áðü ôï
pwcheck, äåßôå ôçí ôåêìçñßùóç ðïõ
ðåñéëáìâÜíåôáé.ÔÝëïò, åêôåëÝóôå &man.make.1; åíþ âñßóêåóôå óôïí êáôÜëïãï
/etc/mail. Ìå ôïí ôñüðï áõôü, èá
÷ñçóéìïðïéçèåß ôï íÝï óáò .mc áñ÷åßï êáé
èá äçìéïõñãçèåß Ýíá áñ÷åßï .cf ìå üíïìá
freebsd.cf (Þ ïôéäÞðïôå üíïìá åß÷áôå äþóåé
óôï áñ÷åßï .mc). ×ñçóéìïðïéÞóôå Ýðåéôá ôçí
åíôïëÞ make install restart, ç ïðïßá èá
áíôéãñÜøåé ôï áñ÷åßï óôï sendmail.cf, êáé
èá åðáíåêêéíÞóåé óùóôÜ ôï sendmail.
Ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò ó÷åôéêÜ ìå áõôÞ ôç äéáäéêáóßá, èá
ðñÝðåé íá äéáâÜóåôå ôï áñ÷åßï
/etc/mail/Makefile.Áí üëá ðÞãáí êáëÜ, èá ðñÝðåé íá ìðïñåßôå íá äþóåôå ôá óôïé÷åßá
åéóüäïõ óáò óôï ðñüãñáììá ðïõ ÷ñçóéìïðïéåßôå ãéá áðïóôïëÞ êáé ëÞøç
mail, êáé íá óôåßëåôå Ýíá äïêéìáóôéêü ìÞíõìá. Ãéá íá äéåñåõíÞóåôå
ðåñéóóüôåñï ôç ëåéôïõñãßá, èÝóôå ôçí åðéëïãÞ
ôïõ sendmail óôï
13 êáé ðáñáêïëïõèÞóôå ôï /var/log/maillog
ãéá ôõ÷üí ëÜèç.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, ðáñáêáëïýìå íá äåßôå ôç óåëßäá ôïõ
sendmail ðïõ áöïñÜ ôçí
ðéóôïðïßçóç
áõèåíôéêüôçôáò óôï SMTP.MarcSilverÓõíåéóöïñÜ ôïõ ÐñïãñÜììáôá Ôá÷õäñïìåßïõ ãéá ôïí ×ñÞóôçMail User Agents¸íá ðñüãñáììá Áíôéðñïóþðïõ Ôá÷õäñïìåßïõ ×ñÞóôç (Mail User Agent,
MUA), åßíáé ìéá åöáñìïãÞ ðïõ ÷ñçóéìïðïéåßôáé ãéá ôçí
áðïóôïëÞ êáé ëÞøç email. ÅðéðëÝïí, êáèþò ôï email
åîåëßóóåôáé êáé ãßíåôáé ðéï ðïëýðëïêï, ôá
MUA ãßíïíôáé üëï êáé éó÷õñüôåñá üóï áöïñÜ ôïí ôñüðï
ðïõ áëëçëåðéäñïýí ìå ôï email. Áõôü äßíåé óôïõò ÷ñÞóôåò ðåñéóóüôåñåò
ëåéôïõñãßåò êáé åõåëéîßá. To &os; ðåñéÝ÷åé õðïóôÞñéîç ãéá ìåãÜëï áñéèìü
áðü ðñïãñÜììáôá ôá÷õäñïìåßïõ, êáé üëá ìðïñïýí íá åãêáôáóôáèïýí ðïëý
åýêïëá ìÝóù ôçò ÓõëëïãÞò ôùí Ports ôïõ &os;. Ïé ÷ñÞóôåò
ìðïñïýí íá åðéëÝîïõí ìåôáîý ãñáöéêþí ðñïãñáììÜôùí, üðùò ôï
evolution Þ ôï
balsa, êáé ðñïãñÜììáôá êïíóüëáò üðùò ôá
mutt, alpine
Þ mail, Þ áêüìá êáé ôéò äéåðáöÝò web ðïõ ðñïóöÝñïíôáé
áðü ìåñéêïýò ìåãÜëïõò ïñãáíéóìïýò.mailÔï &man.mail.1; åßíáé ôï ðñïåðéëåãìÝíï ðñüãñáììá ôá÷õäñïìåßïõ
(MUA) in &os;. Ðñüêåéôáé ãéá Ýíá
MUA êïíóüëáò, ôï ïðïßï ðñïóöÝñåé üëåò ôéò âáóéêÝò
ëåéôïõñãßåò ðïõ áðáéôïýíôáé ãéá ôçí áðïóôïëÞ êáé ëÞøç email
óå ìïñöÞ êåéìÝíïõ, áí êáé Ý÷åé ðåñéïñéóìÝíåò äõíáôüôçôåò üóï áöïñÜ
óõíçììÝíá áñ÷åßá êáé õðïóôçñßæåé ìüíï ôïðéêÝò èõñßäåò.Áí êáé ôï mail äåí õðïóôçñßæåé åããåíþò ôç
ëÞøç email ìÝóù äéáêïìéóôþí POP Þ
IMAP, åßíáé ùóôüóï äõíáôüí íá êáôåâÜóåôå ôá
email óå ìéá ôïðéêÞ èõñßäá (mbox) ÷ñçóéìïðïéþíôáò
êÜðïéá åöáñìïãÞ üðùò ôï fetchmail, ôï
ïðïßï èá óõæçôÞóïõìå áñãüôåñá óå áõôü ôï êåöÜëáéï ().Ãéá ôçí áðïóôïëÞ êáé ëÞøç email, åêôåëÝóôå ôçí åíôïëÞ
mail:&prompt.user; mailÔá ðåñéå÷üìåíá ôçò èõñßäáò ôïõ ÷ñÞóôç óôïí êáôÜëïãï
/var/mail èá äéáâáóôïýí
áõôüìáôá áðü ôï ðñüãñáììá mail.
Áí ç èõñßäá ôá÷õäñïìåßïõ åßíáé Üäåéá, ôï ðñüãñáììá ôåñìáôßæåôáé ìå
ôï ìÞíõìá üôé äåí âñÝèçêå áëëçëïãñáößá. ÌåôÜ ôçí áíÜãíùóç ôçò
èõñßäáò, îåêéíÜ ç äéåðáöÞ ôçò åöáñìïãÞò êáé åìöáíßæåôáé ìéá ëßóôá ìå
ìçíýìáôá. Ôá ìçíýìáôá áñéèìïýíôáé áõôüìáôá, üðùò öáßíåôáé óôï
ðáñáêÜôù ðáñÜäåéãìá:Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"Ôá ìçíýìáôá ìðïñïýí ðëÝïí íá äéáâáóôïýí ìå ôçí åíôïëÞ
t ôçò åíôïëÞò mail, áêïëïõèïýìåíç
ìå ôïí áñéèìü ôïõ mail ðïõ èÝëåôå íá åìöáíéóôåß. Óôï ðáñÜäåéãìá áõôü
èá äéáâÜóïõìå ôï ðñþôï ìÞíõìá:& t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.¼ðùò öáßíåôáé óôï ðáñáðÜíù ðáñÜäåéãìá, ç ÷ñÞóç ôïõ ðëÞêôñïõ
t èá ðñïêáëÝóåé ôçí åìöÜíéóç ôïõ ìçíýìáôïò ìå
ðëÞñåéò åðéêåöáëßäåò. Ãéá íá äåßôå îáíÜ ôç ëßóôá ìå ôá ìçíýìáôá,
÷ñçóéìïðïéÞóôå ôï ðëÞêôñï h.Áí ôï mail áðáéôåß áðÜíôçóç, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí
åíôïëÞ mail ÷ñçóéìïðïéþíôáò ôéò åíóùìáôùìÝíåò
åíôïëÝò R Þ r. Ôï ðëÞêôñï
R ïäçãåß ôï mail íá áðáíôÞóåé
ìüíï óôïí áðïóôïëÝá ôïõ ìçíýìáôïò, åíþ ôï r áðáíôÜåé
ü÷é ìüíï óôïí áðïóôïëÝá, áëëÜ óå üëïõò ôïõò ðáñáëÞðôåò ôïõ ìçíýìáôïò.
Ìðïñåßôå åðßóçò íá ðñïóèÝóåôå ìåôÜ áðü ôéò åíôïëÝò áõôÝò, ôïí áñéèìü
ôïõ ìçíýìáôïò óôï ïðïßï èÝëåôå íá áðáíôÞóåôå. Áöïý ôï êÜíåôå áõôü,
èá ðñÝðåé íá ãñÜøåôå ôçí áðÜíôçóç óáò êáé íá óçìåéþóåôå ôï ôÝëïò ôçò
ãñÜöïíôáò ìéá ìüíï . óå ìéá íÝá ãñáììÞ. Ìðïñåßôå íá
äåßôå Ýíá ðáñÜäåéãìá ðáñáêÜôù:& R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOTÃéá íá óôåßëåôå íÝï mail, èá ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôï ðëÞêôñï
m, áêïëïõèïýìåíï áðü ôçí äéåýèõíóç ôïõ ðáñáëÞðôç.
Ìðïñåßôå íá äþóåôå ðïëëáðëïýò ðáñáëÞðôåò, ÷ùñßæïíôáò ìåôáîý ôïõò
ôéò äéåõèýíóåéò ìå ,. Ìðïñåßôå Ýðåéôá íá âÜëåôå ôï
èÝìá ôïõ ìçíýìáôïò êáé íá óõíå÷ßóåôå ìå ôï ðåñéå÷üìåíï. Ôï ôÝëïò ôïõ
ìçíýìáôïò êáèïñßæåôáé ãñÜöïíôáò ìéá ìïíáäéêÞ . óå ìéá
íÝá ãñáììÞ.& mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOT¼óï âñßóêåóôå ìÝóá óôçí åíôïëÞ mail, ìðïñåßôå
íá ÷ñçóéìïðïéÞóåôå ôï ðëÞêôñï ? ãéá ôçí åìöÜíéóç
âïÞèåéáò ïðïéáäÞðïôå óôéãìÞ. Ìðïñåßôå åðßóçò íá óõìâïõëåõôåßôå ôçí
óåëßäá manual ôïõ &man.mail.1; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ
ìå ôçí åíôïëÞ mail.¼ðùò áíáöÝñáìå ðñïçãïõìÝíùò, ç åíôïëÞ &man.mail.1; äåí
ó÷åäéÜóôçêå áñ÷éêÜ ãéá íá ÷åéñßæåôáé óõíçììÝíá, êáé ãéá ôï ëüãï
áõôü ïé äõíáôüôçôåò ôéò óôï óõãêåêñéìÝíï èÝìá åßíáé ìéêñÝò.
Íåþôåñá MUA, üðùò ôï
mutt, ÷åéñßæïíôáé ôá óõíçììÝíá ìå ðïëý
ðéï Ýîõðíï ôñüðï. ÁëëÜ áí ðáñ' üëá áõôÜ åðéèõìåßôå íá
÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ mail, ìÜëëïí èá
óáò öáíåß ÷ñÞóéìï ôï port
converters/mpack.muttÔï mutt åßíáé Ýíá ìéêñü, áëëÜ
ðïëý éó÷õñü ðñüãñáììá áðïóôïëÞò êáé ëÞøçò mail, ìå åîáéñåôéêÜ
÷áñáêôçñéóôéêÜ ôá ïðïßá ðåñéëáìâÜíïõí:Ôçí éêáíüôçôá íá äåß÷íåé ìçíýìáôá ìå ôçí ìïñöÞ
óõæçôÞóåùíÕðïóôÞñéîç PGP ãéá øçöéáêÞ õðïãñáöÞ êáé êñõðôïãñÜöçóç
emailÕðïóôÞñéîç MIMEÕðïóôÞñéîç MaildirÅîáéñåôéêÝò äõíáôüôçôåò ðáñáìåôñïðïßçóçò¼ëåò áõôÝò ïé äõíáôüôçôåò, êÜíïõí ôï
mutt Ýíá áðü ôá ðéï åîåëéãìÝíá äéáèÝóéìá
ðñïãñÜììáôá ôá÷õäñïìåßïõ. Äåßôå ôçí ôïðïèåóßá ãéá ðåñéóóüôåñåò ðëçñïöïñßåò
ó÷åôéêÜ ìå ôï mutt.Ìðïñåßôå íá åãêáôáóôÞóåôå ôç óôáèåñÞ Ýêäïóç ôïõ
mutt ìÝóù ôïõ port mail/mutt, åíþ êáé ç ôñÝ÷ïõóá õðü åîÝëéîç
Ýêäïóç åßíáé äéáèÝóéìç ìÝóù ôïõ port mail/mutt-devel. ÌåôÜ ôçí åãêáôÜóôáóç
ôïõ port, ìðïñåßôå íá åêôåëÝóåôå ôï mutt,
ìå ôçí áêüëïõèç åíôïëÞ:&prompt.user; muttÔï mutt èá äéáâÜóåé áõôüìáôá ôá
ðåñéå÷üìåíá ôçò èõñßäáò ôá÷õäñïìåßïõ ÷ñÞóôç óôïí êáôÜëïãï /var/mail, êáé èá äåßîåé ôá ðåñéå÷üìåíá
ôïõ áí áõôü åßíáé åöéêôü. Áí äåí õðÜñ÷ïõí mails óôç èõñßäá ôïõ
÷ñÞóôç, ôï mutt èá åéóÝëèåé óå êáôÜóôáóç
áíáìïíÞò åíôïëþí. Ôï ðáñáêÜôù ðáñÜäåéãìá, äåß÷íåé ôï
mutt íá áðåéêïíßæåé ìéá ëßóôá
ìçíõìÜôùí:Ãéá íá äéáâÜóåôå Ýíá email, åðéëÝîôå ôï ÷ñçóéìïðïéþíôáò ôá
âåëÜêéá, êáé ðéÝóôå Enter. Ìðïñåßôå íá äåßôå Ýíá
ðáñÜäåéãìá áðåéêüíéóçò mail áðü ôï mutt
ðáñáêÜôù:¼ðùò êáé ôï &man.mail.1;, ôï mutt,
óáò åðéôñÝðåé íá áðáíôÞóåôå ôüóï óôïí áðïóôïëÝá ôïõ ìçíýìáôïò, üóï êáé
óå üëïõò ôïõò ðáñáëÞðôåò. Ãéá íá áðáíôÞóåôå ìüíï óôïí áðïóôïëÝá ôïõ
email, ÷ñçóéìïðïéÞóôå ôï ðëÞêôñï
r. Ãéá íá áðáíôÞóåôå óôçí ïìÜäá ÷ñçóôþí ç ïðïßá
ðåñéëáìâÜíåé ôüóï ôïí áñ÷éêü áðïóôïëÝá, üóï êáé ôïõò õðüëïéðïõò
ðáñáëÞðôåò ôïõ ìçíýìáôïò, ÷ñçóéìïðïéÞóôå ôï ðëÞêôñï
g.Ôï mutt ÷ñçóéìïðïéåß ôï
&man.vi.1; ùò óõíôÜêôç êåéìÝíïõ ãéá äçìéïõñãßá êáé áðÜíôçóç óå
email. Ç ñýèìéóç áõôÞ ìðïñåß íá áëëá÷èåß áðü ôï ÷ñÞóôç
äçìéïõñãþíôáò Þ ôñïðïðïéþíôáò ôï áñ÷åßï
.muttrc óôïí ðñïóùðéêü ôïõ êáôÜëïãï, êáé
èÝôïíôáò ôç ìåôáâëçôÞ editor, Þ áëëÜæïíôáò ôçí
ìåôáâëçôÞ ðåñéâÜëëïíôïò EDITOR. Äåßôå ôçí ôïðïèåóßá
ãéá ðåñéóóüôåñåò
ðëçñïöïñßåò ó÷åôéêÜ ìå ôç ñýèìéóç ôïõ
mutt.Ãéá íá óõíôÜîåôå Ýíá íÝï ìÞíõìá, ðéÝóôå ôï ðëÞêôñï
m. Áöïý ãñÜøåôå ôï êáôÜëëçëï èÝìá, ôï
mutt èá îåêéíÞóåé ôï &man.vi.1;
åðéôñÝðïíôáò óáò íá ãñÜøåôå ôï mail. Ìüëéò ïëïêëçñþóåôå,
áðïèçêåýóôå êáé ôåñìáôßóôå ôï vi êáé ôï
mutt èá óõíå÷ßóåé, äåß÷íïíôáò óáò ìéá
ïèüíç ðåñßëçøçò ôïõ mail ôï ïðïßï ðñüêåéôáé íá óôáëåß. Ãéá íá
óôåßëåôå ôï mail, ðéÝóôå ôï ðëÞêôñï y. Ìðïñåßôå
íá äåßôå ðáñáêÜôù Ýíá ðáñÜäåéãìá ôçò ïèüíçò ðåñßëçøçò:Ôï mutt ðåñéÝ÷åé åðßóçò åêôåôáìÝíç
âïÞèåéá, óôçí ïðïßá ìðïñåßôå íá Ý÷åôå ðñüóâáóç ó÷åäüí áðü êÜèå óçìåßï
ôïõ ìåíïý, ðéÝæïíôáò ôï ðëÞêôñï ?. Ç ãñáììÞ óôçí
êïñõöÞ ôçò ïèüíçò äåß÷íåé åðßóçò ôéò óõíôïìåýóåéò ðëçêôñïëïãßïõ,
üðïõ õðÜñ÷ïõí.alpineÔï alpine áðåõèýíåôáé êõñßùò óôïí
áñ÷Üñéï ÷ñÞóôç, áëëÜ ðåñéëáìâÜíåé åðßóçò êÜðïéá ðñï÷ùñçìÝíá
÷áñáêôçñéóôéêÜ.Ôï alpine Ý÷åé éóôïñéêü ðñïâëçìÜôùí
áóöáëåßáò. Óôï ðáñåëèüí, áíáêáëýöèçêáí ðñïâëÞìáôá ðïõ åðÝôñåðáí óå
áðïìáêñõóìÝíïõò åéóâïëåßò íá åêôåëÝóïõí ôï äéêü ôïõò êþäéêá óôï
ôïðéêü óýóôçìá, óôÝëíïíôáò áðëþò Ýíá åéäéêÜ äéáìïñöùìÝíï email.
¼ëá áõôÜ ôá ãíùóôÜ ðñïâëÞìáôá Ý÷ïõí ðëÝïí
äéïñèùèåß, áëëÜ ï êþäéêáò ôïõ alpine
åßíáé ãñáììÝíïò ìå éäéáßôåñá áíáóöáëÞ ôñüðï, êáé ï Õðåýèõíïò
ÁóöÜëåéáò ôïõ &os;, ðéóôåýåé üôé åßíáé áñêåôÜ ðéèáíüí íá õðÜñ÷ïõí
êáé Üëëá êåíÜ áóöáëåßáò ðïõ äåí Ý÷ïõí áíáêáëõöèåß áêüìá.
ÅãêáôáóôÞóôå ôï alpine ìå äéêÞ óáò
åõèýíç.Ç ôñÝ÷ïõóá Ýêäïóç ôïõ alpine ìðïñåß íá
åãêáôáóôáèåß ÷ñçóéìïðïéþíôáò ôï port mail/alpine. ÌåôÜ ôçí åãêáôÜóôáóç ôïõ
port ôï alpine ìðïñåß íá îåêéíÞóåé
÷ñçóéìïðïéþíôáò ôçí ðáñáêÜôù åíôïëÞ:&prompt.user; alpineÔçí ðñþôç öïñÜ ðïõ èá åêôåëÝóåôå ôï
alpine èá óáò äåßîåé ìéá áñ÷éêÞ óåëßäá
÷áéñåôéóìïý, ìå ìéá óýíôïìç åéóáãùãÞ, êáèþò êáé ìéá áßôçóç áðü ôçí
ïìÜäá áíÜðôõîçò ôïõ alpine íá ôïõò óôåßëåôå
Ýíá áíþíõìï mail ôï ïðïßï èá ôïõò âïçèÞóåé íá Ý÷ïõí ìéá éäÝá ãéá ôï
ðüóïé ÷ñÞóôåò ÷ñçóéìïðïéïýí ôï ëïãéóìéêü. Ãéá íá óôåßëåôå áõôü ôï
áíþíõìï ìÞíõìá, ðéÝóôå Enter, Þ åíáëëáêôéêÜ ðéÝóôå
E ãéá íá êëåßóåôå ôçí ïèüíç ÷áéñåôéóìïý ÷ùñßò íá
óôåßëåôå ôï áíþíõìï ìÞíõìá. ¸íá ðáñÜäåéãìá ôçò óåëßäáò ÷áéñåôéóìïý
öáßíåôáé ðáñáêÜôù:Èá åìöáíéóôåß êáôüðéí ôï êýñéï ìåíïý, óôï ïðïßï ìðïñåßôå íá
ìåôáêéíçèåßôå åýêïëá ÷ñçóéìïðïéþíôáò ôá âåëÜêéá. Áõôü ôï êýñéï ìåíïý
ðáñÝ÷åé ðëÞêôñá óõíôüìåõóçò ãéá äçìéïõñãßá íÝùí mail, ãéá
áíß÷íåõóç óôïõò êáôáëüãïõò mail, êáé áêüìá ãéá äéá÷åßñéóç êáôá÷ùñÞóåùí
óôï âéâëßï äéåõèýíóåùí. ÊÜôù áðü ôï êýñéï ìåíïý, åìöáíßæïíôáé
óõíôïìåýóåéò ðëçêôñïëïãßïõ ó÷åôéêÝò ìå ôçí åñãáóßá ðïõ ãßíåôáé ôç
óõãêåêñéìÝíç óôéãìÞ.Ï ðñïåðéëåãìÝíïò êáôÜëïãïò ðïõ áíïßãåé ôï
alpine åßíáé ôï
inbox. Ãéá íá äåßôå ôï
åõñåôÞñéï ôùí ìçíõìÜôùí, ðéÝóôå ôï I, Þ åðéëÝîôå ôï
MESSAGE INDEX üðùò öáßíåôáé
ðáñáêÜôù:Ôï åõñåôÞñéï ìçíõìÜôùí äåß÷íåé ìçíýìáôá áðü ôïí ôñÝ÷ïíôá
êáôÜëïãï, êáé ìðïñåßôå íá ìåôáêéíçèåßôå óå áõôü ìå ôá âåëÜêéá.
Ìðïñåßôå íá äéáâÜóåôå ôï åðéëåãìÝíï ìÞíõìá, ðéÝæïíôáò ôï ðëÞêôñï
Enter.Óôçí åéêüíá ðïõ öáßíåôáé ðáñáêÜôù, ôï
alpine áðåéêïíßæåé Ýíá õðüäåéãìá ìçíýìáôïò.
Óôï êÜôù ìÝñïò ôçò ïèüíçò öáßíïíôáé ó÷åôéêÝò óõíôïìåýóåéò
ðëçêôñïëïãßïõ. ¸íá ðáñÜäåéãìá ôÝôïéáò óõíôüìåõóçò, åßíáé ôï ðëÞêôñï
r ôï ïðïßï ëÝåé óôï MUA íá
äçìéïõñãÞóåé áðÜíôçóç ðñïò ôï ôñÝ÷ïí ìÞíõìá ðïõ áðåéêïíßæåôáé.Ç áðÜíôçóç óå Ýíá mail ìÝóù ôïõ alpine
ãßíåôáé ìå ôç ÷ñÞóç ôïõ óõíôÜêôç êåéìÝíïõ
pico, ï ïðïßïò åãêáèßóôáôáé áðü
ðñïåðéëïãÞ ìáæß ìå ôï alpine.
Ôï pico äéåõêïëýíåé ôç ìåôáêßíçóç ìÝóá óôï
ìÞíõìá, êáé åßíáé êÜðùò ðéï åýêïëï ãéá ôïõò áñ÷Üñéïõò ÷ñÞóôåò óå
ó÷Ýóç ìå ôï &man.vi.1; Þ ôï &man.mail.1;. Ìüëéò ïëïêëçñþóåôå ôçí
áðÜíôçóç, ìðïñåßôå íá óôåßëåôå ôï ìÞíõìá ðéÝæïíôáò ôá ðëÞêôñá
CtrlX. Ôï alpine èá óáò æçôÞóåé íá
ôï åðéâåâáéþóåôå.Ìðïñåßôå íá ðñïóáñìüóåôå ôï alpine
ìå ôç ÷ñÞóç ôçò åðéëïãÞò SETUP áðü ôï êýñéï
ìåíïý. Óõìâïõëåõèåßôå ôçí ôïðïèåóßá ãéá ðåñéóóüôåñåò
ðëçñïöïñßåò.MarcSilverÓõíåéóöïñÜ áðü ôïí ×ñçóéìïðïéþíôáò ôï fetchmailfetchmailÔï fetchmail åßíáé Ýíáò ðëÞñçò ðåëÜôçò
ãéá IMAP êáé POP, ï ïðïßïò
åðéôñÝðåé óôïõò ÷ñÞóôåò íá êáôåâÜæïõí áõôüìáôá mail áðü áðïìáêñõóìÝíïõò
åîõðçñåôçôÝò IMAP êáé POP êáé
íá ôï áðïèçêåýïõí óå ôïðéêÝò èõñßäåò, áðü üðïõ ìðïñåß Ýðåéôá íá õðÜñ÷åé
ðéï åýêïëç ðñüóâáóç. Ôï fetchmail ìðïñåß íá
åãêáôáóôáèåß ÷ñçóéìïðïéþíôáò ôï port mail/fetchmail êáé ðáñÝ÷åé äéÜöïñá
÷áñáêôçñéóôéêÜ, ìåñéêÜ áðü ôá ïðïßá ðåñéëáìâÜíïõí:ÕðïóôÞñéîç ôùí ðñùôïêüëëùí POP3,
APOP, KPOP,
IMAP, ETRN êáé
ODMR.Äõíáôüôçôá ðñïþèçóçò email ìÝóù SMTP, ôï
ïðïßï åðéôñÝðåé ôç öõóéïëïãéêÞ ëåéôïõñãßá ôïõ öéëôñáñßóìáôïò, ôçò
ðñïþèçóçò, êáé ôùí ðáñùíõìßùí (aliases).Ìðïñåß íá ëåéôïõñãÞóåé óå êáôÜóôáóç äáßìïíá, þóôå íá åëÝã÷åé
ðåñéïäéêÜ ãéá íÝá ìçíýìáôá.Ìðïñåß íá áíáêôÜ ðïëëáðëÝò èõñßäåò êáé íá ôéò ðñïùèåß, áíÜëïãá
ìå ôéò ñõèìßóåéò ôïõ, óå äéáöïñåôéêïýò ôïðéêïýò ÷ñÞóôåò.Áí êáé åßíáé Ýîù áðü ôïõò óêïðïýò áõôïý ôïõ êåéìÝíïõ íá åîçãÞóåé
üëåò ôéò äõíáôüôçôåò ôïõ fetchmail, èá
áíáöåñèïýìå óå êÜðïéåò âáóéêÝò ëåéôïõñãßåò.
Ôï fetchmail ÷ñçóéìïðïéåß Ýíá áñ÷åßï
ñõèìßóåùí ãíùóôü ùò .fetchmailrc, ãéá íá
ëåéôïõñãÞóåé óùóôÜ. Ôï áñ÷åßï áõôü ðåñéÝ÷åé ôéò ðëçñïöïñßåò ôïõ
åîõðçñåôçôÞ áëëÜ êáé ôá óôïé÷åßá åéóüäïõ ôïõ ÷ñÞóôç. Ëüãù ôùí
åõáßóèçôùí ðëçñïöïñéþí ôïõ áñ÷åßïõ áõôïý, óáò óõìâïõëåýïõìå íá
÷ñçóéìïðïéÞóåôå ôçí ðáñáêÜôù åíôïëÞ þóôå ç áíÜãíùóç ôïõ íá åðéôñÝðåôáé
ìüíï áðü ôïí éäéïêôÞôç ôïõ:&prompt.user; chmod 600 .fetchmailrcÔï .fetchmailrc ðïõ öáßíåôáé ðáñáêÜôù åßíáé Ýíá
ðáñÜäåéãìá ìå ôï ïðïßï ìðïñåßôå íá êáôåâÜóåôå ôç èõñßäá åíüò ÷ñÞóôç
ìÝóù ôïõ ðñùôïêüëëïõ POP. Êáôåõèýíåé ôï
fetchmail íá óõíäåèåß óôï example.com ÷ñçóéìïðïéþíôáò üíïìá ÷ñÞóôç
joesoap êáé êùäéêü XXX.
Ôï ðáñÜäåéãìá õðïèÝôåé üôé ï ÷ñÞóôçò joesoap åßíáé
åðßóçò êáé ÷ñÞóôçò ôïõ ôïðéêïý óõóôÞìáôïò.poll example.com protocol pop3 username "joesoap" password "XXX"Ôï åðüìåíï ðáñÜäåéãìá, äåß÷íåé óýíäåóç óå ðïëëáðëïýò
POP êáé IMAP åîõðçñåôçôÝò, êáé
áíáêáôåõèýíåé óå äéáöïñåôéêïýò ôïðéêïýò ÷ñÞóôåò üðïõ åßíáé
áðáñáßôçôï:poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;Ôï âïçèçôéêü ðñüãñáììá fetchmail ìðïñåß
íá ëåéôïõñãÞóåé óå êáôÜóôáóç äáßìïíá, áí ôï åêôåëÝóåôå ìå ôçí åðéëïãÞ
, áêïëïõèïýìåíç áðü Ýíá äéÜóôçìá (óå äåõôåñüëåðôá)
ôï ïðïßï èá ÷ñçóéìïðïéçèåß ãéá íá åñùôþíôáé ïé åîõðçñåôçôÝò ðïõ
åßíáé êáôá÷ùñçìÝíïé óôï áñ÷åßï .fetchmailrc.
Ôï ðáñáêÜôù ðáñÜäåéãìá ïäçãåß ôï fetchmail
íá áíé÷íåýåé ãéá íÝï mail êÜèå 600 äåõôåñüëåðôá:&prompt.user; fetchmail -d 600Ìðïñåßôå íá âñåßôå ðåñéóóüôåñåò ðëçñïöïñßåò ãéá ôï
fetchmail óôçí ôïðïèåóßá .MarcSilverÓõíåéóöïñÜ áðü ôïí ×ñçóéìïðïéþíôáò ôï procmailprocmailÔï âïçèçôéêü ðñüãñáììá procmail åßíáé
ìéá áðßóôåõôá éó÷õñÞ åöáñìïãÞ ðïõ ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá ôï
öéëôñÜñéóìá ôïõ åéóåñ÷üìåíïõ mail. ÅðéôñÝðåé óôïõò ÷ñÞóôåò íá
ïñßæïõí êáíüíåò ïé ïðïßïé ìðïñåß íá ôáéñéÜæïõí óå
åéóåñ÷üìåíá mail êáé íá åêôåëïýí äéÜöïñåò ëåéôïõñãßåò, Þ íá
áíáêáôåõèýíïõí ôï mail óå åíáëëáêôéêÝò èõñßäåò Þ / êáé äéåõèýíóåéò
ôá÷õäñïìåßïõ. Ôï procmail ìðïñåß íá
åãêáôáóôáèåß ÷ñçóéìïðïéþíôáò ôï port mail/procmail. ÌåôÜ ôçí åãêáôÜóôáóç ôïõ,
ìðïñåß íá åíóùìáôùèåß ó÷åäüí óå ïðïéïäÞðïôå
MTA. Óõìâïõëåõèåßôå ôçí ôåêìçñßùóç ôïõ
MTA ðïõ ÷ñçóéìïðïéåßôå ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.
ÅíáëëáêôéêÜ, ìðïñåßôå íá åíóùìáôþóåôå ôï
procmail ðñïóèÝôïíôáò ôçí áêüëïõèç ãñáììÞ
óå Ýíá áñ÷åßï .forward óôïí êáôÜëïãï ôïõ ÷ñÞóôç,
÷ñçóéìïðïéþíôáò ôéò äõíáôüôçôåò ôïõ
procmail:"|exec /usr/local/bin/procmail || exit 75"Óôçí ðáñáêÜôù åíüôçôá, èá äåßîïõìå ìåñéêïýò áðü ôïõò âáóéêïýò
êáíüíåò ôïõ procmail, êáèþò êáé óýíôïìåò
ðåñéãñáöÝò ôçò ëåéôïõñãßáò ôïõò. ÐñÝðåé íá ôïðïèåôÞóåôå áõôïýò (êáé
Üëëïõò) êáíüíåò óå Ýíá áñ÷åßï .procmailrc, ôï ïðïßï
èá ðñÝðåé íá âñßóêåôáé ìÝóá óôïí êáôÜëïãï ôïõ ÷ñÞóôç:Ìðïñåßôå íá âñåßôå ôïõò ðåñéóóüôåñïõò áðü áõôïýò ôïõò êáíüíåò, óôç
óåëßäá manual ôïõ &man.procmailex.5;.Ðñïþèçóç üëïõ ôïõ email ôçò äéåýèõíóçò
user@example.com ðñïò ôçí åîùôåñéêÞ
äéåýèõíóç goodmail@example2.com::0
* ^From.*user@example.com
! goodmail@example2.comÐñïþèçóç üëùí ôùí email ðïõ åßíáé ìéêñüôåñá áðü 1000 bytes ðñïò ìéá
åîùôåñéêÞ äéåýèõíóç email goodmail@example2.com::0
* < 1000
! goodmail@example2.comÁðïóôïëÞ üëïõ ôïõ mail ðïõ óôÜëèçêå ðñïò ôï
alternate@example.com óå ìéá èõñßäá ðïõ êáëåßôáé
alternate::0
* ^TOalternate@example.com
alternateÁðïóôïëÞ üëïõ ôïõ mail ìå èÝìá Spam ðñïò ôï
/dev/null::0
^Subject:.*Spam
/dev/nullÌéá ÷ñÞóéìç ëýóç ðïõ îå÷ùñßæåé ôá email áðü ôéò ëßóôåò ôá÷õäñïìåßïõ
&os;.org êáé ôïðïèåôåß ôï êÜèå
ìÞíõìá óå äéáöïñåôéêÞ èõñßäá::0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}
diff --git a/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml b/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml
index ec5b7daf26..88db7d10da 100644
--- a/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml
@@ -1,4888 +1,4874 @@
MurrayStokelyÁíáäéïñãáíþèçêå áðü ôïí ÅîõðçñåôçôÝò ÄéêôýïõÓýíïøçÔï êåöÜëáéï áõôü êáëýðôåé ïñéóìÝíåò áðü ôéò ðéï óõ÷íÜ
÷ñçóéìïðïéïýìåíåò äéêôõáêÝò õðçñåóßåò ôùí óõóôçìÜôùí &unix;. Èá
ðáñïõóéÜóïõìå ôçí åãêáôÜóôáóç, ñýèìéóç, Ýëåã÷ï êáé óõíôÞñçóç ðïëëþí
äéáöïñåôéêþí ôýðùí äéêôõáêþí õðçñåóéþí. Óå üëï ôï êåöÜëáéï, ãéá ôç
äéêÞ óáò äéåõêüëõíóç, õðÜñ÷ïõí ðáñáäåßãìáôá äéáöüñùí áñ÷åßùí ñõèìßóåùí.Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:Ðùò íá äéá÷åéñßæåóôå ôçí õðçñåóßá inetd.Ðùò íá ñõèìßóåôå Ýíá äéêôõáêü óýóôçìá áñ÷åßùí.Ðùò íá ñõèìßóåôå Ýíá åîõðçñåôçôÞ äéêôõáêþí ðëçñïöïñéþí ãéá ôï
äéáìïéñáóìü ëïãáñéáóìþí ÷ñçóôþí.Ðùò íá ÷ñçóéìïðïéÞóåôå ôï DHCP ãéá ôçí áõôüìáôç ñýèìéóç ôùí
ðáñáìÝôñùí ôïõ äéêôýïõ.Ðùò íá ñõèìßóåôå Ýíá åîõðçñåôçôÞ ïíïìáóßáò ðåñéï÷þí (DNS).Ðùò íá ñõèìßóåôå ôïí åîõðçñåôçôÞ
éóôïóåëßäùí Apache.Ðùò íá ñõèìßóåôå Ýíá åîõðçñåôçôÞ ìåôáöïñÜò áñ÷åßùí (FTP).Ðùò íá ñõèìßóåôå Ýíá åîõðçñåôçôÞ áñ÷åßùí êáé åêôõðùôþí ãéá
ðåëÜôåò &windows; ìå ÷ñÞóç ôçò åöáñìïãÞò Samba.Ðùò íá óõã÷ñïíßóåôå ôçí çìåñïìçíßá êáé ôçí þñá, êáé íá ñõèìßóåôå
Ýíá åîõðçñåôçôÞ þñáò ìå ôç âïÞèåéá ôïõ NTP ðñùôïêüëëïõ.Ðñéí äéáâÜóåôå áõôü êåöÜëáéï, èá ðñÝðåé:Íá êáôáíïåßôå ôéò âáóéêÝò Ýííïéåò ôùí áñ÷åßùí script
/etc/rc.Íá åßóôå åîïéêåéùìÝíïé ìå ôç âáóéêÞ ïñïëïãßá ôùí äéêôýùí.Íá ãíùñßæåôå ðùò íá åãêáôáóôÞóåôå ðñüóèåôï ëïãéóìéêü ôñßôïõ
êáôáóêåõáóôÞ ().ChernLeeContributed by Updated for &os; 6.1-RELEASE by The &os; Documentation ProjectThe inetdSuper-ServerOverview&man.inetd.8; is sometimes referred to as the Internet
Super-Server because it manages connections for
several services. When a
connection is received by inetd, it
determines which program the connection is destined for, spawns
the particular process and delegates the socket to it (the program
is invoked with the service socket as its standard input, output
and error descriptors). Running
inetd for servers that are not heavily used can reduce the
overall system load, when compared to running each daemon
individually in stand-alone mode.Primarily, inetd is used to
spawn other daemons, but several trivial protocols are handled
directly, such as chargen,
auth, and
daytime.This section will cover the basics in configuring
inetd through its command-line
options and its configuration file,
/etc/inetd.conf.Settingsinetd is initialized through
the &man.rc.8; system. The
inetd_enable option is set to
NO by default, but may be turned on
by sysinstall during installation,
depending on the configuration chosen by the user.
Placing:
inetd_enable="YES" or
inetd_enable="NO" into
/etc/rc.conf will enable or disable
inetd starting at boot time.
The command:
/etc/rc.d/inetd rcvar
can be run to display the current effective setting.Additionally, different command-line options can be passed
to inetd via the
inetd_flags option.Command-Line OptionsLike most server daemons, inetd
has a number of options that it can be passed in order to
modify its behaviour. The full list of options reads:inetdOptions can be passed to inetd using the
inetd_flags option in
/etc/rc.conf. By default,
inetd_flags is set to
-wW -C 60, which turns on TCP wrapping for
inetd's services, and prevents any
single IP address from requesting any service more than 60 times
in any given minute.Novice users may be pleased to note that
these parameters usually do not need to be modified,
although we mention the rate-limiting options below as
they be useful should you find that you are receiving an
excessive amount of connections. A full list of options
can be found in the &man.inetd.8; manual.-c maximumSpecify the default maximum number of simultaneous
invocations of each service; the default is unlimited.
May be overridden on a per-service basis with the
parameter.-C rateSpecify the default maximum number of times a
service can be invoked from a single IP address in one
minute; the default is unlimited. May be overridden on a
per-service basis with the
parameter.-R rateSpecify the maximum number of times a service can be
invoked in one minute; the default is 256. A rate of 0
allows an unlimited number of invocations.-s maximumSpecify the maximum number of times a service can be
invoked from a single IP address at any one time; the
default is unlimited. May be overridden on a per-service
basis with the
parameter.inetd.confConfiguration of inetd is
done via the file /etc/inetd.conf.When a modification is made to
/etc/inetd.conf,
inetd can be forced to re-read its
configuration file by running the command:Reloading the inetd
configuration file&prompt.root; /etc/rc.d/inetd reloadEach line of the configuration file specifies an
individual daemon. Comments in the file are preceded by a
#. The format of each entry in
/etc/inetd.conf is as follows:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-argumentsAn example entry for the &man.ftpd.8; daemon
using IPv4 might read:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameThis is the service name of the particular daemon.
It must correspond to a service listed in
/etc/services. This determines
which port inetd must listen
to. If a new service is being created, it must be
placed in /etc/services
first.socket-typeEither stream,
dgram, raw, or
seqpacket. stream
must be used for connection-based, TCP daemons, while
dgram is used for daemons utilizing
the UDP transport protocol.protocolOne of the following:ProtocolExplanationtcp, tcp4TCP IPv4udp, udp4UDP IPv4tcp6TCP IPv6udp6UDP IPv6tcp46Both TCP IPv4 and v6udp46Both UDP IPv4 and v6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] indicates whether the
daemon invoked from inetd is
able to handle its own socket or not.
socket types must use the
option, while stream socket
daemons, which are usually multi-threaded, should use
. usually
hands off multiple sockets to a single daemon, while
spawns a child daemon for each
new socket.The maximum number of child daemons
inetd may spawn can be set
using the option. If a limit
of ten instances of a particular daemon is needed, a
/10 would be placed after
. Specifying /0
allows an unlimited number of childrenIn addition to , two other
options which limit the maximum connections from a single
place to a particular daemon can be enabled.
limits
the number of connections from any particular IP address
per minutes, e.g. a value of ten would limit any particular
IP address connecting to a particular service to ten
attempts per minute.
limits the number of children that can be started on
behalf on any single IP address at any moment. These
options are useful to prevent intentional or unintentional
excessive resource consumption and Denial of Service (DoS)
attacks to a machine.In this field, either of or
is mandatory.
,
and
are
optional.A stream-type multi-threaded daemon without any
,
or
limits
would simply be: nowait.The same daemon with a maximum limit of ten daemons
would read: nowait/10.The same setup with a limit of twenty
connections per IP address per minute and a maximum
total limit of ten child daemons would read:
nowait/10/20.These options are utilized by the default
settings of the &man.fingerd.8; daemon,
as seen here:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -sFinally, an example of this field with a maximum of
100 children in total, with a maximum of 5 for any one
IP address would read:
nowait/100/0/5.userThis is the username that the particular daemon
should run as. Most commonly, daemons run as the
root user. For security purposes, it is
common to find some servers running as the
daemon user, or the least privileged
nobody user.server-programThe full path of the daemon to be executed when a
connection is received. If the daemon is a service
provided by inetd internally,
then should be
used.server-program-argumentsThis works in conjunction with
by specifying the
arguments, starting with argv[0],
passed to the daemon on invocation. If
mydaemon -d is the command line,
mydaemon -d would be the value of
. Again, if
the daemon is an internal service, use
here.SecurityDepending on the choices made at install time, many
of inetd's services may be enabled
by default. If there is no apparent need for a particular
daemon, consider disabling it. Place a # in front of the
daemon in question in /etc/inetd.conf,
and then reload the
inetd configuration. Some daemons, such as
fingerd, may not be desired at all
because they provide
information that may be useful to an attacker.Some daemons are not security-conscious and have long, or
non-existent, timeouts for connection attempts. This allows an
attacker to slowly send connections to a particular daemon,
thus saturating available resources. It may be a good idea to
place ,
or limitations on certain
daemons if you find that you have too many connections.By default, TCP wrapping is turned on. Consult the
&man.hosts.access.5; manual page for more information on placing
TCP restrictions on various inetd
invoked daemons.Miscellaneousdaytime,
time,
echo,
discard,
chargen, and
auth are all internally provided
services of inetd.The auth service provides
identity
network services, and is
configurable to a certain degree, whilst the others are simply on or off.Consult the &man.inetd.8; manual page for more in-depth
information.TomRhodesReorganized and enhanced by BillSwingleWritten by Network File System (NFS)NFSAmong the many different file systems that FreeBSD supports
is the Network File System, also known as NFS. NFS allows a system to share directories and
files with others over a network. By using NFS, users and programs can
access files on remote systems almost as if they were local
files.Some of the most notable benefits that
NFS can provide are:Local workstations use less disk space because commonly
used data can be stored on a single machine and still remain
accessible to others over the network.There is no need for users to have separate home
directories on every network machine. Home directories
could be set up on the NFS server and
made available throughout the network.Storage devices such as floppy disks, CDROM drives, and
&iomegazip; drives can be used by other machines on the network.
This may reduce the number of removable media drives
throughout the network.How NFS WorksNFS consists of at least two main
parts: a server and one or more clients. The client remotely
accesses the data that is stored on the server machine. In
order for this to function properly a few processes have to be
configured and running.The server has to be running the following daemons:NFSserverfile serverUNIX clientsrpcbindmountdnfsdDaemonDescriptionnfsdThe NFS daemon which services
requests from the NFS
clients.mountdThe NFS mount daemon which carries out
the requests that &man.nfsd.8; passes on to it.rpcbind This daemon allows
NFS clients to discover which port
the NFS server is using.The client can also run a daemon, known as
nfsiod. The
nfsiod daemon services the requests
from the NFS server. This is optional, and
improves performance, but is not required for normal and
correct operation. See the &man.nfsiod.8; manual page for
more information.
Configuring NFSNFSconfigurationNFS configuration is a relatively
straightforward process. The processes that need to be
running can all start at boot time with a few modifications to
your /etc/rc.conf file.On the NFS server, make sure that the
following options are configured in the
/etc/rc.conf file:rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"mountd runs automatically
whenever the NFS server is enabled.On the client, make sure this option is present in
/etc/rc.conf:nfs_client_enable="YES"The /etc/exports file specifies which
file systems NFS should export (sometimes
referred to as share). Each line in
/etc/exports specifies a file system to be
exported and which machines have access to that file system.
Along with what machines have access to that file system,
access options may also be specified. There are many such
options that can be used in this file but only a few will be
mentioned here. You can easily discover other options by
reading over the &man.exports.5; manual page.Here are a few example /etc/exports
entries:NFSexport examplesThe following examples give an idea of how to export
file systems, although the settings may be different depending
on your environment and network configuration. For instance,
to export the /cdrom directory to three
example machines that have the same domain name as the server
(hence the lack of a domain name for each) or have entries in
your /etc/hosts file. The
flag makes the exported file system
read-only. With this flag, the remote system will not be able
to write any changes to the exported file system./cdrom -ro host1 host2 host3The following line exports /home to
three hosts by IP address. This is a useful setup if you have
a private network without a DNS server
configured. Optionally the /etc/hosts
file could be configured for internal hostnames; please review
&man.hosts.5; for more information. The
flag allows the subdirectories to be
mount points. In other words, it will not mount the
subdirectories but permit the client to mount only the
directories that are required or needed./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4The following line exports /a so that
two clients from different domains may access the file system.
The flag allows the
root user on the remote system to write
data on the exported file system as root.
If the -maproot=root flag is not specified,
then even if a user has root access on
the remote system, he will not be able to modify files on
the exported file system./a -maproot=root host.example.com box.example.orgIn order for a client to access an exported file system,
the client must have permission to do so. Make sure the
client is listed in your /etc/exports
file.In /etc/exports, each line represents
the export information for one file system to one host. A
remote host can only be specified once per file system, and may
only have one default entry. For example, assume that
/usr is a single file system. The
following /etc/exports would be
invalid:# Invalid when /usr is one file system
/usr/src client
/usr/ports clientOne file system, /usr, has two lines
specifying exports to the same host, client.
The correct format for this situation is:/usr/src /usr/ports clientThe properties of one file system exported to a given host
must all occur on one line. Lines without a client specified
are treated as a single host. This limits how you can export
file systems, but for most people this is not an issue.The following is an example of a valid export list, where
/usr and /exports
are local file systems:# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -roThe mountd daemon must be forced to
recheck the /etc/exports file whenever it has
been modified, so the changes can take effect. This can be
accomplished either by sending a HUP signal to the running daemon:&prompt.root; kill -HUP `cat /var/run/mountd.pid`or by invoking the mountd &man.rc.8; script
with the appropriate parameter:&prompt.root; /etc/rc.d/mountd onereloadPlease refer to for more
information about using rc scripts.Alternatively, a reboot will make FreeBSD set everything
up properly. A reboot is not necessary though.
Executing the following commands as root
should start everything up.On the NFS server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rOn the NFS client:&prompt.root; nfsiod -n 4Now everything should be ready to actually mount a remote file
system. In these examples the
server's name will be server and the client's
name will be client. If you only want to
temporarily mount a remote file system or would rather test the
configuration, just execute a command like this as root on the
client:NFSmounting&prompt.root; mount server:/home /mntThis will mount the /home directory
on the server at /mnt on the client. If
everything is set up correctly you should be able to enter
/mnt on the client and see all the files
that are on the server.If you want to automatically mount a remote file system
each time the computer boots, add the file system to the
/etc/fstab file. Here is an example:server:/home /mnt nfs rw 0 0The &man.fstab.5; manual page lists all the available
options.LockingSome applications (e.g. mutt)
require file locking to operate correctly. In the case of
NFS, rpc.lockd
can be used for file locking. To enable it, add the following
to the /etc/rc.conf file on both client
and server (it is assumed that the NFS
client and server are configured already):rpc_lockd_enable="YES"
rpc_statd_enable="YES"Start the application by using:&prompt.root; /etc/rc.d/nfslocking startIf real locking between the NFS clients
and NFS server is not required, it is
possible to let the NFS client do locking
locally by passing to &man.mount.nfs.8;.
Refer to the &man.mount.nfs.8; manual page for further details.
Practical UsesNFS has many practical uses. Some of
the more common ones are listed below:NFSusesSet several machines to share a CDROM or other media
among them. This is cheaper and often a more convenient
method to install software on multiple machines.On large networks, it might be more convenient to
configure a central NFS server in which
to store all the user home directories. These home
directories can then be exported to the network so that
users would always have the same home directory,
regardless of which workstation they log in to.Several machines could have a common
/usr/ports/distfiles directory. That
way, when you need to install a port on several machines,
you can quickly access the source without downloading it
on each machine.WylieStilwellContributed by ChernLeeRewritten by Automatic Mounts with amdamdautomatic mounter daemon&man.amd.8; (the automatic mounter daemon)
automatically mounts a
remote file system whenever a file or directory within that
file system is accessed. Filesystems that are inactive for a
period of time will also be automatically unmounted by
amd. Using
amd provides a simple alternative
to permanent mounts, as permanent mounts are usually listed in
/etc/fstab.amd operates by attaching
itself as an NFS server to the /host and
/net directories. When a file is accessed
within one of these directories, amd
looks up the corresponding remote mount and automatically mounts
it. /net is used to mount an exported
file system from an IP address, while /host
is used to mount an export from a remote hostname.An access to a file within
/host/foobar/usr would tell
amd to attempt to mount the
/usr export on the host
foobar.Mounting an Export with amdYou can view the available mounts of a remote host with
the showmount command. For example, to
view the mounts of a host named foobar, you
can use:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrAs seen in the example, the showmount shows
/usr as an export. When changing directories to
/host/foobar/usr, amd
attempts to resolve the hostname foobar and
automatically mount the desired export.amd can be started by the
startup scripts by placing the following lines in
/etc/rc.conf:amd_enable="YES"Additionally, custom flags can be passed to
amd from the
amd_flags option. By default,
amd_flags is set to:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"The /etc/amd.map file defines the
default options that exports are mounted with. The
/etc/amd.conf file defines some of the more
advanced features of amd.Consult the &man.amd.8; and &man.amd.conf.5; manual pages for more
information.JohnLindContributed by Problems Integrating with Other SystemsCertain Ethernet adapters for ISA PC systems have limitations
which can lead to serious network problems, particularly with NFS.
This difficulty is not specific to FreeBSD, but FreeBSD systems
are affected by it.The problem nearly always occurs when (FreeBSD) PC systems are
networked with high-performance workstations, such as those made
by Silicon Graphics, Inc., and Sun Microsystems, Inc. The NFS
mount will work fine, and some operations may succeed, but
suddenly the server will seem to become unresponsive to the
client, even though requests to and from other systems continue to
be processed. This happens to the client system, whether the
client is the FreeBSD system or the workstation. On many systems,
there is no way to shut down the client gracefully once this
problem has manifested itself. The only solution is often to
reset the client, because the NFS situation cannot be
resolved.Though the correct solution is to get a
higher performance and capacity Ethernet adapter for the
FreeBSD system, there is a simple workaround that will allow
satisfactory operation. If the FreeBSD system is the
server, include the option
on the mount from the client. If the
FreeBSD system is the client, then mount
the NFS file system with the option .
These options may be specified using the fourth field of the
fstab entry on the client for automatic
mounts, or by using the parameter of the
&man.mount.8; command for manual mounts.It should be noted that there is a different problem,
sometimes mistaken for this one, when the NFS servers and
clients are on different networks. If that is the case, make
certain that your routers are routing the
necessary UDP information, or you will not get anywhere, no
matter what else you are doing.In the following examples, fastws is the host
(interface) name of a high-performance workstation, and
freebox is the host (interface) name of a FreeBSD
system with a lower-performance Ethernet adapter. Also,
/sharedfs will be the exported NFS
file system (see &man.exports.5;), and
/project will be the mount point on the
client for the exported file system. In all cases, note that
additional options, such as or
and may be desirable in
your application.Examples for the FreeBSD system (freebox)
as the client in /etc/fstab on
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0As a manual mount command on freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectExamples for the FreeBSD system as the server in
/etc/fstab on
fastws:freebox:/sharedfs /project nfs rw,-w=1024 0 0As a manual mount command on fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectNearly any 16-bit Ethernet adapter will allow operation
without the above restrictions on the read or write size.For anyone who cares, here is what happens when the
failure occurs, which also explains why it is unrecoverable.
NFS typically works with a block size of
8 K (though it may do fragments of smaller sizes). Since
the maximum Ethernet packet is around 1500 bytes, the NFS
block gets split into multiple Ethernet
packets, even though it is still a single unit to the
upper-level code, and must be received, assembled, and
acknowledged as a unit. The
high-performance workstations can pump out the packets which
comprise the NFS unit one right after the other, just as close
together as the standard allows. On the smaller, lower
capacity cards, the later packets overrun the earlier packets
of the same unit before they can be transferred to the host
and the unit as a whole cannot be reconstructed or
acknowledged. As a result, the workstation will time out and
try again, but it will try again with the entire 8 K
unit, and the process will be repeated, ad infinitum.By keeping the unit size below the Ethernet packet size
limitation, we ensure that any complete Ethernet packet
received can be acknowledged individually, avoiding the
deadlock situation.Overruns may still occur when a high-performance
workstations is slamming data out to a PC system, but with the
better cards, such overruns are not guaranteed on NFS
units. When an overrun occurs, the units
affected will be retransmitted, and there will be a fair
chance that they will be received, assembled, and
acknowledged.BillSwingleWritten by EricOgrenEnhanced by UdoErdelhoffNetwork Information System (NIS/YP)What Is It?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS,
which stands for Network Information Services, was developed
by Sun Microsystems to centralize administration of &unix;
(originally &sunos;) systems. It has now essentially become
an industry standard; all major &unix; like systems
(&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD,
etc) support NIS.yellow pagesNISNIS
was formerly known as Yellow Pages, but because of trademark
issues, Sun changed the name. The old term (and yp) is still
often seen and used.NISdomainsIt is a RPC-based client/server system that allows a group
of machines within an NIS domain to share a common set of
configuration files. This permits a system administrator to
set up NIS client systems with only minimal configuration data
and add, remove or modify configuration data from a single
location.Windows NTIt is similar to the &windowsnt; domain system; although
the internal implementation of the two are not at all similar,
the basic functionality can be compared.Terms/Processes You Should KnowThere are several terms and several important user
processes that you will come across when attempting to
implement NIS on FreeBSD, whether you are trying to create an
NIS server or act as an NIS client:rpcbindportmapTermDescriptionNIS domainnameAn NIS master server and all of its clients
(including its slave servers) have a NIS domainname.
Similar to an &windowsnt; domain name, the NIS
domainname does not have anything to do with
DNS.rpcbindMust be running in order to enable
RPC (Remote Procedure Call, a
network protocol used by NIS). If
rpcbind is not running, it
will be impossible to run an NIS server, or to act as
an NIS client.ypbindBinds an NIS client to its NIS
server. It will take the NIS domainname from the
system, and using RPC, connect to
the server. ypbind is the
core of client-server communication in an NIS
environment; if ypbind dies
on a client machine, it will not be able to access the
NIS server.ypservShould only be running on NIS servers; this is
the NIS server process itself. If &man.ypserv.8;
dies, then the server will no longer be able to
respond to NIS requests (hopefully, there is a slave
server to take over for it). There are some
implementations of NIS (but not the FreeBSD one), that
do not try to reconnect to another server if the
server it used before dies. Often, the only thing
that helps in this case is to restart the server
process (or even the whole server) or the
ypbind process on the
client.
rpc.yppasswddAnother process that should only be running on
NIS master servers; this is a daemon that will allow NIS
clients to change their NIS passwords. If this daemon
is not running, users will have to login to the NIS
master server and change their passwords there.How Does It Work?There are three types of hosts in an NIS environment:
master servers, slave servers, and clients. Servers act as a
central repository for host configuration information. Master
servers hold the authoritative copy of this information, while
slave servers mirror this information for redundancy. Clients
rely on the servers to provide this information to
them.Information in many files can be shared in this manner.
The master.passwd,
group, and hosts
files are commonly shared via NIS. Whenever a process on a
client needs information that would normally be found in these
files locally, it makes a query to the NIS server that it is
bound to instead.Machine Types
-
- NIS
- master server
-
- A NIS master server. This
+ A NIS master serverNISmaster server. This
server, analogous to a &windowsnt; primary domain
controller, maintains the files used by all of the NIS
clients. The passwd,
group, and other various files used
by the NIS clients live on the master server.It is possible for one machine to be an NIS
master server for more than one NIS domain. However,
this will not be covered in this introduction, which
assumes a relatively small-scale NIS
environment.
-
- NIS
- slave server
-
-
- NIS slave servers. Similar to
+ NIS slave serversNISslave server. Similar to
the &windowsnt; backup domain controllers, NIS slave
servers maintain copies of the NIS master's data files.
NIS slave servers provide the redundancy, which is
needed in important environments. They also help to
balance the load of the master server: NIS Clients
always attach to the NIS server whose response they get
first, and this includes slave-server-replies.
-
- NIS
- client
-
-
- NIS clients. NIS clients, like
+ NIS clientsNISclient. NIS clients, like
most &windowsnt; workstations, authenticate against the
NIS server (or the &windowsnt; domain controller in the
&windowsnt; workstations case) to log on.Using NIS/YPThis section will deal with setting up a sample NIS
environment.PlanningLet us assume that you are the administrator of a small
university lab. This lab, which consists of 15 FreeBSD
machines, currently has no centralized point of
administration; each machine has its own
/etc/passwd and
/etc/master.passwd. These files are
kept in sync with each other only through manual
intervention; currently, when you add a user to the lab, you
must run adduser on all 15 machines.
Clearly, this has to change, so you have decided to convert
the lab to use NIS, using two of the machines as
servers.Therefore, the configuration of the lab now looks something
like:Machine nameIP addressMachine roleellington10.0.0.2NIS mastercoltrane10.0.0.3NIS slavebasie10.0.0.4Faculty workstationbird10.0.0.5Client machinecli[1-11]10.0.0.[6-17]Other client machinesIf you are setting up a NIS scheme for the first time, it
is a good idea to think through how you want to go about it. No
matter what the size of your network, there are a few decisions
that need to be made.Choosing a NIS Domain NameNISdomainnameThis might not be the domainname that
you are used to. It is more accurately called the
NIS domainname. When a client broadcasts
its requests for info, it includes the name of the NIS
domain that it is part of. This is how multiple servers
on one network can tell which server should answer which
request. Think of the NIS domainname as the name for a
group of hosts that are related in some way.Some organizations choose to use their Internet
domainname for their NIS domainname. This is not
recommended as it can cause confusion when trying to debug
network problems. The NIS domainname should be unique
within your network and it is helpful if it describes the
group of machines it represents. For example, the Art
department at Acme Inc. might be in the
acme-art NIS domain. For this example,
assume you have chosen the name
test-domain.SunOSHowever, some operating systems (notably &sunos;) use
their NIS domain name as their Internet domain name. If one
or more machines on your network have this restriction, you
must use the Internet domain name as
your NIS domain name.Physical Server RequirementsThere are several things to keep in mind when choosing
a machine to use as a NIS server. One of the unfortunate
things about NIS is the level of dependency the clients
have on the server. If a client cannot contact the server
for its NIS domain, very often the machine becomes
unusable. The lack of user and group information causes
most systems to temporarily freeze up. With this in mind
you should make sure to choose a machine that will not be
prone to being rebooted regularly, or one that might be
used for development. The NIS server should ideally be a
stand alone machine whose sole purpose in life is to be an
NIS server. If you have a network that is not very
heavily used, it is acceptable to put the NIS server on a
machine running other services, just keep in mind that if
the NIS server becomes unavailable, it will affect
all of your NIS clients
adversely.NIS Servers The canonical copies of all NIS information are stored
on a single machine called the NIS master server. The
databases used to store the information are called NIS maps.
In FreeBSD, these maps are stored in
/var/yp/[domainname] where
[domainname] is the name of the NIS
domain being served. A single NIS server can support
several domains at once, therefore it is possible to have
several such directories, one for each supported domain.
Each domain will have its own independent set of
maps.NIS master and slave servers handle all NIS requests
with the ypserv daemon.
ypserv is responsible for receiving
incoming requests from NIS clients, translating the
requested domain and map name to a path to the corresponding
database file and transmitting data from the database back
to the client.Setting Up a NIS Master ServerNISserver configurationSetting up a master NIS server can be relatively
straight forward, depending on your needs. FreeBSD comes
with support for NIS out-of-the-box. All you need is to
add the following lines to
/etc/rc.conf, and FreeBSD will do the
rest for you.nisdomainname="test-domain"
This line will set the NIS domainname to
test-domain
upon network setup (e.g. after reboot).nis_server_enable="YES"
This will tell FreeBSD to start up the NIS server processes
when the networking is next brought up.nis_yppasswdd_enable="YES"
This will enable the rpc.yppasswdd
daemon which, as mentioned above, will allow users to
change their NIS password from a client machine.Depending on your NIS setup, you may need to add
further entries. See the section about NIS
servers that are also NIS clients, below, for
details.Now, all you have to do is to run the command
/etc/netstart as superuser. It will
set up everything for you, using the values you defined in
/etc/rc.conf.Initializing the NIS MapsNISmapsThe NIS maps are database files,
that are kept in the /var/yp
directory. They are generated from configuration files in
the /etc directory of the NIS master,
with one exception: the
/etc/master.passwd file. This is for
a good reason, you do not want to propagate passwords to
your root and other administrative
accounts to all the servers in the NIS domain. Therefore,
before we initialize the NIS maps, you should:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdYou should remove all entries regarding system
accounts (bin,
tty, kmem,
games, etc), as well as any accounts
that you do not want to be propagated to the NIS clients
(for example root and any other UID 0
(superuser) accounts).Make sure the
/var/yp/master.passwd is neither group
nor world readable (mode 600)! Use the
chmod command, if appropriate.Tru64 UNIXWhen you have finished, it is time to initialize the
NIS maps! FreeBSD includes a script named
ypinit to do this for you (see its
manual page for more information). Note that this script
is available on most &unix; Operating Systems, but not on
all. On Digital UNIX/Compaq Tru64 UNIX it is called
ypsetup. Because we are generating
maps for an NIS master, we are going to pass the
option to ypinit.
To generate the NIS maps, assuming you already performed
the steps above, run:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..output from map generation..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.ypinit should have created
/var/yp/Makefile from
/var/yp/Makefile.dist.
When created, this file assumes that you are operating
in a single server NIS environment with only FreeBSD
machines. Since test-domain has
a slave server as well, you must edit
/var/yp/Makefile:ellington&prompt.root; vi /var/yp/MakefileYou should comment out the line that saysNOPUSH = "True"(if it is not commented out already).Setting up a NIS Slave ServerNISslave serverSetting up an NIS slave server is even more simple than
setting up the master. Log on to the slave server and edit the
file /etc/rc.conf as you did before.
The only difference is that we now must use the
option when running ypinit.
The option requires the name of the NIS
master be passed to it as well, so our command line looks
like:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.You should now have a directory called
/var/yp/test-domain. Copies of the NIS
master server's maps should be in this directory. You will
need to make sure that these stay updated. The following
/etc/crontab entries on your slave
servers should do the job:20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidThese two lines force the slave to sync its maps with
the maps on the master server. Although these entries are
not mandatory, since the master server attempts to ensure
any changes to its NIS maps are communicated to its slaves
and because password information is vital to systems
depending on the server, it is a good idea to force the
updates. This is more important on busy networks where map
updates might not always complete.Now, run the command /etc/netstart on the
slave server as well, which again starts the NIS server.NIS Clients An NIS client establishes what is called a binding to a
particular NIS server using the
ypbind daemon.
ypbind checks the system's default
domain (as set by the domainname command),
and begins broadcasting RPC requests on the local network.
These requests specify the name of the domain for which
ypbind is attempting to establish a binding.
If a server that has been configured to serve the requested
domain receives one of the broadcasts, it will respond to
ypbind, which will record the server's
address. If there are several servers available (a master and
several slaves, for example), ypbind will
use the address of the first one to respond. From that point
on, the client system will direct all of its NIS requests to
that server. ypbind will
occasionally ping the server to make sure it is
still up and running. If it fails to receive a reply to one of
its pings within a reasonable amount of time,
ypbind will mark the domain as unbound and
begin broadcasting again in the hopes of locating another
server.Setting Up a NIS ClientNISclient configurationSetting up a FreeBSD machine to be a NIS client is fairly
straightforward.Edit the file /etc/rc.conf and
add the following lines in order to set the NIS domainname
and start ypbind upon network
startup:nisdomainname="test-domain"
nis_client_enable="YES"To import all possible password entries from the NIS
server, remove all user accounts from your
/etc/master.passwd file and use
vipw to add the following line to
the end of the file:+:::::::::This line will afford anyone with a valid account in
the NIS server's password maps an account. There are
many ways to configure your NIS client by changing this
line. See the netgroups
section below for more information.
For more detailed reading see O'Reilly's book on
Managing NFS and NIS.You should keep at least one local account (i.e.
not imported via NIS) in your
/etc/master.passwd and this
account should also be a member of the group
wheel. If there is something
wrong with NIS, this account can be used to log in
remotely, become root, and fix things.To import all possible group entries from the NIS
server, add this line to your
/etc/group file:+:*::After completing these steps, you should be able to run
ypcat passwd and see the NIS server's
passwd map.NIS SecurityIn general, any remote user can issue an RPC to
&man.ypserv.8; and retrieve the contents of your NIS maps,
provided the remote user knows your domainname. To prevent
such unauthorized transactions, &man.ypserv.8; supports a
feature called securenets which can be used to
restrict access to a given set of hosts. At startup,
&man.ypserv.8; will attempt to load the securenets information
from a file called
/var/yp/securenets.This path varies depending on the path specified with the
option. This file contains entries that
consist of a network specification and a network mask separated
by white space. Lines starting with # are
considered to be comments. A sample securenets file might look
like this:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0If &man.ypserv.8; receives a request from an address that
matches one of these rules, it will process the request
normally. If the address fails to match a rule, the request
will be ignored and a warning message will be logged. If the
/var/yp/securenets file does not exist,
ypserv will allow connections from any
host.The ypserv program also has support for
Wietse Venema's TCP Wrapper package.
This allows the administrator to use the
TCP Wrapper configuration files for
access control instead of
/var/yp/securenets.While both of these access control mechanisms provide some
security, they, like the privileged port test, are
vulnerable to IP spoofing attacks. All
NIS-related traffic should be blocked at your firewall.Servers using /var/yp/securenets
may fail to serve legitimate NIS clients with archaic TCP/IP
implementations. Some of these implementations set all
host bits to zero when doing broadcasts and/or fail to
observe the subnet mask when calculating the broadcast
address. While some of these problems can be fixed by
changing the client configuration, other problems may force
the retirement of the client systems in question or the
abandonment of /var/yp/securenets.Using /var/yp/securenets on a
server with such an archaic implementation of TCP/IP is a
really bad idea and will lead to loss of NIS functionality
for large parts of your network.TCP WrappersThe use of the TCP Wrapper
package increases the latency of your NIS server. The
additional delay may be long enough to cause timeouts in
client programs, especially in busy networks or with slow
NIS servers. If one or more of your client systems
suffers from these symptoms, you should convert the client
systems in question into NIS slave servers and force them
to bind to themselves.Barring Some Users from Logging OnIn our lab, there is a machine basie that
is supposed to be a faculty only workstation. We do not want
to take this machine out of the NIS domain, yet the
passwd file on the master NIS server
contains accounts for both faculty and students. What can we
do?There is a way to bar specific users from logging on to a
machine, even if they are present in the NIS database. To do
this, all you must do is add
-username to the
end of the /etc/master.passwd file on the
client machine, where username is
the username of the user you wish to bar from logging in.
This should preferably be done using vipw,
since vipw will sanity check your changes
to /etc/master.passwd, as well as
automatically rebuild the password database when you finish
editing. For example, if we wanted to bar user
bill from logging on to
basie we would:basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffContributed by Using NetgroupsnetgroupsThe method shown in the previous section works reasonably
well if you need special rules for a very small number of
users and/or machines. On larger networks, you
will forget to bar some users from logging
onto sensitive machines, or you may even have to modify each
machine separately, thus losing the main benefit of NIS:
centralized administration.The NIS developers' solution for this problem is called
netgroups. Their purpose and semantics
can be compared to the normal groups used by &unix; file
systems. The main differences are the lack of a numeric ID
and the ability to define a netgroup by including both user
accounts and other netgroups.Netgroups were developed to handle large, complex networks
with hundreds of users and machines. On one hand, this is
a Good Thing if you are forced to deal with such a situation.
On the other hand, this complexity makes it almost impossible to
explain netgroups with really simple examples. The example
used in the remainder of this section demonstrates this
problem.Let us assume that your successful introduction of NIS in
your laboratory caught your superiors' interest. Your next
job is to extend your NIS domain to cover some of the other
machines on campus. The two tables contain the names of the
new users and new machines as well as brief descriptions of
them.User Name(s)Descriptionalpha, betaNormal employees of the IT departmentcharlie, deltaThe new apprentices of the IT departmentecho, foxtrott, golf, ...Ordinary employeesable, baker, ...The current internsMachine Name(s)Descriptionwar, death,
famine,
pollutionYour most important servers. Only the IT
employees are allowed to log onto these
machines.pride, greed,
envy, wrath,
lust, slothLess important servers. All members of the IT
department are allowed to login onto these
machines.one, two,
three, four,
...Ordinary workstations. Only the
real employees are allowed to use
these machines.trashcanA very old machine without any critical data.
Even the intern is allowed to use this box.If you tried to implement these restrictions by separately
blocking each user, you would have to add one
-user line to
each system's passwd for each user who is
not allowed to login onto that system. If you forget just one
entry, you could be in trouble. It may be feasible to do this
correctly during the initial setup, however you
will eventually forget to add the lines
for new users during day-to-day operations. After all, Murphy
was an optimist.Handling this situation with netgroups offers several
advantages. Each user need not be handled separately; you
assign a user to one or more netgroups and allow or forbid
logins for all members of the netgroup. If you add a new
machine, you will only have to define login restrictions for
netgroups. If a new user is added, you will only have to add
the user to one or more netgroups. Those changes are
independent of each other: no more for each combination
of user and machine do... If your NIS setup is planned
carefully, you will only have to modify exactly one central
configuration file to grant or deny access to machines.The first step is the initialization of the NIS map
netgroup. FreeBSD's &man.ypinit.8; does not create this map by
default, but its NIS implementation will support it once it has
been created. To create an empty map, simply typeellington&prompt.root; vi /var/yp/netgroupand start adding content. For our example, we need at
least four netgroups: IT employees, IT apprentices, normal
employees and interns.IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)IT_EMP, IT_APP etc.
are the names of the netgroups. Each bracketed group adds
one or more user accounts to it. The three fields inside a
group are:The name of the host(s) where the following items are
valid. If you do not specify a hostname, the entry is
valid on all hosts. If you do specify a hostname, you
will enter a realm of darkness, horror and utter confusion.The name of the account that belongs to this
netgroup.The NIS domain for the account. You can import
accounts from other NIS domains into your netgroup if you
are one of the unlucky fellows with more than one NIS
domain.Each of these fields can contain wildcards. See
&man.netgroup.5; for details.netgroupsNetgroup names longer than 8 characters should not be
used, especially if you have machines running other
operating systems within your NIS domain. The names are
case sensitive; using capital letters for your netgroup
names is an easy way to distinguish between user, machine
and netgroup names.Some NIS clients (other than FreeBSD) cannot handle
netgroups with a large number of entries. For example, some
older versions of &sunos; start to cause trouble if a netgroup
contains more than 15 entries. You can
circumvent this limit by creating several sub-netgroups with
15 users or less and a real netgroup that consists of the
sub-netgroups:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3You can repeat this process if you need more than 225
users within a single netgroup.Activating and distributing your new NIS map is
easy:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeThis will generate the three NIS maps
netgroup,
netgroup.byhost and
netgroup.byuser. Use &man.ypcat.1; to
check if your new NIS maps are available:ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserThe output of the first command should resemble the
contents of /var/yp/netgroup. The second
command will not produce output if you have not specified
host-specific netgroups. The third command can be used to
get the list of netgroups for a user.The client setup is quite simple. To configure the server
war, you only have to start
&man.vipw.8; and replace the line+:::::::::with+@IT_EMP:::::::::Now, only the data for the users defined in the netgroup
IT_EMP is imported into
war's password database and only
these users are allowed to login.Unfortunately, this limitation also applies to the
~ function of the shell and all routines
converting between user names and numerical user IDs. In
other words, cd
~user will not work,
ls -l will show the numerical ID instead of
the username and find . -user joe -print
will fail with No such user. To fix
this, you will have to import all user entries
without allowing them to login onto your
servers.This can be achieved by adding another line to
/etc/master.passwd. This line should
contain:+:::::::::/sbin/nologin, meaning
Import all entries but replace the shell with
/sbin/nologin in the imported
entries. You can replace any field in the
passwd entry by placing a default value in
your /etc/master.passwd.Make sure that the line
+:::::::::/sbin/nologin is placed after
+@IT_EMP:::::::::. Otherwise, all user
accounts imported from NIS will have /sbin/nologin as their
login shell.After this change, you will only have to change one NIS
map if a new employee joins the IT department. You could use
a similar approach for the less important servers by replacing
the old +::::::::: in their local version
of /etc/master.passwd with something like
this:+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinThe corresponding lines for the normal workstations
could be:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinAnd everything would be fine until there is a policy
change a few weeks later: The IT department starts hiring
interns. The IT interns are allowed to use the normal
workstations and the less important servers; and the IT
apprentices are allowed to login onto the main servers. You
add a new netgroup IT_INTERN, add the new
IT interns to this netgroup and start to change the
configuration on each and every machine... As the old saying
goes: Errors in centralized planning lead to global
mess.NIS' ability to create netgroups from other netgroups can
be used to prevent situations like these. One possibility
is the creation of role-based netgroups. For example, you
could create a netgroup called
BIGSRV to define the login
restrictions for the important servers, another netgroup
called SMALLSRV for the less
important servers and a third netgroup called
USERBOX for the normal
workstations. Each of these netgroups contains the netgroups
that are allowed to login onto these machines. The new
entries for your NIS map netgroup should look like this:BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERSThis method of defining login restrictions works
reasonably well if you can define groups of machines with
identical restrictions. Unfortunately, this is the exception
and not the rule. Most of the time, you will need the ability
to define login restrictions on a per-machine basis.Machine-specific netgroup definitions are the other
possibility to deal with the policy change outlined above. In
this scenario, the /etc/master.passwd of
each box contains two lines starting with +.
The first of them adds a netgroup with the accounts allowed to
login onto this machine, the second one adds all other
accounts with /sbin/nologin as shell. It
is a good idea to use the ALL-CAPS version of
the machine name as the name of the netgroup. In other words,
the lines should look like this:+@BOXNAME:::::::::
+:::::::::/sbin/nologinOnce you have completed this task for all your machines,
you will not have to modify the local versions of
/etc/master.passwd ever again. All
further changes can be handled by modifying the NIS map. Here
is an example of a possible netgroup map for this
scenario with some additional goodies:# Define groups of users first
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Now, define some groups based on roles
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# And a groups for a special tasks
# Allow echo and golf to access our anti-virus-machine
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# machine-based netgroups
# Our main servers
WAR BIGSRV
FAMINE BIGSRV
# User india needs access to this server
POLLUTION BIGSRV (,india,test-domain)
#
# This one is really important and needs more access restrictions
DEATH IT_EMP
#
# The anti-virus-machine mentioned above
ONE SECURITY
#
# Restrict a machine to a single user
TWO (,hotel,test-domain)
# [...more groups to follow]If you are using some kind of database to manage your user
accounts, you should be able to create the first part of the
map with your database's report tools. This way, new users
will automatically have access to the boxes.One last word of caution: It may not always be advisable
to use machine-based netgroups. If you are deploying a couple of
dozen or even hundreds of identical machines for student labs,
you should use role-based netgroups instead of machine-based
netgroups to keep the size of the NIS map within reasonable
limits.Important Things to RememberThere are still a couple of things that you will need to do
differently now that you are in an NIS environment.Every time you wish to add a user to the lab, you
must add it to the master NIS server only,
and you must remember to rebuild the NIS
maps. If you forget to do this, the new user will
not be able to login anywhere except on the NIS master.
For example, if we needed to add a new user
jsmith to the lab, we would:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainYou could also run adduser jsmith instead
of pw useradd jsmith.Keep the administration accounts out of the
NIS maps. You do not want to be propagating
administrative accounts and passwords to machines that
will have users that should not have access to those
accounts.Keep the NIS master and slave secure, and
minimize their downtime. If somebody either
hacks or simply turns off these machines, they have
effectively rendered many people without the ability to
login to the lab.This is the chief weakness of any centralized administration
system. If you do
not protect your NIS servers, you will have a lot of angry
users!NIS v1 Compatibility FreeBSD's ypserv has some
support for serving NIS v1 clients. FreeBSD's NIS
implementation only uses the NIS v2 protocol, however other
implementations include support for the v1 protocol for
backwards compatibility with older systems. The
ypbind daemons supplied with these
systems will try to establish a binding to an NIS v1 server
even though they may never actually need it (and they may
persist in broadcasting in search of one even after they
receive a response from a v2 server). Note that while support
for normal client calls is provided, this version of
ypserv does not handle v1 map
transfer requests; consequently, it cannot be used as a master
or slave in conjunction with older NIS servers that only
support the v1 protocol. Fortunately, there probably are not
any such servers still in use today.NIS Servers That Are Also NIS Clients Care must be taken when running
ypserv in a multi-server domain
where the server machines are also NIS clients. It is
generally a good idea to force the servers to bind to
themselves rather than allowing them to broadcast bind
requests and possibly become bound to each other. Strange
failure modes can result if one server goes down and others
are dependent upon it. Eventually all the clients will time
out and attempt to bind to other servers, but the delay
involved can be considerable and the failure mode is still
present since the servers might bind to each other all over
again.You can force a host to bind to a particular server by running
ypbind with the
flag. If you do not want to do this manually each time you
reboot your NIS server, you can add the following lines to
your /etc/rc.conf:nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"See &man.ypbind.8; for further information.Password FormatsNISpassword formatsOne of the most common issues that people run into when trying
to implement NIS is password format compatibility. If your NIS
server is using DES encrypted passwords, it will only support
clients that are also using DES. For example, if you have
&solaris; NIS clients in your network, then you will almost certainly
need to use DES encrypted passwords.To check which format your servers
and clients are using, look at /etc/login.conf.
If the host is configured to use DES encrypted passwords, then the
default class will contain an entry like this:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Further entries elided]Other possible values for the passwd_format
capability include blf and md5
(for Blowfish and MD5 encrypted passwords, respectively).If you have made changes to
/etc/login.conf, you will also need to
rebuild the login capability database, which is achieved by
running the following command as
root:&prompt.root; cap_mkdb /etc/login.confThe format of passwords already in
/etc/master.passwd will not be updated
until a user changes his password for the first time
after the login capability database is
rebuilt.Next, in order to ensure that passwords are encrypted with
the format that you have chosen, you should also check that
the crypt_default in
/etc/auth.conf gives precedence to your
chosen password format. To do this, place the format that you
have chosen first in the list. For example, when using DES
encrypted passwords, the entry would be:crypt_default = des blf md5Having followed the above steps on each of the &os; based
NIS servers and clients, you can be sure that they all agree
on which password format is used within your network. If you
have trouble authenticating on an NIS client, this is a pretty
good place to start looking for possible problems. Remember:
if you want to deploy an NIS server for a heterogenous
network, you will probably have to use DES on all systems
because it is the lowest common standard.GregSutterWritten by Automatic Network Configuration (DHCP)What Is DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)DHCP, the Dynamic Host Configuration Protocol, describes
the means by which a system can connect to a network and obtain the
necessary information for communication upon that network. FreeBSD
versions prior to 6.0 use the ISC (Internet Software
Consortium) DHCP client (&man.dhclient.8;) implementation.
Later versions use the OpenBSD dhclient
taken from OpenBSD 3.7. All
information here regarding dhclient is for
use with either of the ISC or OpenBSD DHCP clients. The DHCP
server is the one included in the ISC distribution.What This Section CoversThis section describes both the client-side components of the ISC and OpenBSD DHCP client and
server-side components of the ISC DHCP system. The
client-side program, dhclient, comes
integrated within FreeBSD, and the server-side portion is
available from the net/isc-dhcp3-server port. The
&man.dhclient.8;, &man.dhcp-options.5;, and
&man.dhclient.conf.5; manual pages, in addition to the
references below, are useful resources.How It WorksUDPWhen dhclient, the DHCP client, is
executed on the client machine, it begins broadcasting
requests for configuration information. By default, these
requests are on UDP port 68. The server replies on UDP 67,
giving the client an IP address and other relevant network
information such as netmask, router, and DNS servers. All of
this information comes in the form of a DHCP
lease and is only valid for a certain time
(configured by the DHCP server maintainer). In this manner,
stale IP addresses for clients no longer connected to the
network can be automatically reclaimed.DHCP clients can obtain a great deal of information from
the server. An exhaustive list may be found in
&man.dhcp-options.5;.FreeBSD Integration&os; fully integrates the ISC or OpenBSD DHCP client,
dhclient (according to the &os; version you run). DHCP client support is provided
within both the installer and the base system, obviating the need
for detailed knowledge of network configurations on any network
that runs a DHCP server. dhclient has been
included in all FreeBSD distributions since 3.2.sysinstallDHCP is supported by
sysinstall. When configuring a
network interface within
sysinstall, the second question
asked is: Do you want to try DHCP configuration of
the interface?. Answering affirmatively will
execute dhclient, and if successful, will
fill in the network configuration information
automatically.There are two things you must do to have your system use
DHCP upon startup:DHCPrequirementsMake sure that the bpf
device is compiled into your kernel. To do this, add
device bpf to your kernel
configuration file, and rebuild the kernel. For more
information about building kernels, see .The
bpf device is already part of
the GENERIC kernel that is supplied
with FreeBSD, so if you do not have a custom kernel, you
should not need to create one in order to get DHCP
working.For those who are particularly security conscious,
you should be warned that bpf
is also the device that allows packet sniffers to work
correctly (although they still have to be run as
root). bpfis required to use DHCP, but if
you are very sensitive about security, you probably
should not add bpf to your
kernel in the expectation that at some point in the
future you will be using DHCP.Edit your /etc/rc.conf to
include the following:ifconfig_fxp0="DHCP"Be sure to replace fxp0 with the
designation for the interface that you wish to dynamically
configure, as described in
.If you are using a different location for
dhclient, or if you wish to pass additional
flags to dhclient, also include the
following (editing as necessary):dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCPserverThe DHCP server, dhcpd, is included
as part of the net/isc-dhcp3-server port in the ports
collection. This port contains the ISC DHCP server and
documentation.FilesDHCPconfiguration files/etc/dhclient.confdhclient requires a configuration file,
/etc/dhclient.conf. Typically the file
contains only comments, the defaults being reasonably sane. This
configuration file is described by the &man.dhclient.conf.5;
manual page./sbin/dhclientdhclient is statically linked and
resides in /sbin. The &man.dhclient.8;
manual page gives more information about
dhclient./sbin/dhclient-scriptdhclient-script is the FreeBSD-specific
DHCP client configuration script. It is described in
&man.dhclient-script.8;, but should not need any user
modification to function properly./var/db/dhclient.leasesThe DHCP client keeps a database of valid leases in this
file, which is written as a log. &man.dhclient.leases.5;
gives a slightly longer description.Further ReadingThe DHCP protocol is fully described in
RFC 2131.
An informational resource has also been set up at
.Installing and Configuring a DHCP ServerWhat This Section CoversThis section provides information on how to configure
a FreeBSD system to act as a DHCP server using the ISC
(Internet Software Consortium) implementation of the DHCP
server.The server is not provided as part of
FreeBSD, and so you will need to install the
net/isc-dhcp3-server
port to provide this service. See for
more information on using the Ports Collection.DHCP Server InstallationDHCPinstallationIn order to configure your FreeBSD system as a DHCP
server, you will need to ensure that the &man.bpf.4;
device is compiled into your kernel. To do this, add
device bpf to your kernel
configuration file, and rebuild the kernel. For more
information about building kernels, see .The bpf device is already
part of the GENERIC kernel that is
supplied with FreeBSD, so you do not need to create a custom
kernel in order to get DHCP working.Those who are particularly security conscious
should note that bpf
is also the device that allows packet sniffers to work
correctly (although such programs still need privileged
access). bpfis required to use DHCP, but if
you are very sensitive about security, you probably
should not include bpf in your
kernel purely because you expect to use DHCP at some
point in the future.The next thing that you will need to do is edit the sample
dhcpd.conf which was installed by the
net/isc-dhcp3-server port.
By default, this will be
/usr/local/etc/dhcpd.conf.sample, and you
should copy this to
/usr/local/etc/dhcpd.conf before proceeding
to make changes.Configuring the DHCP ServerDHCPdhcpd.confdhcpd.conf is
comprised of declarations regarding subnets and hosts, and is
perhaps most easily explained using an example :option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}This option specifies the domain that will be provided
to clients as the default search domain. See
&man.resolv.conf.5; for more information on what this
means.This option specifies a comma separated list of DNS
servers that the client should use.The netmask that will be provided to clients.A client may request a specific length of time that a
lease will be valid. Otherwise the server will assign
a lease with this expiry value (in seconds).This is the maximum length of time that the server will
lease for. Should a client request a longer lease, a lease
will be issued, although it will only be valid for
max-lease-time seconds.This option specifies whether the DHCP server should
attempt to update DNS when a lease is accepted or released.
In the ISC implementation, this option is
required.This denotes which IP addresses should be used in
the pool reserved for allocating to clients. IP
addresses between, and including, the ones stated are
handed out to clients.Declares the default gateway that will be provided to
clients.The hardware MAC address of a host (so that the DHCP server
can recognize a host when it makes a request).Specifies that the host should always be given the
same IP address. Note that using a hostname is
correct here, since the DHCP server will resolve the
hostname itself before returning the lease
information.Once you have finished writing your
dhcpd.conf,
you should enable the DHCP server in
/etc/rc.conf, i.e. by adding:dhcpd_enable="YES"
dhcpd_ifaces="dc0"Replace the dc0 interface name with the
interface (or interfaces, separated by whitespace) that your DHCP
server should listen on for DHCP client requests.Then, you can proceed to start the server by issuing the
following command:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startShould you need to make changes to the configuration of your
server in the future, it is important to note that sending a
SIGHUP signal to
dhcpd does not
result in the configuration being reloaded, as it does with most
daemons. You will need to send a SIGTERM
signal to stop the process, and then restart it using the command
above.FilesDHCPconfiguration files/usr/local/sbin/dhcpddhcpd is statically linked and
resides in /usr/local/sbin. The
&man.dhcpd.8; manual page installed with the
port gives more information about
dhcpd./usr/local/etc/dhcpd.confdhcpd requires a configuration
file, /usr/local/etc/dhcpd.conf before it
will start providing service to clients. This file needs to
contain all the information that should be provided to clients
that are being serviced, along with information regarding the
operation of the server. This configuration file is described
by the &man.dhcpd.conf.5; manual page installed
by the port./var/db/dhcpd.leasesThe DHCP server keeps a database of leases it has issued
in this file, which is written as a log. The manual page
&man.dhcpd.leases.5;, installed by the port
gives a slightly longer description./usr/local/sbin/dhcrelaydhcrelay is used in advanced
environments where one DHCP server forwards a request from a
client to another DHCP server on a separate network. If you
require this functionality, then install the net/isc-dhcp3-relay port. The
&man.dhcrelay.8; manual page provided with the
port contains more detail.ChernLeeContributed by TomRhodesDanielGerzoDomain Name System (DNS)OverviewBIND&os; utilizes, by default, a version of BIND (Berkeley
Internet Name Domain), which is the most common implementation
of the DNS protocol. DNS
is the protocol through which names are mapped to
IP addresses, and vice versa. For example, a
query for www.FreeBSD.org will
receive a reply with the IP address of The
&os; Project's web server, whereas, a query for ftp.FreeBSD.org will return the
IP address of the corresponding
FTP machine. Likewise, the opposite can
happen. A query for an IP address can
resolve its hostname. It is not necessary to run a name server
to perform DNS lookups on a system.&os; currently comes with BIND9
DNS server software by default. Our
installation provides enhanced security features, a new file
system layout and automated &man.chroot.8; configuration.DNSDNS is coordinated across the Internet
through a somewhat complex system of authoritative root, Top
Level Domain (TLD), and other smaller-scale
name servers which host and cache individual domain
information.Currently, BIND is maintained by the
Internet Software Consortium
.TerminologyTo understand this document, some terms related to
DNS must be understood.resolverreverse DNSroot zoneTermDefinitionForward DNSMapping of hostnames to IP addresses.OriginRefers to the domain covered in a particular zone
file.named, BIND, name serverCommon names for the BIND name server package within
&os;.ResolverA system process through which a
machine queries a name server for zone information.Reverse DNSThe opposite of forward DNS;
mapping of IP addresses to
hostnames.Root zoneThe beginning of the Internet zone hierarchy.
All zones fall under the root zone, similar to how
all files in a file system fall under the root
directory.ZoneAn individual domain, subdomain, or portion of the
DNS administered by the same
authority.zonesexamplesExamples of zones:. is the root zone.org. is a Top Level Domain
(TLD) under the root zone.example.org. is a
zone under the org.
TLD.1.168.192.in-addr.arpa is a zone
referencing all IP addresses which fall
under the 192.168.1.*
IP space.As one can see, the more specific part of a hostname appears
to its left. For example, example.org. is more specific than
org., as org. is more specific
than the root zone. The layout of each part of a hostname is
much like a file system: the
/dev directory falls
within the root, and so on.Reasons to Run a Name ServerName servers usually come in two forms: an authoritative
name server, and a caching name server.An authoritative name server is needed when:One wants to serve DNS information to
the world, replying authoritatively to queries.A domain, such as example.org, is registered and
IP addresses need to be assigned to
hostnames under it.An IP address block requires reverse
DNS entries (IP to
hostname).A backup or second name server, called a slave, will
reply to queries.A caching name server is needed when:A local DNS server may cache and
respond more quickly than querying an outside name
server.When one queries for www.FreeBSD.org, the resolver usually
queries the uplink ISP's name server, and
retrieves the reply. With a local, caching
DNS server, the query only has to be made
once to the outside world by the caching DNS
server. Every additional query will not have to look to the
outside of the local network, since the information is cached
locally.How It WorksIn &os;, the BIND daemon is called
named for obvious reasons.FileDescription&man.named.8;The BIND daemon.&man.rndc.8;Name server control utility./etc/namedbDirectory where BIND zone information resides./etc/namedb/named.confConfiguration file of the daemon.Depending on how a given zone is configured on the server,
the files related to that zone can be found in the master, slave, or dynamic subdirectories of the
/etc/namedb directory.
These files contain the DNS information that
will be given out by the name server in response to queries.Starting BINDBINDstartingSince BIND is installed by default, configuring it all is
relatively simple.The default named configuration
is that of a basic resolving name server, ran in a
&man.chroot.8; environment. To start the server one time with
this configuration, use the following command:&prompt.root; /etc/rc.d/named forcestartTo ensure the named daemon is
started at boot each time, put the following line into the
/etc/rc.conf:named_enable="YES"There are obviously many configuration options for
/etc/namedb/named.conf that are beyond the
scope of this document. However, if you are interested in the
startup options for named on &os;,
take a look at the
named_* flags in
/etc/defaults/rc.conf and consult the
&man.rc.conf.5; manual page. The
section is also a good read.Configuration FilesBINDconfiguration filesConfiguration files for named
currently reside in
/etc/namedb directory and
will need modification before use, unless all that is needed is
a simple resolver. This is where most of the configuration will
be performed.Using make-localhostTo configure a master zone for the localhost visit the
/etc/namedb directory
and run the following command:&prompt.root; sh make-localhostIf all went well, a new file should exist in the
master subdirectory.
The filenames should be localhost.rev for
the local domain name and localhost-v6.rev
for IPv6 configurations. As the default
configuration file, required information will
be present in the named.conf file./etc/namedb/named.conf// $FreeBSD$
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
listen-on { 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver. To give access to the network, specify
// an IPv6 address, or the keyword "any".
// listen-on-v6 { ::1; };
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
forwarders {
127.0.0.1;
};
*/Just as the comment says, to benefit from an uplink's
cache, forwarders can be enabled here.
Under normal circumstances, a name server will recursively
query the Internet looking at certain name servers until it
finds the answer it is looking for. Having this enabled will
have it query the uplink's name server (or name server
provided) first, taking advantage of its cache. If the uplink
name server in question is a heavily trafficked, fast name
server, enabling this may be worthwhile.127.0.0.1 will
not work here. Change this
IP address to a name server at your
uplink. /*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND versions 8 and later
* use a pseudo-random unprivileged UDP port by default.
*/
// query-source address * port 53;
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/localhost.rev";
};
// RFC 3152
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
type master;
file "master/localhost-v6.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries. It can be convenient to become
// a slave at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to set up a primary zone, make sure you fully
// understand how DNS and BIND works. There are sometimes
// non-obvious pitfalls. Setting up a slave zone is simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
/* An example master zone
zone "example.net" {
type master;
file "master/example.net";
};
*/
/* An example dynamic zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
/* Examples of forward and reverse slave zones
zone "example.com" {
type slave;
file "slave/example.com";
masters {
192.168.1.1;
};
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/In named.conf, these are examples of
slave entries for a forward and reverse zone.For each new zone served, a new zone entry must be added
to named.conf.For example, the simplest zone entry for
example.org can look
like:zone "example.org" {
type master;
file "master/example.org";
};The zone is a master, as indicated by the
statement, holding its zone information
in /etc/namedb/master/example.org
indicated by the statement.zone "example.org" {
type slave;
file "slave/example.org";
};In the slave case, the zone information is transferred
from the master name server for the particular zone, and saved
in the file specified. If and when the master server dies or
is unreachable, the slave name server will have the
transferred zone information and will be able to serve
it.Zone FilesBINDzone filesAn example master zone file for example.org (existing within
/etc/namedb/master/example.org) is as
follows:$TTL 3600 ; 1 hour
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
; Aliases
www IN CNAME @
Note that every hostname ending in a . is an
exact hostname, whereas everything without a trailing
. is referenced to the origin. For example,
www is translated into
www.origin.
In our fictitious zone file, our origin is
example.org., so www
would translate to www.example.org.
The format of a zone file follows:
recordname IN recordtype valueDNSrecords
The most commonly used DNS records:
SOAstart of zone authorityNSan authoritative name serverAa host addressCNAMEthe canonical name for an aliasMXmail exchangerPTRa domain name pointer (used in reverse DNS)
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.the domain name, also the origin for this
zone file.ns1.example.org.the primary/authoritative name server for this
zone.admin.example.org.the responsible person for this zone,
email address with @
replaced. (admin@example.org becomes
admin.example.org)2006051501the serial number of the file. This
must be incremented each time the zone file is
modified. Nowadays, many admins prefer a
yyyymmddrr format for the serial
number. 2006051501 would mean
last modified 05/15/2006, the latter
01 being the first time the zone
file has been modified this day. The serial number
is important as it alerts slave name servers for a
zone when it is updated.
IN NS ns1.example.org.
This is an NS entry. Every name server that is going to reply
authoritatively for the zone must have one of these entries.
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
The A record indicates machine names. As seen above,
ns1.example.org would resolve
to 192.168.1.2.
IN A 192.168.1.1This line assigns IP address
192.168.1.1 to the current origin,
in this case example.org.
www IN CNAME @
The canonical name record is usually used for giving aliases
to a machine. In the example, www is
aliased to the master machine which name equals
to domain name example.org
(192.168.1.1).
CNAMEs can be used to provide alias
hostnames, or round robin one hostname among multiple
machines.
MX record
IN MX 10 mail.example.org.
The MX record indicates which mail
servers are responsible for handling incoming mail for the
zone. mail.example.org is the
hostname of the mail server, and 10 being the priority of
that mail server.
One can have several mail servers, with priorities of 10,
20 and so on. A mail server attempting to deliver to example.org would first try the
highest priority MX (the record with the lowest priority
number), then the second highest, etc, until the mail can be
properly delivered.
For in-addr.arpa zone files (reverse DNS), the same format is
used, except with PTR entries instead of
A or CNAME.
$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.This file gives the proper IP address to hostname
mappings of our above fictitious domain.Caching Name ServerBINDcaching name serverA caching name server is a name server that is not
authoritative for any zones. It simply asks queries of its
own, and remembers them for later use. To set one up, just
configure the name server as usual, omitting any inclusions of
zones.SecurityAlthough BIND is the most common implementation of DNS,
there is always the issue of security. Possible and
exploitable security holes are sometimes found.
While &os; automatically drops
named into a &man.chroot.8;
environment; there are several other security mechanisms in
place which could help to lure off possible
DNS service attacks.It is always good idea to read CERT's security advisories
and to subscribe to the &a.security-notifications; to stay up to
date with the current Internet and &os; security issues.If a problem arises, keeping sources up to date and
having a fresh build of named would
not hurt.Further ReadingBIND/named manual pages:
&man.rndc.8; &man.named.8; &man.named.conf.5;Official ISC BIND
PageOfficial ISC BIND
Forum
BIND FAQO'Reilly
DNS and BIND 5th EditionRFC1034
- Domain Names - Concepts and FacilitiesRFC1035
- Domain Names - Implementation and SpecificationMurrayStokelyÓõíåéóöïñÜ ôïõ ÂáããÝëçòÔõðÜëäïòÌåôÜöñáóç Ï åîõðçñåôçôÞò HTTP ApacheåîõðçñåôçôÝò webåãêáôÜóôáóçApacheÓýíïøçÔï &os; ÷ñçóéìïðïéåßôáé ãéá íá öéëïîåíåß ðáãêïóìßùò éóôïóåëßäåò
ìåãÜëçò åðéóêåøéìüôçôáò. Ïé ðåñéóóüôåñïé äéáêïìéóôÝò web óôï
äéáäßêôõï ÷ñçóéìïðïéïýí ôïí åîõðçñåôçôÞ HTTP
Apache. Ôá ðáêÝôá ëïãéóìéêïý
ôïõ Apache èá ðñÝðåé íá ðåñéÝ÷ïíôáé óôï
ìÝóï åãêáôáôÜóôáóçò ôïõ &os; ðïõ ÷ñçóéìïðïéåßôå. Áí äåí åãêáôáóôÞóáôå
ôïí Apache êáôÜ ôçí äéÜñêåéá ôçò
åãêáôÜóôáóçò ôïõ &os;, ôüôå ìðïñåßôå íá ôïí åãêáôáóôÞóåôå áðü ôï
ðáêÝôï www/apache13 Þ áðü ôï
ðáêÝôï www/apache20.Áöïý ïëïêëçñþóåôå åðéôõ÷þò ôçí åãêáôÜóôáóç
ôïõ Apache, èá ðñÝðåé íá êÜíåôå ôéò
áðáñáßôçôåò ñõèìßóåéò.ÁõôÞ ç åíüôçôá êáëýðôåé ôçí Ýêäïóç
åîõðçñåôçôþí Apache HTTP 1.3.X, ìéáò ðïõ
áõôÞ ç Ýêäïóç åßíáé ç ðéï äéáäåäïìÝíç ãéá ôï &os;.
Ï Apache 2.X ðáñïõóéÜæåé ðïëëÝò íÝåò
ôå÷íïëïãßåò áëëÜ áõôÝò äåí ðåñéãñÜöïíôáé óå áõôÞ ôçí åíüôçôá.
Ðåñéóóüôåñåò ðëçñïöïñßåò ãéá
ôïí Apache 2.X, ìðïñåßôå íá äåßôå
óôçí óåëßäá .ÑõèìßóåéòApacheáñ÷åßï ñõèìßóåùíÓôï &os; ôï óçìáíôéêüôåñï áñ÷åßï ñõèìßóåùí
ôïõ ÅîõðçñåôçôÞ HTTP Apache åßíáé
ôï /usr/local/etc/apache/httpd.conf. Åßíáé Ýíá
ôõðéêü &unix; ñõèìéóôéêü áñ÷åßï êåéìÝíïõ, ìå ãñáììÝò ó÷ïëßùí ðïõ
îåêéíïýí ìå ôïí ÷áñáêôÞñá #. Óêïðüò ìáò åäþ äåí
åßíáé ìéá ïëïêëçñùìÝíç ðåñéãñáöÞ üëùí ôùí ðéèáíþí åðéëïãþí, åðïìÝíùò
èá ðåñéãñÜøïõìå ìüíï ôéò ðéï äçìïöéëåßò åðéëïãÝò ñõèìßóåéò
(configuration directives).ServerRoot "/usr/local"Åäþ ðåñéãñÜöåôáé ï ðñïåðéëåãìÝíïò éåñáñ÷éêÜ êáôÜëïãïò
åãêáôÜóôáóçò ãéá ôïí Apache. Ôá
åêôåëÝóéìá áñ÷åßá åßíáé áðïèçêåõìÝíá óôïõò
õðïêáôáëüãïõò bin
êáé sbin ôïõ
êáôáëüãïõ ServerRoot êáé ôá áñ÷åßá ñõèìßóåùí
áðïèçêåýïíôáé óôïí
êáôÜëïãï etc/apache.ServerAdmin you@your.addressÇ çëåêôñïíéêÞ äéåýèõíóç óôçí ïðïßá èá ðñÝðåé íá
áðïóôÝëëïíôáé áíáöïñÝò ðñïâëçìÜôùí ó÷åôéêÜ ìå ôïí
åîõðçñåôçôÞ. ÁõôÞ ç äéåýèõíóç åìöáíßæåôáé óå êÜðïéåò óåëßäåò ðïõ
äçìéïõñãïýíôáé áðü ôïí åîõðçñåôçôÞ, üðùò ïé óåëßäåò
óöáëìÜôùí.ServerName www.example.comÔï ServerName óáò åðéôñÝðåé íá èÝóåôå Ýíá
üíïìá êüìâïõ (hostname) ãéá ôïí åîõðçñåôçôÞ óáò, ôï ïðïßï
áðïóôÝëëåôáé ðßóù óôïõò clients áí åßíáé äéáöïñåôéêü áðü åêåßíï
ðïõ Ý÷åôå Þäç ñõèìßóåé óôïí êüìâï óáò (åäþ ìðïñåßôå, ãéá
ðáñÜäåéãìá, íá ÷ñçóéìïðïéÞóåôå www áíôß ôïõ
ðñáãìáôéêïý ïíüìáôïò ôïõ êüìâïõ).DocumentRoot "/usr/local/www/data"DocumentRoot: Åßíáé ï êáôÜëïãïò áðü ôïí
ïðïßï èá ðñïóöÝñïíôáé ôá Ýããñáöá óáò. ÐñïåðéëåãìÝíá, üëá ôá
áéôÞìáôá èá åîõðçñåôïýíôáé áðü áõôü ôïí êáôÜëïãï, áëëÜ ìðïñïýí
åðßóçò íá ÷ñçóéìïðïéçèïýí óõìâïëéêïß äåóìïß (symbolic link) Þ
ðáñùíýìéá (aliases) ðïõ èá óôï÷åýïõí óå Üëëåò ôïðïèåóßåò.Ðñéí êÜíåôå ïðïéáäÞðïôå áëëáãÞ, åßíáé êáëü íá äçìéïõñãåßôå
áíôßãñáöá áóöáëåßáò (backup) ôïõ áñ÷åßïõ ñõèìßóåùí
ôïõ Apache. Ìüëéò êñßíåôå ðùò åßóôå
éêáíïðïéçìÝíïò ìå ôéò áñ÷éêÝò ñõèìßóåéò ìðïñåßôå íá îåêéíÞóåôå ìå ôçí
åêôÝëåóç ôïõ Apache.ÅêôÝëåóç ôïõ ApacheApacheåêêßíçóç Þ óôáìÜôçìáO Apache äåí ôñÝ÷åé äéáìÝóïõ ôïõ
õðåñ-äéáêïìéóôÞ inetd üðùò êÜíïõí ðïëëïß
Üëëïé äéêôõáêïß åîõðçñåôçôÝò. Åßíáé ñõèìéóìÝíïò íá ôñÝ÷åé áõôüíïìá
ãéá íá åîõðçñåôåß êáëýôåñá ôéò áéôÞóåéò HTTP ôùí ðåëáôþí ôïõ, äçëáäÞ
ôùí ðñïãñáììÜôùí ðëïÞãçóçò (browsers). Ç åãêáôÜóôáóç
ôïõ Apache áðü ôá &os; Ports ðåñéÝ÷åé Ýíá
âïçèçôéêü shell script ãéá ôçí åêêßíçóç, ôï óôáìÜôçìá êáé ôçí
åðáíåêêßíçóç ôïõ åîõðçñåôçôÞ. Ãéá íá îåêéíÞóåôå
ôïí Apache ãéá ðñþôç öïñÜ, áðëÜ
ôñÝîôå:&prompt.root; /usr/local/sbin/apachectl startÌðïñåßôå ïðïéáäÞðïôå óôéãìÞ íá óôáìáôÞóåôå ôïí åîõðçñåôçôÞ,
ðëçêôñïëïãþíôáò:&prompt.root; /usr/local/sbin/apachectl stopÌåôÜ áðü áëëáãÝò ðïõ ðéèáíþò íá êÜíáôå ãéá ïðïéïíäÞðïôå ëüãï óôï
áñ÷åßï ñõèìßóåùí, èá ÷ñåéáóôåß íá åðáíåêêéíÞóåôå ôïí
åîõðçñåôçôÞ:&prompt.root; /usr/local/sbin/apachectl restartÃéá íá åðáíåêêéíÞóåôå ôïí Apache äß÷ùò
íá äéáêüøåôå ôéò ôñÝ÷ïõóåò óõíäÝóåéò, ôñÝîôå:&prompt.root; /usr/local/sbin/apachectl gracefulÐåñéóóüôåñåò ðëçñïöïñßåò èá âñåßôå óôç óåëßäá âïÞèåéáò ôïõ
&man.apachectl.8;.Ãéá íá îåêéíÜåé ï Apache áõôüìáôá êáôÜ
ôç äéÜñêåéá åêêßíçóçò ôïõ óõóôÞìáôïò, ðñïóèÝóôå ôçí áêüëïõèç ãñáììÞ
óôï /etc/rc.conf:apache_enable="YES"Áí åðéèõìåßôå íá ðáñÝ÷ïíôáé êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò
ðñüóèåôåò åðéëïãÝò óôçí ãñáììÞ åíôïëþí ãéá ôï
ðñüãñáììá Apachehttpd
ìðïñåßôå íá ôéò äçëþóåôå ìå ìéá ðñüóèåôç ãñáììÞ
óôï rc.conf:apache_flags=""Ôþñá ðïõ Ý÷åé îåêéíÞóåé ï åîõðçñåôÞò web, ìðïñåßôå íá äåßôå ôçí
éóôïóåëßäá óáò óôï÷åýïíôáò ôï ðñüãñáììá ðëïÞãçóçò
óôï http://localhost/. Ç ðñïêáèïñéóìÝíç óåëßäá ðïõ
åìöáíßæåôáé åßíáé
ç /usr/local/www/data/index.html.Virtual HostingÏ Apache õðïóôçñßæåé äýï äéáöïñåôéêïýò
ôýðïõò Virtual Hosting. Ôï Ïíïìáóôéêü virtual hosting ÷ñçóéìïðïéåß
ôïõò HTTP/1.1 headers ãéá íá êáèïñßóåé ôïí êüìâï. Áõôü åðéôñÝðåé ôçí
êïéíÞ ÷ñÞóç ôçò ßäéáò IP ãéá ðïëëÜ êáé äéáöïñåôéêÜ domains.Ãéá íá ñõèìßóåôå ôïí Apache íá
÷ñçóéìïðïéåß ôï Ïíïìáóôéêü Virtual Hosting åéóÜãåôå ìéá êáôá÷þñéóç
óôï httpd.conf óáí ôçí áêüëïõèç:NameVirtualHost *Áí ï äéáêïìéóôÞò web
ïíïìÜæåôáé www.domain.tld êáé åðéèõìåßôå
íá åãêáôáóôÞóåôå Ýíá virtual domain ãéá
ôï www.someotherdomain.tld ôüôå èá ðñÝðåé
íá ðñïóèÝóåôå ôéò áêüëïõèåò êáôá÷ùñÞóåéò
óôïhttpd.conf:<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
</VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>ÁíôéêáôáóôÞóôå ôéò ðáñáðÜíù äéåõèýíóåéò ìå åêåßíåò ðïõ åðéèõìåßôå
íá ÷ñçóéìïðïéÞóåôå êáé ôçí êáôÜëëçëç äéáäñïìÞ ðñïò ôá ÝããñáöÜ
óáò.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôéò ñõèìßóåéò ãéá ôá
virtual host, óáò ðñïôñÝðïõìå íá óõìâïõëåõôåßôå ôçí åðßóçìç ôåêìçñßùóç
ôïõ Apache
óôï .Apache ModulesApachemodulesApacheáñèñþìáôáApacheåðåêôÜóåéòÕðÜñ÷ïõí ðïëëïß êáé äéÜöïñïé äéáèÝóéìïé ôýðïé áñèñùìÜôùí (modules)
ãéá ôïí Apache, ôá ïðïßá åðåêôåßíïõí êé
åìðëïõôßæïõí ôéò ëåéôïõñãßåò ôïõ âáóéêïý åîõðçñåôçôÞ. Ç ÓõëëïãÞ ôùí
Ports ôïõ &os; ðáñÝ÷åé Ýíáí åýêïëï ôñüðï ãéá íá åãêáôáóôÞóåôå
ôïí Apache êáé ìåñéêÜ áðü ôá ðéï äçìïöéëÞ
áñèñþìáôá.mod_sslweb serverssecureSSLcryptographyÔï Üñèñùìá mod_ssl ÷ñçóéìïðïéåß ôçí
âéâëéïèÞêç OpenSSL ãéá íá ðáñÝ÷åé éó÷õñÞ êñõðôïãñÜöçóç äéáìÝóïõ ôùí
ðñùôïêüëùí Secure Sockets Layer (SSL v2/v3) êáé Transport Layer
Security (TLS v1). Ôï Üñèñùìá ðáñÝ÷åé üëá ôá áðáñáßôçôá óõóôáôéêÜ
ãéá íá ìðïñåß íá áéôåßôáé õðïãåããñáììÝíá ðéóôïðïéçôéêÜ áðü Ýìðéóôïõò
åîïõóéïäïôçìÝíïõò öïñåßò ðéóôïðïßçóçò Ýôóé þóôå íá ìðïñåßôå íá
ôñÝ÷åôå Ýíáí áóöáëÞ åîõðçñåôçôÞ web óôï &os;.ÅÜí äåí Ý÷åôå åãêáôáóôÞóåé áêüìç
ôïí Apache, ìðïñåßôå íá åãêáôáóôÞóåôå ôçí
Ýêäïóç ôïõ Apache 1.3.X ðïõ ðåñéëáìâÜíåé
ôï mod_ssl áðü ôçí
port www/apache13-modssl . Ôï
SSL åßíáé åðßóçò äéáèÝóéìï ãéá
ôïí Apache 2.X óôçí
port www/apache20, üðïõ ôï SSL
åßíáé åíåñãïðïéçìÝíï áðü ðñïåðéëïãÞ.ÄõíáìéêÝò Éóôïóåëßäåò ìå Perl & PHPÔçí ôåëåõôáßá äåêáåôßá, ðïëëÝò åðé÷åéñÞóåéò óôñÝøáíå ôéò
äñáóôçñéüôçôåò ôïõò ðñïò ôï ºíôåñíåô ìå óêïðü íá âåëôéþóïõí ôá Ýóïäá
ôïõò êáé ãéá ìåãáëýôåñç ðñïâïëÞ. Áõôü ìå ôç óåéñÜ ôïõ äçìéïýñãçóå
ôçí áíÜãêç ãéá äéáäñáóôéêü äéáäéêôõáêü ðåñéå÷üìåíï. Åíþ êÜðïéåò
åôáéñåßåò, üðùò ç µsoft;, ðáñïõóßáóáí ëýóåéò åíóùìáôùìÝíåò óôá
éäéüêôçôá ðñïúüíôá ôïõò, ç êïéíüôçôá áíïé÷ôïý ëïãéóìéêïý Ýëáâå ôï
ìÞíõìá. Óôéò óýã÷ñïíåò åðéëïãÝò ãéá äéáäéêôõáêÝò óåëßäåò äõíáìéêïý
ðåñéå÷ïìÝíïõ ðåñéëáìâÜíïíôáé ôá Django, Ruby on Rails, mod_perl êáé
mod_php.
mod_perl &
mod_php.mod_perlmod_perlPerlÔï ãåãïíüò óõíýðáñîçò Apache/Perl
öÝñíåé êïíôÜ ôç ìåãÜëç äýíáìç ôçò ãëþóóáò ðñïãñáììáôéóìïý Perl êáé
ôïí åîõðçñåôçôÞ HTTP Apache. Ìå ôï
Üñèñùìá mod_perl Ý÷åôå ôç äõíáôüôçôá íá
ãñÜøåôå åðåêôÜóåéò ãéá ôïí Apache åî'
ïëïêëÞñïõ óå Perl. ÅðéðëÝïí, ï äéáôçñÞóéìïò ìåôáãëùôôéóôÞò ðïõ
åßíáé åíóùìáôùìÝíïò óôïí åîõðçñåôçôÞ óáò åðéôñÝðåé íá áðïöýãåôå ôçí
÷ñÞóç åíüò åîùôåñéêïý ìåôáãëùôôéóôÞ Perl êáé íá åðéâáñõíèåßôå áðü ôï
÷ñüíï åêêßíçóçò ôïõ.Ôï mod_perl äéáôßèåôáé ìå äéÜöïñïõò
ôñüðïõò. Ãéá íá ÷ñçóéìïðïéÞóåôå
ôï mod_perl íá èõìÜóôå üôé ôï mod_perl
1.0 mod_perl 1.0 äïõëåýåé ìüíï ìå
ôïí Apache 1.3 êáé
ôï mod_perl 2.0 äïõëåýåé ìüíï ìå
ôïí Apache 2.
Ôï mod_perl 1.0 åßíáé äéáèÝóéìï óôï
port www/mod_perl åíþ ìéá
óôáôéêÜ ìåôáãëùôôéóìÝíç Ýêäïóç åßíáé äéáèÝóéìç
óôï www/apache13-modperl.
Ôï mod_perl 2.0 äéáôßèåôáé óôï
port www/mod_perl2.TomRhodesÓõããñáöÞ áðü ôïí mod_phpmod_phpPHPÔï PHP, ãíùóôü êáé ùò PHP: Hypertext
Preprocessor åßíáé ìéá script ãëþóóá ðñïãñáììáôéóìïý
ãåíéêÞò ÷ñÞóçò áëëÜ éäéáßôåñá êáôÜëëçëç ãéá áíÜðôõîç ëïãéóìéêïý Web.
Ç óýíôáîÞ ôçò ðñïÝñ÷åôáé áðü ôéò C, &java; êáé Perl êáé Ý÷åé ôçí
äõíáôüôçôá íá åíóùìáôþíåôáé óå êþäéêá HTML, ìå
óêïðü íá åðéôñÝðåé óôïõò ðñïãñáììáôéóôÝò web íá ãñÜöïõí ãñÞãïñá
äõíáìéêÝò éóôïóåëßäåò.Ï Apache õðïóôçñßæåé
ôï PHP5. Ìðïñåßôå íá îåêéíÞóåôå åãêáèéóôþíôáò ôï
ðáêÝôï lang/php5.Áí ôï ðáêÝôï lang/php5
åãêáèßóôáôáé ãéá ðñþôç öïñÜ, áõôüìáôá èá óáò åìöáíéóôïýí üëåò ïé
äõíáôÝò åðéëïãÝò OPTIONS. Áí êÜðïéï ìåíïý äåí
åìöáíßæåôáé, ð.÷. åðåéäÞ ôï
ðáêÝôï lang/php5 åß÷å
åãêáôáóôáèåß óôï ðáñåëèüí, ìðïñåßôå ðÜíôá íá ñõèìßóåôå áðü ôçí áñ÷Þ
ôï ðáêÝôï, ôñÝ÷ïíôáò óôïí êáôÜëïãï ôïõ port:&prompt.root; make configÓôéò åðéëïãÝò åãêáôÜóôáóçò, äéáëÝîôå ôçí
åðéëïãÞ APACHE þóôå íá óõìðåñéëçöèåß êáé ôï
Üñèñùìá mod_php ãéá ôïí
åîõðçñåôçôÞ Apache.ÌåñéêÝò ôïðïèåóßåò ÷ñçóéìïðïéïýí áêüìç
ôï PHP4 ãéá äéÜöïñïõò ëüãïõò (ð.÷. èÝìáôá
óõìâáôüôçôïò Þ åðåéäÞ Ý÷ïõí Þäç åãêáôåóôçìÝíåò åöáñìïãÝò ðïõ ôï
áðáéôïýí). Áí åßíáé áíÜãêç íá ÷ñçóéìïðïéÞóåôå
ôï mod_php4 áíôß
ôïõ mod_php5, ôüôå ÷ñçóéìïðïéåßóôå ôï
port lang/php4. Ôï
port lang/php4 õðïóôçñßæåé
ðïëëÝò áðü ôéò ñõèìßóåéò êáé ôéò åðéëïãÝò åãêáôÜóôáóçò ôïõ
port lang/php5.Ìå áõôü ôïí ôñüðï èá åãêáôáóôáèïýí êáé èá ñõèìéóôïýí ôá
áðáéôïýìåíá áñèñþìáôá þóôå íá õðïóôçñßæïõí äõíáìéêÝò
åöáñìïãÝò PHP. Ãéá åðéâåâáßùóç åëÝãîôå ðùò Ý÷ïõí
ðñïóôåèåß óôéò áíôßóôïé÷åò åíüôçôåò
ôïõ /usr/local/etc/apache/httpd.conf ôá
áêüëïõèá::LoadModule php5_module libexec/apache/libphp5.soAddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>Áöïý ïëïêëçñþóåôå ôïí Ýëåã÷ï, ãéá íá öïñôùèåß ôï
Üñèñùìá PHP ÷ñåéÜæåôáé ìéá áðëÞ êëÞóç ìå ôçí
åíôïëÞ apachectl ãéá ìéá êáíïíéêÞ (graceful)
åðáíåêêßíçóç:&prompt.root; apachectl gracefulÃéá ìåëëïíôéêÝò áíáâáèìßóåéò ôïõ PHP, äåí
áðáéôåßôáé ç åíôïëÞ make config. Ïé
åðéëåãìÝíåò OPTIONS áðïèçêåýïíôáé áõôüìáôá áðü ôï
ìç÷áíéóìü åãêáôÜóôáóçò ôùí Ports ôïõ &os;.Ç óýíèåóç ôïõ PHP óôï &os;, åßíáé åîáéñåôéêÜ
óôïé÷åéáêÞ, êáé ï âáóéêüò êïñìüò ðïõ Ý÷åé åãêáôáóôáèåß åßíáé ðïëý
ðåñéïñéóìÝíïò. Åßíáé ðïëý åýêïëï üìùò íá ðñïóèÝóïõìå åðåêôÜóåéò
÷ñçóéìïðïéþíôáò ôï
port lang/php5-extensions. Áõôü
ôï port ðáñÝ÷åé ìåíïý åðéëïãþí ãéá ôçí åãêáôÜóôáóç ôùí åðåêôÜóéìùí
óõóôáôéêþí ôïõ PHP. ÅíáëëáêôéêÜ, ìðïñåßôå íá
åãêáôáóôÞóåôå êáèåìßá åðÝêôáóç îå÷ùñéóôÜ ÷ñçóéìïðïéþíôáò ôï
êáôÜëëçëï port.Ãéá ðáñÜäåéãìá, ãéá íá ðñïóèÝóåôå óôï PHP5,
ôç äõíáôüôçôá õðïóôÞñéîçò ãéá âÜóåéò
äåäïìÝíùíMySQL áðëÜ åãêáôáóôÞóôå ôï
port databases/php5-mysql.ÌåôÜ ôçí åãêáôÜóôáóç åíüò íÝïõ áñèñþìáôïò Þ êÜðïéáò Üëëçò
åðÝêôáóçò, ï åîõðçñåôçôÞò Apache èá
ðñÝðåé íá åðáíáöïñôùèåß ãéá íá åíåñãïðïéçèïýí ïé íÝåò
ñõèìßóåéò:&prompt.root; apachectl gracefulMurrayStokelyÓõíåéóöïñÜ ôïõ Ðñùôüêïëï ÌåôáöïñÜò Áñ÷åßùí (FTP)FTP serversÓýíïøçÔï Ðñùôüêïëï ÌåôáöïñÜò Áñ÷åßùí (File Transfer Protocol - FTP)
ðáñÝ÷åé óôïõò ÷ñÞóôåò Ýíáí åýêïëï ôñüðï ãéá íá ìåôáöÝñïõí ôá áñ÷åßá
ôïõò áðü êáé ðñïò Ýíáí åîõðçñåôçôÞ FTP. Ôï âáóéêü óýóôçìá ôïõ &os; ðåñéëáìâÜíåé Ýíá
åîõðçñåôçôÞ FTP, ôï ftpd. Áõôü êáèéóôÜ ôçí
åãêáôÜóôáóç êáé ôçí äéá÷åßñéóç ôïõ åîõðçñåôçôÞ FTP ðïëý åýêïëç õðüèåóç.ÑõèìßóåéòÔï ðéï óçìáíôéêü âÞìá óôéò ñõèìßóåéò åßíáé íá áðïöáóßóåôå óå
ðïéïýò ëïãáñéáóìïýò èá åðéôñáðåß ç ðñüóâáóç óôïí åîõðçñåôçôÞ FTP. ¸íá
óõíçèéóìÝíï óýóôçìá &os; äçìéïõñãåß ìåñéêïýò ëïãáñéáóìïýò óõóôÞìáôïò
ãéá äéÜöïñïõò äáßìïíåò, áëëÜ äåí ðñÝðåé íá åðéôñÝðåôáé ç ðñüóâáóç óôï
óýóôçìá ìå áõôïýò ôïõò ëïãáñéáóìïýò. Ôï
áñ÷åßï /etc/ftpusers ðåñéÝ÷åé ìéá ëßóôá áðü
÷ñÞóôåò ãéá ôïõò ïðïßïõò áðïññßðôåôáé ç ðñüóâáóç ìÝóù FTP.
ÐñïåðéëåãìÝíá, ðåñéÝ÷ïíôáé ïé ðñïáíáöåñèÝíôåò ëïãáñéáóìïß ôïõ
óõóôÞìáôïò, áëëÜ ìðïñåßôå åðßóçò íá ðñïóèÝóåôå óõãêåêñéìÝíïõò ÷ñÞóôåò
ðïõ äå èá ðñÝðåé íá Ý÷ïõí ðñüóâáóç ìÝóù FTP.Ìðïñåßôå áí èÝëåôå íá ðåñéïñßóåôå ôçí ðñüóâáóç óå êÜðïéïõò
÷ñÞóôåò, äß÷ùò üìùò íá ôïõò åìðïäßóåôå ðëÞñùò. Áõôü ìðïñåß íá óõìâåß
ìå ôéò ñõèìßóåéò ôïõ áñ÷åßïõ /etc/ftpchroot.
Áõôü ôï áñ÷åßï ðåñéÝ÷åé ëßóôåò ÷ñçóôþí êáé ïìÜäùí ðåñéïñéóìÝíçò
ðñüóâáóçò FTP. Ç óåëßäá âïÞèåéáò &man.ftpchroot.5; ðåñéÝ÷åé üëåò ôéò
áðáñáßôçôåò ëåðôïìÝñåéåò, åðïìÝíùò äå èá ÷ñåéáóôåß íá ìðïýìå óå
ëåðôïìÝñåéåò åäþ.FTPanonymousÁí åðéèõìåßôå íá åíåñãïðïéÞóåôå áíþíõìç ðñüóâáóç FTP óôïí
åîõðçñåôçôÞ óáò, èá ðñÝðåé íá äçìéïõñãÞóåôå, óôï &os; óýóôçìá óáò, Ýíá
÷ñÞóôç ìå üíïìá ftp . Ïé áíþíõìïé ÷ñÞóôåò èá
ìðïñïýí íá åéóÝñ÷ïíôáé óôïí åîõðçñåôçôÞ FTP ìå ôï ãåíéêü üíïìá
÷ñÞóôç ftp Þ ìå anonymous
êáé ìå ïðïéáäÞðïôå êùäéêü ðñüóâáóçò (óõíçèßæåôáé íá æçôåßôáé ç
äéåýèõíóç email ôïõ ÷ñÞóôç ùò êùäéêüò ðñüóâáóçò). Ï åîõðçñåôçôÞò FTP
èá êáëÝóåé ôï &man.chroot.2; ìüëéò åéóÝëèç ï áíþíõìïò ÷ñÞóôçò, ãéá íá
ôïõ ðåñéïñßóåé ôçí ðñüóâáóç, åðéôñÝðïíôáò ôïõ ìüíï ôïí áñ÷éêü êáôÜëïãï
(home directory) ôïõ ÷ñÞóôç ftp.ÕðÜñ÷ïõí äýï áñ÷åßá êåéìÝíïõ ãéá ôïí ïñéóìü ìçíõìÜôùí
êáëùóïñßóìáôïò ðïõ èá åìöáíßæïíôáé óôïõò ðåëÜôåò FTP. Ôï ðåñéå÷üìåíï
ôïõ áñ÷åßïõ /etc/ftpwelcome åìöáíßæåôáé óôïõò
÷ñÞóôåò ðñéí öôÜóïõí óôçí ðñïôñïðÞ åéóüäïõ. ÌåôÜ áðü ìéá ðåôõ÷çìÝíç
åßóïäï óôï óýóôçìá, åìöáíßæåôáé ôï ðåñéå÷üìåíï ôïõ
áñ÷åßïõ /etc/ftpmotd. ÐáñáôçñÞóôå ðùò ç äéáäñïìÞ
óå áõôü ôï áñ÷åßï åßíáé ó÷åôéêÞ ìå ôï ðåñéâÜëëïí ðñüóâáóçò, åðïìÝíùò
ãéá ôïõò áíþíõìïõò ÷ñÞóôåò èá åìöáíßæåôáé ôï ðåñéå÷üìåíï ôïõ
áñ÷åßïõ ~ftp/etc/ftpmotd.Áöïý ñõèìßóåôå êáôÜëëçëá ôïí åîõðçñåôçôÞ FTP, èá ðñÝðåé íá ôïí
åíåñãïðïéÞóåôå óôï áñ÷åßï /etc/inetd.conf. Ôï
ìüíï ðïõ ÷ñåéÜæåôáé íá êÜíåôå åßíáé íá áöáéñÝóåôå ôï óýìâïëï
ó÷ïëéáóìïý # ìðñïóôÜ áðü ôçí õðÜñ÷ïõóá
ãñáììÞ ftpd :ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l¼ðùò åîçãÞóáìå óôï , ç
äéåñãáóßá inetd èá ðñÝðåé íá îáíáöïñôþíåôáé
áí Ý÷ïõí ãßíåé áëëáãÝò óôï áñ÷åßï ñõèìßóåùí ôçò.Ôþñá ìðïñåßôå íá äþóåôå ôá óôïé÷åßá ôïõ ëïãáñéáóìïý óáò ãéá íá
åéóÝëèåôå óôïí åîõðçñåôçôÞ FTP.&prompt.user; ftp localhostÓõíôÞñçóçsysloglog filesFTPÏ äáßìïíáò ftpd ÷ñçóéìïðïéåß ôï
&man.syslog.3; ãéá ôçí äçìéïõñãßá ìçíõìÜôùí áíáöïñÜò. ÐñïåðéëåãìÝíá,
ï äáßìïíáò ôùí log ôïõ óõóôÞìáôïò èá åíáðïèÝôåé ôéò ó÷åôéêÝò ìå ôï FTP
áíáöïñÝò óôï áñ÷åßï /var/log/xferlog. Ç
ôïðïèåóßá ôïõ áñ÷åßïõ áíáöïñÜò ìðïñåß íá ôñïðïðïéçèåß áëëÜæïíôáò ôçí
áêüëïõèç ãñáììÞ óôï /etc/syslog.conf:ftp.info /var/log/xferlogFTPanonymousÐñÝðåé íá åßóôå åíÞìåñïé ãéá ôá ðñïâëÞìáôá ðïõ ìðïñïýí íá
ðáñïõóéáóôïýí ó÷åôéêÜ ìå ôç ëåéôïõñãßá åíüò áíþíõìïõ åîõðçñåôçôÞ FTP.
Åéäéêüôåñá, èá ðñÝðåé íá óêåöôåßôå óïâáñÜ áí üíôùò åðéèõìåßôå íá Ý÷ïõí
äõíáôüôçôá íá áíåâÜæïõí áñ÷åßá ïé áíþíõìïé ÷ñÞóôåò óáò. Áí áöÞóåôå
ïðïéïíäÞðïôå áíþíõìï ÷ñÞóôç íá áíåâÜæåé áñ÷åßá, ìðïñåß îáöíéêÜ íá
áíáêáëýøåôå ðùò ï åîõðçñåôçôÞò óáò FTP ÷ñçóéìïðïéåßôáé ãéá äéáêßíçóç
ðåéñáôéêïý åìðïñéêïý ëïãéóìéêïý Þ ãéá Üëëï, áêüìá ÷åéñüôåñï, ðáñÜíïìï
õëéêü. ÅÜí üíôùò ÷ñåéÜæåôáé ïé ÷ñÞóôåò íá Ý÷ïõí Üäåéá ðñïóèÞêçò
áñ÷åßùí, ôüôå èá ðñÝðåé íá ñõèìßóåôå ôéò Üäåéåò Ýôóé þóôå ôá áñ÷åßá
áõôÜ íá ìçí åßíáé ïñáôÜ áðü Üëëïõò áíþíõìïõò ÷ñÞóôåò, Ýùò üôïõ íá
ðÜñïõí ôçí áóöáëÞ Ýãêñéóç óáò.MurrayStokelyContributed by File and Print Services for µsoft.windows; clients (Samba)Samba serverMicrosoft Windowsfile serverWindows clientsprint serverWindows clientsOverviewSamba is a popular open source
software package that provides file and print services for
µsoft.windows; clients. Such clients can connect to and
use FreeBSD filespace as if it was a local disk drive, or
FreeBSD printers as if they were local printers.Samba software packages should
be included on your FreeBSD installation media. If you did
not install Samba when you first
installed FreeBSD, then you can install it from the net/samba3 port or package.ConfigurationA default Samba configuration
file is installed as
/usr/local/etc/smb.conf.default. This
file must be copied to
/usr/local/etc/smb.conf and customized
before Samba can be used.The smb.conf file contains runtime
configuration information for
Samba, such as definitions of the
printers and file system shares that you would
like to share with &windows; clients. The
Samba package includes a web based
tool called swat which provides a
simple way of configuring the smb.conf
file.Using the Samba Web Administration Tool (SWAT)The Samba Web Administration Tool (SWAT) runs as a
daemon from inetd. Therefore, the
following line in /etc/inetd.conf
should be uncommented before swat can be
used to configure Samba:swat stream tcp nowait/400 root /usr/local/sbin/swatAs explained in ,
the inetd must be reloaded after this configuration
file is changed.Once swat has been enabled in
inetd.conf, you can use a browser to
connect to . You will
first have to log on with the system root account.Once you have successfully logged on to the main
Samba configuration page, you can
browse the system documentation, or begin by clicking on the
Globals tab. The Globals section corresponds to the
variables that are set in the [global]
section of
/usr/local/etc/smb.conf.Global SettingsWhether you are using swat or
editing /usr/local/etc/smb.conf
directly, the first directives you are likely to encounter
when configuring Samba
are:workgroupNT Domain-Name or Workgroup-Name for the computers
that will be accessing this server.netbios nameNetBIOSThis sets the NetBIOS name by which a Samba server
is known. By default it is the same as the first
component of the host's DNS name.server stringThis sets the string that will be displayed with
the net view command and some other
networking tools that seek to display descriptive text
about the server.Security SettingsTwo of the most important settings in
/usr/local/etc/smb.conf are the
security model chosen, and the backend password format for
client users. The following directives control these
options:securityThe two most common options here are
security = share and security
= user. If your clients use usernames that
are the same as their usernames on your &os; machine
then you will want to use user level security. This
is the default security policy and it requires clients
to first log on before they can access shared
resources.In share level security, client do not need to log
onto the server with a valid username and password
before attempting to connect to a shared resource.
This was the default security model for older versions
of Samba.passdb backendNIS+LDAPSQL databaseSamba has several
different backend authentication models. You can
authenticate clients with LDAP, NIS+, a SQL database,
or a modified password file. The default
authentication method is smbpasswd,
and that is all that will be covered here.Assuming that the default smbpasswd
backend is used, the
/usr/local/private/smbpasswd file must
be created to allow Samba to
authenticate clients. If you would like to give
your &unix; user accounts access from &windows; clients, use the
following command:&prompt.root; smbpasswd -a usernamePlease see the
Official Samba HOWTO
for additional information about configuration
options. With the basics outlined here, you should have
everything you need to start running
Samba.Starting SambaThe net/samba3 port adds
a new startup script, which can be used to control
Samba. To enable this script, so
that it can be used for example to start, stop or restart
Samba, add the following line to the
/etc/rc.conf file:samba_enable="YES"This will also configure Samba
to automatically start at system boot time.It is possible then to start
Samba at any time by typing:&prompt.root; /usr/local/etc/rc.d/samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Please refer to for more
information about using rc scripts.Samba actually consists of
three separate daemons. You should see that both the
nmbd and smbd daemons
are started by the samba.sh script. If
you enabled winbind name resolution services in
smb.conf, then you will also see that
the winbindd daemon is started.You can stop Samba at any time
by typing :&prompt.root; /usr/local/etc/rc.d/samba.sh stopSamba is a complex software
suite with functionality that allows broad integration with
µsoft.windows; networks. For more information about
functionality beyond the basic installation described here,
please see .TomHukinsÓõíåéóöïñÜ ôïõ Óõã÷ñïíéóìüò Ñïëïãéïý ÓõóôÞìáôïò ìå NTPNTPÓýíïøçÌå ôï ðÝñáóìá ôïõ ÷ñüíïõ, ôï ñïëüé óõóôÞìáôïò åíüò õðïëïãéóôÞ Ý÷åé
ôçí ôÜóç íá áðïóõã÷ñïíßæåôáé. Ôï Ðñùôüêïëï ×ñïíéóìïý Äéêôýùí (Network
Time Protocol Þ NTP) ðáñÝ÷åé Ýíá ôñüðï ãéá íá åîáóöáëßóåôå ôçí
áêñßâåéá ôïõ clock óáò. ÐïëëÝò äéáäéêôõáêÝò õðçñåóßåò âáóßæïíôáé Þ ùöåëïýíôáé óå ìåãÜëï
âáèìü áðü ôçí áêñßâåéá ôïõ ñïëïãéïý óõóôÞìáôïò åíüò õðïëïãéóôÞ. Ãéá
ðáñÜäåéãìá, Ýíáò åîõðçñåôçôÞò web ìðïñåß íá äå÷èåß áéôÞóåéò ãéá
áðïóôïëÞ åíüò áñ÷åßïõ üôáí ôï áñ÷åßï áõôü Ý÷åé ôñïðïðïéçèåß ìÝ÷ñé
êÜðïéá óõãêåêñéìÝíç þñá. Óå Ýíá ðåñéâÜëëïí ôïðéêïý äéêôýïõ, åßíáé
èåìåëéþäçò áñ÷Þ ïé õðïëïãéóôÝò ðïõ èá äéáìïéñáóôïýí áñ÷åßá áðü ôïí
ßäéï äéáêïìéóôÞ áñ÷åßùí íá Ý÷ïõí óõã÷ñïíéóìÝíá ñïëüãéá, Ýôóé þóôå ôá
÷ñïíéêÜ ÷áñáêôçñéóôéêÜ ôïõ áñ÷åßïõ íá óõìöùíïýí. Åðßóçò äéåñãáóßåò
üðùò ç &man.cron.8; âáóßæïíôáé óå Ýíá áêñéâÝò ñïëüé þóôå íá ìðïñïýí íá
ôñÝ÷ïõí åíôïëÝò óôïõò ðñïêáèïñéóìÝíïõò ÷ñüíïõò.NTPntpdÔï &os; äéáôßèåôáé ìå ôïí åîõðçñåôçôÞ NTP &man.ntpd.8;, ï ïðïßïò ìðïñåß íá
÷ñçóéìïðïéçèåß ãéá íá óõã÷ñïíßæåé ôï ñïëüé óõóôÞìáôïò ôïõ õðïëïãéóôÞ
óáò, åîåôÜæïíôáò Üëëïõò åîõðçñåôçôÝò NTP Þ íá ðáñÝ÷åé ï ßäéïò õðçñåóßåò óõã÷ñïíéóìïý óå
Üëëá ìç÷áíÞìáôá.ÅðéëïãÞ ôùí ÊáôÜëëçëùí Åîõðçñåôçôþí NTPNTPåðéëïãÞ åîõðçñåôçôþíÃéá íá óõã÷ñïíßóåôå ôï ñïëüé óõóôÞìáôïò ôïõ õðïëïãéóôÞ óáò èá
ðñÝðåé íá âñåßôå Ýíáí Þ ðåñéóóüôåñïõò
äéáèÝóéìïõò NTP
åîõðçñåôçôÝò ãéá íá ÷ñçóéìïðïéÞóåôå. Ï äéá÷åéñéóôÞò äéêôýïõ Þ ï ISP
óáò ìðïñåß íá Ý÷ïõí åãêáôáóôÞóåé êÜðïéïí åîõðçñåôçôÞ NTP ãéá áõôü ôï
óêïðü — åëÝãîôå ôçí ôåêìçñßùóç ôïõò íá äåßôå áí õðÜñ÷åé
ôÝôïéá ðåñßðôùóç. ÅðéðëÝïí, õðÜñ÷åé
ìßá online
ëßóôá åîõðçñåôçôþí äçìüóéáò ðñüóâáóçò, ðïõ ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå ãéá íá âñåßôå Ýíáí êïíôéíü åîõðçñåôçôÞ NTP. ¼ðïéïí
åîõðçñåôçôÞ êé áí åðéëÝîåôå, åíçìåñùèåßôå ãéá ôçí ðïëéôéêÞ ÷ñÞóçò ôïõ
êáé æçôÞóôå Üäåéá íá ôïí ÷ñçóéìïðïéÞóåôå áí ÷ñåéÜæåôáé ôÝôïéá
Üäåéá. Åßíáé êáëÞ éäÝá íá åðéëÝîåôå ðïëëïýò åîõðçñåôçôÝò NTP, ïé ïðïßïé
íá ìçí óõíäÝïíôáé ìåôáîý ôïõò, óôçí ðåñßðôùóç ðïõ êÜðïéïò áðü ôïõò
åîõðçñåôçôÝò ðïõ ÷ñçóéìïðïéåßôå ãßíåé áðñüóéôïò Þ ôï ñïëüé ôïõ åßíáé
áíáêñéâÝò. Ï åîõðçñåôçôÞò &man.ntpd.8; ôïõ &os; ÷åéñßæåôáé Ýîõðíá ôéò
áðáíôÞóåéò ðïõ ëáìâÜíåé áðü ôïõò õðüëïéðïõò åîõðçñåôçôÝò —
åõíïåß ôïõò ðéï áîéüðéóôïõò êáé äåß÷íåé ìéêñüôåñç ðñïôßìçóç óôïõò
ëéãüôåñï áîéüðéóôïõò åîõðçñåôçôÝò.Ñõèìßóôå Ôï Ìç÷Üíçìá ÓáòNTPñõèìßóåéòÂáóéêÝò ÑõèìßóåéòntpdateÁí åðéèõìåßôå íá óõã÷ñïíßæåôáé ôï clock óáò ìüíï êáôÜ ôçí
åêêßíçóç ëåéôïõñãßáò ôïõ ìç÷áíÞìáôïò, ôüôå ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå ôï &man.ntpdate.8;. Áõôüò ï ôñüðïò óõã÷ñïíéóìïý
åßíáé êáôÜëëçëïò ãéá ìç÷áíÞìáôá desktop ôá ïðïßá êÜíïõí åðáíáêêßíçóç
áíÜ ôáêôÜ ÷ñïíéêÜ äéáóôÞìáôá êáé ìüíï óå åéäéêÝò ðåñéðôþóåéò Ý÷ïõí
áíÜãêç óõã÷ñïíéóìïý. ÁíôéèÝôùò, ôá õðüëïéðá ìç÷áíÞìáôá èá ðñÝðåé íá
ôñÝ÷ïõí ôçí äéåñãáóßá &man.ntpd.8;.Åßíáé êáëÞ ðñáêôéêÞ ôá ìç÷áíÞìáôá ðïõ ôñÝ÷ïõí &man.ntpd.8; íá
÷ñçóéìïðïéïýí êáé ôï &man.ntpdate.8; êáôÜ ôç äéÜñêåéá åêêßíçóçò
ôïõò. Ôï &man.ntpd.8; ìåôáâÜëëåé ôï clock âáèìéáßá, åíþ ôï
&man.ntpdate.8; ñõèìßæåé Üìåóá ôï clock áíåîÜñôçôá áðü ôï ðüóï
ìåãÜëç åßíáé ç ÷ñïíéêÞ äéáöïñÜ ìåôáîý ðñáãìáôéêÞò êáé ôñÝ÷ïõóáò þñáò
ôïõ clock ôïõ ìç÷áíÞìáôïò.Ãéá íá åíåñãïðïéÞóåôå ôï &man.ntpdate.8; êáôÜ ôçí åêêßíçóç,
ðñïóèÝóôå ntpdate_enable="YES"
óôï /etc/rc.conf. Èá ðñÝðåé íá ðñïóäéïñßóåôå
óôï ntpdate_flags üëïõò ôïõò äéáêïìéóôÝò ìå ôïõò
ïðïßïõò åðéèõìåßôå íá óõã÷ñïíßæåóôå êáé üëá ôá flag ðïõ èÝëåôå íá
óõíïäåýïõí ôï&man.ntpdate.8;.ÃåíéêÝò ÑõèìßóåéòNTPntp.confÏé ñõèìßóåéò ôïõ NTP âñßóêïíôáé óôï
áñ÷åßï /etc/ntp.conf êáé åßíáé óôç ìïñöÞ ðïõ
ðåñéãñÜöåôáé óôï &man.ntp.conf.5;. Áêïëïõèåß Ýíá áðëü
ðáñÜäåéãìá:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftÇ åðéëïãÞ server ðñïóäéïñßæåé ðïéïé
åîõðçñåôçôÝò èá ÷ñçóéìïðïéçèïýí, ðáñáèÝôïíôáò Ýíáí óå êÜèå
ãñáììÞ. Áí Ýíáò åîõðçñåôçôÞò öÝñåé ôï
ðñüèåìá prefer, üðùò óõìâáßíåé ìå
ôïí ntplocal.example.com, ôüôå áõôüò ï
åîõðçñåôçôÞò åßíáé ï ðñïôéìþìåíïò. Èá áðïññéöèåß ç áðÜíôçóç áðü ôïí
ðñïôéìþìåíï åîõðçñåôçôÞ óå ðåñßðôùóç ðïõ äéáöÝñåé óçìáíôéêÜ áðü
üëïõò ôïõò Üëëïõò åîõðçñåôçôÝò, Óå ðåñßðôùóç ðïõ äåí õðÜñ÷åé ìåãÜëç
áðüêëéóç èá ÷ñçóéìïðïéçèåß äß÷ùò íá ëçöèïýí õðüøéí ïé Üëëåò
áðáíôÞóåéò. Ôï ðñüèåìá prefer óõíÞèùò
÷ñçóéìïðïéåßôáé ìå åîõðçñåôçôÝò NTP áêñéâåßáò, üðùò áõôïß ðïõ öÝñïõí
åéäéêïýò ìç÷áíéóìïýò ðáñáêïëïýèçóçò ÷ñïíéóìïý.Ç åðéëïãÞ driftfile ðñïóäéïñßæåé ðïéü áñ÷åßï
÷ñçóéìïðïéåßôáé ãéá íá äéáôçñåß ôç óõ÷íüôçôá äéüñèùóçò ôïõ clock ôïõ
óõóôÞìáôïò. Ôï ðñüãñáììá &man.ntpd.8; ÷ñçóéìïðïéåß áõôüìáôá áõôÞ ôç
ôéìÞ ãéá íá áíôéóôáèìßæåé ôéò öõóéêÝò áðïêëßóåéò ôïõ clock,
åðéôñÝðïíôáò ôïõ íá äéáôçñåß ìéá ëïãéêÞ ñýèìéóç, áêüìç êé áí ôïõ
áðáãïñåõôåß ãéá êÜðïéï ÷ñïíéêü äéÜóôçìá ç ðñüóâáóç ðñïò üëåò ôéò
åîùôåñéêÝò ðçãÝò óõã÷ñïíéóìïý.Ç åðéëïãÞ driftfile ðñïóäéïñßæåé ðïéü áñ÷åßï
÷ñçóéìïðïéåßôáé ãéá íá áðïèçêåýåé ðëçñïöïñßåò ó÷åôéêÜ ìå ôéò
ðñïçãïýìåíåò áðáíôÞóåéò áðü ôïõò åîõðçñåôçôÝò NTP. Áõôü ôï áñ÷åßï
ðåñéÝ÷åé åóùôåñéêÝò ðëçñïöïñßåò ôïõ NTP. Äåí èá Ýðñåðå íá
ôñïðïðïéåßôå áðü êáììßá Üëëç äéåñãáóßá.¸ëåã÷ïò Ðñüóâáóçò óôïí ÅîõðçñåôçôÞ ÓáòÐñïåðéëåãìÝíá, ï åîõðçñåôçôÞò óáò NTP èá åßíáé ðñïóâÜóéìïò áðü
üëïõò ôïõò êüìâïõò óôï äéáäßêôõï. Ç
åðéëïãÞ restrict
óôï /etc/ntp.conf óáò åðéôñÝðåé íá åëÝã÷åôå
ðïéá ìç÷áíÞìáôá èá ìðïñïýí íá Ý÷ïõí ðñüóâáóç óôïí åîõðçñåôÞ
óáò. Áí åðéèõìåßôå íá áðïññßøåôå ôçí ðñüóâáóç ðñïò ôïí åîõðçñåôçôÞ
óáò NTP ãéá üëá ôá ìç÷áíÞìáôá, ðñïóèÝóôå ôçí áêüëïõèç ãñáììÞ
óôï /etc/ntp.conf:restrict default ignoreÁí èÝëåôå ìüíï íá åðéôñÝøåôå ôïí óõã÷ñïíéóìü ôïõ åîõðçñåôçôÞ óáò
ìå ìç÷áíÞìáôá åíôüò ôïõ äéêôýïõ óáò, áëëÜ äß÷ùò äõíáôüôçôá ñýèìéóçò
ôïõ åîõðçñåôçôÞ Þ íá ãßíïõí ïìïéüâáèìá ìå Üäåéá óõã÷ñïíéóìïý, ôüôå
áíôéèÝôùò ðñïóèÝóôå:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrapüðïõ 192.168.1.0 åßíáé ç
äéåýèõíóç IP ôïõ äéêôýïõ
êáé 255.255.255.0 åßíáé ç ìÜóêá ôïõ
äéêôýïõ óáò.Ôï /etc/ntp.conf ìðïñåß íá ðåñéÝ÷åé
ðïëëáðëÝò åðéëïãÝò restrict. Ãéá ðåñéóóüôåñåò
ðëçñïöïñßåò, äåßôå ôçí õðïåíüôçôá ÕðïóôÞñéîç ÅëÝã÷ïõ
Ðñüóâáóçò (Access Control Support), õðïåíüôçôá ôïõ
&man.ntp.conf.5;.ÅêôÝëåóç ôïõ NTP ÅîõðçñåôçôÞ ÓáòÃéá íá âåâáéùèåßôå ðùò ï åîõðçñåôçôÞò NTP èá îåêéíÜåé êáôÜ ôçí
äéÜñêåéá åêêßíçóçò ôïõ óõóôÞìáôïò, ðñïóèÝóôå ôç
ãñáììÞ ntpd_enable="YES"óôï/etc/rc.conf.
Ãéá íá îåêéíÞóåôå ôïí åîõðçñåôçôÞ äß÷ùò íá åðáíåêêéíÞóåôå ôï ìç÷Üíçìá
óáò, ôñÝîôå &man.ntpd.8; ðñïóäéïñßæïíôáò êÜèå åðéðñüóèåôç ðáñÜìåôñï
áðü ôá ntpd_flags
óôï /etc/rc.conf. Ãéá ðáñÜäåéãìá:&prompt.root; ntpd -p /var/run/ntpd.pid×ñÞóç ôïõ ntpd ìå ÐñïóùñéíÞ Óýíäåóç óôï ºíôåñíåôÔï ðñüãñáììá &man.ntpd.8; äåí ÷ñåéÜæåôáé ìéá ìüíéìç óýíäåóç óôï
ºíôåñíåô ãéá íá äïõëÝøåé óùóôÜ. Áí Ý÷åôå ìéá ðñïóùñéíÞ óýíäåóç ðïõ
åßíáé ñõèìéóìÝíç íá êÜíåé êëÞóåéò ìÝóù ôçëåöþíïõ (dial out on demand),
åßíáé êáëü íá ìçí åßíáé ç êßíçóç äåäïìÝíùí ôïõ NTP ôï áßôéï ôçò êëÞóçò
Þ áõôÞ ðïõ èá êñáôÜåé åíåñãÞ ôçí óýíäåóç. Áí ÷ñçóéìïðïéåßôå PPP
÷ñÞóôç, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ößëôñá óôïõò
êþäéêåò ðáñáðïìðÞò ôïõ /etc/ppp/ppp.conf, üðùò
ãéá ðáñÜäåéãìá: set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0Ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò äåßôå ôï PACKET
FILTERING óôçí åíüôçôá &man.ppp.8; êáé ôá ðáñáäåßãìáôá
óôï /usr/share/examples/ppp/.Óçìåßùóç: Ìåñéêïß ISP ìðëïêÜñïõí ôçí ÷ñÞóç èýñáò ìå ÷áìçëü
áñéèìü, åìðïäßæïíôáò óôï NTP íá äïõëåýåé áöïý ïé áðáíôÞóåéò äåí
öôÜíïõí ðïôÝ óôï ìç÷Üíçìá óáò.ÐåñáéôÝñù ÐëçñïöïñßåòÇ ôåêìçñßùóç ãéá ôïõò åîõðçñåôçôÝò NTP äéáôßèåôáé êáé óå öüñìá
HTML óôï /usr/share/doc/ntp/.
diff --git a/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml b/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml
index 61f24b024f..5ef3d3a696 100644
--- a/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml
@@ -1,3409 +1,3356 @@
JimMockÁíáäïìÞèçêå, áíáäéïñãáíþèçêå, êáé áíáíåþèçêå áðü
ôïí PPP êáé SLIPÓýíïøçPPPSLIPÔï &os; äéáèÝôåé ðëÞèïò ôñüðùí ãéá ôç óýíäåóç åíüò õðïëïãéóôÞ ìå
Ýíá Üëëï. Ãéá íá åðéôý÷åôå óýíäåóç ìÝóù modem óôï Internet Þ óå Ýíá
Üëëï äßêôõï, Þ ãéá íá åðéôñÝøåôå óå Üëëïõò íá óõíäåèïýí ìÝóù
ôïõ óõóôÞìáôïò óáò, áðáéôåßôáé ç ÷ñÞóç PPP Þ SLIP. Ôï êåöÜëáéï áõôü
ðåñéãñÜöåé ëåðôïìåñþò ôïí ôñüðï ñýèìéóçò ôùí ðáñáðÜíù õðçñåóéþí ãéá
÷ñÞóç ìÝóù modem.Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:Ðùò íá ñõèìßóåôå ôï PPP ÷ñÞóôç (User PPP).Ðùò íá ñõèìßóåôå ôï PPP ðõñÞíá (Kernel PPP, ìüíï ãéá
&os; 7.X).Ðùò íá ñõèìßóåôå ôï PPPoE (PPP ìÝóù
Ethernet).Ðùò íá ñõèìßóåôå ôï PPPoA (PPP ìÝóù
ATM).Ðùò íá ñõèìßóåôå Ýíá ðåëÜôç êáé åîõðçñåôçôÞ SLIP (ìüíï ãéá
&os; 7.X).PPPuser PPPPPPkernel PPPPPPover EthernetÐñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:Íá åßóôå åîïéêåéùìÝíïò ìå ôç âáóéêÞ ïñïëïãßá ôùí äéêôýùí.Íá êáôáíïåßôå ôéò âáóéêÝò Ýííïéåò êáé ôï óêïðü ôùí åðéëïãéêþí
óõíäÝóåùí êáé ôïõ PPP êáé/Þ SLIP.Ìðïñåß íá áíáñùôéÝóôå ðïéá åßíáé ç âáóéêÞ äéáöïñÜ ìåôáîý ôïõ PPP
÷ñÞóôç êáé ôïõ PPP ðõñÞíá. Ç áðÜíôçóç åßíáé áðëÞ: ôï PPP ÷ñÞóôç
åðåîåñãÜæåôáé ôá äåäïìÝíá åéóüäïõ êáé åîüäïõ ìÝóù ðñïãñáììÜôùí ÷ñÞóôç
(userland) áíôß äéáìÝóïõ ôïõ ðõñÞíá ôïõ ëåéôïõñãéêïý. Áõôü ðñïêáëåß
êÜðïéåò åðéâáñýíóåéò ëüãù ôçò áíôéãñáöÞò äåäïìÝíùí ìåôáîý ôïõ ðõñÞíá
êáé ôçò åöáñìïãÞò ÷ñÞóôç, áëëÜ åðéôñÝðåé êáôÜ ðïëý ðéï ðëïýóéá (áðü
Üðïøç äõíáôïôÞôùí) õëïðïßçóç ôïõ PPP ðñùôïêüëëïõ. Ôï PPP ÷ñÞóôç
÷ñçóéìïðïéåß ôç óõóêåõÞ tun ãéá ôçí
åðéêïéíùíßá ìå ôïí Ýîù êüóìï, åíþ ôï PPP ðõñÞíá ÷ñçóéìïðïéåß ôçí
óõóêåõÞ ppp.Óå üëï ôï êåöÜëáéï, ôï PPP ÷ñÞóôç èá áíáöÝñåôáé áðëÜ ùò
ppp åêôüò êáé áí ÷ñåéÜæåôáé íá ãßíåé
äéÜêñéóç óå ó÷Ýóç ìå Üëëï ëïãéóìéêü PPP üðùò ôï
pppd (ìüíï ãéá ôï &os; 7.X). Åêôüò
áí áíáöÝñåôáé äéáöïñåôéêÜ, üëåò ïé åíôïëÝò ðïõ åîçãïýíôáé óôï
êåöÜëáéï áõôü èá ðñÝðåé íá åêôåëïýíôáé ùò
root.TomRhodesÅíçìåñþèçêå êáé âåëôéþèçêå áðü ôïí BrianSomersÁñ÷éêÞ óõíåéóöïñÜ ôïõ NikClaytonÌå ôç âïÞèåéá ôùí DirkFrömbergPeterChilds×ñçóéìïðïéþíôáò ôï PPP ×ñÞóôçÁðü ôï &os; 8.0 êáé ìåôÜ, ôá ïíüìáôá óõóêåõþí ãéá ôéò
óåéñéáêÝò èýñåò ìåôïíïìÜóôçêáí áðü
/dev/cuadN óå
/dev/cuauN êáé áðü
/dev/ttydN óå
/dev/ttyuN.
Ïé ÷ñÞóôåò ôïõ &os; 7.X èá ÷ñåéáóôåß íá ðñïóáñìüóïõí ôéò
ðáñáêÜôù ïäçãßåò óýìöùíá ìå áõôÝò ôéò áëëáãÝò.PPP ×ñÞóôçÐñïûðïèÝóåéòÔï êåßìåíï áõôü ðñïûðïèÝôåé üôé Ý÷åôå ôá ðáñáêÜôù:
-
- ISP
-
-
- PPP
-
- Ëïãáñéáóìü óå êÜðïéï Ðáñï÷Ýá Õðçñåóéþí Internet (ISP) óôïí
- ïðïßï óõíäÝåóôå ÷ñçóéìïðïéþíôáò PPP.
+ Ëïãáñéáóìü óå êÜðïéï Ðáñï÷Ýá Õðçñåóéþí Internet (ISP)ISP óôïí
+ ïðïßï óõíäÝåóôå ÷ñçóéìïðïéþíôáò PPPPPP.¸íá modem Þ Üëëç óõóêåõÞ óõíäåìÝíç óôï óýóôçìá óáò,
êáé ñõèìéóìÝíç óùóôÜ þóôå íá óáò åðéôñÝðåé íá óõíäåèåßôå óôïí
ISP óáò.Ôïõò áñéèìïýò êëÞóçò ãéá ôïí ISP óáò.
-
- PAP
-
-
- CHAP
-
-
- UNIX
-
-
- login name
-
-
- password
-
- Ôï üíïìá ÷ñÞóôç (login) êáé ôïí êùäéêü óáò (password).
- Åßôå êáíïíéêü üíïìá êáé êùäéêü (ôýðïõ &unix;) Þ Ýíá æåýãïò
- ïíüìáôïò / êùäéêïý ôýðïõ PAP Þ CHAP.
+ Ôï üíïìá ÷ñÞóôç (login)login name êáé ôïí êùäéêü óáò (password)password.
+ Åßôå êáíïíéêü üíïìá êáé êùäéêü (ôýðïõ &unix;)UNIX Þ Ýíá æåýãïò
+ ïíüìáôïò / êùäéêïý ôýðïõ PAPPAP Þ CHAPCHAP.
-
- nameserver
-
-
Ôéò IP äéåõèýíóåéò åíüò Þ ðåñéóóüôåñùí äéáêïìéóôþí
- ïíïìÜôùí (DNS). ÖõóéïëïãéêÜ, ï ISP óáò èá óáò äþóåé äýï
+ ïíïìÜôùí (DNS)nameserver. ÖõóéïëïãéêÜ, ï ISP óáò èá óáò äþóåé äýï
ôÝôïéåò äéåõèýíóåéò. Áí äåí Ý÷åôå ôïõëÜ÷éóôïí ìßá, ìðïñåßôå
íá åíåñãïðïéÞóåôå ôçí åíôïëÞ enable dns óôï
ppp.conf êáé ôï
ppp èá ñõèìßóåé ôïõò äéáêïìéóôÝò
ïíïìÜôùí ãéá óáò. Ôï ÷áñáêôçñéóôéêü áõôü åîáñôÜôáé áðü ôçí
õðïóôÞñéîç ôçò äéáðñáãìÜôåõóçò DNS áðü ôïí ISP óáò.Ï ISP óáò åíäå÷ïìÝíùò íá óáò äþóåé êáé ôéò ðáñáêÜôù ðëçñïöïñßåò,
áëëÜ äåí åßíáé åíôåëþò áðáñáßôçôåò:Ôç äéåýèõíóç IP ãéá ôçí ðýëç (gateway) ôïõ ISP óáò.
Ç ðýëç åßíáé ôï ìç÷Üíçìá ìÝóù ôïõ ïðïßïõ óõíäÝåóôå, êáé èá
áðïôåëÝóåé ôçí ðñïåðéëåãìÝíç äéáäñïìÞ
(default route) ãéá ôï ìç÷Üíçìá óáò. Áí äåí Ý÷åôå áõôÞ ôçí
ðëçñïöïñßá, èá ÷ñçóéìïðïéçèåß ìéá åéêïíéêÞ, êáé üôáí óõíäåèåßôå
èá ëÜâåôå ôçí êáíïíéêÞ äéåýèõíóç áðü ôïí äéáêïìéóôÞ PPP ôïõ
ISP óáò.ÁõôÞ ç äéåýèõíóç IP áíáöÝñåôáé ùò
HISADDR áðü ôï
ppp.Ôç ìÜóêá äéêôýïõ (netmask) ðïõ ðñÝðåé íá ÷ñçóéìïðïéÞóåôå.
Áí ï ISP óáò äå óáò ôçí ðáñÝ÷åé, ìðïñåßôå ìå áóöÜëåéá íá
÷ñçóéìïðïéÞóåôå ôçí ôéìÞ 255.255.255.255.
-
- static IP address
-
-
Áí ï ISP óáò ðáñÝ÷åé óôáôéêÞ äéåýèõíóç êáé üíïìá õðïëïãéóôÞ
(hostname) ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå áõôÜ. ÄéáöïñåôéêÜ,
èá áöÞóïõìå ôïí áðïìáêñõóìÝíï õðïëïãéóôÞ íá äþóåé üðïéá
- äéåýèõíóç IP èåùñåß êáôÜëëçëç.
+ äéåýèõíóç IP èåùñåß êáôÜëëçëçstatic IP address.
Áí óáò ëåßðïõí êÜðïéåò áðü ôéò áðáéôïýìåíåò ðëçñïöïñßåò,
åðéêïéíùíÞóôå ìå ôïí ISP óáò.Óå ïëüêëçñç ôçí ðáñïýóá åíüôçôá, ðïëëÜ áðü ôá ðáñáäåßãìáôá
ðïõ äåß÷íïõí ôá ðåñéå÷üìåíá ôùí áñ÷åßùí ñõèìßóåùí, åßíáé
áñéèìçìÝíá áíÜ ãñáììÞ. Ïé áñéèìïß áõôïß åîõðçñåôïýí óôçí
ðáñïõóßáóç êáé ôç óõæÞôçóç ôïõ êÜèå ðáñáäåßãìáôïò, êáé äåí
ðñÝðåé íá ãñáöïýí ìÝóá óôï ðñáãìáôéêü áñ÷åßï. Åßíáé åðßóçò
óçìáíôéêü íá ôçñåßôå ç óùóôÞ óôïß÷éóç óå êÜèå áñ÷åßï, ìå ôç
÷ñÞóç óôçëïèåôþí (tabs) êáé êåíþí äéáóôçìÜôùí.Áõôüìáôç Ñýèìéóç PPPPPPconfigurationÔüóï ôï ppp üóï êáé ôï
pppd (ç õëïðïßçóç ôïõ PPP óå åðßðåäï ðõñÞíá,
ìüíï óôï &os; 7.X)
÷ñçóéìïðïéïýí ôá áñ÷åßá ñõèìßóåùí óôïí êáôÜëïãï
/etc/ppp. Ìðïñåßôå íá
âñåßôå ðáñáäåßãìáôá ãéá ôï ppp ÷ñÞóôç óôïí êáôÜëïãï /usr/share/examples/ppp/.H ñýèìéóç ôïõ ppp áðáéôåß ôçí ôñïðïðïßçóç
åíüò áñéèìïý áðü áñ÷åßá, áíÜëïãá ìå ôéò áðáéôÞóåéò óáò. Ôï ôé èá
âÜëåôå óå áõôÜ, åîáñôÜôáé óå Ýíá ðïóïóôü áðü ôï áí ï ISP óáò
áðïäßäåé óôáôéêÝò äéåõèýíóåéò IP (äçë. óáò ðáñÝ÷åé ìéá äéåýèõíóç
IP ç ïðïßá äåí áëëÜæåé) Þ äõíáìéêÝò (äçë. ç IP äéåýèõíóç óáò
áëëÜæåé êÜèå öïñÜ ðïõ óõíäÝåóôå óôïí ISP óáò).PPP êáé ÓôáôéêÝò Äéåõèýíóåéò IPPPPwith static IP addressesÈá ÷ñåéáóôåß íá ôñïðïðïéÞóåôå ôï áñ÷åßï ñõèìßóåùí
/etc/ppp/ppp.conf. Èá ðñÝðåé íá ìïéÜæåé ìå
áõôü ðïõ öáßíåôáé ðáñáêÜôù:Ïé ãñáììÝò ðïõ ôåëåéþíïõí ìå : îåêéíïýí
óôçí ðñþôç óôÞëç (áñ÷Þ ôçò ãñáììÞò) — üëåò ïé Üëëåò
ãñáììÝò èá ðñÝðåé íá óôïé÷éóèïýí ìå ôïí ôñüðï ðïõ öáßíåôáé, ìå
ôç ÷ñÞóç êåíþí Þ óôçëïèåôþí.1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuau0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr x.x.x.xy.y.y.y 255.255.255.255 0.0.0.0
18 add default HISADDRÃñáììÞ 1:Áíáãíùñßæåé ôçí ðñïåðéëåãìÝíç êáôá÷þñéóç. Ïé åíôïëÝò
óå áõôÞ ôçí êáôá÷þñéóç åêôåëïýíôáé áõôüìáôá, üôáí åêôåëåßôáé
ôï ppp.ÃñáììÞ 2:Åíåñãïðïéåß ôçí êáôáãñáöÞ (logging) ôùí ðáñáìÝôñùí.
¼ôáí ïé ñõèìßóåéò ðïõ Ý÷ïõí ãßíåé ëåéôïõñãïýí éêáíïðïéçôéêÜ,
ç ãñáììÞ áõôÞ èá ðñÝðåé íá ìéêñýíåé óôçí ðáñáêÜôù:set log phase tunãéá íá áðïöåõ÷èïýí ìåãÜëá ìåãÝèç óôá áñ÷åßá
êáôáãñáöÞò.ÃñáììÞ 3:ËÝåé óôï PPP ðùò íá áíáöÝñåé ðëçñïöïñßåò ãéá ôïí åáõôü
ôïõ óôçí Üëëç ìåñéÜ ôçò óýíäåóçò. Ç äéáäéêáóßá áõôÞ ãßíåôáé
áí ôï PPP Ý÷åé ðñüâëçìá óôçí äéáðñáãìÜôåõóç êáé ïëïêëÞñùóç
ôçò óýíäåóçò, ðáñÝ÷ïíôáò ìå áõôü ôïí ôñüðï ðëçñïöïñßåò óôïí
áðïìáêñõóìÝíï äéá÷åéñéóôÞ. Ïé ðëçñïöïñßåò áõôÝò ìðïñåß íá
åßíáé ÷ñÞóéìåò óôçí åðßëõóç ôïõ ðñïâëÞìáôïò.ÃñáììÞ 4:Áíáãíùñßæåé ôç óõóêåõÞ óôçí ïðïßá åßíáé óõíäåìÝíï ôï
modem. Ç óõóêåõÞ COM1 åßíáé ç
/dev/cuau0
êáé ç COM2 åßíáé ç
/dev/cuau1.ÃñáììÞ 5:Êáèïñßæåé ôçí ôá÷ýôçôá ìå ôçí ïðïßá åðéèõìåßôå íá
óõíäåèåßôå. Áí äåí ëåéôïõñãåß ç ôéìÞ 115200 (ç ïðïßá ðñÝðåé
íá ëåéôïõñãåß ìå êÜèå ó÷åôéêÜ óýã÷ñïíï modem), äïêéìÜóôå
ìå 38400.ÃñáììÝò 6 & 7:
-
- PPP
- user PPP
-
-
Ôï áëöáñéèìçôéêü ðïõ èá ÷ñçóéìïðïéçèåß ãéá ôçí êëÞóç.
- Ôï PPP ÷ñÞóôç ÷ñçóéìïðïéåß óýíôáîç expect-send ðáñüìïéá ìå
+ Ôï PPPPPPuser PPP ÷ñÞóôç ÷ñçóéìïðïéåß óýíôáîç expect-send ðáñüìïéá ìå
áõôÞ ðïõ ÷ñçóéìïðïéåß ôï ðñüãñáììá &man.chat.8;. Äåßôå ôç
óåëßäá manual ãéá ðëçñïöïñßåò ó÷åôéêÜ ìå ôéò äõíáôüôçôåò
áõôÞò ôçò ãëþóóáò.Óçìåéþóôå üôé áõôÞ ç åíôïëÞ óõíå÷ßæåé óôçí åðüìåíç
ãñáììÞ ãéá ëüãïõò áíáãíùóéìüôçôáò. Áõôü ìðïñåß íá ãßíåé óå
êÜèå åíôïëÞ ôïõ ppp.conf, åöüóïí ôï
\ åßíáé ï ôåëåõôáßïò ÷áñáêôÞñáò ôçò
ãñáììÞò.ÃñáììÞ 8:Êáèïñßæåé ôï ÷ñüíï ôåñìáôéóìïý ëüãù áäñÜíåéáò ôçò
óýíäåóçò. Ôá 180 äåõôåñüëåðôá åßíáé ç ðñïåðéëåãìÝíç ôéìÞ,
Ýôóé ç ãñáììÞ áõôÞ åßíáé åäþ êáèáñÜ äéáêïóìçôéêÞ.ÃñáììÞ 9:ËÝåé óôï PPP íá ñùôÞóåé ôçí Üëëç ðëåõñÜ ãéá íá
åðéâåâáéþóåé ôéò ôïðéêÝò ñõèìßóåéò ôïõ resolver. Áí
åêôåëåßôå ôïðéêü äéáêïìéóôÞ ïíïìÜôùí (DNS), èá ðñÝðåé íá
ìåôáôñÝøåôå áõôÞ ôç ãñáììÞ óå ó÷üëéï Þ íá ôçí
áöáéñÝóåôå.ÃñáììÞ 10:ÊåíÞ ãñáììÞ þóôå ç áíÜãíùóç ôïõ áñ÷åßïõ íá åßíáé ðéï
åýêïëç. Ïé êåíÝò ãñáììÝò áãíïïýíôáé áðü ôï PPP.ÃñáììÞ 11:Áíáãíùñßæåé ôçí êáôá÷þñéóç åíüò ðáñï÷Ýá ìå ôï üíïìá
provider. Ìðïñåßôå åäþ íá ÷ñçóéìïðïéÞóåôå
ôï üíïìá ôïõ ISP óáò, þóôå áñãüôåñá
íá îåêéíÜôå ôç óýíäåóç óáò ìå ôçí åðéëïãÞ
.ÃñáììÞ 12:ÈÝôåé ôïí áñéèìü êëÞóçò ãéá áõôü ôïí ðáñï÷Ýá. Ìðïñåßôå
íá êáèïñßóåôå ðïëëáðëïýò áñéèìïýò êëÞóçò ÷ñçóéìïðïéþíôáò
Üíù-êÜôù ôåëåßá (:) Þ ôïí ÷áñáêôÞñá
(|) ùò äéá÷ùñéóôéêü. Ç äéáöïñÜ ìåôáîý
ôùí äýï äéá÷ùñéóôéêþí ðåñéãñÜöåôáé óôï &man.ppp.8;.
ÐåñéëçðôéêÜ, áí èÝëåôå íá äïêéìÜæïíôáé êõêëéêÜ üëïé ïé
áñéèìïß, ÷ñçóéìïðïéÞóôå ôçí Üíù-êÜôù ôåëåßá. Áí èÝëåôå íá
ãßíåôáé ðÜíôïôå áðüðåéñá êëÞóçò ôïõ ðñþôïõ áñéèìïý êáé ïé
õðüëïéðïé íá äïêéìÜæïíôáé ìüíï áí ï ðñþôïò áðïôý÷åé,
÷ñçóéìïðïéÞóôå ôï ÷áñáêôÞñá ðáñï÷Ýôåõóçò. Íá ãñÜöåôå
ðÜíôïôå üëï ôï óýíïëï ôùí ôçëåöùíéêþí áñéèìþí ìå ôïí ôñüðï
ðïõ öáßíåôáé.Áí ï áñéèìüò ôçëåöþíïõ ðåñéÝ÷åé êåíÜ, èá ðñÝðåé íá ôïí
ðåñéêëåßóåôå óå åéóáãùãéêÜ (").
Ç ðáñÜëåéøç ôïõò, áí êáé åßíáé áðëü óöÜëìá, ìðïñåß íá
ðñïêáëÝóåé ðñïâëÞìáôá ðïõ äåí ìðïñïýí íá åíôïðéóôïýí
åýêïëá.ÃñáììÝò 13 & 14:Áíáãíùñßæåé ôï üíïìá ÷ñÞóôç êáé ôïí êùäéêü ôïõ. ¼ôáí
óõíäÝåóôå ÷ñçóéìïðïéþíôáò ðñïôñïðÞ ôýðïõ &unix;, ïé ôéìÝò
áõôÝò áíáöÝñïíôáé áðü ôçí åíôïëÞ
set login ÷ñçóéìïðïéþíôáò ôéò ìåôáâëçôÝò
\U êáé \P. ¼ôáí óõíäÝåóôå ìå ÷ñÞóç PAP Þ CHAP, ïé ôéìÝò
áõôÝò ÷ñçóéìïðïéïýíôáé ôçí þñá ôçò ðéóôïðïßçóçò
ôáõôüôçôáò ôïõ ÷ñÞóôç.ÃñáììÞ 15:
- PAP
- CHAPÁí ÷ñçóéìïðïéåßôå PPP Þ CHAP, äåí èá õðÜñ÷åé óôï óçìåßï
áõôü ðñïôñïðÞ åéóüäïõ (login), êáé èá ðñÝðåé íá ìåôáôñÝøåôå
ôç ãñáììÞ áõôÞ óå ó÷üëéï Þ íá ôçí áöáéñÝóåôå. Äåßôå ôçí
- Ðéóôïðïßçóç PAP
- êáé CHAP ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò.
+ Ðéóôïðïßçóç PAPPAP
+ êáé CHAPCHAP ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò.
Ôï áëöáñéèìçôéêü åéóüäïõ ÷ñçóéìïðïéåß óýíôáîç ðáñüìïéá
ìå ôï &man.chat.8;, üðùò óõìâáßíåé êáé ìå ôï áëöáñéèìçôéêü
êëÞóçò. Óôï ðáñÜäåéãìá ìáò, ôï áëöáñéèìçôéêü
÷ñçóéìïðïéåßôáé ãéá ìéá õðçñåóßá óôçí ïðïßá ç óõíåäñßá
åéóüäïõ ìïéÜæåé ìå ôçí ðáñáêÜôù:J. Random Provider
login: foo
password: bar
protocol: pppÈá ÷ñåéáóôåß íá áëëÜîåôå áõôü ôï script áíÜëïãá ìå ôéò
áíÜãêåò óáò. ¼ôáí ãñÜöåôå áõôü ôï script ôçí ðñþôç öïñÜ,
âåâáéùèåßôå üôé Ý÷åôå åíåñãïðïéÞóåé ôï áñ÷åßï êáôáãñáöÞò
ãéá ôï chat þóôå íá ìðïñåßôå íá ðñïóäéïñßóåôå
áí ç äéáäéêáóßá áíáãíþñéóçò ðñï÷ùñÜåé óùóôÜ.ÃñáììÞ 16:
- timeout
-
- ÈÝôåé ôï ÷ñüíï áäñÜíåéáò (óå äåõôåñüëåðôá) ãéá ôç
+ ÈÝôåé ôï ÷ñüíïtimeout áäñÜíåéáò (óå äåõôåñüëåðôá) ãéá ôç
óýíäåóç. Åäþ, ç óýíäåóç èá êëåßóåé áõôüìáôá áí äåí õðÜñ÷åé
êßíçóç ãéá 300 äåõôåñüëåðôá. Áí äåí èÝëåôå íá ãßíåôáé
ðïôÝ ôåñìáôéóìüò ôçò óýíäåóçò ëüãù áäñÜíåéáò, èÝóôå áõôÞ ôç
ôéìÞ óå ìçäÝí, Þ ÷ñçóéìïðïéÞóôå ôçí åðéëïãÞ
óôç ãñáììÞ åíôïëÞò.ÃñáììÞ 17:
- ISP
-
ÈÝôåé ôç äéåýèõíóç ôçò äéåðáöÞò. Ôï áëöáñéèìçôéêü
x.x.x.x èá ðñÝðåé íá
áíôéêáôáóôáèåß ìå ôç äéåýèõíóç IP ðïõ óáò Ý÷åé áðïäïèåß áðü
ôïí ðáñï÷Ýá óáò. Ôï áëöáñéèìçôéêü
y.y.y.y èá ðñÝðåé íá
áíôéêáôáóôáèåß ìå ôçí äéåýèõíóç IP ðïõ Ý÷åé êáèïñßóåé ï
ISP óáò ùò ðýëç (gateway, ôï ìç÷Üíçìá óôï ïðïßï óõíäÝåóôå).
- Áí ï ISP óáò äåí óáò Ý÷åé äþóåé äéåýèõíóç ðýëçò,
+ Áí ï ISPISP óáò äåí óáò Ý÷åé äþóåé äéåýèõíóç ðýëçò,
÷ñçóéìïðïéÞóôå ôçí 10.0.0.2/0. Áí ðñÝðåé íá
÷ñçóéìïðïéÞóåôå ìéá IP äéåýèõíóç ðïõ Ý÷åôå
ìáíôÝøåé, âåâáéùèåßôå üôé Ý÷åôå äçìéïõñãÞóåé
ìéá êáôá÷þñéóç óôï /etc/ppp/ppp.linkup
óýìöùíá ìå ôéò ïäçãßåò ãéá ôï PPP êáé ÄõíáìéêÝò IP
Äéåõèýíóåéò. Áí ðáñáëåßøåôå áõôÞ ôç ãñáììÞ, ôï
ppp äåí èá ìðïñåß íá åêôåëåóôåß óå
êáôÜóôáóç .ÃñáììÞ 18:ÐñïóèÝóôå ìéá ðñïåðéëåãìÝíç äéáäñïìÞ (default route)
ðñïò ôï ìç÷Üíçìá ðýëçò (gateway) ôïõ ISP óáò. Ç åéäéêÞ ëÝîç
HISADDR áíôéêáèßóôáôáé ìå ôçí äéåýèõíóç
ðýëçò ðïõ êáèïñßæåôáé óôç ãñáììÞ 17. Åßíáé óçìáíôéêü ç
ãñáììÞ áõôÞ íá åìöáíßæåôáé ìåôÜ ôçí ãñáììÞ 17, äéáöïñåôéêÜ
ôï HISADDR äåí èá Ý÷åé áêüìá ëÜâåé áñ÷éêÞ
ôéìÞ.Áí äåí åðéèõìåßôå íá åêôåëÝóåôå ôï ppp óå êáôÜóôáóç
, èá ðñÝðåé íá ìåôáêéíÞóåôå áõôÞ ôç
ãñáììÞ óôï áñ÷åßï ppp.linkup.Äåí åßíáé áðáñáßôçôï íá ðñïóèÝóåôå êáôá÷þñéóç óôï áñ÷åßï
ppp.linkup üôáí Ý÷åôå óôáôéêÞ äéåýèõíóç IP
êáé åêôåëåßôå ôï ppp óå êáôÜóôáóç . Óôçí
ðåñßðôùóç áõôÞ, ïé êáôá÷ùñßóåéò óáò óôïí ðßíáêá äñïìïëüãçóçò åßíáé
óùóôÝò ðñéí êáí óõíäåèåßôå. ºóùò ùóôüóï íá èÝëåôå íá
äçìéïõñãÞóåôå ìéá êáôá÷þñéóç ãéá íá åêôåëÝóåôå êÜðïéá ðñïãñÜììáôá
ìåôÜ ôçí áðïêáôÜóôáóç ôçò óýíäåóçò. Èá ôï åîçãÞóïõìå áõôü
áñãüôåñá óå Ýíá ðáñÜäåéãìá ìå ôï sendmail.Ìðïñåßôå íá âñåßôå ðáñáäåßãìáôá áñ÷åßùí ñõèìßóåùí óôïí
êáôÜëïãï usr/share/examples/ppp/.PPP êáé ÄõíáìéêÝò Äéåõèýíóåéò IPPPPwith dynamic IP addressesIPCPÁí ï ðáñï÷Ýáò óáò äåí äßíåé óôáôéêÝò äéåõèýíóåéò, ôï
ppp ìðïñåß íá ñõèìéóôåß íá äéáðñáãìáôåýåôáé
ôçí ôïðéêÞ êáé ôçí áðïìáêñõóìÝíç äéåýèõíóç. Áõôü ãßíåôáé
ìáíôåýïíôáò ìéá äéåýèõíóç IP, êáé åðéôñÝðïíôáò óôï
ppp íá ôçí èÝóåé Ýðåéôá óùóôÜ, ÷ñçóéìïðïéþíôáò
ôï ðñùôüêïëëï IPCP (IP Configuration Protocol) ìåôÜ ôç óýíäåóç.
Ôï áñ÷åßï ñõèìßóåùí ppp.conf åßíáé ôï ßäéï
üðùò êáé óôï
PPP êáé ÓôáôéêÝò Äéåõèýíóåéò
IP, ìå ôçí ðáñáêÜôù ìüíï áëëáãÞ:17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0¼ðùò êáé ðñïçãïõìÝíùò, äåí ðñÝðåé íá ðåñéëÜâåôå ôïí áñéèìü
ãñáììÞò. Áðáéôåßôáé åóï÷Þ åíüò ôïõëÜ÷éóôïí êåíïý
äéáóôÞìáôïò.ÃñáììÞ 17:Ï áñéèìüò ìåôÜ ôï ÷áñáêôÞñá /
åßíáé ôï ðëÞèïò ôùí bits ôçò äéåýèõíóçò ãéá ôï ïðïßï èá
åðéìåßíåé ôï ppp. ºóùò èÝëåôå íá ÷ñçóéìïðïéÞóåôå áñéèìïýò
IP ðéï êáôÜëëçëïõò ãéá ôçí ðåñßóôáóç, áëëÜ ôï ðáñÜäåéãìá
ðïõ äßíïõìå ðáñáðÜíù èá ëåéôïõñãÞóåé ðÜíôá.Ôï ôåëåõôáßï üñéóìá (ôï 0.0.0.0) ëÝåé
óôï PPP íá áñ÷ßóåé ôéò äéáðñáãìáôåýóåéò ìå ôçí äéåýèõíóç
0.0.0.0 áíôß ãéá ôçí 10.0.0.1. Áõôü åßíáé áðáñáßôçôï óå
ïñéóìÝíïõò ISP. Ìç ÷ñçóéìïðïéÞóåôå ôï
0.0.0.0 ùò ðñþôï üñéóìá óôçí
set ifaddr, êáèþò èá åìðïäßóåé ôçí PPP
íá ñõèìßóåé ôçí áñ÷éêÞ äéáäñïìÞ óôçí êáôÜóôáóç
.Áí äåí ÷ñçóéìïðïéåßôå ôçí åðéëïãÞ ,
èá ÷ñåéáóôåß íá äçìéïõñãÞóåôå ìéá êáôá÷þñéóç óôï áñ÷åßï
/etc/ppp/ppp.linkup.
Ôï áñ÷åßï ppp.linkup ÷ñçóéìïðïéåßôáé ìåôÜ
ôçí áðïêáôÜóôáóç ôçò óýíäåóçò. Óôï óçìåßï áõôü, ôï
ppp èá Ý÷åé Þäç áðïäþóåé äéåýèõíóç óôçí
äéåðáöÞ êáé èá åßíáé ðëÝïí äõíáôüí íá ðñïóèÝóåôå ôéò êáôá÷ùñßóåéò
óôïí ðßíáêá äñïìïëüãçóçò:1 provider:
2 add default HISADDRÃñáììÞ 1:Ìå ôçí áðïêáôÜóôáóç ôçò óýíäåóçò, ôï
ppp èá øÜîåé ãéá ìéá êáôá÷þñéóç óôï
ppp.linkup óýìöùíá ìå ôïõò ðáñáêÜôù
êáíüíåò: Áñ÷éêÜ èá ðñïóðáèÞóåé íá ôáéñéÜîåé ôçí ðñþôç
åôéêÝôá ðïõ Ý÷åé ÷ñçóéìïðïéçèåß óôï áñ÷åßï
ppp.conf. Áí áõôü áðïôý÷åé, èá øÜîåé
ãéá ìéá êáôá÷þñéóç ãéá ôçí äéåýèõíóç IP ôçò ðýëçò.
Ç êáôá÷þñéóç áõôÞ åßíáé ìéá åôéêÝôá ìïñöÞò IP äéåýèõíóçò,
ìå ôÝóóåñéò ïêôÜäåò. Áí äåí Ý÷åé áêüìá âñåèåß ç óùóôÞ
êáôá÷þñéóç, èá ãßíåé áíß÷íåõóç ãéá ôçí êáôá÷þñéóç
MYADDR.ÃñáììÞ 2:Ç ãñáììÞ áõôÞ ëÝåé óôï ppp íá
ðñïóèÝóåé ìéá ðñïåðéëåãìÝíç äéáäñïìÞ ç ïðïßá íá äåß÷íåé óôï
HISADDR. Ôï HISADDR
èá áíôéêáôáóôáèåß ìå ôç äéåýèõíóç IP ôçò ðýëçò üðùò
áõôÞ áðïäüèçêå ìÝóù ôïõ ðñùôïêüëëïõ IPCP.Äåßôå ôçí êáôá÷þñéóç pmdemand óôá áñ÷åßá
/usr/share/examples/ppp/ppp.conf.sample
êáé
/usr/share/examples/ppp/ppp.linkup.sample
ãéá Ýíá ðéï ëåðôïìåñÝò ðáñÜäåéãìá.ËÞøç Åéóåñ÷üìåíùí ÊëÞóåùíPPPreceiving incoming calls¼ôáí ñõèìßæåôå ôï ppp íá ëáìâÜíåé
åéóåñ÷üìåíåò êëÞóåéò óå Ýíá ìç÷Üíçìá ðïõ óõíäÝåôáé óå Ýíá ôïðéêü
äßêôõï (LAN), èá ðñÝðåé íá áðïöáóßóåôå áí èÝëåôå íá ðñïùèïýíôáé
ðáêÝôá ðñïò áõôü. Áí íáé, èá ðñÝðåé íá áðïäþóåôå óôï ìç÷Üíçìá
ìéá äéåýèõíóç IP ç ïðïßá íá áíÞêåé óôï ßäéï õðïäßêôõï ìå ôï LAN,
êáé íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ enable proxy
óôï áñ÷åßï /etc/ppp/ppp.conf. Èá ðñÝðåé
åðßóçò íá åðéâåâáéþóåôå üôé ôï áñ÷åßï
/etc/rc.conf ðåñéÝ÷åé ôá ðáñáêÜôù:gateway_enable="YES"Ðïéï getty;Ç åíüôçôá Õðçñåóßá Åéóüäïõ ìÝóù
ÅðéëïãéêÞò Óýíäåóçò (dial in) ðáñÝ÷åé ìéá êáëÞ ðåñéãñáöÞ
ó÷åôéêÜ ìå ôçí åíåñãïðïßçóç õðçñåóéþí åðéëïãéêþí êëÞóåùí
÷ñçóéìïðïéþíôáò ôçí &man.getty.8;.Ìéá åíáëëáêôéêÞ óôçí getty åßíáé ç mgetty (áðü ôï ðáêÝôï
comms/mgetty+sendfax),
ìéá ðéï Ýîõðíç Ýêäïóç ôçò getty, ç ïðïßá Ý÷åé
ó÷åäéáóôåß ãéá íá ëáìâÜíåé õðüøéí ôéò åðéëïãéêÝò ãñáììÝò.Ôá ðëåïíåêôÞìáôá ôçò mgetty åßíáé üôé
åðéêïéíùíåß åíåñãÜ ìå ôá modem, ôï ïðïßï
óçìáßíåé üôé áí ç èýñá åßíáé áðåíåñãïðïéçìÝíç óôï
/etc/ttys, ôï modem óáò äåí èá áðáíôÞóåé
óôçí êëÞóç.ÌåôáãåíÝóôåñåò åêäüóåéò ôçò mgetty
(áðü ôçí 0.99beta êáé ìåôÜ) õðïóôçñßæïõí åðßóçò áõôüìáôç
áíß÷íåõóç PPP streams, åðéôñÝðïíôáò óôïõò ðåëÜôåò óáò ðñüóâáóç
óôïí åîõðçñåôçôÞ ÷ùñßò ÷ñÞóç scripts.ÄéáâÜóôå ôçí åíüôçôá Mgetty
êáé AutoPPP ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí
mgetty.¶äåéåò ãéá ôï PPPÖõóéïëïãéêÜ, ç åêôÝëåóç ôçò åíôïëÞò ppp
ðñÝðåé íá ãßíåôáé ùò ÷ñÞóôçò root. Áí
ùóôüóï èÝëåôå íá åðéôñÝøåôå ôçí åêôÝëåóç ôïõ
ppp óå êáôÜóôáóç åîõðçñåôçôÞ ùò êáíïíéêüò
÷ñÞóôçò (ìå ôïí ôñüðï ðïõ ðåñéãñÜöåôáé ðáñáêÜôù) èá ðñÝðåé íá
äþóåôå óå áõôü ôï ÷ñÞóôç ôá êáôÜëëçëá äéêáéþìáôá ãéá íá
åêôåëåß ôï ppp, ðñïóèÝôïíôáò ôïí óôçí ïìÜäá
network óôï áñ÷åßï
/etc/group.Èá ðñÝðåé åðßóçò íá ôïõò äþóåôå ðñüóâáóç óå Ýíá Þ
ðåñéóóüôåñá ôìÞìáôá ôïõ áñ÷åßïõ ñõèìßóåùí, ÷ñçóéìïðïéþíôáò ôçí
åíôïëÞ allow:allow users fred maryÁí ÷ñçóéìïðïéÞóåôå ôçí åðéëïãÞ áõôÞ óôï ôìÞìá
default, èá äþóåôå óå áõôïýò ôïõò ÷ñÞóôåò
ðñüóâáóç óå üëåò ôéò ñõèìßóåéò.Êåëýöç PPP ãéá ×ñÞóôåò ìå ÄõíáìéêÜ IPPPP shellsÄçìéïõñãÞóôå Ýíá áñ÷åßï ìå ôï üíïìá
/etc/ppp/ppp-shell ôï ïðïßï íá ðåñéÝ÷åé ôá
ðáñáêÜôù:#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENTÔï script áõôü èá ðñÝðåé íá ãßíåé åêôåëÝóéìï. ÄçìéïõñãÞóôå
ôþñá Ýíá óõìâïëéêü äåóìü ðïõ íá ïíïìÜæåôáé
ppp-dialup ÷ñçóéìïðïéþíôáò ôéò ðáñáêÜôù
åíôïëÝò:&prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialupÈá ðñÝðåé íá ÷ñçóéìïðïéÞóåôå áõôü ôï script ùò ôï
êÝëõöïò ãéá üëïõò ôïõò dialup ÷ñÞóôåò.
Åäþ öáßíåôáé Ýíá ðáñÜäåéãìá ôïõ /etc/passwd
ãéá Ýíá ÷ñÞóôç dialup ìå üíïìá
pchilds (èõìçèåßôå üôé äåí ðñÝðåé íá
ôñïðïðïéåßôå Üìåóá ôï áñ÷åßï ôùí êùäéêþí, áëëÜ ìÝóù ôçò åíôïëÞò
&man.vipw.8;).pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialupÄçìéïõñãÞóôå Ýíá êáôÜëïãï /home/ppp ðñïóâÜóéìï ãéá áíÜãíùóç
áðü üëïõò, ï ïðïßïò èá ðåñéÝ÷åé ôá ðáñáêÜôù êåíÜ áñ÷åßá:-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhostsôá ïðïßá åìðïäßæïõí ôçí åìöÜíéóç ôïõ ìçíýìáôïò áðü ôï áñ÷åßï
/etc/motd.Êåëýöç PPP ãéá ×ñÞóôåò ìå Óôáôéêü IPPPP shellsÄçìéïõñãÞóôå ôï áñ÷åßï ppp-shell
üðùò öáßíåôáé ðáñáðÜíù, êáé ãéá êÜèå ëïãáñéáóìü ìå óôáôéêü
IP, äçìéïõñãÞóôå Ýíá óõìâïëéêü äåóìü ðñïò ôï
ppp-shell.Ãéá ðáñÜäåéãìá, áí Ý÷åôå ôñåéò ðåëÜôåò dialup, ôïõò
fred, sam, êáé
mary, óôïõò ïðïßïõò åêôåëåßôå äñïìïëüãçóç
/24 CIDR, èá ðñÝðåé íá ãñÜøåôå ôá ðáñáêÜôù:&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-maryÃéá êÜèå ëïãáñéáóìü ÷ñÞóôç dialup, èá ðñÝðåé íá ñõèìéóôåß
ôï êÝëõöïò óôï óõìâïëéêü äåóìü ðïõ äçìéïõñãÞèçêå ðáñáðÜíù (ãéá
ðáñÜäåéãìá ï óõìâïëéêüò äåóìüò ãéá ôï êÝëõöïò ôïõ ÷ñÞóôç
mary èá ðñÝðåé íá åßíáé ï
/etc/ppp/ppp-mary).Ñýèìéóç ôïõ ppp.conf ãéá ×ñÞóôåò ìå
Äõíáìéêü IPÔï áñ÷åßï /etc/ppp/ppp.conf èá ðñÝðåé íá
ðåñéÝ÷åé êÜôé áíôßóôïé÷ï ìå ôï ðáñáêÜôù:default:
set debug phase lcp chat
set timeout 0
ttyu0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyu1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxyÇ óôïß÷éóç åßíáé óçìáíôéêÞ.Ãéá êÜèå óõíåäñßá, öïñôþíåôáé ç åíüôçôá
default:. Ãéá êÜèå ãñáììÞ dialup ðïõ
åíåñãïðïéåßôáé óôï /etc/ttys, èá ðñÝðåé íá
äçìéïõñãÞóåôå ìéá êáôá÷þñéóç üìïéá ìå áõôÞ ðïõ öáßíåôáé ðáñáðÜíù
ãéá ôï ttyu0:. ÊÜèå ãñáììÞ èá ðñÝðåé íá
ðáßñíåé ìéá ìïíáäéêÞ äéåýèõíóç IP áðü ôï áðüèåìá ôùí IP
äéåõèýíóåùí ðïõ ðñïïñßæïíôáé ãéá ôïõò äõíáìéêïýò ÷ñÞóôåò.Ñýèìéóç ôïõ ppp.conf ãéá ×ñÞóôåò ìå
Óôáôéêü IPÅêôüò áðü ôá ðåñéå÷üìåíá ôïõ õðïäåßãìáôïò
/usr/share/examples/ppp/ppp.conf èá ðñÝðåé
íá ðñïóèÝóåôå ìéá åíüôçôá ãéá êáèÝíá áðü ôïõò ÷ñÞóôåò dialup
óôïõò ïðïßïõò Ý÷åé áðïäïèåß óôáôéêü IP. Èá óõíå÷ßóïõìå ìå ôï
ðáñÜäåéãìá ìáò ìå ôïõò ÷ñÞóôåò
fred, sam, êáé
mary.fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255Ôï áñ÷åßï /etc/ppp/ppp.linkup
èá ðñÝðåé åðßóçò íá ðåñéÝ÷åé ðëçñïöïñßåò äñïìïëüãçóçò ãéá êÜèå
÷ñÞóôç ìå óôáôéêü IP (áí áðáéôåßôáé). Ç ðáñáêÜôù ãñáììÞ èá
ðñïóèÝóåé ìéá äéáäñïìÞ ðñïò ôç äéåýèõíóç äéêôýïõ
203.14.101.0/24
ìÝóù ôçò óýíäåóçò ppp ôïõ ðåëÜôç.fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDRmgetty êáé AutoPPPmgettyAutoPPPLCPÔï port
comms/mgetty+sendfax, Ýñ÷åôáé
ìå ðñïåðéëåãìÝíç ôçí åðéëïãÞ AUTO_PPP,
åðéôñÝðïíôáò Ýôóé óôçí mgetty íá áíé÷íåýåé ôçí
öÜóç LCP ôùí óõíäÝóåùí PPP êáé íá åêôåëåß áõôüìáôá Ýíá êÝëõöïò
ppp. Ùóôüóï, êáèþò ìå áõôü ôïí ôñüðï äåí åíåñãïðïéåßôáé ç
ðñïåðéëåãìÝíç áêïëïõèßá ïíüìáôïò ÷ñÞóôç êáé êùäéêïý, åßíáé
áðáñáßôçôï íá ãßíåé ðéóôïðïßçóç ôùí ÷ñçóôþí ìå ôç ÷ñÞóç PAP Þ
CHAP.Ç åíüôçôá áõôÞ ðñïûðïèÝôåé üôé ï ÷ñÞóôçò Ý÷åé ñõèìßóåé,
ìåôáãëùôôßóåé êáé åãêáôáóôÞóåé ìå åðéôõ÷ßá ôï port comms/mgetty+sendfax óôï óýóôçìá
ôïõ.Âåâáéùèåßôå üôé ôï áñ÷åßï óáò
/usr/local/etc/mgetty+sendfax/login.config
ðåñéÝ÷åé ôá ðáñáêÜôù:/AutoPPP/ - - /etc/ppp/ppp-pap-dialupÁõôü èá ðåé óôçí mgetty íá åêôåëÝóåé ôï
script ppp-pap-dialup ãéá ôéò PPP óõíäÝóåéò
ðïõ áíé÷íåýèçêáí.ÄçìéïõñãÞóôå Ýíá áñ÷åßï ìå ôï üíïìá
/etc/ppp/ppp-pap-dialup ôï ïðïßï èá ðåñéÝ÷åé
ôá áêüëïõèá (ôï áñ÷åßï èá ðñÝðåé íá åßíáé åêôåëÝóéìï):#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENTÃéá êÜèå ãñáììÞ dialup ðïõ åßíáé åíåñãïðïéçìÝíç óôï
/etc/ttys, äçìéïõñãÞóôå ìéá áíôßóôïé÷ç
êáôá÷þñéóç óôï áñ÷åßï /etc/ppp/ppp.conf.
Ç êáôá÷þñéóç áõôÞ ìðïñåß íá óõíõðÜñ÷åé ÷ùñßò ðñüâëçìá ìå áõôÝò
ðïõ ïñßóáìå ðáñáðÜíù.pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxyÊÜèå ÷ñÞóôçò ðïõ åéóÝñ÷åôáé ìå áõôü ôïí ôñüðï, èá ðñÝðåé íá
äéáèÝôåé üíïìá ÷ñÞóôç/êùäéêü óôï áñ÷åßï
/etc/ppp/ppp.secret. ÅíáëëáêôéêÜ, ìðïñåßôå
íá ðñïóèÝóåôå ôçí ðáñáêÜôù åðéëïãÞ þóôå íá ãßíåôáé ðéóôïðïßçóç
ôùí ÷ñçóôþí ìÝóù PAP ìå âÜóç ôá óôïé÷åßá ôïõ áñ÷åßïõ
/etc/passwd.enable passwdauthÁí èÝëåôå íá áðïäþóåôå óôáôéêü IP óå êÜðïéïõò ÷ñÞóôåò,
ìðïñåßôå íá êáèïñßóåôå ôçí äéåýèõíóç ùò ôñßôï üñéóìá óôï áñ÷åßï
/etc/ppp/ppp.secret. Ãéá ðáñáäåßãìáôá,
äåßôå ôï áñ÷åßï
/usr/share/examples/ppp/ppp.secret.sample.ÅðåêôÜóåéò MSDNSNetBIOSPPPMicrosoft extensionsÅßíáé äõíáôüí íá ñõèìßóåôå ôï PPP þóôå íá ðáñÝ÷åé
äéåõèýíóåéò DNS êáé NetBIOS êáôÜ áðáßôçóç.Ãéá íá åíåñãïðïéÞóåôå áõôÝò ôéò åðåêôÜóåéò ìå ôçí Ýêäïóç
1.x ôïõ PPP, èá ðñÝðåé íá ðñïóèÝóåôå ôéò ðáñáêÜôù ãñáììÝò óôï
ó÷åôéêü ôìÞìá ôïõ /etc/ppp/ppp.conf.enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Ãéá ôï PPP áðü ôçí Ýêäïóç 2 êáé ðÜíù:accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Ôï ðáñáðÜíù èá åíçìåñþóåé ôïõò ðåëÜôåò ãéá ôïí êýñéï êáé
äåõôåñåýïíôá åîõðçñåôçôÞ DNS, êáé ãéá ôïí åîõðçñåôçôÞ ïíïìÜôùí
NetBIOS.Áðü ôçí Ýêäïóç 2 êáé ðÜíù, áí ðáñáëåéöèåß ç ãñáììÞ
set dns, ôï PPP èá ÷ñçóéìïðïéÞóåé ôéò ãñáììÝò
ðïõ èá âñåé óôï /etc/resolv.conf.Ðéóôïðïßçóç PAP êáé CHAPPAPCHAPÊÜðïéïé ISP ñõèìßæïõí ôá óõóôÞìáôá ôïõò ìå ôÝôïéï ôñüðï, þóôå
ôï êïììÜôé ôçò óýíäåóçò ðïõ áó÷ïëåßôáé ìå ôçí ðéóôïðïßçóç ôïõ
÷ñÞóôç íá ãßíåôáé ìÝóù ôùí ìç÷áíéóìþí PAP Þ CHAP. Áí óõìâáßíåé
áõôü óôç äéêÞ óáò ðåñßðôùóç, ï ISP óáò äåí èá óáò óôåßëåé ðñïôñïðÞ
login üôáí óõíäåèåßôå, áëëÜ èá áñ÷ßóåé áðåõèåßáò ôç ìåôÜäïóç
PPP.Ôï PAP åßíáé ëéãüôåñï áóöáëÝò áðü ôï CHAP, áëëÜ ç áóöÜëåéá
åäþ äåí åßíáé ôüóï óðïõäáßï èÝìá, êáèþò ïé êùäéêïß (áí êáé
óôÝëíïíôáé ùò êáíïíéêü êåßìåíï) ìåôáäßäïíôáé ìüíï ìÝóù óåéñéáêÞò
ãñáììÞò. ¸ôóé äåí õðÜñ÷åé ðñáãìáôéêÞ äõíáôüôçôá ôùí crackers
íá êñõöáêïýóïõí.×ñçóéìïðïéþíôáò ùò áíáöïñÜ ôéò åíüôçôåò PPP êáé ÓôáôéêÝò Äéåõèýíóåéò
IP Þ PPP êáé ÄõíáìéêÝò
Äéåõèýíóåéò IP, èá ðñÝðåé íá ãßíïõí ïé ðáñáêÜôù
áëëáãÝò:13 set authname MyUserName
14 set authkey MyPassword
15 set loginÃñáììÞ 13:Ç ãñáììÞ áõôÞ êáèïñßæåé ôï üíïìá ÷ñÞóôç ãéá ôá PAP/CHAP.
Èá ÷ñåéáóôåß íá åéóÜãåôå ôçí óùóôÞ ôéìÞ ãéá ôï
MyUserName.ÃñáììÞ 14:
- password
-
Ç ãñáììÞ áõôÞ êáèïñßæåé ôïí êùäéêü ãéá ôá PAP/CHAP. Èá
÷ñåéáóôåß íá åéóÜãåôå ôçí óùóôÞ ôéìÞ ãéá ôï
- MyPassword. ºóùò èÝëåôå íá
+ MyPasswordpassword. ºóùò èÝëåôå íá
ðñïóèÝóåôå ìéá áêüìá ãñáììÞ, üðùò ôçí ðáñáêÜôù:16 accept PAPÞ16 accept CHAPãéá íá åßíáé öáíåñÞ ç ðñüèåóç óáò, ùóôüóï ôüóï ôï PAP
üóï êáé ôï CHAP ãßíïíôáé äåêôÜ áðü ðñïåðéëïãÞ.ÃñáììÞ 15:Ï ISP óáò äåí èá áðáéôåß öõóéïëïãéêÜ íá åéóÝëèåôå óôïí
åîõðçñåôçôÞ áí ÷ñçóéìïðïéåßôå PAP Þ CHAP. Ãéá ôï ëüãï áõôü,
èá ðñÝðåé íá áðåíåñãïðïéÞóåôå ôï áëöáñéèìçôéêü
set login.ÁëëÜæïíôáò ¶ìåóá ôéò Ñõèìßóåéò ôïõ
pppÅßíáé äõíáôüí íá åðéêïéíùíÞóåôå ìå ôï ðñüãñáììá
ppp êáèþò åêôåëåßôáé óôïí ðáñáóêÞíéï, áëëÜ
ìüíï áí Ý÷åôå ñõèìßóåé ìéá êáôÜëëçëç äéáãíùóôéêÞ èýñá ãéá áõôü
ôï óêïðü. Ãéá íá ôï êÜíåôå áõôü, ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ
óôéò ñõèìßóåéò óáò:set server /var/run/ppp-tun%d DiagnosticPassword 0177Áõôü ïäçãåß ôï PPP íá áêïýåé óôï êáèïñéóìÝíï
&unix; socket ôïõ ôïìÝá, êáé íá ñùôÜåé ôïõò ðåëÜôåò ãéá ôïí
êùäéêü ðïõ Ý÷åé êáèïñéóôåß ðñéí åðéôñÝøåé ôçí ðñüóâáóç. Ôï
%d óôï üíïìá, áíôéêáèßóôáôáé ìå ôïí áñéèìü ôçò
óõóêåõÞò tun ðïõ ÷ñçóéìïðïéåßôáé.Áðü ôç óôéãìÞ ðïõ ñõèìéóôåß ôï socket, ôï ðñüãñáììá
&man.pppctl.8; ìðïñåß íá ÷ñçóéìïðïéçèåß óå scripts ìå ôá ïðïßá
åðéèõìåßôå íá äéá÷åéñéóôåßôå ôï ðñüãñáììá ppp
ôï ïðïßï åêôåëåßôáé Þäç.×ñçóéìïðïéþíôáò ôç Äõíáôüôçôá ÌåôÜöñáóçò Äéåõèýíóåùí (NAT) ôïõ
PPP
-
- PPPNAT
-
-
- Ôï PPP Ý÷åé ôçí éêáíüôçôá íá ÷ñçóéìïðïéÞóåé äéêü ôïõ åóùôåñéêü
+ Ôï PPPPPPNAT Ý÷åé ôçí éêáíüôçôá íá ÷ñçóéìïðïéÞóåé äéêü ôïõ åóùôåñéêü
NAT, ÷ùñßò íá áðáéôïýíôáé ïé éêáíüôçôåò áíáêáôåýèõíóçò ôïõ ðõñÞíá.
Ìðïñåßôå íá åíåñãïðïéÞóåôå áõôÞ ôç ëåéôïõñãßá ìå ôçí áêüëïõèç
ãñáììÞ óôï /etc/ppp/ppp.conf:nat enable yesÅíáëëáêôéêÜ, ôï NAT ôïõ PPP ìðïñåß íá åíåñãïðïéçèåß ìå ôçí
åðéëïãÞ -nat óôçí ãñáììÞ åíôïëþí. Ìðïñåßôå áêüìá
íá âÜëåôå ôçí åðéëïãÞ ppp_nat óôï áñ÷åßï
/etc/rc.conf. Ç åðéëïãÞ áõôÞ åßíáé
åíåñãïðïéçìÝíç áðü ðñïåðéëïãÞ.Áí ÷ñçóéìïðïéÞóåôå áõôü ôï ÷áñáêôçñéóôéêü, ìÜëëïí èá âñåßôå
÷ñÞóéìåò êáé ôéò ðáñáêÜôù åðéëïãÝò ãéá ôï
/etc/ppp/ppp.conf, ìå ôéò ïðïßåò åíåñãïðïéåßôáé
ç ðñïþèçóç åéóåñ÷üìåíùí óõíäÝóåùí:nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http httpÞ áí äåí åìðéóôåýåóôå êáèüëïõ ôï åîùôåñéêü äßêôõï:nat deny_incoming yesÔåëéêÝò Ñõèìßóåéò ÓõóôÞìáôïòPPPconfiguration¸÷åôå ðëÝïí ñõèìßóåé ôï ppp, áëëÜ õðÜñ÷ïõí
ìåñéêÜ áêüìá ðñÜãìáôá ðïõ ðñÝðåé íá êÜíåôå ðñéí íá åßíáé Ýôïéìï ãéá
ëåéôïõñãßá. ¼ëá ðåñéëáìâÜíïõí ôçí åðåîåñãáóßá ôïõ áñ÷åßïõ
/etc/rc.conf.Îåêéíþíôáò áðü ôçí áñ÷Þ ôïõ áñ÷åßïõ áõôïý, âåâáéùèåßôå üôé åßíáé
ïñéóìÝíç ç ãñáììÞ hostname=, ð.÷.:hostname="foo.example.com"Áí ï ISP óáò ðáñÝ÷åé óôáôéêÞ IP äéåýèõíóç êáé üíïìá, åßíáé
ìÜëëïí êáëýôåñï íá ÷ñçóéìïðïéÞóåôå áõôü ôï üíïìá ùò üíïìá ãéá ôï
ìç÷Üíçìá óáò.ØÜîôå ãéá ôç ìåôáâëçôÞ network_interfaces.
Áí èÝëåôå íá ñõèìßóåôå ôï óýóôçìá óáò íá êáëåß ôïí ISP óáò êáôÜ
áðáßôçóç, âåâáéùèåßôå üôé õðÜñ÷åé óôç ëßóôá ç óõóêåõÞ
tun0, äéáöïñåôéêÜ áöáéñÝóôå ôçí.network_interfaces="lo0 tun0"
ifconfig_tun0=Ç ìåôáâëçôÞ ifconfig_tun0 èá ðñÝðåé íá
åßíáé Üäåéá, êáé èá ðñÝðåé íá äçìéïõñãçèåß Ýíá áñ÷åßï ìå üíïìá
/etc/start_if.tun0. Ôï áñ÷åßï áõôü èá ðñÝðåé
íá ðåñéÝ÷åé ôçí ðáñáêÜôù ãñáììÞ:ppp -auto mysystemÔï script áõôü åêôåëåßôáé êáôÜ ôç äéÜñêåéá ñýèìéóçò ôïõ
äéêôýïõ, îåêéíþíôáò Ýôóé ôï äáßìïíá ppp óå êáôÜóôáóç áõôüìáôçò
ëåéôïõñãßáò. Áí äéáèÝôåôå êÜðïéï ôïðéêü äßêôõï (LAN) ãéá ôï
ïðïßï ôï ìç÷Üíçìá áõôü Ý÷åé ôï ñüëï ôçò ðýëçò, ßóùò íá èÝëåôå
åðßóçò íá ÷ñçóéìïðïéÞóåôå ôçí åðéëïãÞ .
Äåßôå ôç óåëßäá manual ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò.Âåâáéùèåßôå üôé ç ìåôáâëçôÞ ãéá ôï ðñüãñáììá router Ý÷åé ôåèåß
óôï NO ìÝóù ôçò åðüìåíçò ãñáììÞò óôï
/etc/rc.conf:router_enable="NO"routedÅßíáé óçìáíôéêü íá ìçí îåêéíÞóåé ï äáßìïíáò
routed, ï ïðïßïò óõíÞèùò äéáãñÜöåé ôéò
ðñïåðéëåãìÝíåò ôéìÝò ôïõ ðßíáêá äñïìïëüãçóçò ðïõ äçìéïõñãïýíôáé áðü
ôï ppp.Åßíáé ìÜëëïí êáëÞ éäÝá íá åîáóöáëßóåôå üôé ç ãñáììÞ
sendmail_flags äåí ðåñéëáìâÜíåé ôçí åðéëïãÞ
, äéáöïñåôéêÜ ôï sendmail èá
ðñïóðáèåß êÜèå ôüóï íá êÜíåé áíáæÞôçóç ôïõ äéêôýïõ, ìå ðéèáíü
áðïôÝëåóìá ôï ìç÷Üíçìá óáò íá åêôåëåß ôçëåöùíéêÞ óýíäåóç
(dial out). Ìðïñåßôå íá äïêéìÜóåôå:sendmail_flags="-bd"sendmailÔï ìåéïíÝêôçìá ôïõ ðáñáðÜíù, åßíáé üôé ðñÝðåé íá åîáíáãêÜóåôå ôï
sendmail íá åðáíåîåôÜóåé ôçí ïõñÜ ôùí ìçíõìÜôùí,
êÜèå öïñÜ ðïõ áðïêáèßóôáôáé ç óýíäåóç ppp, ãñÜöïíôáò:&prompt.root; /usr/sbin/sendmail -qºóùò èÝëåôå íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ
!bg óôï ppp.linkup ãéá íá
ãßíåôáé ôï ðáñáðÜíù áõôüìáôá:1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30mSMTPÁí áõôü äåí óáò áñÝóåé, åßíáé äõíáôüí íá ñõèìßóåôå Ýíá
dfilter ôï ïðïßï íá áðïêüðôåé ôçí êßíçóç SMTP.
Äåßôå ôá õðïäåßãìáôá ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò.Ôï ìüíï ðïõ ìÝíåé åßíáé íá åðáíåêêéíÞóåôå ôï ìç÷Üíçìá. ÌåôÜ
ôçí åðáíåêêßíçóç, ìðïñåßôå åßôå íá ãñÜøåôå:&prompt.root; pppêáé Ýðåéôá dial provider ãéá íá îåêéíÞóåôå
ôç óõíåäñßá PPP, Þ áí èÝëåôå ôï ppp íá
áðïêáèéóôÜ ôéò óõíåäñßåò áõôüìáôá êÜèå öïñÜ ðïõ õðÜñ÷åé êßíçóç
ðñïò ôï åîùôåñéêü äßêôõï (êáé äåí Ý÷åôå äçìéïõñãÞóåé ôï script
start_if.tun0) ìðïñåßôå íá ãñÜøåôå:&prompt.root; ppp -auto providerÐåñßëçøçÃéá íá áíáêåöáëáéþóïõìå, ôá ðáñáêÜôù âÞìáôá åßíáé áðáñáßôçôá
üôáí åãêáèéóôÜôå ôï ppp ãéá ðñþôç öïñÜ:Áðü ôç ìåñéÜ ôïõ ìç÷áíÞìáôïò-ðåëÜôç:Âåâáéùèåßôå üôé ðåñéëáìâÜíåôáé óôïí ðõñÞíá óáò ç óõóêåõÞ
tun.Âåâáéùèåßôå üôé õðÜñ÷åé ôï áñ÷åßï ôçò óõóêåõÞò
tunN
óôïí êáôÜëïãï /dev.ÄçìéïõñãÞóôå ìéá êáôá÷þñéóç óôï áñ÷åßï
/etc/ppp/ppp.conf. Ôï ðáñÜäåéãìá ãéá ôï
pmdemand èá ðñÝðåé íá åßíáé åðáñêÝò ãéá
ôïõò ðåñéóóüôåñïõò ISPs.Áí Ý÷åôå äõíáìéêÞ äéåýèõíóç IP, äçìéïõñãÞóôå ìéá êáôá÷þñéóç
óôï /etc/ppp/ppp.linkup.Åíçìåñþóôå ôï áñ÷åßï
/etc/rc.conf.ÄçìéïõñãÞóôå ôï script start_if.tun0 áí
÷ñåéÜæåóôå êëÞóç êáôÜ áðáßôçóç.Áðü ôç ìåñéÜ ôïõ åîõðçñåôçôÞ:Âåâáéùèåßôå üôé ðåñéëáìâÜíåôáé óôïí ðõñÞíá óáò ç óõóêåõÞ
tun.Âåâáéùèåßôå üôé õðÜñ÷åé ôï áñ÷åßï ôçò óõóêåõÞò
tunN
óôïí êáôÜëïãï /dev.ÄçìéïõñãÞóôå ìéá êáôá÷þñéóç óôï
/etc/passwd (÷ñçóéìïðïéþíôáò ôï ðñüãñáììá
&man.vipw.8;).ÄçìéïõñãÞóôå Ýíá áñ÷åßï profile óôïí ðñïóùðéêü êáôÜëïãï ôïõ
÷ñÞóôç, ôï ïðïßï íá åêôåëåß ôçí åíôïëÞ
ppp -direct direct-server Þ êÜðïéá
áíôßóôïé÷ç.ÄçìéïõñãÞóôå ìéá êáôá÷þñéóç óôï
/etc/ppp/ppp.conf. Ôï ðáñÜäåéãìá ãéá ôï
direct-server èá ðñÝðåé íá åßíáé
åðáñêÝò.ÄçìéïõñãÞóôå ìéá êáôá÷þñéóç óôï
/etc/ppp/ppp.linkup.Åíçìåñþóôå ôï áñ÷åßï
/etc/rc.conf.Gennady B.SorokopudÊÜðïéá ôìÞìáôá ðñïÝñ÷ïíôáé áðü áñ÷éêÞ óõíåéóöïñÜ
ôùí RobertHuff×ñçóéìïðïéþíôáò ôï PPP ôïõ ÐõñÞíáÇ åíüôçôá áõôÞ åßíáé Ýãêõñç êáé ìðïñåß íá åöáñìïóôåß ìüíï óå
óõóôÞìáôá &os; 7.X.Ñõèìßæïíôáò ôï PPP ôïõ ÐõñÞíáPPPkernel PPPÐñéí îåêéíÞóåôå íá ñõèìßæåôå ôï PPP óôï ìç÷Üíçìá óáò, âåâáéùèåßôå
üôé ôï pppd âñßóêåôáé óôïí êáôÜëïãï
/usr/sbin êáé üôé õðÜñ÷åé ï
êáôÜëïãïò /etc/ppp.Ôï pppd Ý÷åé äýï êáôáóôÜóåéò
ëåéôïõñãßáò:Ùò ðåëÜôçò (client) — üôáí èÝëåôå íá
óõíäÝóåôå ôï ìç÷Üíçìá óáò ìå ôïí Ýîù êüóìï ìÝóù óåéñéáêÞò óýíäåóçò
óýíäåóçò Þ ãñáììÞò modem.
-
- PPP
- server
-
-
- Ùò åîõðçñåôçôÞò (server) — ôï ìç÷Üíçìá
+ Ùò åîõðçñåôçôÞò (server)PPPserver — ôï ìç÷Üíçìá
óáò åßíáé óõíäåìÝíï óôï äßêôõï êáé ÷ñçóéìïðïéåßôáé ãéá íá
óõíäÝóåé Üëëïõò õðïëïãéóôÝò, ÷ñçóéìïðïéþíôáò ôï PPP.Êáé óôéò äýï ðåñéðôþóåéò èá ÷ñåéáóôåß íá äçìéïõñãÞóåôå Ýíá áñ÷åßï
åðéëïãþí (/etc/ppp/options Þ
~/.ppprc áí óôï ìç÷Üíçìá óáò õðÜñ÷ïõí
ðåñéóóüôåñïé áðü Ýíáò ÷ñÞóôåò ðïõ ÷ñçóéìïðïéïýí ôï PPP).Èá ÷ñåéáóôåßôå åðßóçò êáé êÜðïéï ëïãéóìéêü ãéá ÷ñÞóç ìå modem
êáé óåéñéáêÝò óõíäÝóåéò (êáôÜ ðñïôßìçóç ôï comms/kermit), þóôå íá ìðïñåßôå íá
êáëÝóåôå êáé íá áðïêáôáóôÞóåôå ôç óýíäåóç ìå ôïí áðïìáêñõóìÝíï
åîõðçñåôçôÞ.TrevRoydhouseÂáóéóìÝíï óå ðëçñïöïñßåò ðïõ ðáñåß÷å ï ×ñçóéìïðïéþíôáò ôï pppd ùò ÐåëÜôçòPPPclientCiscoÌðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï
/etc/ppp/options ðïõ öáßíåôáé ðáñáêÜôù, ãéá íá
óõíäåèåßôå óå ìéá ãñáììÞ PPP åíüò åîõðçñåôçôÞ ôåñìáôéêþí (terminal
server) ôçò Cisco.crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address
# if the remote host does not send your IP during IPCP
# negotiation, remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:remote_ip # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to local_ip:remote_ip
defaultroute # put this if you want that PPP server will be your
# default routerÃéá íá óõíäåèåßôå:KermitmodemÊáëÝóôå ôïí áðïìáêñõóìÝíï åîõðçñåôçôÞ ÷ñçóéìïðïéþíôáò ôï
Kermit (Þ êÜðïéï Üëëï ðñüãñáììá ãéá
modem) êáé åéóÜãåôå ôï üíïìá ÷ñÞóôç êáé ôïí êùäéêü óáò (Þ üôé Üëëï
÷ñåéÜæåôáé ãéá íá åíåñãïðïéÞóåôå ôï PPP óôïí áðïìáêñõóìÝíï
õðïëïãéóôÞ).Âãåßôå áðü ôï Kermit (÷ùñßò íá
êëåßóåôå ôç ãñáììÞ).ÐëçêôñïëïãÞóôå ôá ðáñáêÜôù:&prompt.root; /usr/sbin/pppd /dev/tty0119200Âåâáéùèåßôå üôé ÷ñçóéìïðïéåßôå ôï óùóôü üíïìá óõóêåõÞò êáé
ôçí êáôÜëëçëç ôá÷ýôçôá.Ï õðïëïãéóôÞò óáò åßíáé ôþñá óõíäåìÝíïò ìÝóù PPP. Áí ç óýíäåóç
áðïôý÷åé, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí åðéëïãÞ
óôï áñ÷åßï
/etc/ppp/options êáé íá åëÝãîåôå ôá ìçíýìáôá óôçí
êïíóüëá ãéá íá áíé÷íåýóåôå ôï ðñüâëçìá.Ôï ðáñáêÜôù script /etc/ppp/pppup
áõôïìáôïðïéåß êáé ôá 3 óôÜäéá:#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200KermitÔï áñ÷åßï /etc/ppp/kermit.dial åßíáé Ýíá
script ãéá ôï Kermit ôï ïðïßï êÜíåé ôçí
êëÞóç êáé ôçí ðéóôïðïßçóç ôïõ ÷ñÞóôç óôïí áðïìáêñõóìÝíï õðïëïãéóôÞ
(óôï ôÝëïò áõôïý ôïõ åããñÜöïõ, èá âñåßôå Ýíá ðáñÜäåéãìá ãéá Ýíá
ôÝôïéï script).×ñçóéìïðïéÞóôå ôï ðáñáêÜôù script
/etc/ppp/pppdown ãéá íá áðïóõíäÝóåôå ôçí ãñáììÞ
PPP:#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill -TERM ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptestÅëÝãîôå áí åêôåëåßôáé áêüìá ôï pppd,
åêôåëþíôáò ôï /usr/etc/ppp/ppptest, ôï ïðïßï èá
ìïéÜæåé ìå ôï ðáñáêÜôù:#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0Ãéá íá êëåßóåôå ôçí ãñáììÞ, åêôåëÝóôå ôï
/etc/ppp/kermit.hup, ôï ïðïßï èá ðñÝðåé íá
ðåñéÝ÷åé:set line /dev/tty01 ; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exitÌéá åíáëëáêôéêÞ ìÝèïäïò ðïõ ÷ñçóéìïðïéåß ôï
chat áíôß ãéá ôï
kermit:Ôá ðáñáêÜôù äýï áñ÷åßá åðáñêïýí ãéá ôç äçìéïõñãßá ìéáò óýíäåóçò
pppd./etc/ppp/options:/dev/cuad1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain your.domain # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to local_ip:remote_ip
defaultroute # put this if you want that PPP server will be
# your default router/etc/ppp/login.chat.script:Ôï ðáñáêÜôù èá ðñÝðåé íá ãñáöåß óå ìéá ìüíï ãñáììÞ.ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id
TIMEOUT 5 sword: passwordÌüëéò ôñïðïðïéÞóåôå êáé åãêáôáóôÞóåôå óùóôÜ ôá ðáñáðÜíù áñ÷åßá,
ôï ìüíï ðïõ ÷ñåéÜæåôáé íá êÜíåôå åßíáé íá åêôåëÝóåôå ôçí åíôïëÞ
pppd, ìå ôïí ôñüðï ðïõ öáßíåôáé ðáñáêÜôù:&prompt.root; pppd×ñçóéìïðïéþíôáò ôï pppd ùò ÅîõðçñåôçôÞÔï /etc/ppp/options èá ðñÝðåé íá ðåñéÝ÷åé
êÜôé áíôßóôïé÷ï ìå ôï ðáñáêÜôù:crtscts # Hardware flow control
netmask 255.255.255.0 # netmask (not required)
192.114.208.20:192.114.208.165 # IP's of local and remote hosts
# local ip must be different from one
# you assigned to the Ethernet (or other)
# interface on your machine.
# remote IP is IP address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem lineÔï script /etc/ppp/pppserv ðïõ öáßíåôáé
ðáñáêÜôù, èá ðåé óôï pppd íá ëåéôïõñãÞóåé
ùò åîõðçñåôçôÞò:#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200×ñçóéìïðïéÞóôå ôï ðáñáêÜôù script
/etc/ppp/pppservdown ãéá íá óôáìáôÞóåôå ôïí
åîõðçñåôçôÞ:#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noansÔï ðáñáêÜôù script ãéá ôï Kermit
(/etc/ppp/kermit.ans) ìðïñåß íá åíåñãïðïéåß êáé
íá áðåíåñãïðïéåß ôçí ëåéôïõñãßá áõôüìáôçò áðÜíôçóçò óôï modem
óáò.set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mode
inp 5 OK
echo \13
exitÓôïí áðïìáêñõóìÝíï õðïëïãéóôÞ, ÷ñçóéìïðïéåßôáé ôï script
/etc/ppp/kermit.dial ãéá êëÞóç êáé ðéóôïðïßçóç
ôïõ ÷ñÞóôç. Èá ðñÝðåé íá ôï ôñïðïðïéÞóåôå óýìöùíá ìå ôéò áíÜãêåò óáò.
ÂÜëôå ôï üíïìá ÷ñÞóôç êáé ôïí êùäéêü óáò óå áõôü ôï script.
Èá ÷ñåéáóôåß åðßóçò íá áëëÜîåôå ôçí ãñáììÞ ãéá ôçí åßóïäï (input)
áíÜëïãá ìå ôéò áðáíôÞóåéò ðïõ äßíåé ôï modem óáò êáé ï áðïìáêñõóìÝíïò
õðïëïãéóôÞò.;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup
:sllogin ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:TomRhodesÓõíåéóöïñÜ ôïõ Áíôéìåôþðéóç ÐñïâëçìÜôùí óå ÓõíäÝóåéò
PPPPPPtroubleshootingÁðü ôï &os; 8.0 êáé ìåôÜ, ôï ðñüãñáììá ïäÞãçóçò &man.sio.4;
áíôéêáôáóôÜèçêå áðü ôï &man.uart.4;. Ôá ïíüìáôá óõóêåõþí ôùí
óåéñéáêþí èõñþí Ý÷ïõí áëëÜîåé áðü
/dev/cuadN óå
/dev/cuauN êáé áðü
/dev/ttydN óå
/dev/ttyuN.
Ïé ÷ñÞóôåò ôïõ &os; 7.X èá ðñÝðåé íá ðñïóáñìüóïõí ôéò ðáñáêÜôù
ïäçãßåò óýìöùíá ìå áõôÝò ôéò áëëáãÝò.Ç åíüôçôá áõôÞ êáëýðôåé ìåñéêÜ áðü ôá ðñïâëÞìáôá ðïõ ìðïñåß íá
ðáñïõóéáóôïýí üôáí ãßíåôáé ÷ñÞóç ôïõ PPP ìÝóù óýíäåóçò modem. Ãéá
ðáñÜäåéãìá, èá ðñÝðåé íá îÝñåôå ìå áêñßâåéá ôá ìçíýìáôá åéóüäïõ ðïõ èá
åìöáíßóåé ôï óýóôçìá ôï ïðïßï êáëåßôå. Ìåñéêïß ISP
äßíïõí ôçí ðñïôñïðÞ ssword, åíþ Üëëïé äßíïõí ôçí
password. Áí äåí Ý÷åôå ãñÜøåé óùóôÜ ôï script ãéá
ôï ppp, ç áðüðåéñá åéóüäïõ èá áðïôý÷åé. Ï ðéï
óõíçèéóìÝíïò ôñüðïò íá åêóöáëìáôþóåôå ìéá óýíäåóç
ppp, åßíáé íá óõíäåèåßôå ÷åéñïêßíçôá. Ïé ðëçñïöïñßåò
ðïõ åìöáíßæïíôáé ðáñáêÜôù, èá óáò ïäçãÞóïõí âÞìá ðñïò âÞìá óôç
÷åéñïêßíçôç áðïêáôÜóôáóç ôçò óýíäåóçò.ÅëÝãîôå ôá Áñ÷åßá ÓõóêåõþíÁí ÷ñçóéìïðïéåßôå ðñïóáñìïóìÝíï ðõñÞíá, âåâáéùèåßôå üôé Ý÷åôå
ðåñéëÜâåé ôçí ðáñáêÜôù ãñáììÞ óôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá
óáò:device uartÁí ÷ñçóéìïðïéåßôå ôïí ðõñÞíá GENERIC, äåí
÷ñåéÜæåôáé íá êÜíåôå êÜðïéá áëëáãÞ, êáèþò ç óõóêåýç
uart ðåñéëáìâÜíåôáé Þäç óå áõôüí.
Áðëþò åëÝãîôå ôá ìçíýìáôá ôçò dmesg ãéá ôçí
óõóêåõÞ modem, ÷ñçóéìïðïéþíôáò ôçí ðáñáêÜôù åíôïëÞ:&prompt.root; dmesg | grep uartÈá ðñÝðåé íá äåßôå êÜðïéá Ýîïäï ó÷åôéêÞ ìå ôéò óõóêåõÝò
uart. Ðñüêåéôáé ãéá ôéò èýñåò COM ðïõ
÷ñåéáæüìáóôå. Áí ôï modem óáò ëåéôïõñãåß ùò ôõðïðïéçìÝíç óåéñéáêÞ
èýñá, èá ðñÝðåé íá ôï äåßôå íá áíáöÝñåôáé ùò
uart1, Þ COM2. Áí
óõìâáßíåé áõôü, äåí ÷ñåéÜæåôáé íá åðáíáìåôáãëùôôßóåôå ôïí ðõñÞíá
óáò. Áí ç óåéñéáêÞ èýñá ðïõ áíôéóôïé÷åß óôï modem óáò åßíáé ç
uart1 Þ COM2 óôï
DOS, ç áíôßóôïé÷ç óõóêåõÞ modem èá åßíáé ç
/dev/cuau1.×åéñïêßíçôç ÓýíäåóçÇ ÷åéñïêßíçôç óýíäåóç óôï Internet ìå ÷ñÞóç ôçò
ppp, åßíáé Ýíáò ãñÞãïñïò êáé åýêïëïò ôñüðïò íá
åíôïðßóåôå ôõ÷üí ðñïâëÞìáôá óýíäåóçò, Þ áðëþò íá ðÜñåôå ðëçñïöïñßåò
ó÷åôéêÜ ìå ôï ðùò ï ISP óáò áíôéìåôùðßæåé ôéò
óõíäÝóåéò ðåëáôþí ppp. Èá îåêéíÞóïõìå ôçí
åöáñìïãÞ PPP áðü ôçí ãñáììÞ åíôïëþí.
Óçìåéþóôå üôé óå üëá ìáò ôá ðáñáäåßãìáôá, èá ÷ñçóéìïðïéïýìå ôï
example ùò ôï üíïìá ôïõ õðïëïãéóôÞ ðïõ åêôåëåß
ôï PPP. Ìðïñåßôå íá îåêéíÞóåôå ôï
ppp, ãñÜöïíôáò áðëþò ppp:&prompt.root; ppp¸÷ïõìå ôþñá îåêéíÞóåé ôï ppp.ppp ON example> set device /dev/cuau1ÈÝôïõìå ôç óõóêåõÞ modem. Óôï ðáñÜäåéãìá ìáò, åßíáé ç
cuau1.ppp ON example> set speed 115200ÈÝôïõìå ôçí ôá÷ýôçôá óýíäåóçò, óå áõôÞ ôçí ðåñßðôùóç
÷ñçóéìïðïéïýìå 115,200 kbps.ppp ON example> enable dnsËÝìå óôï ppp íá ñõèìßóåé ôïí
resolver êáé ðñïóèÝôïõìå ôéò êáôÜëëçëåò ãñáììÝò ãéá ôï äéáêïìéóôÞ
ïíïìÜôùí óôï /etc/resolv.conf. Áí ôï
ppp äåí ìðïñåß íá êáèïñßóåé ôï üíïìá ôïõ
äéáêïìéóôÞ, ìðïñïýìå íá ôï êáèïñßóïõìå ìå ÷åéñïêßíçôï ôñüðï
áñãüôåñá.ppp ON example> termÁëëÜæïõìå óå êáôÜóôáóç terminal þóôå íá ìðïñïýìå
íá åëÝãîïõìå ôï modem ÷åéñïêßíçôá.deflink: Entering terminal mode on /dev/cuau1
type '~h' for helpat
OK
atdt123456789×ñçóéìïðïéïýìå ôï at ãéá íá áñ÷éêïðïéÞóïõìå ôï
modem, êáé Ýðåéôá ÷ñçóéìïðïéïýìå ôï atdt êáé ôïí
áñéèìü ôïõ ISP ãéá íá îåêéíÞóïõìå ôç äéáäéêáóßá
ôçò êëÞóçò.CONNECTÅäþ Ý÷ïõìå åðéâåâáßùóç ôçò óýíäåóçò. Áí Ý÷ïõìå ðñïâëÞìáôá
óýíäåóçò ôá ïðïßá äåí ó÷åôßæïíôáé ìå ôï õëéêü ìáò, åäþ åßíáé ôï óçìåßï
ðïõ ðñÝðåé íá ðñïóðáèÞóïõìå íá ôá åðéëýóïõìå.ISP Login:myusernameÇ ðñïôñïðÞ áõôÞ åßíáé ãéá íá äþóïõìå ôï üíïìá ÷ñÞóôç.
×ñçóéìïðïéÞóôå ôï üíïìá ÷ñÞóôç ðïõ óáò Ý÷åé äïèåß áðü ôïí
ISP óáò.ISP Pass:mypasswordÇ ðñïôñïðÞ áõôÞ åßíáé ãéá ôïí êùäéêü ðñüóâáóçò. ÁðáíôÞóôå ìå ôïí
êùäéêü ðïõ óáò Ý÷åé äïèåß áðü ôïí ISP óáò.
Ï êùäéêüò áõôüò äåí èá åìöáíéóôåß óôçí ïèüíç óáò, üðùò áêñéâþò
óõìâáßíåé êáé ìå ôïí êùäéêü óáò üôáí ôïí ãñÜöåôå óôçí ðñïôñïðÞ åéóüäïõ
ôïõ &os; óõóôÞìáôïò óáò.Shell or PPP:pppÁíÜëïãá ìå ôïí ISP óáò, ìðïñåß íá ìçí äåßôå êáé
êáèüëïõ ôçí ðáñáðÜíù ðñïôñïðÞ. Óôçí ðáñáðÜíù ðåñßðôùóç ìáò ñùôÜåé
áí åðéèõìïýìå íá åêôåëÝóïõìå êÜðïéï êÝëõöïò (shell) óôï ìç÷Üíçìá ôïõ
ðáñï÷Ýá, Þ áí èÝëïõìå íá åêêéíÞóïõìå ôï ppp.
Óôï ðáñÜäåéãìá ìáò åðéëÝîáìå íá ÷ñçóéìïðïéÞóïõìå
ppp êáèþò èÝëïõìå íá óõíäåèïýìå óôï
Internet.Ppp ON example>ÐáñáôçñÞóôå üôé óôï ðáñÜäåéãìá ôï ðñþôï
åßíáé êåöáëáßï. Áõôü äåß÷íåé üôé Ý÷ïõìå óõíäåèåß åðéôõ÷þò ìå ôïí
ISP.PPp ON example>¸÷ïõìå ðéóôïðïéçèåß ìå åðéôõ÷ßá áðü ôïí ISP
ìáò, êáé ðåñéìÝíïõìå íá ìáò áðïäïèåß äéåýèõíóç
IP.PPP ON example>¸÷åé ðëÝïí êáèïñéóôåß äéåýèõíóç IP, êáé Ý÷ïõìå
ïëïêëçñþóåé ôç óýíäåóç ìå åðéôõ÷ßá.PPP ON example>add default HISADDRÅäþ ðñïóèÝôïõìå ôçí ðñïåðéëåãìÝíç äéáäñïìÞ (default route).
Ôï âÞìá áõôü åßíáé áðáñáßôçôï ðñéí ìðïñÝóïõìå íá åðéêïéíùíÞóïõìå ìå
ôïí Ýîù êüóìï, êáèþò ôç äåäïìÝíç óôéãìÞ ç ìüíç óýíäåóç ðïõ Ý÷ïõìå
åßíáé ìå Ýíá õðïëïãéóôÞ áðü ôçí Üëëç ìåñéÜ ôçò ãñáììÞò. Áí ôï
ðáñáðÜíù áðïôý÷åé åðåéäÞ õðÜñ÷ïõí Þäç êáèïñéóìÝíåò äéáäñïìÝò,
ìðïñåßôå íá âÜëåôå Ýíá èáõìáóôéêü ! ìðñïóôÜ áðü ôï
. ÅíáëëáêôéêÜ, ìðïñåßôå íá êÜíåôå áõôÞ ôç
ñýèìéóç ðñéí åðé÷åéñÞóåôå ôç óýíäåóç, êáé èá ãßíåé áõôüìáôá
äéáðñáãìÜôåõóç ôçò íÝáò äéáäñïìÞò.Áí üëá ðÞãáí êáëÜ, èá ðñÝðåé ôþñá íá Ý÷åôå åíåñãÞ óýíäåóç ìå ôï
Internet, ôçí ïðïßá ìðïñåßôå íá ìåôáêéíÞóåôå óôï ðáñáóêÞíéï
÷ñçóéìïðïéþíôáò ôï óõíäõáóìü ðëÞêôñùí
CTRLz. Áí ðáñáôçñÞóåôå ôï
PPP íá ãßíåôáé îáíÜ ppp,
ç óýíäåóç Ý÷åé äéáêïðåß. Ìå ôïí ôñüðï áõôü ìðïñåßôå íá ðáñáêïëïõèåßôå
ôçí êáôÜóôáóç ôçò óýíäåóç óáò. Ôá êåöáëáßá P äåß÷íïõí üôé õðÜñ÷åé
óýíäåóç ìå ôïí ISP åíþ ôá ìéêñÜ p äåß÷íïõí üôé
ãéá êÜðïéï ëüãï ç óýíäåóç Ý÷åé ÷áèåß. Ôï ppp Ý÷åé
ìüíï áõôÝò ôéò äýï êáôáóôÜóåéò.Áíôéìåôþðéóç ÐñïâëçìÜôùíÁí Ý÷åôå áðåõèåßáò ãñáììÞ êáé äåí öáßíåôáé íá ìðïñåßôå íá
áðïêáôáóôÞóåôå ôç óýíäåóç, áðåíåñãïðïéÞóôå ôïí Ýëåã÷ï ñïÞò ìÝóù
õëéêïý (CTS/RTS) ÷ñçóéìïðïéþíôáò ôçí åðéëïãÞ
. Ôï ðáñáðÜíù óõìâáßíåé óõíÞèùò áí
åßóôå óõíäåìÝíïò óå êÜðïéï åîõðçñåôçôÞ ôåñìáôéêþí ìå äõíáôüôçôá
PPP, üðïõ ôï
PPP óôáìáôÜåé íá áðïêñßíåôáé üôáí
ðñïóðáèåß íá ãñÜøåé äåäïìÝíá óôç óýíäåóç óáò. Óôçí ðåñßðôùóç áõôÞ,
óõíÞèùò ðåñéìÝíåé ãéá êÜðïéï óÞìá CTS (Clear
To Send) ôï ïðïßï äåí Ýñ÷åôáé ðïôÝ. Áí ùóôüóï ÷ñçóéìïðïéÞóåôå áõôÞ
ôçí åðéëïãÞ, èá ðñÝðåé åðßóçò íá ÷ñçóéìïðïéÞóåôå êáé ôçí åðéëïãÞ
ç ïðïßá åíäå÷ïìÝíùò áðáéôåßôáé ãéá íá
áðïìïíùèåß ôï õëéêü ðïõ åîáñôÜôáé áðü ôç ìåôÜäïóç óõãêåêñéìÝíùí
÷áñáêôÞñùí áðü ôç ìéá Üêñç óôçí Üëëç, óõíÞèùò ìÝóù ôïõ XON/XOFF.
Äåßôå ôç óåëßäá manual ôïõ &man.ppp.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò
ó÷åôéêÜ ìå áõôÞ ôçí åðéëïãÞ êáé ðùò ìðïñåßôå íá ôçí
÷ñçóéìïðïéÞóåôå.Áí äéáèÝôåôå Ýíá ðáëáéüôåñï modem, ßóùò ÷ñåéáóôåß íá
÷ñçóéìïðïéÞóåôå ôçí åðéëïãÞ .
Ç ðñïåðéëåãìÝíç ñýèìéóç åßíáé íá ìçí õðÜñ÷åé éóïôéìßá (parity
none), áëëÜ óå ðáëéÜ modems (êáé óå êÜðïéïõò
ISP) ÷ñçóéìïðïéåßôáé ãéá Ýëåã÷ï ëáèþí
(ç ÷ñÞóç ôçò ðñïêáëåß ùóôüóï ìåãÜëç áýîçóç óôç ìåôáêßíçóç
äåäïìÝíùí). ºóùò ÷ñåéáóôåßôå áõôÞ ôçí åðéëïãÞ, áí ï
ISP óáò åßíáé ç Compuserve.Ôï PPP ßóùò íá ìçí åðáíÝëèåé óôçí
êáôÜóôáóç åíôïëþí, ôï ïðïßï åßíáé óõíÞèùò óöÜëìá äéáðñáãìÜôåõóçò,
êáèþò ï ISP ðåñéìÝíåé áðü ôç äéêÞ óáò ìåñéÜ íá
îåêéíÞóåé ôç äéáðñáãìÜôåõóç. Óôï óçìåßï áõôü, ç ÷ñÞóç ôçò åíôïëÞò
~p èá åîáíáãêÜóåé ôï ppp íá áñ÷ßóåé íá óôÝëíåé
ôéò ðëçñïöïñßåò ó÷åôéêÜ ìå ôç ñýèìéóç.Áí äåí ðÜñåôå ðïôÝ ðñïôñïðÞ åéóüäïõ, ôï ðéèáíüôåñï åßíáé íá
ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ðéóôïðïßçóç PAP Þ
CHAP áíôß ãéá ôçí ôýðïõ &unix; ðéóôïðïßçóç ðïõ
ðåñéãñÜøáìå óôï ðáñáðÜíù ðáñÜäåéãìá. Ãéá íá ÷ñçóéìïðïéÞóåôå
PAP Þ CHAP áðëþò ðñïóèÝóôå ôéò
ðáñáêÜôù åðéëïãÝò óôçí åöáñìïãÞ PPP
ðñéí âñåèåßôå óå êáôÜóôáóç ôåñìáôéêïý:ppp ON example> set authname myusernameÈá ðñÝðåé íá áíôéêáôáóôÞóåôå ôï
myusername ìå ôï üíïìá ÷ñÞóôç ðïõ óáò
Ý÷åé äïèåß áðü ôïí ISP óáò.ppp ON example> set authkey mypasswordÈá ðñÝðåé íá áíôéêáôáóôÞóåôå ôï
mypassword ìå ôïí êùäéêü ÷ñÞóôç ðïõ óáò
Ý÷åé äïèåß áðü ôïí ISP óáò.Áí óõíäÝåóôå êáíïíéêÜ, áëëÜ äåí öáßíåôáé íá ìðïñåßôå íá
åðéêïéíùíÞóåôå ìå êáìéÜ äéåýèõíóç, ðñïóðáèÞóôå íá ÷ñçóéìïðïéÞóåôå
ôçí åíôïëÞ &man.ping.8; ìå ìéá äéåýèõíóç IP ãéá
íá äåßôå áí èá ëÜâåôå áðÜíôçóç. Áí âëÝðåôå áðþëåéá ðáêÝôùí 100%,
ôï ðéï ðéèáíü åßíáé üôé äåí Ý÷åôå êáèïñßóåé êÜðïéá ðñïåðéëåãìÝíç
äéáäñïìÞ. ÅëÝãîôå îáíÜ üôé Ý÷åôå ñõèìßóåé ôçí åðéëïãÞ
êáôÜ ôç äéÜñêåéá ôçò óýíäåóçò.
Áí ìðïñåßôå íá åðéêïéíùíÞóåôå ìå ìéá áðïìáêñõóìÝíç äéåýèõíóç
IP, ôï ðéèáíüôåñï åßíáé üôé äåí Ý÷åôå âÜëåé
ôç äéåýèõíóç êÜðïéïõ äéáêïìéóôÞ ïíïìÜôùí óôï áñ÷åßï
/etc/resolv.conf. Ôï áñ÷åßï áõôü èá ðñÝðåé íá
ìïéÜæåé ìå ôï ðáñáêÜôù:domain example.com
nameserver x.x.x.x
nameserver y.y.y.y¼ðïõ ôá x.x.x.x êáé
y.y.y.y èá ðñÝðåé íá áíôéêáôáóôáèïýí ìå
ôéò äéåõèýíóåéò IP ôùí äéáêïìéóôþí DNS ôïõ
ISP óáò. Åíäå÷ïìÝíùò ïé ðëçñïöïñßåò áõôÝò íá
óáò Ý÷ïõí äïèåß êáôÜ ôçí åããñáöÞ óáò óôçí õðçñåóßá. Áí ü÷é, èá
ìðïñÝóåôå íá ôéò âñåßôå åýêïëá ìå Ýíá ôçëåöþíçìá óôïí
ISP óáò.Ìðïñåßôå åðßóçò íá åíåñãïðïéÞóåôå ôçí êáôáãñáöÞ óõìâÜíôùí ãéá
ôçí PPP óýíäåóç óáò, ìÝóù ôïõ
&man.syslog.3;. Áðëþò ðñïóèÝóôå:!ppp
*.* /var/log/ppp.logóôï /etc/syslog.conf. Ôéò ðåñéóóüôåñåò
öïñÝò, áõôÞ ç ëåéôïõñãßá õðÜñ÷åé Þäç.JimMockÓõíåéóöïñÜ (áðü http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) ôïõ ×ñçóéìïðïéþíôáò PPP ìÝóù Ethernet (PPPoE)PPPover EthernetPPPoEPPP, over EthernetÇ åíüôçôá áõôÞ ðåñéãñÜöåé ðùò íá ñõèìßóåôå ìéá óýíäåóç PPP ìÝóù
Ethernet (PPPoE).Ñýèìéóç ôïõ ÐõñÞíáÄåí áðáéôåßôáé ðëÝïí åéäéêÞ ñýèìéóç ôïõ ðõñÞíá ãéá ôç ëåéôïõñãßá
PPPoE. Áí ï ðõñÞíáò óáò äåí ðåñéëáìâÜíåé ôçí áðáñáßôçôç õðïóôÞñéîç
netgraph, ôï ppp èá ôçí öïñôþóåé áõôüìáôá
ùò Üñèñùìá.Ñýèìéóç ôïõ ppp.confÐáñáêÜôù öáßíåôáé Ýíá õðüäåéãìá áñ÷åßïõ
ppp.conf:default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:xl1 # replace xl1 with your Ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDRÅêôÝëåóç ôïõ pppÙò ÷ñÞóôçò root, ìðïñåßôå íá
åêôåëÝóåôå:&prompt.root; ppp -ddial name_of_service_providerÅêêßíçóç ôïõ ppp êáôÜ ôçí
ÅêêßíçóçÐñïóèÝóôå ôéò ðáñáêÜôù ãñáììÝò óôï áñ÷åßï
/etc/rc.conf:ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"×ñÞóç ìéáò ÅôéêÝôáò Õðçñåóßáò PPPoEÌåñéêÝò öïñÝò èá ÷ñåéáóôåß íá ÷ñçóéìïðïéÞóåôå ìéá åôéêÝôá
õðçñåóßáò (service tag) ãéá ôçí áðïêáôÜóôáóç ôçò óýíäåóçò óáò.
Ïé åôéêÝôåò õðçñåóéþí ÷ñçóéìïðïéïýíôáé ãéá ôïí äéá÷ùñéóìü
ìåôáîý äéáöïñåôéêþí åîõðçñåôçôþí PPPoE ðïõ âñßóêïíôáé óôï ßäéï
äßêôõï.Ç ôåêìçñßùóç ðïõ óáò Ý÷åé äþóåé ï ISP óáò, èá ðñÝðåé íá Ý÷åé ôéò
áðáéôïýìåíåò ðëçñïöïñßåò ãéá ôçí åôéêÝôá õðçñåóßáò ðïõ ÷ñåéÜæåóôå.
Áí äåí ìðïñåßôå íá ôçí âñåßôå, ñùôÞóôå ôçí åîõðçñÝôçóç ðåëáôþí ôïõ
ISP óáò.Ùò ôåëåõôáßá ëýóç, èá ìðïñïýóáôå íá äïêéìÜóåôå ôçí ìÝèïäï
ðïõ óõíßóôáôáé óôï ðñüãñáììá Roaring Penguin
PPPoE ôï ïðïßï ìðïñåßôå íá âñåßôå óôçí ÓõëëïãÞ ôùí Ports. Íá Ý÷åôå õðüøç óáò,
üôé áõôü ìðïñåß íá áðïðñïãñáììáôßóåé êáé íá á÷ñçóôåýóåé ôï modem
óáò, Ýôóé óêåöôåßôå ôï êáëÜ ðñéí ôï êÜíåôå. Áðëþò åãêáôáóôÞóôå ôï
ðñüãñáììá ðïõ äßíåé ï ðáñï÷Ýáò óáò ìáæß ìå ôï modem. ¸ðåéôá,
åéóÝëèåôå óôï ìåíïý System ôïõ ðñïãñÜììáôïò.
Åêåß èá ðñÝðåé íá åßíáé ôï üíïìá ôïõ ðñïößë óáò. ÓõíÞèùò ãñÜöåé
ISP.Ôï üíïìá ôïõ ðñïößë (åôéêÝôá õðçñåóßáò) èá ÷ñçóéìïðïéçèåß óôçí
êáôá÷þñéóç ãéá ôçí ñýèìéóç ôïõ PPPoE óôï áñ÷åßï
ppp.conf, ùò ôï ôìÞìá ðïõ äçëþíåé ôïí ðáñï÷Ýá
óôçí åíôïëÞ set device (äåßôå ôç óåëßäá manual ôïõ
&man.ppp.8; ãéá ðëÞñåéò ëåðôïìÝñåéåò). èá äåß÷íåé üðùò ôï
ðáñáêÜôù:set device PPPoE:xl1:ISPÌçí îå÷Üóåôå íá áëëÜîåôå ôï xl1
ìå ôç óùóôÞ óõóêåõÞ ðïõ áíôéóôïé÷åß óôçí êÜñôá Ethernet ðïõ
÷ñçóéìïðïéåßôå.Ìçí îå÷Üóåôå íá áëëÜîåôå ôï ISP
ìå ôï ðñïößë ðïõ âñÞêáôå ðáñáðÜíù.Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, äåßôå:Öèçíüôåñåò
ÅõñõæùíéêÝò ÓõíäÝóåéò ìÝóù &os; óå ÃñáììÞ DSL áðü ôïí
Renaud Waldura.Ôï PPPoE óå Modem &tm.3com; HomeConnect ADSL Dual LinkÁõôü ôï modem äåí áêïëïõèåß ôï RFC 2516
(Ìéá ìÝèïäïò ãéá ìåôÜäïóç PPP ìÝóù Ethernet
(PPPoE), ãñáììÝíï áðü ôïõò L. Mamakos, K. Lidl, J. Evarts,
D. Carrel, D. Simone, êáé R. Wheeler). Áíôßèåôá, ÷ñçóéìïðïéåß
äéáöïñåôéêïýò ôýðïõò êùäéêþí ðáêÝôùí ãéá ôá ðëáßóéá Ethernet.
Ðáñáêáëïýìå íá åêöñÜóåôå ôá ðáñÜðïíá óáò óôçí 3Com áí íïìßæåôå üôé èá ðñÝðåé
íá óõììïñöùèåß ìå ôéò ðñïäéáãñáöÝò ôïõ PPPoE.Ãéá íá ìðïñåß ôï &os; íá åðéêïéíùíåß ìå áõôÞ ôç óõóêåõÞ, èá ðñÝðåé
íá ôåèåß Ýíá êáôÜëëçëï sysctl. Áõôü ìðïñåß íá ãßíåôáé áõôüìáôá êáôÜ
ôçí åêêßíçóç, ìå ôçí åíçìÝñùóç ôïõ áñ÷åßïõ
/etc/sysctl.conf:net.graph.nonstandard_pppoe=1Þ ìðïñåß íá ãßíåé Üìåóá ìå ôçí åíôïëÞ:&prompt.root; sysctl net.graph.nonstandard_pppoe=1Äõóôõ÷þò, åðåéäÞ ðñüêåéôáé ãéá ìéá ñýèìéóç ðïõ åðçñåÜæåé ïëüêëçñï
ôï óýóôçìá, äåí åßíáé äõíáôüí íá åðéêïéíùíåßôå ôáõôü÷ñïíá ìå
Ýíá êáíïíéêü ðåëÜôç Þ åîõðçñåôçôÞ PPPoE êáé ìå Ýíá ADSL modem
&tm.3com; HomeConnect.×ñçóéìïðïéþíôáò PPP ìÝóù ATM
(PPPoA)PPPover ATMPPPoAPPP, over ATM¹ åíüôçôá ðïõ áêïëïõèåß, ðåñéãñÜöåé ðùò íá ñõèìßóåôå ôï PPP ãéá
ëåéôïõñãßá ìÝóù ATM (PPPoA). Ôï PPPoA åßíáé ìéá äçìïöéëÞò åðéëïãÞ
óôïõò ðáñï÷åßò õðçñåóéþí DSL óôçí Åõñþðç.×ñçóéìïðïéþíôáò PPPoA ìå ôï Alcatel &speedtouch; USBÇ õðïóôÞñéîç PPPooA ãéá áõôÞ ôç óõóêåõÞ, ðáñÝ÷åôáé ùò port óôï
&os;, êáèþò ôï firmware ôçò óõóêåõÞò äéáíÝìåôáé õðü ôçí Üäåéá
Alcatel's
license agreement êáé äåí ìðïñåß íá äéáíåìçèåß åëåýèåñá ìå
ôï âáóéêü óýóôçìá ôïõ &os;.Ãéá íá åãêáôáóôÞóåôå ôï ëïãéóìéêü, áðëÜ ÷ñçóéìïðïéÞóôå ôçí
ÓõëëïãÞ ôùí Ports. ÅãêáôáóôÞóôå ôï
port net/pppoa êáé áêïëïõèÞóôå ôéò
ïäçãßåò ðïõ ðåñéëáìâÜíïíôáé óå áõôü.¼ðùò ðïëëÝò óõóêåõÝò USB, ôï Alcatel &speedtouch; ÷ñåéÜæåôáé íá
êáôåâÜóåé ôï firmware ôïõ áðü ôïí õðïëïãéóôÞ óôï ïðïßï åßíáé
óõíäåìÝíï, ðñïêåéìÝíïõ íá ëåéôïõñãÞóåé óùóôÜ. Ç äéáäéêáóßá áõôÞ
ìðïñåß íá áõôïìáôïðïéçèåß óôï &os;, þóôå ç ìåôáöïñÜ íá ãßíåôáé êÜèå
öïñÜ ðïõ óõíäÝåôáé ç óõóêåõÞ óôç èýñá USB. Ìðïñåßôå íá ðñïóèÝóåôå
ôéò ðáñáêÜôù ðëçñïöïñßåò óôï áñ÷åßï
/etc/usbd.conf ãéá íá åíåñãïðïéÞóåôå ôçí
áõôüìáôç ìåôáöïñÜ ôïõ firmware. Èá ðñÝðåé íá åðåîåñãáóôåßôå áõôü ôï
áñ÷åßï ùò ÷ñÞóôçò root.device "Alcatel SpeedTouch USB"
devname "ugen[0-9]+"
vendor 0x06b9
product 0x4061
attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"Ãéá íá åíåñãïðïéÞóåôå ôï usbd, ôï
äáßìïíá USB, ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ óôï áñ÷åßï
/etc/rc.conf:usbd_enable="YES"Ìðïñåß åðßóçò íá ñõèìßóåôå ôï ppp þóôå
íá åêôåëåß áõôüìáôá êëÞóç êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò. Ãéá íá
ãßíåé áõôü, ðñïóèÝóôå ôéò ðáñáêÜôù ãñáììÝò óôï
/etc/rc.conf. Èá ðñÝðåé êáé ðÜëé íá åêôåëÝóåôå
ôç äéáäéêáóßá áõôÞ ùò root.ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"Ãéá íá ëåéôïõñãÞóåé óùóôÜ ôï ðáñáðÜíù, èá ðñÝðåé íá Ý÷åôå
÷ñçóéìïðïéÞóåé ôï õðüäåéãìá ôïõ áñ÷åßïõ ppp.conf
ôï ïðïßï ðáñÝ÷åôáé ìå ôï port net/pppoa.×ñçóéìïðïéþíôáò ôï mpdÌðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï mpd ãéá
íá óõíäåèåßôå óå Ýíá ðëÞèïò õðçñåóéþí, êáé åéäéêüôåñá õðçñåóßåò PPTP.
Ìðïñåßôå íá âñåßôå ôï mpd óôçí ÓõëëïãÞ ôùí
Ports, óôï net/mpd. ÐïëëÜ ADSL
modem áðáéôïýí ôç äçìéïõñãßá åíüò PPTP ôïýíåë ìåôáîý ôïõ modem êáé ôïõ
õðïëïãéóôÞ. ¸íá ôÝôïéï modem åßíáé ôï Alcatel &speedtouch;
Home.Ðñþôá ðñÝðåé íá åãêáôáóôÞóåôå ôï port, êáé ìåôÜ ìðïñåßôå íá
ñõèìßóåôå ôï mpd þóôå íá êáëýðôåé ôéò
áðáéôÞóåéò óáò êáé ôéò ñõèìßóåéò ôïõ ðáñï÷Ýá óáò. Ôï port åãêáèéóôÜ
êÜðïéá ðáñáäåßãìáôá áñ÷åßùí ñõèìßóåùí óôïí êáôÜëïãï PREFIX/etc/mpd/.
Ôá áñ÷åßá áõôÜ ðåñéÝ÷ïõí áñêåôÜ êáëÞ ôåêìçñßùóç ôùí ñõèìßóåùí.
Óçìåéþóôå åäþ, üôé ôï PREFIX åßíáé ï
êáôÜëïãïò óôïí ïðïßï åãêáèßóôáíôáé ôá ports, êáé áðü ðñïåðéëïãÞ åßíáé
ï /usr/local/. ÌåôÜ ôçí
åãêáôÜóôáóç ôïõ port, èá âñåßôå Ýíá ðëÞñç ïäçãü ãéá ôç ñýèìéóç ôïõ
mpd óå ìïñöÞ HTML. Ç ôåêìçñßùóç
åãêáèßóôáôáé óôïí êáôÜëïãï PREFIX/share/doc/mpd/.
ÐáñáêÜôù öáßíåôáé Ýíá õðüäåéãìá ñõèìßóåùí ãéá óýíäåóç óå ìéá õðçñåóßá
ADSL ìÝóù ôïõ mpd. Ïé ñõèìßóåéò ÷ùñßæïíôáé
óå äýï áñ÷åßá, ðñþôá äåß÷íïõìå ôï
mpd.conf:Ôï ðáñáêÜôù õðüäåéãìá mpd.conf ëåéôïõñãåß
ìüíï ìå ôçí Ýêäïóç 4.X ôïõ mpd.default:
load adsl
adsl:
new -i ng0 adsl adsl
set bundle authname username
set bundle password password
set bundle disable multilink
set link no pap acfcomp protocomp
set link disable chap
set link accept chap
set link keep-alive 30 10
set ipcp no vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route default
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
openÔï üíïìá ÷ñÞóôç ìå ôï ïðïßï ãßíåôáé ç ðéóôïðïßçóç óôïí
ISP óáò.Ï êùäéêüò ìå ôïí ïðïßï ãßíåôáé ç ðéóôïðïßçóç óôïí ISP
óáò.Ôï áñ÷åßï mpd.links ðåñéÝ÷åé ðëçñïöïñßåò
ó÷åôéêÜ ìå ôç óýíäåóç Þ ôéò óõíäÝóåéò ðïõ èá ðñáãìáôïðïéçèïýí. Ãéá
ðáñÜäåéãìá, ôï mpd.links ðïõ óõíïäåýåé ôï
ðáñáðÜíù ðáñÜäåéãìá, öáßíåôáé ðáñáêÜôù:adsl:
set link type pptp
set pptp mode active
set pptp enable originate outcall
set pptp self 10.0.0.1
set pptp peer 10.0.0.138Ç äéåýèõíóç IP ôïõ &os; õðïëïãéóôÞ óáò, óôïí ïðïßï èá
÷ñçóéìïðïéÞóåôå ôï mpd.Ç äéåýèõíóç IP ôïõ ADSL modem óáò. Ãéá ôï Alcatel
&speedtouch; Home, ç äéåýèõíóç áõôÞ åßíáé áðü ðñïåðéëïãÞ ç 10.0.0.138.Åßíáé äõíáôüí íá áñ÷éêïðïéÞóåôå ôç óýíäåóç åýêïëá, äßíïíôáò ôçí
ðáñáêÜôù åíôïëÞ ùò root:&prompt.root; mpd -b adslÌðïñåßôå íá äåßôå ôçí êáôÜóôáóç ôçò óýíäåóçò ìå ôçí ðáñáêÜôù
åíôïëÞ:&prompt.user; ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffffÔï mpd áðïôåëåß ôïí óõíéóôþìåíï ôñüðï
óýíäåóçò ôïõ &os; ìå ìéá õðçñåóßá ADSL.×ñçóéìïðïéþíôáò ôï pptpclientÌðïñåßôå åðßóçò íá ÷ñçóéìïðïéÞóåôå ôï &os; ãéá íá óõíäåèåßôå óå
Üëëåò õðçñåóßåò PPPoA ÷ñçóéìïðïéþíôáò ôï
net/pptpclient.Ãéá íá ÷ñçóéìïðïéÞóåôå ôï net/pptpclient ãéá íá óõíäåèåßôå óå ìéá
õðçñåóßá DSL, åãêáôáóôÞóôå ôï port Þ ôï ðáêÝôï, êáé åðåîåñãáóôåßôå ôï
áñ÷åßï /etc/ppp/ppp.conf. Èá ÷ñåéáóôåß íá åßóôå
root ãéá íá êÜíåôå êáé ôéò äýï ðáñáðÜíù
äéáäéêáóßåò. ÐáñáêÜôù öáßíåôáé Ýíá ðáñÜäåéãìá ìéáò åíüôçôáò ôïõ
ppp.conf. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ
ìå ôéò åðéëïãÝò ôïõ ppp.conf, äåßôå ôç óåëßäá
manual ôïõ ppp, &man.ppp.8;.adsl:
set log phase chat lcp ipcp ccp tun command
set timeout 0
enable dns
set authname username
set authkey password
set ifaddr 0 0
add default HISADDRÔï üíïìá ÷ñÞóôç ãéá ôïí ëïãáñéáóìü óáò óôïí ðáñï÷Ýá
DSL.Ï êùäéêüò ãéá ôïí ëïãáñéáóìü óáò.Êáèþò èá ðñÝðåé íá ãñÜøåôå ôïí êùäéêü óáò ìïñöÞ áðëïý êåéìÝíïõ
óôï áñ÷åßï ppp.conf, èá ðñÝðåé íá âåâáéùèåßôå
üôé êáíÝíáò Üëëïò äåí èá ìðïñåß íá äéáâÜóåé ôá ðåñéå÷üìåíá áõôïý
ôïõ áñ÷åßïõ. Ìå ôéò ðáñáêÜôù åíôïëÝò, ìðïñåßôå íá åîáóöáëßóåôå
üôé ôï áñ÷åßï èá ìðïñåß íá äéáâáóôåß ìüíï ìÝóá áðü ôï ëïãáñéáóìü
ôïõ root. Äåßôå ôéò óåëßäåò manual ôùí
&man.chmod.1; êáé &man.chown.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.&prompt.root; chown root:wheel /etc/ppp/ppp.conf
&prompt.root; chmod 600 /etc/ppp/ppp.confÁõôü èá áíïßîåé Ýíá ôïýíåë ãéá ìéá óõíåäñßá PPP ìå ôïí DSL
äñïìïëïãçôÞ óáò. Ôá DSL modem ôýðïõ ethernet Ý÷ïõí ìéá ðñïêáèïñéóìÝíç
äéåýèõíóç IP óôï ôïðéêü óáò äßêôõï, óôçí ïðïßá ìðïñåßôå íá óõíäåèåßôå.
Óôçí ðåñßðôùóç ôïõ Alcatel &speedtouch; Home, ç äéåýèõíóç áõôÞ åßíáé
10.0.0.138. Ç ôåêìçñßùóç ðïõ äéáèÝôåé
ï äñïìïëïãçôÞò óáò, èá áíáöÝñåé ðïéá äéåýèõíóç ÷ñçóéìïðïéåß ç óõóêåõÞ
óáò. Ãéá íá áíïßîåôå ôï ôïýíåë êáé íá îåêéíÞóåôå ìéá óõíåäñßá PPP,
åêôåëÝóôå ôçí áêüëïõèç åíôïëÞ:&prompt.root; pptp addressadslÅßíáé êáëÞ éäÝá íá ðñïóèÝóåôå Ýíá & óôï ôÝëïò
ôçò ðñïçãïýìåíçò åíôïëÞò, äéáöïñåôéêÜ ôï
pptp äåí èá óáò åðéóôñÝøåé ôïí Ýëåã÷ï
(ðñïôñïðÞ) ôïõ ôåñìáôéêïý óáò.Èá äçìéïõñãçèåß ìéá óõóêåõÞ tun
(åéêïíéêü ôïýíåë) ãéá ôçí áëëçëåðßäñáóç ìåôáîý ôùí äéåñãáóéþí
pptp êáé ppp.
Ìüëéò åðéóôñÝøåé ç ðñïôñïðÞ óôï ôåñìáôéêü óáò, Þ ôï
pptp åðéâåâáéþóåé ôç óýíäåóç, ìðïñåßôå íá
åîåôÜóåôå ôï ôïýíåë ìå ôïí ôñüðï ðïõ öáßíåôáé ðáñáêÜôù:&prompt.user; ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
Opened by PID 918Áí äåí ìðïñÝóåôå íá óõíäåèåßôå, åëÝãîôå ôéò ñõèìßóåéò ôïõ
äñïìïëïãçôÞ óáò, ïé ïðïßåò óõíÞèùò åßíáé ðñïóâÜóéìåò ìÝóù
telnet Þ ìÝóù êÜðïéïõ öõëëïìåôñçôÞ.
Áí áêüìá äåí ìðïñåßôå íá óõíäåèåßôå, èá ðñÝðåé íá åîåôÜóåôå ôçí Ýîïäï
ôçò åíôïëÞò pptp êáé ôá ðåñéå÷üìåíá ôïõ áñ÷åßïõ
êáôáãñáöÞò ôïõ ppp,
/var/log/ppp.log ãéá ðéèáíÜ óôïé÷åßá.SatoshiAsamiÁñ÷éêÞ óõíåéóöïñÜ ôïõ GuyHelmerÌå ôç âïÞèåéá ôùí PieroSerini×ñçóéìïðïéþíôáò ôï SLIPSLIPÇ åíüôçôá áõôÞ åöáñìüæåôáé êáé åßíáé Ýãêõñç ìüíï óå óõóôÞìáôá
&os; 7.X.Ñõèìßæïíôáò Ýíá ÐåëÜôç SLIPSLIPclientÐáñáêÜôù ðáñïõóéÜæïõìå Ýíá ôñüðï íá ñõèìßóåôå Ýíá ìç÷Üíçìá &os;
ùò ðåëÜôç SLIP óå Ýíá äßêôõï ìå óôáôéêÝò äéåõèýíóåéò. Ãéá ìç÷áíÞìáôá
ôá ïðïßá ëáìâÜíïõí üíïìá äõíáìéêÜ (ç äéåýèõíóç ôïõò áëëÜæåé êÜèå öïñÜ
ðïõ óõíäÝïíôáé), ðéèáíüí íá ÷ñåéáóôåß íá êÜíåôå ðéï ðïëýðëïêåò
ñõèìßóåéò.Áñ÷éêÜ, èá ðñÝðåé íá êáèïñßóåôå óå ðïéá óåéñéáêÞ èýñá åßíáé
óõíäåìÝíï ôï modem óáò. Áñêåôïß ÷ñÞóôåò äçìéïõñãïýí Ýíá óõìâïëéêü
äåóìü ð.÷. /dev/modem, ôï
ïðïßï äåß÷íåé óôçí ðñáãìáôéêÞ óõóêåõÞ /dev/cuadN.
Áõôü óáò åðéôñÝðåé íá óõíå÷ßóåôå íá ÷ñçóéìïðïéåßôå ôï ßäéï üíïìá
óõóêåõÞò, áêüìá êáé áí ìåôáêéíÞóåôå ôï modem óå äéáöïñåôéêÞ èýñá.
Åßíáé ìÜëëïí Üâïëï íá ðñÝðåé íá áëëÜîåôå ðëÞèïò áñ÷åßùí óôï
/etc êáèþò êáé ôá áñ÷åßá
.kermrc óå üëï ôï óýóôçìá!Ôï /dev/cuad0
åßíáé ç COM1, ôï /dev/cuad1 åßíáé ç
COM2, ê.ï.ê.Âåâáéùèåßôå üôé ôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá óáò ðåñéÝ÷åé ôá
ðáñáêÜôù:device slÔï ðáñáðÜíù ðåñéëáìâÜíåôáé óôïí ðõñÞíá
GENERIC, êáé áí äåí ôï Ý÷åôå äéáãñÜøåé, äåí èá
Ý÷åôå ðñüâëçìá.Ñõèìßóåéò ðïõ èá ×ñåéáóôåß íá ÊÜíåôå Ìüíï ìéá ÖïñÜÐñïóèÝóôå ôï ìç÷Üíçìá óáò, ôçí ðýëç (gateway) êáé ôïõò
äéáêïìéóôÝò ïíïìÜôùí (nameservers) óôï áñ÷åßï
/etc/hosts. Óôï ðáñÜäåéãìá ìáò, ôï áñ÷åßï
áõôü ìïéÜæåé ìå ôï ðáñáêÜôù:127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2Âåâáéùèåßôå üôé ç åíüôçôá files
âñßóêåôáé ðñéí ôï dns óôçí åíüôçôá
hosts: ôïõ áñ÷åßïõ
/etc/nsswitch.conf. Áí äåí õðÜñ÷ïõí
áõôÝò ïé ðáñÜìåôñïé, ìðïñåß íá åìöáíéóôïýí ðáñÜîåíá
óõìðôþìáôá.ÔñïðïðïéÞóôå ôï áñ÷åßï
/etc/rc.conf.Ïñßóôå ôï üíïìá ôïõ õðïëïãéóôÞ óáò, ôñïðïðïéþíôáò ôç
ãñáììÞ ðïõ ãñÜöåé:hostname="myname.my.domain"Èá ðñÝðåé åäþ íá ôïðïèåôÞóåôå ôï ðëÞñåò üíïìá ôïõ
õðïëïãéóôÞ óáò.
- default route
-
Ïñßóôå ôïí ðñïåðéëåãìÝíï äñïìïëïãçôÞ, áëëÜæïíôáò ôç
- ãñáììÞ:
+ ãñáììÞdefault route:
defaultrouter="NO"óå:defaultrouter="slip-gateway"ÄçìéïõñãÞóôå Ýíá áñ÷åßï
/etc/resolv.conf ôï ïðïßï èá
ðåñéÝ÷åé:domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12nameserverdomain name¼ðùò ìðïñåßôå íá äåßôå, ôï ðáñáðÜíù ïñßæåé ôïõò äéáêïìéóôÝò
DNS. ÖõóéêÜ, ôá ðñáãìáôéêÜ ïíüìáôá êáé ïé äéåõèýíóåéò ôùí
ôïìÝùí åîáñôþíôáé áðü ôï ðåñéâÜëëïí óáò.Ñõèìßóôå êùäéêü ðñüóâáóçò ãéá ôïõò ÷ñÞóôåò
root êáé
toor (êáèþò êáé ãéá üóïõò Üëëïõò
ëïãáñéáóìïýò äåí Ý÷ïõí êùäéêü).ÅðáíåêêéíÞóôå ôï ìç÷Üíçìá óáò, êáé âåâáéùèåßôå üôé Ý÷åé
ôåèåß óùóôÜ ôï üíïìá õðïëïãéóôÞ.Äçìéïõñãþíôáò ìéá Óýíäåóç SLIPSLIPconnecting withÌåôÜ ôçí êëÞóç, ãñÜøôå ôçí åíôïëÞ slip
óôçí ðñïôñïðÞ, ãñÜøôå ôï üíïìá ôïõ ìç÷áíÞìáôïò óáò êáé ôïí
êùäéêü. Ôï ôé áêñéâþò ÷ñåéÜæåôáé íá ãñÜøåôå, åîáñôÜôáé áðü
ôï ðåñéâÜëëïí óáò. Áí ÷ñçóéìïðïéåßôå ôï
Kermit, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå
Ýíá script üðùò ôï áêüëïõèï:# kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0aÖõóéêÜ, èá ðñÝðåé íá áëëÜîåôå ôï üíïìá ÷ñÞóôç êáé ôïí
êùäéêü þóôå íá ôáéñéÜæïõí ìå ôá äéêÜ óáò. ÌåôÜ áðü áõôü,
ìðïñåßôå áðëþò íá ðëçêôñïëïãÞóåôå slip óôçí
ðñïôñïðÞ óýíäåóçò ôïõ Kermit.Ç ýðáñîç ôïõ êùäéêïý óáò óå ìïñöÞ áðëïý êåéìÝíïõ
óå ïðïéïäÞðïôå óçìåßï åíüò óõóôÞìáôïò áñ÷åßùí, åßíáé ãåíéêÜ
êáêÞ éäÝá. Ðñï÷ùñÞóôå ìå äéêÞ óáò
åõèýíç.ÁöÞóôå ôï Kermit åêåß (ìðïñåßôå
íá ôï óôåßëåôå óôï ðáñáóêÞíéï ÷ñçóéìïðïéþíôáò ôá ðëÞêôñá
Ctrlz) êáé ùò root, ãñÜøôå:&prompt.root; slattach -h -c -s 115200 /dev/modemÁí ìðïñåßôå íá êÜíåôå ping óå õðïëïãéóôÝò
óôçí Üëëç ìåñéÜ ôïõ äñïìïëïãçôÞ, åßóôå óõíäåìÝíïé! Áí áõôü
äåí äïõëåýåé, äïêéìÜóôå ôçí åðéëïãÞ
áíôß ãéá ôçí ùò üñéóìá
óôçí slattach.Ðùò íá Ôåñìáôßóåôå ôçí ÓýíäåóçÊÜíôå ôá áêüëïõèá:&prompt.root; kill -INT `cat /var/run/slattach.modem.pid`ãéá íá ôåñìáôßóåôå ôï slattach. Èõìçèåßôå
üôé ðñÝðåé íá åßóôå root ãéá íá åêôåëÝóåôå
ôï ðáñáðÜíù. ¸ðåéôá åðáíÝëèåôå óôï kermit
(åêôåëþíôáò ôçí fg áí ôï åß÷áôå óôåßëåé óôï
ðáñáóêÞíéï) êáé ôåñìáôßóôå ôï (ðéÝæïíôáò q).Ç óåëßäá manual ôïõ &man.slattach.8; áíáöÝñåé üôé ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ ifconfig sl0 down ãéá
íá äéáêüøåôå ôç óýíäåóç, áëëÜ áõôü äåí öáßíåôáé íá Ý÷åé êáíÝíá
áðïôÝëåóìá. (To ifconfig sl0 áíáöÝñåé ôï ßäéï
ðñÜãìá.)ÌåñéêÝò öïñÝò, ôï modem óáò ìðïñåß íá áñíçèåß íá êëåßóåé ôç
ãñáììÞ. Óôéò ðåñéðôþóåéò áõôÝò, îåêéíÞóôå îáíÜ ôï
kermit êáé ôåñìáôßóôå ôï îáíÜ. Ôç äåýôåñç öïñÜ
óõíÞèùò ðåôõ÷áßíåé.Áíôéìåôþðéóç ÐñïâëçìÜôùíÁí ôï ðáñáðÜíù äåí ëåéôïõñãÞóåé, ñùôÞóôå óôç ëßóôá &a.net.name;.
ÌåñéêÜ áðü ôá óõíçèéóìÝíá ðñïâëÞìáôá ôá ïðïßá Ý÷ïõìå ìÝ÷ñé óôéãìÞò
áíôéìåôùðßóåé:Íá ìçí Ý÷åé ÷ñçóéìïðïéçèåß ç åðéëïãÞ
Þ óôçí slattach (Áõôü
êáíïíéêÜ äåí åßíáé êñßóéìï óöÜëìá, áëëÜ ìåñéêïß ÷ñÞóôåò
áíÝöåñáí üôé áõôü Ýëõóå ôá ðñïâëÞìáôá ôïõò.)×ñÞóç ôïõ áíôß ãéá
(ç äéáöïñÜ ìðïñåß íá åßíáé ðïëý ìéêñÞ
óå ìåñéêÝò ãñáììáôïóåéñÝò).ÄïêéìÜóôå ôçí åíôïëÞ ifconfig sl0 ãéá íá
äåßôå ôçí êáôÜóôáóç ôçò äéåðáöÞò. Ãéá ðáñÜäåéãìá, ìðïñåß íá
äåßôå ôï ðáñáêÜôù:&prompt.root; ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Áí ç åíôïëÞ &man.ping.8; äßíåé ìçíýìáôá
no route to host, ßóùò õðÜñ÷åé ðñüâëçìá
ìå ôïí ðßíáêá äñïìïëüãçóçò óáò. Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå
ôçí åíôïëÞ netstat -r ãéá íá äåßôå ôçí
ôñÝ÷ïõóá äñïìïëüãçóç:&prompt.root; netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)Ôá ðáñáðÜíù ðáñáäåßãìáôá åßíáé áðü Ýíá ó÷åôéêÜ áðáó÷ïëçìÝíï
óýóôçìá. Ïé áñéèìïß èá äéáöÝñïõí óôï óýóôçìá óáò, áíÜëïãá ìå
ôç äñáóôçñéüôçôá ôïõ äéêôýïõ.Ñõèìßæïíôáò ¸íá ÅîõðçñåôçôÞ SLIPSLIPserverÔï êåßìåíï áõôü ðáñÝ÷åé êÜðïéåò õðïäåßîåéò ãéá ôç ñýèìéóç åíüò
&os; óõóôÞìáôïò ùò åîõðçñåôçôÞ SLIP. ÔõðéêÜ áõôü óçìáßíåé üôé ôï
óýóôçìá óáò èá ñõèìéóôåß íá îåêéíÜ áõôüìáôá ôéò óõíäÝóåéò ìåôÜ ôçí
åßóïäï áðïìáêñõóìÝíùí ðåëáôþí SLIP.ÐñïûðïèÝóåéòTCP/IP networkingÇ åíüôçôá áõôÞ åßíáé éäéáßôåñá ôå÷íéêÞò öýóåùò, êáé ãéá ôï ëüãï
áõôü áðáéôåßôáé íá Ý÷åôå ôéò áíôßóôïé÷åò ãíþóåéò ãéá íá ôçí
êáôáíïÞóåôå. ÕðïèÝôïõìå üôé Ý÷åôå ìéá åîïéêåßùóç ìå ôï ðñùôüêïëëï
TCP/IP êáé åéäéêüôåñá ìå ôç äéåõèõíóéïäüôçóç êüìâùí, ôéò ìÜóêåò
äéêôýùí, ôá õðïäßêôõá, ôç äñïìïëüãçóç êáé ôá ðñùôüêïëëá
äñïìïëüãçóçò üðùò ôï RIP. Ç ñýèìéóç ôùí õðçñåóéþí SLIP óå Ýíá
åîõðçñåôçôÞ åðéëïãéêþí óõíäÝóåùí áðáéôåß ãíþóç áõôþí ôùí åííïéþí,
êáé áí äåí åßóôå åîïéêåéùìÝíïò ìå áõôÝò, óáò ðáñáêáëïýìå íá
äéáâÜóåôå åßôå ôï TCP/IP Network Administration
ôïõ Craig Hunt (åêäüóåéò O'Reilly & Associates, Inc, Áñéèìüò
ISBN 0-937175-82-X) Þ êÜðïéï áðü ôá âéâëßá ôïõ Douglas Comer ó÷åôéêÜ
ìå ôï ðñùôüêïëëï TCP/IP.modemÅðéðëÝïí, õðïèÝôïõìå üôé Þäç Ý÷åôå ñõèìßóåé ôï modem óáò êáé
Ý÷åôå ôñïðïðïéÞóåé ôá êáôÜëëçëá áñ÷åßá ñõèìßóåùí ôïõ óõóôÞìáôïò
þóôå íá åðéôñÝðåôáé ç åßóïäïò óôï óýóôçìá ìÝóù ôùí modem. Áí äåí
Ý÷åôå áêüìá ðñïåôïéìÜóåé ôï óýóôçìá ãéá áõôü, ðáñáêáëïýìå äåßôå ôï
ãéá ëåðôïìÝñåéåò ó÷åôéêÜ ìå ôç ñýèìéóç ôùí
åðéëïãéêþí óõíäÝóåùí. Åíäå÷ïìÝíùò íá èÝëåôå åðßóçò íá äåßôå ôéò
óåëßäåò manual ôçò &man.sio.4; ãéá ðëçñïöïñßåò ó÷åôéêÜ ìå ôï
ðñüãñáììá ïäÞãçóçò ôçò óåéñéáêÞò èýñáò, ôá &man.ttys.5;,
&man.gettytab.5;, &man.getty.8;, êáé &man.init.8; ãéá ðëçñïöïñßåò
ðïõ ó÷åôßæïíôáé ìå ôç ñýèìéóç ôïõ óõóôÞìáôïò þóôå íá äÝ÷åôáé åßóïäï
÷ñçóôþí ìÝóù modem, êáé ßóùò êáé ôç &man.stty.1; ãéá ðëçñïöïñßåò
ó÷åôéêÜ ìå ôéò ðáñáìÝôñïõò óåéñéáêþí èõñþí (üðùò ôçí
clocal ãéá óåéñéáêÝò äéåðáöÝò ðïõ åßíáé áðåõèåßáò
óõíäåìÝíåò).ÃñÞãïñç ÅðéóêüðçóçÔõðéêÜ, Ýíáò åîõðçñåôçôÞò SLIP ðïõ ÷ñçóéìïðïéåß &os; ëåéôïõñãåß
ìå ôïí åîÞò ôñüðï: Ýíáò ÷ñÞóôçò SLIP êáëåß ôïí
åîõðçñåôçôÞ SLIP, êáé åéóÝñ÷åôáé óôï óýóôçìá ìÝóù åíüò åéäéêïý
áíáãíùñéóôéêïý åéóüäïõ ãéá ôï SLIP. Ôï êÝëõöïò ôïõ ÷ñÞóôç åßíáé ôï
/usr/sbin/sliplogin. Ôï ðñüãñáììá
sliplogin äéáâÜæåé ôï áñ÷åßï
/etc/sliphome/slip.hosts ãéá íá âñåé ìéá ãñáììÞ
ðïõ íá ôáéñéÜæåé ìå ôïí ÷ñÞóôç, êáé áí õðÜñ÷åé, óõíäÝåé ôçí óåéñéáêÞ
ãñáììÞ óå ìéá äéáèÝóéìç äéåðáöÞ SLIP êáé Ýðåéôá åêôåëåß ôï script
ôïõ êåëýöïõò /etc/sliphome/slip.login ãéá íá
ñõèìßóåé ôç äéåðáöÞ SLIP.¸íá ÐáñÜäåéãìá Åéóüäïõ óå ÅîõðçñåôçôÞ SLIPÃéá ðáñÜäåéãìá, ãéá Ýíá ÷ñÞóôç SLIP ìå ID
Shelmerg, ç áíôßóôïé÷ç êáôá÷þñéóç óôï
/etc/master.passwd èá Ýìïéáæå ìå ôçí
ðáñáêÜôù:Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin¼ôáí åéóÝëèåé ï Shelmerg, ôï
sliplogin èá øÜîåé ôï
/etc/sliphome/slip.hosts ãéá ìéá ãñáììÞ ìå
ID ÷ñÞóôç ðïõ íá ôáéñéÜæåé. Ãéá ðáñÜäåéãìá, ìðïñåß íá õðÜñ÷åé
ìéá ãñáììÞ óôï /etc/sliphome/slip.hosts ðïõ
íá ãñÜöåé:Shelmerg dc-slip sl-helmer 0xfffffc00 autocompÔï sliplogin èá âñåé ôç ãñáììÞ áõôÞ,
èá óõíäÝóåé ôç óåéñéáêÞ ãñáììÞ óôçí åðüìåíç äéáèÝóéìç äéåðáöÞ
SLIP, êáé Ýðåéôá èá åêôåëÝóåé ôï
/etc/sliphome/slip.login üðùò öáßíåôáé
ðáñáêÜôù:/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocompÁí üëá ðÜíå êáëÜ, ôï
/etc/sliphome/slip.login èá åêôåëÝóåé
ìéá åíôïëÞ ifconfig ãéá ôç äéåðáöÞ SLIP
óôçí ïðïßá Ý÷åé óõíäåèåß ç sliplogin (ç äéåðáöÞ
0 óôï ðáñáðÜíù ðáñÜäåéãìá, ç ðñþôç ðáñÜìåôñïò ôçò ëßóôáò ðïõ
äßíåôáé óôï slip.login) þóôå íá ñõèìéóôïýí
ç ôïðéêÞ äéåýèõíóç IP (dc-slip), ç
áðïìáêñõóìÝíç äéåýèõíóç IP (sl-helmer), ç ìÜóêá
äéêôýïõ ãéá ôç äéåðáöÞ SLIP (0xfffffc00), êáé ïðïéåóäÞðïôå ðñüóèåôåò
åðéëïãÝò (autocomp). Áí êÜôé ðÜåé óôñáâÜ,
èá ìðïñÝóåôå íá ôï åíôïðßóåôå áðü ôá áñ÷åßá êáôáãñáöÞò ôçò
sliplogin. Ç sliplogin
êáôáãñÜöåé ôá ìçíýìáôá ÷ñçóéìïðïéþíôáò ôï äáßìïíá
syslogd ï ïðïßïò óõíÞèùò ÷ñçóéìïðïéåß
ôï áñ÷åßï /var/log/messages (äåßôå ôéò
óåëßäåò âïÞèåéáò ãéá ôá &man.syslogd.8; êáé &man.syslog.conf.5;
êáé åíäå÷ïìÝíùò åëÝãîôå ôï /etc/syslog.conf
ãéá íá äåßôå ôçí ôïðïèåóßá êáé ôï áñ÷åßï ðïõ ÷ñçóéìïðïéåß ôï
syslogd ãéá ôçí êáôáãñáöÞ).Ñýèìéóç ôïõ ÐõñÞíákernelconfigurationSLIPÏ ðñïåðéëåãìÝíïò ðõñÞíáò ôïõ &os;
(ï GENERIC) äéáèÝôåé åíóùìáôùìÝíç õðïóôÞñéîç
SLIP (&man.sl.4;). Óôçí ðåñßðôùóç ðïõ èÝëåôå íá äçìéïõñãÞóåôå
ðñïóáñìïóìÝíï ðõñÞíá, ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ óôï áñ÷åßï
ñõèìßóåùí ôïõ ðõñÞíá óáò:device slÔï &os;, áðü ðñïåðéëïãÞ, äåí ðñïùèåß ðáêÝôá. Áí èÝëåôå ï
åîõðçñåôçôÞò óáò íá åíåñãåß ùò äñïìïëïãçôÞò, èá ðñÝðåé íá
åðåîåñãáóôåßôå ôï áñ÷åßï /etc/rc.conf êáé íá
áëëÜîåôå ôç ñýèìéóç ôçò ìåôáâëçôÞò gateway_enable
óå . Ìå ôïí ôñüðï áõôü, èá åßíáé óßãïõñï üôé
ç åðéëïãÞ ôçò äñïìïëüãçóçò èá äéáôçñçèåß ìåôÜ áðü ìéá
åðáíåêêßíçóç.Èá ðñÝðåé Ýðåéôá íá åðáíåêêéíÞóåôå ãéá íá åíåñãïðïéçèïýí ïé
íÝåò ñõèìßóåéò.Ãéá íá åöáñìüóåôå áõôÝò ôéò ñõèìßóåéò Üìåóá, ìðïñåßôå íá
åêôåëÝóåôå ôçí ðáñáêÜôù åíôïëÞ ùò root:&prompt.root; /etc/rc.d/routing startÐáñáêáëïýìå äåßôå ôï ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí ñýèìéóç ôïõ ðõñÞíá ôïõ
&os;.Ñýèìéóç ôïõ Sliplogin¼ðùò áíáöÝñèçêå êáé ðñéí, õðÜñ÷ïõí ôñßá áñ÷åßá óôïí êáôÜëïãï
/etc/sliphome ôá ïðïßá
÷ñçóéìïðïéïýíôáé óôç ñýèìéóç ôïõ
/usr/sbin/sliplogin (äåßôå êáé ôç óåëßäá
manual ôïõ &man.sliplogin.8;): ôï slip.hosts,
ôï ïðïßï ïñßæåé ôïõò ÷ñÞóôåò SLIP êáé ôéò áíôßóôïé÷åò IP äéåõèýíóåéò
ôïõò, ôï slip.login ôï ïðïßï óõíÞèùò ñõèìßæåé
áðëÜ ôçí äéåðáöÞ SLIP, êáé ðñïáéñåôéêÜ ôï
slip.logout, ôï ïðïßï áíáéñåß ôéò áëëáãÝò ôïõ
slip.login üôáí ôåñìáôßóåé ç óåéñéáêÞ
óýíäåóç.Ñýèìéóç ôïõ slip.hostsÔï /etc/sliphome/slip.hosts ðåñéÝ÷åé
ãñáììÝò ìå ôÝóóåñá ðåäßá ðïõ ÷ùñßæïíôáé ìåôáîý ôïõò ìå êåíÜ
äéáóôÞìáôá:Ôï áíáãíùñéóôéêü åéóüäïõ ôïõ ÷ñÞóôç SLIPÔçí ôïðéêÞ äéåýèõíóç (ôïðéêÞ ùò ðñïò ôïí åîõðçñåôçôÞ
SLIP) ôçò äéáóýíäåóçò SLIPÔçí áðïìáêñõóìÝíç äéåýèõíóç ôçò äéáóýíäåóçò SLIPÔç ìÜóêá ôïõ äéêôýïõÇ ôïðéêÞ êáé ç áðïìáêñõóìÝíç äéåýèõíóç, ìðïñåß íá åßíáé
ïíüìáôá õðïëïãéóôþí (ôá ïðïßá íá ìåôáôñÝðïíôáé óå äéåõèýíóåéò IP
ìÝóù ôïõ /etc/hosts Þ ìÝóù ôïõ DNS, áíÜëïãá
ìå ôéò êáôá÷ùñßóåéò ðïõ õðÜñ÷ïõí óôï áñ÷åßï
/etc/nsswitch.conf), êáé ç ìÜóêá äéêôýïõ
ìðïñåß íá åßíáé Ýíá üíïìá ôï ïðïßï íá ìðïñåß íá äéåõêñéíéóôåß ìÝóù
áíáæÞôçóçò óôï /etc/networks. Óå Ýíá
äïêéìáóôéêü óýóôçìá, ôï
/etc/sliphome/slip.hosts ìïéÜæåé ìå ôï
ðáñáêÜôù:#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocompÓôï ôÝëïò ôçò ãñáììÞò, âñßóêïíôáé ìéá Þ ðåñéóóüôåñåò áðü ôéò
ðáñáêÜôù åðéëïãÝò: — ÷ùñßò óõìðßåóç ôùí
åðéêåöáëßäùí — ìå óõìðßåóç ôùí
åðéêåöáëßäùí — ìå óõìðßåóç ôùí
åðéêåöáëßäùí, áí åðéôñÝðåôáé áðü ôïí áðïìáêñõóìÝíï
õðïëïãéóôÞ — áðåíåñãïðïßçóç ôùí
ðáêÝôùí ICMP (ìå ôïí ôñüðï áõôü ôá ðáêÝôá ping
èá áðïññßðôïíôáé áíôß íá êáôáíáëþíïõí ôï åýñïò æþíçò ôçò
óýíäåóçò óáò)SLIPTCP/IP networkingÏé åðéëïãÝò ðïõ Ý÷åôå ãéá ôéò ôïðéêÝò êáé áðïìáêñõóìÝíåò
äéåõèýíóåéò ôùí SLIP óõíäÝóåùí óáò, åîáñôþíôáé áðü ôï áí ðñüêåéôáé
íá áöéåñþóåôå Ýíá õðïäßêôõï TCP/IP Þ áí ðñüêåéôáé íá
÷ñçóéìïðïéÞóåôå proxy ARP óôï SLIP åîõðçñåôçôÞ óáò
(äåí åßíáé ðñáãìáôéêü proxy ARP, áëëÜ óôçí åíüôçôá
áõôÞ ðåñéãñÜöåôáé ìå áõôü ôïí üñï). Áí äåí åßóôå óßãïõñïò ðïéá
ìÝèïäï íá åðéëÝîåôå Þ ðùò íá áðïäßäåôå äéåõèýíóåéò IP, ðáñáêáëïýìå
áíáôñÝîôå óôá âéâëßá ôïõ TCP/IP ðïõ áíáöÝñïíôáé óôéò
ÐñïûðïèÝóåéò SLIP () Þ/êáé
óõìâïõëåõèåßôå ôï äéá÷åéñéóôÞ äéêôýïõ óáò.Áí ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå îå÷ùñéóôü õðïäßêôõï ãéá ôïõò
SLIP ðåëÜôåò óáò, èá ÷ñåéáóôåß íá äéáèÝóåôå ôïí áñéèìü õðïäéêôýïõ
áðü ôçí äéåýèõíóç IP ðïõ óáò Ý÷åé áðïäïèåß êáé íá áðïäþóåôå óôïõò
ðåëÜôåò SLIP äéåõèýíóåéò ðïõ áíÞêïõí óå áõôü ôï õðïäßêôõï.
¸ðåéôá, èá ÷ñåéáóôåß ìÜëëïí íá êáèïñßóåôå ìéá óôáôéêÞ äéáäñïìÞ
óôï õðïäßêôõï SLIP ìÝóù ôïõ åîõðçñåôçôÞ SLIP óôïí êïíôéíüôåñï
óáò äñïìïëïãçôÞ IP.EthernetÄéáöïñåôéêÜ, áí ÷ñçóéìïðïéÞóåôå ôç ìÝèïäï
proxy ARP, èá ÷ñåéáóôåß íá áðïäßäåôå óôïõò SLIP
ðåëÜôåò óáò äéåõèýíóåéò IP ðïõ áíÞêïõí óôï õðïäßêôõï Ethernet
óôï ïðïßï áíÞêåé ï åîõðçñåôçôÞò SLIP, êáé èá ÷ñåéáóôåß åðßóçò
íá ñõèìßóåôå ôá scripts
/etc/sliphome/slip.login êáé
/etc/sliphome/slip.logout íá ÷ñçóéìïðïéïýí
ôï &man.arp.8; ãéá íá ÷åéñßæïíôáé ôéò êáôá÷ùñßóåéò
proxy ARP óôïí ðßíáêá ARP ôïõ åîõðçñåôçôÞ
SLIP.Ñýèìéóç ôïõ slip.login¸íá ôõðéêü /etc/sliphome/slip.login
ìïéÜæåé ìå ôï ðáñáêÜôù:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6Ôï áñ÷åßï slip.login åêôåëåß áðëþò ôï
ifconfig ãéá ôçí êáôÜëëçëç äéåðáöÞ SLIP, ìå
ôéò ôïðéêÝò êáé áðïìáêñõóìÝíåò äéåõèýíóåéò êáé ôç ìÜóêá äéêôýïõ
ôçò äéåðáöÞò áõôÞò.Áí Ý÷åôå áðïöáóßóåé íá ÷ñçóéìïðïéÞóåôå ôçí ìÝèïäï
proxy ARP (áíôß íá ÷ñçóéìïðïéÞóåôå äéáöïñåôéêü
õðïäßêôõï ãéá ôïõò ðåëÜôåò SLIP), ôï áñ÷åßï
/etc/sliphome/slip.login èá ìïéÜæåé ìå ôï
ðáñáêÜôù:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pubÇ ðñüóèåôç ãñáììÞ óå áõôü ôï
slip.login, ç arp -s
$5 00:11:22:33:44:55 pub, äçìéïõñãåß ìéá êáôá÷þñéóç
ARP óôïí ðßíáêá ARP ôïõ åîõðçñåôçôÞ SLIP. ÁõôÞ ç êáôá÷þñéóç ARP
êÜíåé ôïí åîõðçñåôçôÞ SLIP íá áðáíôÜ ìå ôçí äéåýèõíóç Ethernet
MAC üôáí êÜðïéïò Üëëïò êüìâïò IP óôï Ethernet åðéèõìåß íá
åðéêïéíùíÞóåé ìå ôçí äéåýèõíóç IP ôïõ ðåëÜôç SLIP.EthernetMAC address¼ôáí ÷ñçóéìïðïéåßôå ôï ðáñáðÜíù ðáñÜäåéãìá, âåâáéùèåßôå üôé
Ý÷åôå áíôéêáôáóôÞóåé ôçí äéåýèõíóç MAC ôïõ Ethernet (00:11:22:33:44:55) ìå ôçí áíôßóôïé÷ç ôçò
äéêÞò óáò êÜñôáò Ethernet, äéáöïñåôéêÜ ôï proxy ARP
óßãïõñá äåí èá ëåéôïõñãÞóåé! Ìðïñåßôå íá áíáêáëýøåôå ôç äéåýèõíóç
MAC ôïõ äéêïý óáò åîõðçñåôçôÞ SLIP êïéôÜæïíôáò ôá áðïôåëÝóìáôá ôçò
åíôïëÞò netstat -i. Ç äåýôåñç ãñáììÞ ôçò
åîüäïõ èá ìïéÜæåé ìå ôçí ðáñáêÜôù:ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116Áõôü äåß÷íåé üôé óôï óõãêåêñéìÝíï óýóôçìá ç äéåýèõíóç MAC ôïõ
Ethernet åßíáé 00:02:c1:28:5f:4a.
Ïé ôåëåßåò óôçí äéåýèõíóç ðïõ äåß÷íåé ç
netstat -i ðñÝðåé íá áíôéêáôáóôáèïýí ìå
Üíù-êÜôù ôåëåßåò, êáé êÜèå ìïíü äåêáåîáäéêü øçößï ðñÝðåé íá
ìåôáôñáðåß óå äéðëü ðñïóèÝôïíôáò áðü ìðñïóôÜ Ýíá ìçäåíéêü.
Ç äéåýèõíóç ìåôáôñÝðåôáé ìå áõôü ôïí ôñüðï óå ìéá ìïñöÞ ðïõ
ìðïñåß íá ÷ñçóéìïðïéÞóåé ç &man.arp.8;. Äåßôå ôç óåëßäá manual
ôçò &man.arp.8; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôç ÷ñÞóç
ôçò åíôïëÞò áõôÞò.¼ôáí äçìéïõñãåßôå ôï
/etc/sliphome/slip.login êáé ôï
/etc/sliphome/slip.logout, èá ðñÝðåé íá
èÝóåôå ôï bit åêôÝëåóçò (ð.÷.
chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout), äéáöïñåôéêÜ ç
sliplogin äåí èá ìðïñåß íá ôá
åêôåëÝóåé.Ñýèìéóç ôïõ slip.logoutÔï /etc/sliphome/slip.logout äåí åßíáé
áðüëõôá áðáñáßôçôï (åêôüò áí ðñüêåéôáé íá õëïðïéÞóåôå
proxy ARP), áëëÜ áí óêïðåýåôå íá ôï äçìéïõñãÞóåôå,
ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ùò õðüäåéãìá ôï ðáñáêÜôù áðëü
ðáñÜäåéãìá:#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 downÁí ÷ñçóéìïðïéåßôå proxy ARP, èá èÝëåôå ôï
/etc/sliphome/slip.logout íá äéáãñÜöåé ôçí
êáôá÷þñéóç ARP ôïõ ðåëÜôç SLIP:#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5Ç arp -d $5 äéáãñÜöåé ôçí êáôá÷þñéóç
ARP ðïõ ðñïóôÝèçêå ìå ôçí åêôÝëåóç ôïõ
slip.login ôïõ proxy ARP,
êáôÜ ôçí åßóïäï ôïõ ðåëÜôç SLIP.ÐñÝðåé íá ôï åðáíáëÜâïõìå Üëëç ìéá öïñÜ: Âåâáéùèåßôå üôé ôï
/etc/sliphome/slip.logout Ý÷åé ïñéóôåß ùò
åêôåëÝóéìï ìåôÜ ôçí äçìéïõñãßá ôïõ (ð.÷., chmod 755
/etc/sliphome/slip.logout).ÐáñÜãïíôåò ðïõ ÐñÝðåé íá ËÜâåôå Õðüøç óáò óôç
ÄñïìïëüãçóçSLIProutingÁí äåí ÷ñçóéìïðïéåßôå ôçí ìÝèïäï proxy ARP ãéá íá
äñïìïëïãåßôå ðáêÝôá ìåôáîý ôùí ðåëáôþí SLIP êáé ôïõ õðüëïéðïõ
äéêôýïõ óáò (êáé åíäå÷ïìÝíùò êáé ôïõ Internet), èá ðñÝðåé ìÜëëïí íá
ðñïóèÝóåôå óôáôéêÝò äéáäñïìÝò ðñïò ôïí ðëçóéÝóôåñï óáò
ðñïåðéëåãìÝíï äñïìïëïãçôÞ ãéá íá äñïìïëïãåßôå ôï õðïäßêôõï ôùí SLIP
ðåëáôþí óáò äéáìÝóïõ ôïõ åîõðçñåôçôÞ SLIP.ÓôáôéêÝò ÄéáäñïìÝòstatic routesÇ ðñïóèÞêç óôáôéêþí äéáäñïìþí ðñïò ôïõò ðëçóéÝóôåñïõò óáò
ðñïåðéëåãìÝíïõò äñïìïëïãçôÝò, ìðïñåß íá åßíáé ðñïâëçìáôéêÞ (Þ êáé
áäýíáôç áí äåí Ý÷åôå ôá êáôÜëëçëá äéêáéþìáôá ðñüóâáóçò). Áí
ç åôáéñßá óáò äéáèÝôåé äßêôõï ìå ðïëëáðëïýò äñïìïëïãçôÝò, êÜðïéá
ìïíôÝëá (ð.÷. áðü ôçí Cisco êáé ôçí Proteon), åêôüò üôé ðñÝðåé
íá ñõèìéóôïýí ìå ôçí óôáôéêÞ äéáäñïìÞ ðñïò ôï õðïäßêôõï SLIP,
ðñÝðåé åðßóçò íá ñõèìéóôïýí ìå ôéò óôáôéêÝò äéáäñïìÝò ðïõ èá
áíáöÝñïõí óôïõò Üëëïõò äñïìïëïãçôÝò. Èá ÷ñåéáóôåß íá
ðåéñáìáôéóôåßôå êáé íá äïêéìÜóåôå äéÜöïñåò ñõèìßóåéò ãéá íá
äïõëÝøåé ç äñïìïëüãçóç ìÝóù óôáôéêþí äéáäñïìþí.
diff --git a/el_GR.ISO8859-7/books/handbook/printing/chapter.xml b/el_GR.ISO8859-7/books/handbook/printing/chapter.xml
index d39064cba6..1f7db410d4 100644
--- a/el_GR.ISO8859-7/books/handbook/printing/chapter.xml
+++ b/el_GR.ISO8859-7/books/handbook/printing/chapter.xml
@@ -1,5266 +1,5229 @@
SeanKellyÓõíåéóöïñÜ áðü ôïí JimMockÁíáäïìÞèçêå êáé áíáíåþèçêå áðü ôïí ÅêôõðþóåéòÓýíïøçLPD óýóôçìá spoolingåêôõðþóåéòÌðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï &os; ãéá íá êÜíåôå åêôõðþóåéò
óå äéÜöïñïõò ôýðïõò åêôõðùôþí, áðü ôïí ðáëáéüôåñï êñïõóôéêü ùò ôïí ðéï
óýã÷ñïíï laser åêôõðùôÞ, êáèþò êáé ïðïéáóäÞðïôå Üëëçò ôå÷íïëïãßáò
áíÜìåóá ôïõò, êáé íá äçìéïõñãÞóåôå åêôõðþóåéò õøçëÞò ðïéüôçôáò ìå ôéò
åöáñìïãÝò ðïõ åêôåëåßôå.Ôï &os; ìðïñåß åðßóçò íá ñõèìéóôåß þóôå íá ëåéôïõñãåß ùò
åîõðçñåôçôÞò åêôõðþóåùí äéêôýïõ. Ìå áõôÞ ôç äõíáôüôçôá ôï &os; ìðïñåß
íá ëáìâÜíåé åñãáóßåò åêôýðùóçò áðü äéÜöïñïõò Üëëïõò õðïëïãéóôÝò,
óõìðåñéëáìâáíïìÝíùí õðïëïãéóôþí &os;, &windows; êáé &macos;. Ôï &os;
ìðïñåß íá åîáóöáëßæåé üôé ìüíï ìéá åñãáóßá èá ôõðþíåôáé êÜèå ÷ñïíéêÞ
óôéãìÞ êáé ìðïñåß íá ôçñåß óôáôéóôéêÜ ãéá ôïõò ÷ñÞóôåò êáé ôá
ìç÷áíÞìáôá ðïõ èá êÜíïõí ôéò ðåñéóóüôåñåò åêôõðþóåéò, íá ðáñÜãåé
óåëßäåò banner ðïõ íá äåß÷íïõí óå ðïéüí áíÞêåé ç êÜèå
åêôýðùóç, êáé ðïëëÜ Üëëá.Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï èá îÝñåôå:Ðùò íá ñõèìßóåôå ôçí ïõñÜ åêôõðþóåùí (print spooler) ôïõ
&os;.Ðùò íá åãêáèéóôÜôå ößëôñá åêôýðùóçò, íá ÷åéñßæåóôå
åéäéêÝò åñãáóßåò åêôýðùóçò (ð.÷. ôç ìåôáôñïðÞ
åéóåñ÷üìåíùí êåéìÝíùí óå ìïñöÝò åêôýðùóçò ðïõ åßíáé êáôáíïçôÝò áðü
ôïõò åêôõðùôÝò óáò).Ðùò íá åíåñãïðïéÞóåôå óåëßäåò ôýðïõ êåöáëßäáò Þ banner óôéò
åêôõðþóåéò óáò.Ðùò íá åêôõðþíåôå óå åêôõðùôÝò ðïõ åßíáé óõíäåäåìÝíïé óå Üëëïõò
õðïëïãéóôÝò.Ðùò íá åêôõðþíåôå óå åêôõðùôÝò ðïõ åßíáé óõíäåäåìÝíïé áðåõèåßáò
óôï äßêôõï.Ðùò íá åëÝã÷åôå ôïõò ðåñéïñéóìïýò åêôýðùóçò, óõìðåñéëáìâáíïìÝíùí
ôùí ðåñéïñéóìþí ìåãÝèïõò ôùí åñãáóéþí åêôýðùóçò, êáé ðùò íá
ðáñåìðïäßæåôå ôçí äõíáôüôçôá åêôýðùóçò óå óõãêåêñéìÝíïõò
÷ñÞóôåò.Ðùò íá êñáôÞóåôå óôáôéóôéêÜ ãéá ôïí åêôõðùôÞ, êáé êáôáãñáöÞ
ãéá ôç ÷ñÞóç ôïõ åêôõðùôÞ áðü êÜèå ÷ñÞóôç.Ðùò íá áíôéìåôùðßóåôå ðñïâëÞìáôá óôéò åêôõðþóåéò.Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:Íá ãíùñßæåôå ðùò íá ñõèìßóåôå êáé íá åãêáôáóôÞóåôå Ýíá íÝï
ðõñÞíá ().ÅéóáãùãÞÃéá íá ÷ñçóéìïðïéÞóåôå åêôõðùôÝò óôï &os;, èá ÷ñåéáóôåß íá
ñõèìßóåôå ôç ëåéôïõñãßá ôïõò ìå ôï óýóôçìá ðáñï÷Ýôåõóçò (spooling)
åêôõðùôþí ãñáììÞò ôïõ Berkeley, ãíùóôü åðßóçò êáé ùò óýóôçìá
ðáñï÷Ýôåõóçò LPD, Þ áðëÜ
LPD. Áõôü åßíáé ôï ðñïêáèïñéóìÝíï óýóôçìá
åëÝã÷ïõ åêôõðùôþí óôï &os;. Ôï êåöÜëáéï áõôü åßíáé ìéá åéóáãùãÞ óôï
LPD êáé èá óáò êáèïäçãÞóåé óôéò ñõèìßóåéò
ôïõ.ÅÜí óáò åßíáé ïéêåßï ôï LPD Þ êÜðïéï Üëëï
óýóôçìá ðáñï÷Ýôåõóçò åêôõðùôþí, ôüôå ìðïñåßôå íá ìåôáðçäÞóåôå óôçí
åíüôçôá ÂáóéêÞ ÅãêáôÜóôáóç.Ôï LPD ìðïñåß íá åëÝã÷åé åî' ïëïêëÞñïõ
üëåò ôéò ëåéôïõñãßåò ôùí åêôõðùôþí åíüò õðïëïãéóôÞ. Åßíáé êõñßùò
õðåýèõíï ãéá Ýíá ðëÞèïò ëåéôïõñãéþí:ÅëÝã÷åé ôçí ðñüóâáóç óå áðåõèåßáò óõíäåìÝíïõò åêôõðùôÝò êáé
åêôõðùôÝò ðñïóáñôçìÝíïõò óå Üëëïõò êüìâïõò óôï äßêôõï.
- åñãáóßåò åêôýðùóçò
-
ÅðéôñÝðåé óå ÷ñÞóôåò íá óôÝëíïõí áñ÷åßá ðñïò åêôýðùóç. Ïé
áðïóôïëÝò áõôÝò åßíáé ãíùóôÝò ùò
- åñãáóßåò (jobs).
+ åñãáóßåò (jobs)åñãáóßåò åêôýðùóçò.
Äéáôçñåß ïõñÜ áíáìïíÞò (queue) ãéá êÜèå
åêôõðùôÞ, þóôå íá ðñïëáìâÜíåé ôçí ôáõôü÷ñïíç ðñüóâáóç áðü ðïëëïýò
÷ñÞóôåò.Ìðïñåß íá åêôõðþíåé óåëßäåò êåöáëßäáò
(ãíùóôÝò åðßóçò ùò banner Þ
óåëßäåò burst) þóôå ïé ÷ñÞóôåò íá ìðïñïýí
åýêïëá íá îå÷ùñßóïõí ôéò åñãáóßåò ôïõò ìÝóá óôçí óôïßâá
åêôõðþóåùí.Öñïíôßæåé ãéá ôçí ïñèüôçôá ôùí ðáñáìÝôñùí åðéêïéíùíßáò ôùí
åêôõðùôþí ðïõ åßíáé óõíäåäåìÝíïé óå óåéñéáêÝò èýñåò.Ìðïñåß ìÝóù ôïõ äéêôýïõ íá óôåßëåé åñãáóßåò óå óýóôçìá
ðáñï÷Ýôåõóçò LPD äéáöïñåôéêïý
õðïëïãéóôÞ.Ìðïñåß íá åêôåëÝóåé äéÜöïñá ößëôñá ãéá íá ðñïóáñìüóåé åñãáóßåò
þóôå íá åßíáé äõíáôÞ ç åêôýðùóç ôïõò óå åêôõðùôÝò ðïõ ÷ñçóéìïðïéïýí
äéáöïñåôéêÝò ãëþóóåò Þ Ý÷ïõí äéáöïñåôéêÝò äõíáôüôçôåò.Ìðïñåß íá êÜíåé êáôáìÝôñçóç ÷ñÞóçò ôïõ åêôõðùôÞ.ÌÝóù ôïõ áñ÷åßïõ ñýèìéóçò (/etc/printcap),
êáé ìå ôç âïÞèåéá åéäéêþí ðñïãñáììÜôùí ößëôñùí, ìðïñåßôå íá
åíåñãïðïéÞóåôå ôï óýóôçìá LPD íá êÜíåé üëåò
Þ êÜðïéåò áðü ôéò ðáñáðÜíù åñãáóßåò óå ìéá ìåãÜëç ãêÜìá óõóêåõþí
åêôýðùóçò.Ãéáôß èá ðñÝðåé íá ÷ñçóéìïðïéåßôå ôïí SpoolerÁí åßóôå ï ìïíáäéêüò ÷ñÞóôçò ôïõ óõóôÞìáôïò, èá áíáñùôéÝóôå
ãéáôß èá Ýðñåðå íá åíäéáöåñèåßôå ãéá ôïí spooler áöïý äåí ÷ñåéÜæåóôå
Ýëåã÷ï ðñüóâáóçò, óåëßäåò êåöáëßäáò, Þ áíáöïñÝò åêôýðùóçò. Áí êáé
ìðïñåßôå íá åíåñãïðïéÞóåôå ôçí Üìåóç ðñüóâáóç óôïí åêôõðùôÞ, åßíáé
êáëýôåñá íá ÷ñçóéìïðïéåßôå ôïí spooler ãéá ôïõò ðáñáêÜôù
ëüãïõò:ôï LPD åêôõðþíåé ôéò åñãáóßåò óôï
ðáñáóêÞíéï, äåí ÷ñåéÜæåôáé íá ðåñéìÝíåôå íá áíôéãñáöïýí ôá
äåäïìÝíá óôïí åêôõðùôÞ.
- &tex;
-
Ôï LPD ìðïñåß Üíåôá íá åêôåëåß
ìéá åñãáóßá åêôýðùóçò äéáìÝóïõ ößëôñùí êáé íá ðñïóèÝôåé êåöáëßäåò
çìåñïìçíßáò/þñáò Þ íá ìåôáôñÝðåé êÜðïéï åéäéêü ôýðï áñ÷åßïõ
- (üðùò Ýíá áñ÷åßï &tex; DVI) óå Ýíá ôýðï êáôáíïçôü áðü ôïí
+ (üðùò Ýíá áñ÷åßï &tex;&tex; DVI) óå Ýíá ôýðï êáôáíïçôü áðü ôïí
åêôõðùôÞ óáò. ÁõôÝò ïé äéáäéêáóßåò äåí ÷ñåéÜæåôáé íá ãßíïíôáé
÷åéñïêßíçôá.ÐïëëÜ áðü ôá åëåýèåñá êáé åìðïñéêÜ äéáèÝóéìá ðñïãñÜììáôá
ðïõ ðáñÝ÷ïõí äéåõêïëýíóåéò óôçí åêôýðùóç, óõíÞèùò åðéæçôïýí
íá åðéêïéíùíÞóïõí ìå ôïí spooler ôïõ óõóôÞìáôïò óáò. Ñõèìßæïíôáò
ôï óýóôçìá ðáñï÷Ýôåõóçò, èá ìðïñåßôå åõêïëüôåñá íá õðïóôçñßæåôå
ëïãéóìéêü ôñßôùí, ðïõ ìðïñåß Þäç íá Ý÷åôå Þ ðïõ ðñüêåéôáé íá
åãêáôáóôÞóåôå óôï ìÝëëïí.ÂáóéêÞ ÅãêáôÜóôáóçÁðü ôï &os; 8.0 êáé ìåôÜ, ôá áñ÷åßá óõóêåõþí ãéá ôéò
óåéñéáêÝò èýñåò ìåôïíïìÜóôçêáí áðü
/dev/ttydN óå
/dev/ttyuN.
Ïé ÷ñÞóôåò ôïõ &os; 7.X èá ðñÝðåé íá ðñïóáñìüóïõí ôçí
ôåêìçñßùóç ðïõ áêïëïõèåß ìå âÜóç áõôÝò ôéò áëëáãÝò.Ãéá íá ÷ñçóéìïðïéÞóåôå åêôõðùôÝò ìå ôï óýóôçìá ðáñï÷Ýôåõóçò
LPD, èá ðñÝðåé íá åãêáôáóôÞóåôå ôüóï ôï
hardware ôïõ åêôõðùôÞ óáò üóï êáé ôï ëïãéóìéêü
LPD. Áõôü ôï Ýããñáöï ðåñéãñÜöåé ôçí
åãêáôÜóôáóç óå äýï óôÜäéá:Äåßôå ôçí åíüôçôá ÂáóéêÝò
Ñõèìßóåéò Åêôõðùôþí ãéá íá ìÜèåôå ðùò ãßíåôáé ç óýíäåóç
åêôõðùôþí, ìå ðïéï ôñüðï åðéêïéíùíåß ôï
LPD ìå ôïõò åêôõðùôÝò, êáé ðùò íá
åêôõðþíåôå áðëÜ áñ÷åßá êåéìÝíïõ.Äåßôå ôçí åíüôçôá Ñõèìßóåéò
Åêôõðùôþí ãéá Ðñï÷ùñçìÝíïõò ãéá íá ìÜèåôå ðùò íá åêôõðþíåôå
áñ÷åßá åéäéêÞò ìïñöÞò äéáöüñùí ôýðùí, ðùò íá åêôõðþíåôå óåëßäåò
êåöáëßäáò, ðùò íá åêôõðþíåôå óå Ýíá äßêôõï, ðùò íá åëÝã÷åôå ôçí
ðñüóâáóç óôïõò åêôõðùôÝò, êáé ðùò íá ÷ñçóéìïðïéåßôå ôçí êáôáãñáöÞ
åêôõðþóåùí.ÂáóéêÝò Ñõèìßóåéò ÅêôõðùôþíÁõôÞ ç åíüôçôá ðåñéãñÜöåé ðùò íá ñõèìßóåôå ôï hardware ôïõ
åêôõðùôÞ êáé ôï ëïãéóìéêü LPD. ÐáñÝ÷åé
âáóéêÝò ãíþóåéò ãéá ôá åîÞò èÝìáôá:Ç Åíüôçôá Ñõèìßóåéò
Hardware õðïäåéêíýåé ðùò íá óõíäÝóåôå ôïí åêôõðùôÞ óå
ìéá èýñá ôïõ õðïëïãéóôÞ óáò.Ç Åíüôçôá Ñõèìßóåéò
Ëïãéóìéêïý õðïäåéêíýåé ðùò íá åãêáôáóôÞóåôå ôï áñ÷åßï
ñýèìéóçò ôïõ óõóôÞìáôïò ðáñï÷Ýôåõóçò
LPD: ôï áñ÷åßï
/etc/printcap.Áí ðñïóðáèåßôå íá åãêáôáóôÞóåôå Ýíáí åêôõðùôÞ ðïõ äÝ÷åôáé äåäïìÝíá
ìÝóù ðñùôïêüëëïõ äéêôýïõ êáé ü÷é ìÝóù äéáóýíäåóçò ôïðéêÞò èýñáò, ôüôå
äåßôå ôçí åíüôçôá
ÅêôõðùôÝò Ìå
ÓõíäÝóåéò Äéêôýïõ.Áí êáé áõôÞ ç åíüôçôá ïíïìÜæåôáé ÂáóéêÝò Ñõèìßóåéò
Åêôõðùôþí, óôçí ðñáãìáôéêüôçôá åßíáé áñêåôÜ ðåñßðëïêç. Ôï
äõóêïëüôåñï óôÜäéï óôçí åãêáôÜóôáóç åßíáé ç åðéôõ÷Þò ëåéôïõñãßá óôçí
åðéêïéíùíßá ôïõ åêôõðùôÞ ìå ôïí õðïëïãéóôÞ óáò êáé ôï óýóôçìá
ðáñï÷Ýôåõóçò LPD. Ïé åðéëïãÝò ãéá
ðñï÷ùñçìÝíïõò, üðùò ïé óåëßäåò êåöáëßäáò êáé áíáöïñÜò åßíáé ó÷åôéêÜ
åýêïëåò íá åðéôåõ÷èïýí, ìåôÜ ôçí åðéôõ÷Þ ñýèìéóç ôçò âáóéêÞò
ëåéôïõñãßáò åêôýðùóçò.Ñõèìßóåéò HardwareÁõôÞ ç åíüôçôá åîçãåß ôïõò äéÜöïñïõò ôñüðïõò óýíäåóçò ôïõ
åêôõðùôÞ ìå ôïí õðïëïãéóôÞ óáò. ÐåñéãñÜöåé ôïõò äéÜöïñïõò ôýðïõò
èõñþí êáé êáëùäßùí, êáé ôéò ñõèìßóåéò ðïõ ðñÝðåé íá êÜíåôå
óôïí ðõñÞíá ãéá íá åíåñãïðïéÞóåôå ôçí åðéêïéíùíßá ìåôáîý &os; êáé
åêôõðùôÞ.Áí Þäç Ý÷åôå êáôáöÝñåé íá óõíäÝóåôå ôïí åêôõðùôÞ óáò êáé Ý÷åôå
åêôõðþóåé åðéôõ÷þò óå Üëëï ëåéôïõñãéêü óýóôçìá, ôüôå ìðïñåßôå íá
ìåôáâåßôå êáôåõèåßáí óôçí åíüôçôá Ñõèìßóåéò Ëïãéóìéêïý.Èýñåò êáé ÊáëþäéáÏé åêôõðùôÝò ðïõ äéáôßèåíôáé óÞìåñá ãéá ÷ñÞóç ìå Ç/Õ
ðáñÝ÷ïíôáé ìå ìßá Þ ðåñéóóüôåñåò åê ôùí áêïëïýèùí ôñéþí
äéáóõíäÝóåùí:
-
- åêôõðùôÝò
- óåéñéáêïß
-
- Ïé ÓåéñéáêÝò äéáóõíäÝóåéò, ãíùóôÝò
+ Ïé ÓåéñéáêÝòåêôõðùôÝòóåéñéáêïß äéáóõíäÝóåéò, ãíùóôÝò
êáé ùò RS-232 Þ èýñåò COM, ÷ñçóéìïðïéïýí ôçí óåéñéáêÞ èýñá
ôïõ õðïëïãéóôÞ óáò ãéá íá óôåßëïõí äåäïìÝíá óôïí åêôõðùôÞ.
Ïé óåéñéáêÝò äéáóõíäÝóåéò åßíáé óõíÞèåéò óôçí âéïìç÷áíßá
êáôáóêåõÞò Ç/Õ êáé ôá êáëþäéá åßíáé åêôåíþò äéáäåäïìÝíá êáé
åðßóçò åýêïëá íá êáôáóêåõáóôïýí. Ïé óåéñéáêÝò äéáóõíäÝóåéò
ìåñéêÝò öïñÝò ÷ñåéÜæïíôáé åéäéêÜ êáëþäéá êáé ìðïñåß íá óáò
æçôçèïýí ðïëýðëïêåò åðéêïéíùíéáêÝò ñõèìßóåéò. Ïé ðåñéóóüôåñåò
óåéñéáêÝò èýñåò ôùí Ç/Õ Ý÷ïõí ìÝãéóôç ôá÷ýôçôá ìåôÜäïóçò
115200 bps, êÜíïíôáò äýóêïëç ôçí åñãáóßá åêôýðùóçò
ãñáöéêþí ìåãÜëùí äéáóôÜóåùí.
-
- åêôõðùôÝò
- ðáñÜëëçëïé
-
-
- Ïé ÐáñÜëëçëåò äéáóõíäÝóåéò
+ Ïé ÐáñÜëëçëåòåêôõðùôÝòðáñÜëëçëïé äéáóõíäÝóåéò
÷ñçóéìïðïéïýí ôçí ðáñÜëëçëç èýñá ôïõ õðïëïãéóôÞ óáò ãéá íá
óôÝëíïõí äåäïìÝíá óôïí åêôõðùôÞ. Ïé ðáñÜëëçëåò äéáóõíäÝóåéò
åßíáé äéáäåäïìÝíåò óôï åìðüñéï êáé åßíáé ãñçãïñüôåñåò áðü ôéò
óåéñéáêÝò RS-232. Ôá êáëþäéá äéáôßèåíôáé Ýôïéìá, áëëÜ åßíáé
äõóêïëüôåñï íá êáôáóêåõáóôïýí ÷åéñùíáêôéêÜ. Ìå ôéò ðáñÜëëçëåò
äéáóõíäÝóåéò äåí ðñïâëÝðïíôáé åðéëïãÝò ñýèìéóçò åðéêïéíùíßáò,
êÜíïíôáò ôçí ñýèìéóç ôïõò åîáéñåôéêÜ áðëÞ.
-
- centronics
- ðáñÜëëçëïé åêôõðùôÝò
- Ïé ðáñÜëëçëåò äéáóõíäÝóåéò åßíáé ãíùóôÝò êáé ùò
- äéáóõíäÝóåéò Centronics, ïíïìáóßá ðñïåñ÷üìåíç
+ äéáóõíäÝóåéò CentronicscentronicsðáñÜëëçëïé åêôõðùôÝò, ïíïìáóßá ðñïåñ÷üìåíç
áðü ôïí ôýðï ôïõ áêñïäÝêôç ôïõ åêôõðùôÞ.
-
- åêôõðùôÝò
- USB
-
-
- Ïé äéáóõíäÝóåéò USB, óõíôïìïãñáößá áðü ôï Universal
+ Ïé äéáóõíäÝóåéò USBåêôõðùôÝòUSB, óõíôïìïãñáößá áðü ôï Universal
Serial Bus, äïõëåýïõí óå áêüìç ìåãáëýôåñåò ôá÷ýôçôåò áðü ôçí
ðáñÜëëçëç êáé ôçí RS-232 óåéñéáêÞ äéáóýíäåóç. Ôá êáëþäéá ôïõò
åßíáé áðëÜ êáé öôçíÜ. Ç USB åßíáé áíþôåñç áðü ôçí ÓåéñéáêÞ
RS-232 êáé áðü ôçí ÐáñÜëëçëç óôçí åêôýðùóç, áëëÜ äõóôõ÷þò äåí
õðïóôçñßæåôáé êáëÜ áðü ôá óõóôÞìáôá &unix;. ¸íáò ôñüðïò ãéá
íá áðïöýãåôå áõôü ôï ðñüâëçìá åßíáé íá áãïñÜóåôå åêôõðùôÞ
ðïõ öÝñåé äéáóýíäåóç USB êáé ÐáñÜëëçëç, üðùò óõìâáßíåé ìå
ðïëëïýò åêôõðùôÝò.ÃåíéêÜ, ïé ÐáñÜëëçëåò äéáóõíäÝóåéò ðñïóöÝñïõí óõíÞèùò
ìßáò êáôåýèõíóçò åðéêïéíùíßá (áðü ôïí õðïëïãéóôÞ óôïí åêôõðùôÞ)
åíþ ç óåéñéáêÞ êáé ç USB äßíïõí áìößäñïìç. Óôï &os; ïé ðéï
ðñüóöáôåò ðáñÜëëçëåò èýñåò (EPP êáé ECP) êáôáöÝñíïõí
áìößäñïìç åðéêïéíùíßá ìå ôïõò åêôõðùôÝò, üôáí ÷ñçóéìïðïéïýíôáé
êáëþäéá ðïõ óõììïñöþíïíôáé ìå ôï ðñüôõðï IEEE-1284.PostScriptÇ áìößäñïìç åðéêïéíùíßá ìå åêôõðùôÝò äéáìÝóïõ ðáñÜëëçëçò
èýñáò ìðïñåß íá åðéôåõ÷èåß ãåíéêÜ ìå äýï ôñüðïõò. Ï ðñþôïò ôñüðïò
÷ñçóéìïðïéåß Ýíá ðñïóáñìïóìÝíï ðñüãñáììá ïäÞãçóçò åêôõðùôÞ, þóôå
íá ìðïñåß ôï &os; íá óõíïìéëåß óôçí ãëþóóá ôïõ åêôõðùôÞ. Áõôü
åßíáé óýíçèåò ìå åêôõðùôÝò inkjet êáé ìðïñåß åðßóçò íá
÷ñçóéìïðïéçèåß ãéá áíáöïñÝò äéáèÝóéìçò ðïóüôçôáò ìåëáíéïý êáé ãéá
Üëëåò ðëçñïöïñßåò ëåéôïõñãßáò. Ç äåýôåñç ìÝèïäïò ÷ñçóéìïðïéåßôáé
üôáí ï åêôõðùôÞò Ý÷åé äõíáôüôçôá õðïóôÞñéîçò &postscript;.Ïé åñãáóßåò &postscript; åßíáé óôçí ðñáãìáôéêüôçôá ðñïãñÜììáôá
ðïõ áðïóôÝëëïíôáé óôïí åêôõðùôÞ, äåí åßíáé áðáñáßôçôï íá ðáñÜãïõí
åêôõðþóåéò, åíþ ìðïñïýí íá åðéóôñÝøïõí ôï áðïôÝëåóìá ôïõò
áðåõèåßáò óôïí õðïëïãéóôÞ. Ôï &postscript; ÷ñçóéìïðïéåß
áìößäñïìç åðéêïéíùíßá ãéá íá åíçìåñþóåé ôïí õðïëïãéóôÞ ãéá ôõ÷üí
ðñïâëÞìáôá, üðùò óöÜëìáôá óôï ðñüãñáììá &postscript; Þ
ìðëïêÜñéóìá ôñïöïäïóßáò ÷áñôéïý. Ïé ÷ñÞóôåò óáò, èá óáò åßíáé
åõãíþìïíåò ãéá áõôÝò ôéò ðëçñïöïñßåò. ÅðéðëÝïí, ï êáëýôåñïò
ôñüðïò ãéá íá êÜíåôå óùóôÞ êáôáìÝôñçóç ìå Ýíá áìößäñïìï åêôõðùôÞ
&postscript; åßíáé: íá ñùôÞóåôå ôïí åêôõðùôÞ ãéá ôçí óõíïëéêÞ
êáôáìÝôñçóç ôùí óåëßäùí ôïõ (ðüóåò óåëßäåò åêôýðùóå óå üëç ôç
äéÜñêåéá æùÞò ôïõ), ìåôÜ íá áðïóôåßëåôå ôçí åñãáóßá ôïõ ÷ñÞóôç,
êáé Ýðåéôá íá îáíáñùôÞóåôå ãéá ôçí êáôáìÝôñçóç ôùí óåëßäùí ôïõ.
ÁöáéñÝóôå ôéò äýï ôéìÝò êáé èá ãíùñßæåôå ðüóåò óåëßäåò íá
÷ñåþóåôå óôïí ÷ñÞóôç.ÐáñÜëëçëåò ÈýñåòÃéá íá óõíäÝóåôå Ýíáí åêôõðùôÞ óå ðáñÜëëçëç èýñá, óõíäÝóôå
ôï êáëþäéï Centronics ìåôáîý åêôõðùôÞ êáé õðïëïãéóôÞ.
Ïé ïäçãßåò ðïõ óõíïäåýïõí ôïí åêôõðùôÞ êáé ôïí õðïëïãéóôÞ èá óáò
êáèïäçãÞóïõí íá ïëïêëçñþóåôå ôçí óýíäåóç.Èõìçèåßôå ðïéá ðáñÜëëçëç èýñá ÷ñçóéìïðïéåßôå óôïí õðïëïãéóôÞ.
Ç ðñþôç ðáñÜëëçëç èýñá óôï &os; åßíáé ç
ppc0,
ç äåýôåñç åßíáé ç ppc1,
êáé ïýôù êáèåîÞò. Ôï üíïìá óõóêåõÞò ôïõ åêôõðùôÞ ÷ñçóéìïðïéåß
ôçí ßäéá áñßèìçóç:
/dev/lpt0 ãéá ôïí
åêôõðùôÞ óôçí ðñþôç ðáñÜëëçëç èýñá ê.ô.ë.ÓåéñéáêÝò ÈýñåòÃéá íá óõíäÝóåôå Ýíáí åêôõðùôÞ ÷ñçóéìïðïéþíôáò óåéñéáêÞ
äéáóýíäåóç, óõíäÝóôå ôï êáôÜëëçëï óåéñéáêü êáëþäéï ìåôáîý åêôõðùôÞ
êáé õðïëïãéóôÞ. Ïé ïäçãßåò ðïõ óõíïäåýïõí ôïí åêôõðùôÞ êáé ôïí
õðïëïãéóôÞ óáò, èá óáò êáèïäçãÞóïõí íá ïëïêëçñþóåôå ôçí
óýíäåóç.Áí äåí åßóôå óßãïõñïé ðïéï åßíáé ôï êáôÜëëçëï óåéñéáêü
êáëþäéï, ìðïñåßôå íá äïêéìÜóåôå ìßá áðü ôéò áêüëïõèåò
åíáëëáêôéêÝò:¸íá êáëþäéï modem åíþíåé êÜèå pin
ôïõ áêñïäÝêôç áðü ôç ìéá ðëåõñÜ ôïõ êáëùäßïõ êáôåõèåßáí ìå
ôï áíôßóôïé÷ï pin ôïõ áêñïäÝêôç óôï Üëëï Üêñï. Áõôüò ï ôýðïò
êáëùäßïõ åßíáé ãíùóôüò êáé ùò êáëþäéï
DTE-to-DCE.
- null-modem cable
-
- ¸íá êáëþäéï null-modem åíþíåé
+ ¸íá êáëþäéï null-modemnull-modem cable åíþíåé
êáôåõèåßáí ìåñéêÜ pins, áíôáëëÜóóåé ìåñéêÜ Üëëá (ãéá
ðáñÜäåéãìá, ôá pins áðïóôïëÞò êáé ëÞøçò), åíþ
âñá÷õêõêëþíåé ìåñéêÜ Üëëá, åóùôåñéêÜ, óôï ðñïóôáôåõôéêü
êÜëõììá êÜèå áêñïäÝêôç. Áõôüò ï ôýðïò êáëùäßïõ åßíáé ãíùóôüò
êáé ùò êáëþäéï DTE-to-DTE.¸íá êáëþäéï óåéñéáêïý åêôõðùôÞ, ðïõ
áðáéôåßôáé áðü êÜðïéïõò ëéãüôåñï óõíçèéóìÝíïõò åêôõðùôÝò,
åßíáé óáí ôï êáëþäéï null-modem, áëëÜ óôÝëíåé éóïäýíáìá
óÞìáôá êáé óôá äýï Üêñá áíôß íá ôá âñá÷õêõêëþíåé
åóùôåñéêÜ.ñõèìüò baudéóïäõíáìßáðñùôüêïëëï åëÝã÷ïõ ñïÞòÈá ðñÝðåé åðßóçò íá ñõèìßóåôå ôéò ðáñáìÝôñïõò åðéêïéíùíßáò
ôïõ åêôõðùôÞ, óõíÞèùò áðü ôïí ìðñïóôéíü ðßíáêá åëÝã÷ïõ Þ áðü ôïõò
DIP äéáêüðôåò ôïõ. ÅðéëÝîôå ôçí ìÝãéóôç ôéìÞ
bps (bits per second = bits áíÜ äåõôåñüëåðôï,
áíáöÝñåôáé êáé ùò ñõèìüò baud) ðïõ
õðïóôçñßæïõí ï õðïëïãéóôÞò êáé ï åêôõðùôÞò óáò. ÅðéëÝîôå 7 Þ 8
data bits, none, even, Þ odd parity, êáé 1 Þ 2 stop bits. Åðßóçò
åðéëÝîôå Ýíá ðñùôüêïëëï åëÝã÷ïõ ñïÞò: åßôå none, Þ XON/XOFF
(áíáöÝñåôáé êáé ùò Ýëåã÷ïò ñïÞò in-band Þ
software). Íá èõìÜóôå áõôÝò ôéò
ñõèìßóåéò, ãéá ôï óôÜäéï ñýèìéóçò ëïãéóìéêïý ðïõ áêïëïõèåß.Ñõèìßóåéò ËïãéóìéêïýÁõôÞ ç åíüôçôá ðåñéãñÜöåé ôéò áíáãêáßåò ñõèìßóåéò ðïõ ðñÝðåé
íá ãßíïõí óôï ëïãéóìéêü ãéá íá ìðïñåßôå íá åêôõðþíåôå ìå ôï óýóôçìá
ðáñï÷Ýôåõóçò åêôõðùôþí LPD óôï
&os;.Ìéá ãåíéêÞ Üðïøç ôùí åíåñãåéþí ðïõ ðñÝðåé íá áêïëïõèÞóåôå
åßíáé:Ñõèìßóôå ôïí ðõñÞíá óáò, áí åßíáé áíáãêáßï, ãéá ôçí èýñá
ðïõ ÷ñçóéìïðïéåßôå ãéá ôïí åêôõðùôÞ óáò. Ïé áðáñáßôçôåò
ñõèìßóåéò ðåñéãñÜöïíôáé óôçí åíüôçôá Ñõèìßóåéò ÐõñÞíá.Ñõèìßóôå ôçí êáôÜóôáóç åðéêïéíùíßáò ãéá ôçí ðáñÜëëçëç èýñá,
áí ðñüêåéôáé íá ôçí ÷ñçóéìïðïéÞóåôå.
Ç åíüôçôá Ñõèìßóåéò
ÊáôÜóôáóçò Åðéêïéíùíßáò ãéá ôçí ÐáñÜëëçëç Èýñá ðåñéÝ÷åé
ëåðôïìÝñåéåò.ÅëÝãîôå áí ôï ëåéôïõñãéêü óýóôçìá ìðïñåß íá óôåßëåé äåäïìÝíá
óôïí åêôõðùôÞ.
Ç åíüôçôá ¸ëåã÷ïò Åðéêïéíùíßáò
ôïõ ÅêôõðùôÞ ðáñÝ÷åé ìåñéêÝò óõìâïõëÝò ãéá ôï ðùò èá
ìðïñïýóå íá ãßíåé ï Ýëåã÷ïò.Ñõèìßóôå ôï LPD ãéá ôïí åêôõðùôÞ
óáò, ôñïðïðïéþíôáò ôï áñ÷åßï /etc/printcap.
Èá âñåßôå ïäçãßåò ãéá áõôÝò ôéò ñõèìßóåéò óå åðüìåíï ôìÞìá áõôïý
ôïõ êåöáëáßïõ.Ñõèìßóåéò ÐõñÞíáÏ ðõñÞíáò ôïõ ëåéôïõñãéêïý óõóôÞìáôïò Ý÷åé ìåôáãëùôôéóôåß Ýôóé
þóôå íá äïõëåýåé ìå Ýíá óõãêåêñéìÝíï óýíïëï óõóêåõþí. Ç óåéñéáêÞ
êáé ç ðáñÜëëçëç äéáóýíäåóç ôïõ åêôõðùôÞ åßíáé ìÝñïò áõôïý ôïõ
óõíüëïõ. ÅðïìÝíùò, ßóùò íá åßíáé áíáãêáßï íá ðñïóèÝóåôå
õðïóôÞñéîç ãéá êÜðïéá ðñüóèåôç óåéñéáêÞ Þ ðáñÜëëçëç èýñá, áí äåí
åßíáé Þäç ñõèìéóìÝíç óôïí ðõñÞíá óáò.Ãéá íá åëÝãîåôå áí ï ðõñÞíáò óáò ìðïñåß íá õðïóôçñßîåé ìéá
óåéñéáêÞ äéáóýíäåóç, ðëçêôñïëïãÞóôå:&prompt.root; grep sioN/var/run/dmesg.boot¼ðïõ N åßíáé ï áñéèìüò ôçò
óåéñéáêÞò èýñáò, îåêéíþíôáò áðü ôï ìçäÝí. Áí äåßôå óôçí Ýîïäï ôïõ
ôåñìáôéêïý óáò êÜôé ðáñüìïéï ìå:sio2 at port 0x3e8-0x3ef irq 5 on isa
sio2: type 16550Aôüôå ï ðõñÞíáò õðïóôçñßæåé áõôÞ ôç èýñá.Ãéá íá åëÝãîåôå áí ï ðõñÞíáò óáò õðïóôçñßæåé ðáñÜëëçëåò
äéáóõíäÝóåéò, ðëçêôñïëïãÞóôå:&prompt.root; grep ppcN/var/run/dmesg.boot¼ðïõ N åßíáé ï áñéèìüò ôçò
ðáñÜëëçëçò èýñáò, îåêéíþíôáò áðü ôï ìçäÝí. Áí äåßôå óôçí Ýîïäï
ôïõ ôåñìáôéêïý óáò êÜôé ðáñüìïéï ìå:ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes thresholdôüôå ï ðõñÞíáò õðïóôçñßæåé áõôÞ ôç èýñá.Ãéá íá ìðïñåß ôï ëåéôïõñãéêü óýóôçìá íá áíáãíùñßæåé êáé íá
÷ñçóéìïðïéåß ôçí èýñá (ðáñÜëëçëç Þ óåéñéáêÞ) ãéá ôïí åêôõðùôÞ óáò,
ßóùò ÷ñåéáóôåß íá åðáíáðñïóáñìüóåôå ôïí ðõñÞíá óáò.Ãéá ôçí õðïóôÞñéîç óåéñéáêÞò èýñáò, äåßôå ôçí åíüôçôá óôéò
ñõèìßóåéò ôïõ ðõñÞíá. Ãéá ôçí õðïóôÞñéîç ðáñÜëëçëçò èýñáò, äåßôå
ôçí ßäéá åíüôçôá êáé ôçí åíüôçôá ðïõ
áêïëïõèåß.Ñõèìßóåéò ÊáôÜóôáóçò Åðéêïéíùíßáò ãéá ôçí ÐáñÜëëçëç
Èýñá¼ôáí ÷ñçóéìïðïéåßôå ôçí ðáñÜëëçëç äéáóýíäåóç, ìðïñåßôå íá
åðéëÝîåôå áí ç åðéêïéíùíßá ôïõ &os; ìå ôïí åêôõðùôÞ èá åßíáé
ôýðïõ interrupt-driven Þ polled. Ï ãåíéêüò ïäçãüò óõóêåõÞò ôïõ
åêôõðùôÞ (&man.lpt.4;) óôï &os; ÷ñçóéìïðïéåß ôï óýóôçìá
&man.ppbus.4;, ôï ïðïßï åëÝã÷åé ôçí èýñá ôïõ chipset
ìå ôïí ïäçãü &man.ppc.4;.Ç ìÝèïäïò interrupt-driven åßíáé
ðñïåðéëåãìÝíç óôïí ðõñÞíá GENERIC. Ìå áõôÞ ôç ìÝèïäï,
ôï ëåéôïõñãéêü óýóôçìá ÷ñçóéìïðïéåß Ýíá óÞìá IRQ ãéá íá
ðñïóäéïñßóåé áí ï åêôõðùôÞò åßíáé Ýôïéìïò ãéá äåäïìÝíá.Ç ìÝèïäïò polled ïäçãåß ôï
ëåéôïõñãéêü óýóôçìá íá æçôÜ êáôÜ åðáíÜëçøç áðü ôïí åêôõðùôÞ
áí åßíáé Ýôïéìïò ãéá ðñüóèåôá äåäïìÝíá. ¼ôáí áðáíôÞóåé èåôéêÜ,
ï ðõñÞíáò óôÝëíåé ðñüóèåôá äåäïìÝíá.Ç ìÝèïäïò interrupt-driven åßíáé óõíÞèùò êÜðùò ãñçãïñüôåñç
áëëÜ ÷ñçóéìïðïéåß ìéá ðïëýôéìç ãñáììÞ IRQ. ¸÷åé ðáñáôçñçèåß ðùò
êÜðïéïé óýã÷ñïíïé åêôõðùôÝò HP äå äïõëåýïõí óùóôÜ óå êáôÜóôáóç
interrupt, ðéèáíþò ëüãù êÜðïéùí (ü÷é áðüëõôá åîáêñéâùìÝíùí)
ðñïâëçìÜôùí óõã÷ñïíéóìïý. Áõôïß ïé åêôõðùôÝò ÷ñåéÜæïíôáé ôçí ìÝèïäï
polled. Èá ðñÝðåé íá ÷ñçóéìïðïéåßôå ôçí áðïôåëåóìáôéêüôåñç
êáôÜóôáóç ëåéôïõñãßáò. ÊÜðïéïé åêôõðùôÝò äïõëåýïõí êáé óôéò äõï
êáôáóôÜóåéò, áëëÜ åßíáé ïäõíçñÜ áñãïß óôçí êáôÜóôáóç ëåéôïõñãßáò
interrupt.Ìðïñåßôå íá ñõèìßóåôå ôçí êáôÜóôáóç åðéêïéíùíßáò ìå äýï
ôñüðïõò: ñõèìßæïíôáò ôïí ðõñÞíá Þ ÷ñçóéìïðïéþíôáò ôï ðñüãñáììá
&man.lptcontrol.8;.Ãéá íá èÝóåôå ôçí êáôÜóôáóç åðéêïéíùíßáò ñõèìßæïíôáò
ôïí ðõñÞíá:Åðåîåñãáóôåßôå ôï áñ÷åßï ñýèìéóçò ôïõ ðõñÞíá. Äåßôå ôçí
êáôá÷þñéóç ppc0. Áí åãêáèéóôÜôå ôçí
äåýôåñç ðáñÜëëçëç èýñá, ôüôå ÷ñçóéìïðïéåßóôå
ppc1. Ãéá ôçí ôñßôç èýñá
ppc2 êáé ïýôù êáèåîÞò.Áí åðéèõìåßôå êáôÜóôáóç ëåéôïõñãßáò interrupt-driven,
åðåîåñãáóôåßôå ôçí áêüëïõèç ãñáììÞ:hint.ppc.0.irq="N"óôï áñ÷åßï /boot/device.hints êáé
áíôéêáôáóôÞóôå ôï N ìå ôïí
óùóôü áñéèìü IRQ. Ôï áñ÷åßï ñýèìéóçò ôïõ ðõñÞíá ðñÝðåé
åðßóçò íá ðåñéÝ÷åé ôïí ïäçãü &man.ppc.4;:device ppcÁí åðéèõìåßôå êáôÜóôáóç ëåéôïõñãßáò polled, äéáãñÜøôå
áðü ôï áñ÷åßï /boot/device.hints, ôçí
áêüëïõèç ãñáììÞ:hint.ppc.0.irq="N"Óå ìåñéêÝò ðåñéðôþóåéò, ôï ðáñáðÜíù äåí åßíáé áñêåôü
ãéá íá èÝóåôå ôçí èýñá óå êáôÜóôáóç polled. Ôéò
ðåñéóóüôåñåò öïñÝò ôï ðñüâëçìá ðñïÝñ÷åôáé áðü ôïí ïäçãü
&man.acpi.4;, ï ïðïßïò Ý÷åé ôçí åõ÷Ýñåéá íá åîåôÜæåé êáé
íá ðñïóáñôÜ óõóêåõÝò, êáé åðïìÝíùò, íá åëÝã÷åé ôïí ôñüðï
ðñüóâáóçò óôçí èýñá ôïõ åêôõðùôÞ. Èá ðñÝðåé íá åëÝãîåôå
ôéò ñõèìßóåéò ôïõ &man.acpi.4; ãéá íá äéïñèþóåôå áõôü ôï
ðñüâëçìá.Áðïèçêåýóôå ôï áñ÷åßï. Ñõèìßóôå, ìåôáãëùôôßóôå, êáé
åãêáôáóôÞóôå ôïí ðõñÞíá, êáé Ýðåéôá êÜíôå åðáíåêêßíçóç.
Ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò, äåßôå ôéò ñõèìßóåéò ôïõ ðõñÞíá.Ãéá íá èÝóåôå ôçí êáôÜóôáóç åðéêïéíùíßáò ìå
ôï &man.lptcontrol.8;:ÐëçêôñïëïãÞóôå:&prompt.root; lptcontrol /dev/lptNãéá íá èÝóåôå ôçí êáôÜóôáóç ëåéôïõñãßáò interrupt-driven
ãéá ôï lptN.ÐëçêôñïëïãÞóôå:&prompt.root; lptcontrol /dev/lptNãéá íá èÝóåôå ôçí êáôÜóôáóç ëåéôïõñãßáò polled ãéá ôï
lptN.Èá ìðïñïýóáôå íá êáôá÷ùñßóåôå áõôÝò ôéò åíôïëÝò óôï
äéêü óáò áñ÷åßï /etc/rc.local. ¸ôóé èá
åêôåëïýíôáé áõôüìáôá êáôÜ ôçí åêêßíçóç
ôïõ óõóôÞìáôïò óáò. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò äåßôå ôï
&man.lptcontrol.8;.¸ëåã÷ïò Åðéêïéíùíßáò ôïõ ÅêôõðùôÞÐñéí óõíå÷ßóïõìå íá ñõèìßæïõìå ôï óýóôçìá ðáñï÷Ýôåõóçò, èá
ðñÝðåé íá âåâáéùèåßôå üôé ôï ëåéôïõñãéêü óýóôçìá ìðïñåß íá óôåßëåé
åðéôõ÷þò äåäïìÝíá óôïí åêôõðùôÞ óáò. Åßíáé åõêïëüôåñï íá êÜíïõìå
îå÷ùñéóôÜ ôçí áðïóöáëìÜôùóç åðéêïéíùíßáò ôïõ åêôõðùôÞ êáé ôçí
áðïóöáëìÜôùóç ôïõ óõóôÞìáôïò ðáñï÷Ýôåõóçò.Èá åëÝãîïõìå ôïí åêôõðùôÞ óôÝëíïíôáò ìåñéêÜ äåäïìÝíá êåéìÝíïõ.
Ãéá åêåßíïõò ôïõò åêôõðùôÝò ðïõ ìðïñïýí íá åêôõðþíïõí Üìåóá
ôïõò ÷áñáêôÞñåò ðïõ Ý÷ïõí áðïóôáëåß, ôï ðñüãñáììá &man.lptest.1;
åßíáé ôÝëåéï: ÐáñÜãåé üëïõò ôïõò åêôõðþóéìïõò ÷áñáêôÞñåò (96)
ASCII óå 96 ãñáììÝò.PostScriptÃéá åêôõðùôÝò &postscript; (Þ ðïõ âáóßæïíôáé óå Üëëç ãëþóóá),
èá ÷ñåéáóôåß íá êÜíïõìå Ýíá ðéï ðïëýðëïêï ôåóô. ¸íá ìéêñü
ðñüãñáììá &postscript;, üðùò áõôü ðïõ áêïëïõèåß, åðáñêåß:%!PS
100 100 moveto 300 300 lineto stroke
310 310 moveto /Helvetica findfont 12 scalefont setfont
(Is this thing working?) show
showpageÏ ðáñáðÜíù êþäéêáò &postscript; ìðïñåß íá ôïðïèåôçèåß óå Ýíá
áñ÷åßï êáé íá ÷ñçóéìïðïéçèåß üðùò õðïäåéêíýïõí ôá ðáñáäåßãìáôá
óôéò áêüëïõèåò åíüôçôåò.PCL¼ôáí áõôü ôï Ýããñáöï áíáöÝñåôáé óå ìéá ãëþóóá åêôõðùôÞ,
åííïåßôáé ìéá ãëþóóá üðùò ç &postscript;, áëëÜ ü÷é ç PCL ôçò
Hewlett Packard — ç PCL åßíáé ìéá ãëþóóá åõñåßáò
ëåéôïõñãéêüôçôáò ç ïðïßá åðéôñÝðåé ôçí áíÜìéîç áðëïý êåéìÝíïõ ìå
áêïëïõèßåò äéáöõãÞò. Ç &postscript; äåí ìðïñåß íá åêôõðþóåé
Üìåóá áðëü êåßìåíï, êáé áõôüò åßíáé áêñéâþò ï ôýðïò ôçò
ãëþóóáò åêôõðùôÞ ðïõ èá ðñÝðåé íá äéåõèåôÞóïõìå
êáôÜëëçëá.¸ëåã÷ïò ÐáñÜëëçëïõ ÅêôõðùôÞåêôõðùôÝòðáñÜëëçëçÁõôÞ ç åíüôçôá õðïäåéêíýåé ðùò íá åëÝãîåôå áí ôï &os; ìðïñåß
íá åðéêïéíùíÞóåé ìå Ýíáí åêôõðùôÞ óõíäåäåìÝíï óå ðáñÜëëçëç
èýñá.Ãéá íá åëÝãîåôå Ýíáí åêôõðùôÞ óå ðáñÜëëçëç
èýñá:Ãßíåôå root ìå &man.su.1;.Óôåßëôå äåäïìÝíá óôïí åêôõðùôÞ.Áí ï åêôõðùôÞò ìðïñåß íá åêôõðþóåé áðëü êåßìåíï,
ôüôå ÷ñçóéìïðïéÞóôå ôï &man.lptest.1;.
ÐëçêôñïëïãÞóôå:&prompt.root; lptest > /dev/lptN¼ðïõ N åßíáé ï áñéèìüò
ôçò ðáñÜëëçëçò èýñáò, îåêéíþíôáò áðü ôï ìçäÝí.ÅÜí ï åêôõðùôÞò êáôáëáâáßíåé &postscript; Þ êÜðïéá
Üëëç ãëþóóá åêôõðùôþí, ôüôå óôåßëôå Ýíá ìéêñü ðñüãñáììá
óôïí åêôõðùôÞ. ÐëçêôñïëïãÞóôå:&prompt.root; cat > /dev/lptN¸ðåéôá ðëçêôñïëïãÞóôå ôï ðñüãñáììá ìßá ðñïò ìßá
ãñáììÞ, ðñïóåêôéêÜ, ãéáôß äåí
ìðïñåßôå íá åðåîåñãáóôåßôå ìéá ãñáììÞ áöüôïõ Ý÷åôå
ðéÝóåé ôï ðëÞêôñï RETURN Þ
ENTER. Áöïý ôåëåéþóåôå ìå ôçí
êáôá÷þñéóç ôïõ ðñïãñÜììáôïò, ðéÝóôå
CONTROL+D, Þ Üëëï ðëÞêôñï
ôåñìáôéóìïý áñ÷åßïõ.ÅíáëëáêôéêÜ, ìðïñåßôå íá ôïðïèåôÞóåôå ôï ðñüãñáììá
óå Ýíá áñ÷åßï êáé íá ðëçêôñïëïãÞóåôå:&prompt.root; cat file > /dev/lptN¼ðïõ file åßíáé ôï
üíïìá ôïõ áñ÷åßïõ ðïõ ðåñéÝ÷åé ôï ðñüãñáììá ðïõ èÝëåôå
íá óôåßëåôå óôïí åêôõðùôÞ.Èá äåßôå êÜôé íá åêôõðþíåôáé. Ìçí áíçóõ÷åßôå áí ôï êåßìåíï
äåí öáßíåôáé óùóôü. Èá ôï äéïñèþóïõìå áñãüôåñá.¸ëåã÷ïò Óåéñéáêïý ÅêôõðùôÞprintersserialÁõôÞ ç åíüôçôá õðïäåéêíýåé ðùò íá åëÝãîåôå áí ôï &os; ìðïñåß
íá åðéêïéíùíÞóåé ìå Ýíáí åêôõðùôÞ óõíäåäåìÝíï óå óåéñéáêÞ
èýñá.Ãéá íá åëÝãîåôå Ýíáí åêôõðùôÞ óå óåéñéáêÞ
èýñá:Ãßíåôå root ìå &man.su.1;.Åðåîåñãáóôåßôå ôï áñ÷åßï
/etc/remote. ÐñïóèÝóôå ôçí áêüëïõèç
êáôá÷þñéóç:printer:dv=/dev/port:br#bps-rate:pa=paritybits-per-secondserial portparity¼ðïõ port åßíáé ç
êáôá÷þñéóç óõóêåõÞò ãéá ôçí óåéñéáêÞ ðüñôá
(ttyu0, ttyu1, êôë.),
bps-rate åßíáé ç ôá÷ýôçôá
bits-per-second åðéêïéíùíßáò ìå ôïí åêôõðùôÞ, êáé
parity ç éóïôéìßá ðïõ
áðáéôåßôáé áðü ôïí åêôõðùôÞ (even,
odd, none, Þ
zero).ÐáñáêÜôù öáßíåôáé Ýíá õðüäåéãìá êáôá÷þñéóçò, ãéá Ýíáí
åêôõðùôÞ óõíäåäåìÝíï ìÝóù óåéñéáêÞò ãñáììÞò óôçí ôñßôç
óåéñéáêÞ èýñá ìå ôá÷ýôçôá 19200 bps êáé ÷ùñßò
parity:printer:dv=/dev/ttyu2:br#19200:pa=noneÓõíäåèåßôå óôïí åêôõðùôÞ ìå &man.tip.1;.
ÐëçêôñïëïãÞóôå:&prompt.root; tip printerÁí áõôü ôï óôÜäéï äåí äïõëåýåé, åðåîåñãáóôåßôå ðÜëé ôï
áñ÷åßï /etc/remote êáé ðñïóðáèÞóôå ôï
÷ñçóéìïðïéþíôáò
/dev/cuaaN
áíôß ãéá
/dev/ttyuN.Óôåßëôå äåäïìÝíá óôïí åêôõðùôÞ.Áí ï åêôõðùôÞò ìðïñåß íá åêôõðþóåé áðëü êåßìåíï,
÷ñçóéìïðïéÞóôå &man.lptest.1;. ÃñÜøôå:&prompt.user; $lptestÅÜí ï åêôõðùôÞò êáôáëáâáßíåé &postscript; Þ êÜðïéá
Üëëç ãëþóóá åêôõðùôþí, ôüôå óôåßëôå Ýíá ìéêñü ðñüãñáììá
óôïí åêôõðùôÞ. ÐëçêôñïëïãÞóôå ôï ðñüãñáììá, ìßá ðñïò ìßá
ãñáììÞ, ðïëý ðñïóåêôéêÜ, êáèþò
ï åêôõðùôÞò ìðïñåß íá åñìçíåýåé äéáöïñåôéêÜ ôçí ÷ñÞóç
÷áñáêôÞñùí üðùò ôï backspace Þ Üëëùí ðïõ ðáñÜãïíôáé áðü
äéÜöïñá ðëÞêôñá åðåîåñãáóßáò. Ìðïñåß åðßóçò íá
÷ñåéáóôåß íá ðëçêôñïëïãÞóåôå êÜðïéï åéäéêü ðëÞêôñï
ôåñìáôéóìïý áñ÷åßïõ ãéá ôïí åêôõðùôÞ þóôå íá ãíùñßæåé
ðüôå ïëïêëçñþíåôáé ôï ðñüãñáììá. Ãéá åêôõðùôÝò
&postscript;, ðéÝóôå
CONTROL+D.ÅíáëëáêôéêÜ, ìðïñåßôå íá ôïðïèåôÞóåôå ôï ðñüãñáììá
óå Ýíá áñ÷åßï êáé íá ðëçêôñïëïãÞóåôå:&prompt.user; >file¼ðïõ file åßíáé ôï
üíïìá ôïõ áñ÷åßïõ ðïõ ðåñéÝ÷åé ôï ðñüãñáììá. Áöïý ôï
&man.tip.1; óôåßëåé ôï áñ÷åßï, ðéÝóôå ôï êáôÜëëçëï
ðëÞêôñï ôåñìáôéóìïý áñ÷åßïõ, áí áðáéôåßôáé.Èá äåßôå êÜôé íá åêôõðþíåôáé. Ìçí áíçóõ÷åßôå áí ôï
êåßìåíï äåí öáßíåôáé óùóôü. Èá ôï äéïñèþóïõìå áñãüôåñá.Åíåñãïðïßçóç ôïõ Spooler: ôï Áñ÷åßï
/etc/printcapÓå áõôü ôï óçìåßï, ï åêôõðùôÞò óáò èá ðñÝðåé íá åßíáé
óõíäåìÝíïò, ï ðõñÞíáò óáò ñõèìéóìÝíïò íá åðéêïéíùíåß ìáæß ôïõ
(áí ÷ñåéÜæåôáé), êáé Ý÷åôå ðåôý÷åé íá óôåßëåôå êÜðïéá äïêéìáóôéêÜ
äåäïìÝíá óôïí åêôõðùôÞ. Åßóôå ôþñá Ýôïéìïé íá ñõèìßóåôå ôï
LPD ãéá íá åëÝã÷åôå ôçí ðñüóâáóç
óôïí åêôõðùôÞ óáò.Ìðïñåßôå íá ñõèìßóåôå ôï LPD
ìå åðåîåñãáóßá ôïõ áñ÷åßïõ /etc/printcap.
Ôï óýóôçìá ðáñï÷Ýôåõóçò LPD
äéáâÜæåé áõôü ôï áñ÷åßï êÜèå öïñÜ ðïõ ÷ñçóéìïðïéåßôáé ï spooler,
åðïìÝíùò ðéèáíÝò áíáâáèìßóåéò ôïõ ìðáßíïõí Üìåóá óå åöáñìïãÞ.åêôõðùôÝòéêáíüôçôåòÅßíáé åýêïëï íá êáôáíïÞóåôå ôçí ìïñöÞ ôïõ áñ÷åßïõ
&man.printcap.5;. ×ñçóéìïðïéÞóôå ôïí êåéìåíïãñÜöï ðïõ ðñïôéìÜôå
ãéá íá êÜíåôå áëëáãÝò óôï /etc/printcap. Ç
ìïñöÞ ôïõ åßíáé ðáñüìïéá ìå Üëëá áñ÷åßá ðåñéãñáöÞò äõíáôïôÞôùí,
üðùò ôá /usr/share/misc/termcap êáé
/etc/remote. Äåßôå ôçí &man.cgetent.3;
ãéá ëåðôïìåñåßò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí ìïñöÞ ôïõ áñ÷åßïõ.Ç ðéï áðëÞ ñýèìéóç ôïõ spooler áðïôåëåßôáé áðü ôá áêüëïõèá
âÞìáôá:ÅðéëÝîôå Ýíá üíïìá (êáé ëßãá âïëéêÜ ðáñùíýìéá) ãéá ôïí
åêôõðùôÞ, êáé ôïðïèåôÞóôå ôá óôï áñ÷åßï
/etc/printcap.
Äåßôå ôçí åíüôçôá Ïíïìáôïäüôçóç ÅêôõðùôÞ ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí ïíïìáóßá ôùí
åêôõðùôþí.
- óåëßäåò êåöáëßäáò
-
- ÁðåíåñãïðïéÞóôå ôéò óåëßäåò êåöáëßäáò (åßíáé åíåñãÝò áðü
+ ÁðåíåñãïðïéÞóôå ôéò óåëßäåò êåöáëßäáòóåëßäåò êåöáëßäáò (åßíáé åíåñãÝò áðü
ðñïåðéëïãÞ) åéóÜãïíôáò ôçí éêáíüôçôá sh.
Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò äåßôå ôçí åíüôçôá Ðáñåìðüäéóç Óåëßäùí
Êåöáëßäáò.ÄçìéïõñãÞóôå Ýíá êáôÜëïãï ðáñï÷Ýôåõóçò, êáé êáèïñßóôå ôçí
ôïðïèåóßá ôïõ ìå ôçí éêáíüôçôá sd. Ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò äåßôå ôçí åíüôçôá Äçìéïõñãßá Êáôáëüãïõ
Ðáñï÷Ýôåõóçò.Êáèïñßóôå ôçí êáôÜëëçëç êáôá÷þñéóç
/dev
ãéá ôïí åêôõðùôÞ, êáé óçìåéþóôå ôç óôï
/etc/printcap ìå ôçí éêáíüôçôá
lp. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, äåßôå ôçí
åíüôçôá Áíáãíþñéóç ôçò ÓõóêåõÞò
Åêôýðùóçò. Åðßóçò, áí ï åêôõðùôÞò åßíáé óå óåéñéáêÞ
èýñá, åãêáôáóôÞóôå ôéò ðáñáìÝôñïõò åðéêïéíùíßáò ìå ôçí éêáíüôçôá
ms# ç ïðïßá áíáëýåôáé óôçí åíüôçôá Ñõèìßóåéò ÐáñáìÝôñùí Åðéêïéíùíßáò
ôïõ Spooler.ÅãêáôáóôÞóôå ößëôñá åéóüäïõ áðëïý êåéìÝíïõ. Äåßôå ôçí
åíüôçôá ÅãêáôÜóôáóç Ößëôñïõ
ÊåéìÝíïõ ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.ÅëÝãîôå ôçí åãêáôÜóôáóç åêôõðþíïíôáò ïôéäÞðïôå ìå ôçí
åíôïëÞ &man.lpr.1;. Ðåñéóóüôåñåò ðëçñïöïñßåò åßíáé äéáèÝóéìåò
óôéò åíüôçôåò ÄïêéìÞ ôïõ
Spooler êáé Åíôïðéóìüò Âëáâþí.ÅêôõðùôÝò ðïõ âáóßæïíôáé óå ãëþóóåò åêôýðùóçò, üðùò ïé
åêôõðùôÝò &postscript;, äåí ìðïñïýí íá åêôõðþóïõí Üìåóá áðëü
êåßìåíï. Ï áðëüò ôñüðïò ñýèìéóçò ðïõ äåßîáìå ðáñáðÜíù êáé
ðïõ èá ðåñéãñÜøïõìå åêôåíÝóôåñá óôéò åðüìåíåò åíüôçôåò,
ðñïûðïèÝôåé ðùò áí ñõèìßæåôå Ýíáí ôÝôïéï åêôõðùôÞ èá ìðïñåßôå íá
åêôõðþóåôå ìüíïí áñ÷åßá ãñáììÝíá óôç ãëþóóá ôïõ.Ïé ÷ñÞóôåò óõíÞèùò íïìßæïõí ðùò ìðïñïýí íá åêôõðþóïõí áðëü
êåßìåíï óå üëïõò ôïõò åêôõðùôÝò ðïõ åßíáé åãêáôåóôçìÝíïé óôï
óýóôçìá ôïõò. Ôá ðñïãñÜììáôá ðïõ ÷ñçóéìïðïéïýí ôï
LPD ãéá íá åêôõðþóïõí, êÜíïõí áêñéâþò
ôçí ßäéá õðüèåóç. Áí ðñïóðáèåßôå íá åãêáôáóôÞóåôå Ýíáí ôÝôïéï
åêôõðùôÞ êáé èÝëåôå íá ìðïñåßôå íá ôõðþíåôå åñãáóßåò óôçí ãëþóóá
ôïõ åêôõðùôÞ áëëÜ êáé óå áðëü êåßìåíï, óáò
óõíéóôïýìå íá ðñïóèÝóåôå Ýíá åðéðëÝïí âÞìá óôçí äéáäéêáóßá
åãêáôÜóôáóçò ðïõ ðåñéãñÜøáìå ðáñáðÜíù: ÅãêáôáóôÞóôå Ýíá ðñüãñáììá
áõôüìáôçò ìåôáôñïðÞò áðü áðëü êåßìåíï óå PostScript (Þ óå Üëëç
ãëþóóá åêôõðùôÞ). Ç åíüôçôá Óõìâáôüôçôá Åñãáóéþí
Áðëïý ÊåéìÝíïõ óå åêôõðùôÝò &postscript; åîçãåß ðùò íá
åíåñãÞóåôå.Ïíïìáôïäüôçóç ÅêôõðùôÞÔï ðñþôï (åýêïëï) âÞìá åßíáé íá åðéëÝîåôå üíïìá ãéá ôïí
åêôõðùôÞ óáò. Äåí Ý÷åé óçìáóßá áí èá ðñïôéìÞóåôå Ýíá ëåéôïõñãéêü
Þ êÜðïéï åîùôéêü üíïìá áöïý ìðïñåßôå åðßóçò íá ðñïóèÝóåôå êáé
ìåñéêÜ ðáñùíýìéá (aliases) ãéá ôïí ßäéï åêôõðùôÞ.ÔïõëÜ÷éóôïí Ýíáò áðü ôïõò åêôõðùôÝò ðïõ áíáöÝñïíôáé óôï
/etc/printcap èá ðñÝðåé íá Ý÷åé ôï
ðáñùíýìéï lp. ÁõôÞ åßíáé ç ïíïìáóßá ôïõ
ðñïåðéëåãìÝíïõ åêôõðùôÞ. ÅÜí ïé ÷ñÞóôåò äåí Ý÷ïõí ôçí ìåôáâëçôÞ
ðåñéâÜëëïíôïò PRINTER êáé äåí áíáöÝñïõí êÜðïéï
üíïìá åêôõðùôÞ óôçí ãñáììÞ åíôïëþí ìå ïðïéáäÞðïôå åíôïëÞ
LPD, ôüôå ï lp èá
åßíáé ï ðñïåðéëåãìÝíïò åêôõðùôÞò ãéá ôéò åêôõðþóåéò ôïõò.Åðßóçò, åßíáé êïéíÞ ðñáêôéêÞ ôï ôåëåõôáßï alias ôïõ åêôõðùôÞ
íá åßíáé ìéá ðëÞñçò ðåñéãñáöÞ ôïõ åêôõðùôÞ, ðïõ íá ðåñéëáìâÜíåé
ôïí êáôáóêåõáóôÞ êáé ôï ìïíôÝëï.Áöïý åðéëÝîåôå ìéá ïíïìáóßá êáé ìåñéêÜ óõíÞèç ðáñùíýìéá,
êáôá÷ùñßóôå ôá óôï áñ÷åßï /etc/printcap.
Ôï üíïìá ôïõ åêôõðùôÞ èá ðñÝðåé íá áíáöÝñåôáé ðñþôï óôï áñéóôåñü
Üêñï. Äéá÷ùñßóôå êÜèå ðáñùíýìéï ìå ìéá êÜèåôç ìðÜñá êáé
ôïðïèåôÞóôå ìéá Üíù-êÜôù ôåëåßá ìåôÜ ôï ôåëåõôáßï
ðáñùíýìéï.Óôï áêüëïõèï ðáñÜäåéãìá, îåêéíÜìå ìå Ýíá åíôåëþò âáóéêü
/etc/printcap ðïõ ïñßæåé äýï åêôõðùôÝò (Ýíáí
åêôõðùôÞ ãñáììÞò Diablo 630 êáé Ýíáí åêôõðùôÞ &postscript; laser
Panasonic KX-P4455):#
# /etc/printcap for host rose
#
rattan|line|diablo|lp|Diablo 630 Line Printer:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:Óå áõôü ôï ðáñÜäåéãìá, ï ðñþôïò åêôõðùôÞò ïíïìÜæåôáé
rattan êáé Ý÷åé ùò ðáñùíýìéá ôá
line, diablo,
lp, êáé Diablo 630 Line
Printer. Áðü ôç óôéãìÞ ðïõ Ý÷åé ôï ðáñùíýìéï
lp, åßíáé êáé ï ðñïåðéëåãìÝíïò åêôõðùôÞò. Ï
äåýôåñïò ïíïìÜæåôáé bamboo, êáé Ý÷åé ùò
ðáñùíýìéá ôá ps, PS,
S, panasonic, êáé
Panasonic KX-P4455 PostScript v51.4.Ðáñåìðüäéóç Óåëßäùí Êåöáëßäáòprintingheader pagesÔï óýóôçìá ðáñï÷Ýôåõóçò LPD, áðü
ðñïåðéëïãÞ, åêôõðþíåé ìéá óåëßäá êåöáëßäáò
ãéá êÜèå åñãáóßá. Ç óåëßäá êåöáëßäáò ðåñéëáìâÜíåé ôï üíïìá
÷ñÞóôç ðïõ áéôÞèçêå ôçí åñãáóßá, ôïí õðïëïãéóôÞ áðü ôïí ïðïßïí
ðñïÞëèå ç åñãáóßá, êáé ôï üíïìá ôçò åñãáóßáò, ìå ìåãÜëïõò üìïñöïõò
÷áñáêôÞñåò. Äõóôõ÷þò áõôü ôï ðñüóèåôï êåßìåíï áêïëïõèåß ôçí
äéáäéêáóßá áðïóöáëìÜôùóçò ôçò åãêáôÜóôáóçò åíüò áðëïý åêôõðùôÞ,
åðïìÝíùò èá ðáñåìðïäßóïõìå ôéò óåëßäåò êåöáëßäáò.Ãéá ôçí ðáñåìðüäéóç ôùí óåëßäùí êåöáëßäáò, ðñïóèÝóôå ôçí
éêáíüôçôá sh óôçí êáôá÷þñéóç ãéá ôïí åêôõðùôÞ
óôï áñ÷åßï /etc/printcap. Åäþ âëÝðåôå Ýíá
ðáñÜäåéãìá ôïõ /etc/printcap ìå ðñïóèÞêç ôçò
sh:#
# /etc/printcap for host rose - no header pages anywhere
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:ÐáñáôçñÞóôå ðùò ÷åéñéóôÞêáìå óùóôÜ ôç ìïñöÞ: ç ðñþôç
ãñáììÞ îåêéíÜ óôçí áñéóôåñÞ óôÞëç, êáé ïé áêüëïõèåò ãñáììÝò
åßíáé óôïé÷éóìÝíåò (indented). ÊÜèå ãñáììÞ êáôá÷þñéóçò (åêôüò
áðü ôçí ôåëåõôáßá) ôåëåéþíåé ìå ìéá áñéóôåñüóôñïöç êÜèåôï.Äçìéïõñãßá Êáôáëüãïõ Ðáñï÷ÝôåõóçòåêôõðùôÞò spoolåêôýðùóç åñãáóßåòÔï åðüìåíï âÞìá óôïí áðëü ôñüðï åãêáôÜóôáóçò åßíáé ç
äçìéïõñãßá åíüò
êáôáëüãïõ ðáñï÷Ýôåõóçò (spool),
üðïõ èá öéëïîåíïýíôáé ïé åñãáóßåò åêôýðùóçò Ýùò üôïõ
íá åêôõðùèïýí êáé üðïõ åðßóçò öõëÜóóïíôáé êáé êÜðïéá Üëëá
âïçèçôéêÜ áñ÷åßá ôïõ óõóôÞìáôïò åêôýðùóçò.Ëüãù ôçò ìåôáâáëëüìåíçò öýóçò ôùí êáôáëüãùí ðáñï÷Ýôåõóçò,
óõíçèßæåôáé íá ôïðïèåôïýíôáé êÜôù áðü ôïí êáôÜëïãï
/var/spool. Äåí åßíáé
áíáãêáßï íá ðáßñíåôå áíôßãñáöá áóöáëåßáò ôùí êáôáëüãùí
ðáñï÷Ýôåõóçò. Ç åðáíáäçìéïõñãßá ôïõò åßíáé ôüóï áðëÞ üóï íá
ôñÝîïõìå ôçí åíôïëÞ &man.mkdir.1;.Åßíáé åðßóçò óõíçèéóìÝíï íá ïíïìÜæåôáé ï êáôÜëïãïò ìå ôï ßäéï
üíïìá ìå ôïí åêôõðùôÞ, üðùò öáßíåôáé ðáñáêÜôù:&prompt.root; mkdir /var/spool/printer-nameÙóôüóï, áí Ý÷åôå áñêåôïýò åêôõðùôÝò óôï äßêôõï, ßóùò
åðéèõìåßôå íá ôïðïèåôÞóåôå ôïõò êáôáëüãïõò ðáñï÷Ýôåõóçò êÜôù áðü
Ýíá ìïíáäéêü êáôÜëïãï ðïõ èá ÷ñçóéìïðïéåßôáé áðïêëåéóôéêÜ ãéá
åêôõðþóåéò ìå ôï LPD. Èá êÜíïõìå
áêñéâþò áõôü ãéá ôá ðáñáäåßãìáôá ìáò ìå ôïõò åêôõðùôÝò
rattan êáé bamboo:&prompt.root; mkdir /var/spool/lpd
&prompt.root; mkdir /var/spool/lpd/rattan
&prompt.root; mkdir /var/spool/lpd/bambooÅÜí ïé åñãáóßåò ôùí ÷ñçóôþí ðåñéÝ÷ïõí ðñïóùðéêÜ äåäïìÝíá,
ìðïñåß íá èÝëåôå íá ðñïóôáôÝøåôå ôïí êáôÜëïãï ðáñï÷Ýôåõóçò ìå
êÜðïéï ôñüðï, þóôå íá ìçí åßíáé äçìüóéá ðñïóâÜóéìïò. Ïé
êáôÜëïãïé ðáñï÷Ýôåõóçò èá ðñÝðåé íá áíÞêïõí êáé íá åßíáé
áíáãíþóéìïé, åããñÜøéìïé êáé ìå äõíáôüôçôá áíáæÞôçóçò áðü ôïí
÷ñÞóôç daemon êáé áðü ôçí ïìÜäá daemon, áðü êáíÝíáí Üëëï. Ãéá
ôïõò åêôõðùôÝò ôïõ ðáñáäåßãìáôïò:&prompt.root; chown daemon:daemon /var/spool/lpd/rattan
&prompt.root; chown daemon:daemon /var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan
&prompt.root; chmod 770 /var/spool/lpd/bambooÔÝëïò, ðñÝðåé íá åíçìåñþóåôå ôï LPD
ãéá áõôïýò ôïõò êáôáëüãïõò ÷ñçóéìïðïéþíôáò ôï áñ÷åßï
/etc/printcap. Ðñïóäéïñßóôå ôçí äéáäñïìÞ
ôïõ êáôáëüãïõ ðáñï÷Ýôåõóçò ìå ôçí éêáíüôçôá
sd:#
# /etc/printcap for host rose - added spooling directories
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:Óçìåéþóôå ðùò ôï üíïìá ôïõ åêôõðùôÞ îåêéíÜ óôçí ðñþôç óôÞëç,
åíþ üëåò ïé Üëëåò êáôá÷ùñßóåéò ðïõ ðåñéãñÜöïõí ôïí åêôõðùôÞ èá
ðñÝðåé íá åßíáé óôïé÷éóìÝíåò êáé êÜèå ôÝëïò ãñáììÞò íá öÝñåé
÷áñáêôÞñá äéáöõãÞò ìå áñéóôåñüóôñïöç êÜèåôï.ÅÜí äåí ðñïóäéïñßóåôå ôïí êáôÜëïãï ðáñï÷Ýôåõóçò ìÝóù ôïõ
sd, ôüôå ôï óýóôçìá ðáñï÷Ýôåõóçò èá
÷ñçóéìïðïéÞóåé ôïí ðñïåðéëåãìÝíï
/var/spool/lpd.Áíáãíþñéóç ôçò ÓõóêåõÞò ÅêôýðùóçòÓôçí åíüôçôá Ñõèìßóåéò
Hardware áíáãíùñßóáìå ôç èýñá, êáé êáôÜ óõíÝðåéá ôçí
êáôá÷þñéóç ôïõ êáôáëüãïõ
/dev ðïõ èá
÷ñçóéìïðïéÞóåé ôï &os; ãéá íá åðéêïéíùíÞóåé ìå ôïí åêôõðùôÞ.
Ôþñá, èá äþóïõìå óôï LPD áõôÞ
ôçí ðëçñïöïñßá. ¼ôáí ôï óýóôçìá ðáñï÷Ýôåõóçò Ý÷åé ìéá åñãáóßá íá
åêôõðþóåé, èá áíïßîåé áõôÞ ôçí åéäéêÞ óõóêåõÞ ãéá ëïãáñéáóìü ôïõ
ðñïãñÜììáôïò ößëôñïõ (ðïõ åßíáé õðåýèõíï ãéá ôï ðÝñáóìá ôùí
äåäïìÝíùí óôïí åêôõðùôÞ).Ðñïóäéïñßóôå ôçí äéáäñïìÞ ôçò êáôá÷þñéóçò
/dev óôï áñ÷åßï
/etc/printcap ÷ñçóéìïðïéþíôáò ôçí éêáíüôçôá
lp.Óôï ôñÝ÷ïí ðáñÜäåéãìá ìáò, áò õðïèÝóïõìå üôé ï
rattan åßíáé óôçí ðñþôç ðáñÜëëçëç èýñá, êáé ï
bamboo åßíáé óôçí Ýêôç óåéñéáêÞ ðüñôá. Ïé íÝåò
êáôá÷ùñßóåéò óôï /etc/printcap èá
åßíáé:#
# /etc/printcap for host rose - identified what devices to use
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyu5:Áí äåí êáèïñßóåôå óå êÜðïéïí åêôõðùôÞ ôçí éêáíüôçôá
lp óôï áñ÷åßï
/etc/printcap, ôï
LPD ÷ñçóéìïðïéåß áðü ðñïåðéëïãÞ
ôï /dev/lp.
Ôï /dev/lp
äåí õðÜñ÷åé ôçí äåäïìÝíç óôéãìÞ óôï &os;.ÅÜí ï åêôõðùôÞò ðïõ åãêáèéóôÜôå åßíáé óõíäåäåìÝíïò óå
ðáñÜëëçëç èýñá, äéáâÜóôå áðåõèåßáò ôçí åíüôçôá ìå ôßôëï
ÅãêáôÜóôáóç Ößëôñïõ
ÊåéìÝíïõ. ÄéáöïñåôéêÜ, áêïëïõèÞóôå ðñïóåêôéêÜ ôéò
ïäçãßåò ðïõ áêïëïõèïýí óôçí åðüìåíç åíüôçôá.Ñõèìßóåéò ÐáñáìÝôñùí Åðéêïéíùíßáò ôïõ SpooleråêôõðùôÝòóåéñéáêïßÃéá åêôõðùôÝò óå óåéñéáêÞ ðüñôá, ôï
LPD ìðïñåß íá ñõèìßóåé ôçí
ôá÷ýôçôá óå bps, ôï parity, êáé Üëëåò ðáñáìÝôñïõò óåéñéáêÞò
åðéêïéíùíßáò ãéá ëïãáñéáóìü ôïõ ðñïãñÜììáôïò ößëôñïõ ðïõ óôÝëíåé
äåäïìÝíá óôïí åêôõðùôÞ. Áõôü åßíáé ðëåïíÝêôçìá ãéáôß:Óáò åðéôñÝðåé íá äïêéìÜóåôå äéÜöïñåò ðáñáìÝôñïõò
åðéêïéíùíßáò ðñïóèÝôïíôáò ôéò áðëÜ ìå åðåîåñãáóßá ôïõ áñ÷åßïõ
/etc/printcap. Äåí ÷ñåéÜæåôáé íá
åðáíáìåôáãëùôôßóåôå ôï ðñüãñáììá ößëôñïõ.ÅðéôñÝðåé óôï óýóôçìá ðáñï÷Ýôåõóçò íá ÷ñçóéìïðïéåß ôï
ßäéï ðñüãñáììá ãéá ðïëëáðëïýò åêôõðùôÝò, ïé ïðïßïé ìðïñåß íá
Ý÷ïõí äéáöïñåôéêÝò óåéñéáêÝò ñõèìßóåéò åðéêïéíùíßáò.Ïé áêüëïõèåò éêáíüôçôåò ôïõ
/etc/printcap åëÝã÷ïõí ôéò ðáñáìÝôñïõò
óåéñéáêÞò åðéêïéíùíßáò ôùí óõóêåõþí ðïõ áíáöÝñïíôáé óôçí
éêáíüôçôá lp:br#bps-rateÏñßæåé ôçí ôá÷ýôçôá åðéêïéíùíßáò ôçò óõóêåõÞò óå
bps-rate, üðïõ ôï
bps-rate ìðïñåß íá åßíáé 50,
75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
9600, 19200, 38400, 57600, Þ 115200 bits-per-second.ms#stty-modeÏñßæåé ôéò åðéëïãÝò ôçò óõóêåõÞò ôåñìáôéêïý ìåôÜ ôï
Üíïéãìá ôçò óõóêåõÞò. Ç &man.stty.1; åîçãåß ôéò äéáèÝóéìåò
åðéëïãÝò.¼ôáí ôï LPD áíïßãåé ôçí óõóêåõÞ
ðïõ ïñßæåôáé áðü ôçí éêáíüôçôá lp, õéïèåôåß ôá
÷áñáêôçñéóôéêÜ ôçò óõóêåõÞò ìå éêáíüôçôá ms#.
¸÷ïõí éäéáßôåñï åíäéáöÝñïí ïé êáôáóôÜóåéò ëåéôïõñãßáò
parenb, parodd,
cs5, cs6,
cs7, cs8,
cstopb, crtscts, êáé
ixon, ðïõ åîçãïýíôáé óôçí óåëßäá âïçèåßáò
&man.stty.1;.Áò ðñïóèÝóïõìå óôï ðáñÜäåéãìá ìáò Ýíáí åêôõðùôÞ óôçí Ýêôç
óåéñéáêÞ èýñá. Èá èÝóïõìå ôçí ôá÷ýôçôá bps óå 38400. Ãéá ôçí
êáôÜóôáóç ëåéôïõñãßáò èá èÝóïõìå , no parity ìå
-parenb, ÷áñáêôÞñåò 8-bit ìå
cs8, no modem control ìå
clocal êáé Ýëåã÷ï ñïÞò ìÝóù hardware ìå
crtscts:bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:ÅãêáôÜóôáóç Ößëôñïõ ÊåéìÝíïõåêôýðùóçößëôñáÔþñá åßìáóôå Ýôïéìïé íá ðïýìå óôï
LPD ðïéï ößëôñï êåéìÝíïõ íá
÷ñçóéìïðïéÞóåé ãéá íá óôåßëåé åñãáóßåò óôïí åêôõðùôÞ. Ôï ößëôñï
êåéìÝíïõ, ãíùóôü êáé ùò ößëôñï åéóüäïõ,
åßíáé Ýíá ðñüãñáììá ðïõ åêôåëåß ôï LPD
üôáí õðÜñ÷åé åñãáóßá ðñïò åêôýðùóç. ¼ôáí ôï
LPD åêôåëåß ôï ößëôñï êåéìÝíïõ ãéá
êÜðïéïí åêôõðùôÞ, èÝôåé ôçí standard input ôïõ ößëôñïõ óôçí
åñãáóßá åêôýðùóçò, êáé ôçí standard output óôçí óõóêåõÞ ôïõ
åêôõðùôÞ ðïõ ïñßæåôáé ìå ôçí éêáíüôçôá lp.
Ôï ößëôñï áíáìÝíåôáé íá áíáãíþóåé ôçí åñãáóßá áðü ôçí standard
input, íá åêôåëÝóåé üëåò ôéò áðáñáßôçôåò ìåôáãëùôôßóåéò ãéá ôïí
åêôõðùôÞ, êáé íá ãñÜøåé ôï áðïôÝëåóìá óôçí standard output, ôï
ïðïßï êáé èá åêôõðùèåß. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ãéá ôá
ößëôñá êåéìÝíïõ, äåßôå ôçí åíüôçôá
Ößëôñá.Ãéá ôçí áðëÞ åãêáôÜóôáóç ôùí åêôõðùôþí ìáò, ôï ößëôñï êåéìÝíïõ
ìðïñåß íá åßíáé Ýíá ìéêñü shell script ðïõ áðëÜ èá åêôåëåß ôçí
åíôïëÞ /bin/cat ãéá íá óôÝëíåé åñãáóßåò óôïí
åêôõðùôÞ. Ôï &os; Ýñ÷åôáé ìå Üëëï Ýíá ößëôñï, ôï
lpf ðïõ ÷åéñßæåôáé äõíáôüôçôåò backspacing
êáé õðïãñÜììéóçò ãéá åêôõðùôÝò ðïõ ßóùò íá ìçí ÷åéñßæïíôáé óùóôÜ
áõôÝò ôéò ëåéôïõñãßåò. Êáé öõóéêÜ, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå
ïðïéïäÞðïôå Üëëï ðñüãñáììá ößëôñïõ åðéèõìåßôå. Ôï ößëôñï
lpf ðåñéãñÜöåôáé ëåðôïìåñþò óôçí åíüôçôá
lpf: Ýíá Ößëôñï ÊåéìÝíïõ.Èá îåêéíÞóïõìå äçìéïõñãþíôáò ôï shell script
/usr/local/libexec/if-simple óáí Ýíá áðëü
ößëôñï êåéìÝíïõ. ÔïðïèåôÞóôå ôï áêüëïõèï êåßìåíï óôï áñ÷åßï
÷ñçóéìïðïéþíôáò ôïí êåéìåíïãñÜöï ðïõ ðñïôéìÜôå:#!/bin/sh
#
# if-simple - Simple text input filter for lpd
# Installed in /usr/local/libexec/if-simple
#
# Simply copies stdin to stdout. Ignores all filter arguments.
/bin/cat && exit 0
exit 2ÊÜíôå ôï áñ÷åßï åêôåëÝóéìï:&prompt.root; chmod 555 /usr/local/libexec/if-simpleÊáé åíçìåñþóôå ôï LPD íá ôï ÷ñçóéìïðïéÞóåé, ïñßæïíôáò ôï ìå
ôçí éêáíüôçôá if óôï áñ÷åßï
/etc/printcap. Èá ôï ðñïóèÝóïõìå óôïõò äýï
åêôõðùôÝò áðü ôï ðñïçãïýìåíï ðáñÜäåéãìá óôï
/etc/printcap:#
# /etc/printcap for host rose - added text filter
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:\
:if=/usr/local/libexec/if-simple:Ìðïñåßôå íá âñåßôå Ýíá áíôßãñáöï ôïõ script
if-simple óôïí êáôÜëïãï
/usr/share/examples/printing.Åíåñãïðïßçóç ôïõ LPDÔï &man.lpd.8; åêôåëåßôáé áðü ôï
/etc/rc, êáé åëÝã÷åôáé áðü ôçí ìåôáâëçôÞ
lpd_enable. Ç ìåôáâëçôÞ áõôÞ Ý÷åé
ðñïåðéëåãìÝíç ôéìÞ NO. Áí äåí ôï Ý÷åôå êÜíåé
áêüìá, ðñïóèÝóôå ôçí áêüëïõèç ãñáììÞ:lpd_enable="YES"óôï áñ÷åßï /etc/rc.conf, êáé
åðáíåêêéíÞóôå ôï óýóôçìá óáò, Þ áðëÜ åêôåëÝóôå ôï
&man.lpd.8;.&prompt.root; lpdÄïêéìÞ ôïõ SpoolerÖôÜóáôå óôï ôÝëïò ôçò áðëÞò åãêáôÜóôáóçò ôïõ
LPD. Èá áöÞóïõìå ãéá áñãüôåñá ôá
óõã÷áñçôÞñéá, áöïý áêüìç èá ðñÝðåé íá åëÝãîïõìå ôçí åãêáôÜóôáóç
êáé íá äéïñèþóïõìå ïðïéïäÞðïôå ðñüâëçìá Ý÷åé ðñïêýøåé. Ãéá íá
åëÝãîåôå ôçí åãêáôÜóôáóç ðñïóðáèÞóôå íá åêôõðþóåôå êÜôé. Ãéá íá
åêôõðþóåôå ìå ôï óýóôçìá LPD,
÷ñçóéìïðïéÞóôå ôçí åíôïëÞ &man.lpr.1;, ç ïðïßá áðïóôÝëëåé ìßá
åñãáóßá ðñïò åêôýðùóç.Ìðïñåßôå íá óõíäõÜóåôå ôçí &man.lpr.1; ìå ôï ðñüãñáììá
&man.lptest.1;, ãéá ôï ïðïßï êÜíáìå ìéá åéóáãùãÞ óôçí åíüôçôá
¸ëåã÷ïò Åðéêïéíùíßáò ôïõ
ÅêôõðùôÞ, ãéá ôïí Ýëåã÷ï êåéìÝíïõ.Ãéá ôïí Ýëåã÷ï ìéáò áðëÞò åãêáôÜóôáóçò
LPD:ÐëçêôñïëïãÞóôå:&prompt.root; lptest 20 5 | lpr printer-name¼ðïõ printer-name åßíáé ôï üíïìá
åíüò åêôõðùôÞ (Þ ôï alias) ðïõ áíáöÝñåôáé óôï
/etc/printcap. Ãéá íá åëÝãîåôå ôïí
ðñïåðéëåãìÝíï åêôõðùôÞ, ðëçêôñïëïãÞóôå &man.lpr.1; ÷ùñßò ôï
ðñüèåìá . Áí ï åêôõðùôÞò óáò ÷ñçóéìïðïéåß
&postscript;, ðñÝðåé íá óôåßëåôå Ýíá ðñüãñáììá &postscript;,
áíôß íá ÷ñçóéìïðïéÞóåôå ôï &man.lptest.1;. Ãéá íá ôá êáôáöÝñåôå,
ôïðïèåôÞóôå ôï ðñüãñáììá óå Ýíá áñ÷åßï êáé ðëçêôñïëïãÞóôå
lpr file.Óå Ýíáí åêôõðùôÞ &postscript;, ç åêôýðùóç èá åßíáé ôï
áðïôÝëåóìá ôïõ ðñïãñÜììáôïò ðïõ óôåßëáôå. Áí ÷ñçóéìïðïéåßôå ôï
&man.lptest.1;, ôüôå ôï áðïôÝëåóìá èá ìïéÜæåé ìå ôï
áêüëïõèï:!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
$%&'()*+,-./01234567
%&'()*+,-./012345678Ãéá ðåñáéôÝñù Ýëåã÷ï ôïõ åêôõðùôÞ, äïêéìÜóôå íá êáôåâÜóåôå
ìåãáëýôåñá ðñïãñÜììáôá (ãéá åêôõðùôÝò ðïõ ÷ñçóéìïðïéïýí ãëþóóá
ðñïãñáììáôéóìïý) Þ ôñÝîôå ôï &man.lptest.1; ìå äéáöïñåôéêÜ
ðñïèÝìáôá. Ãéá ðáñÜäåéãìá, ç åíôïëÞ
lptest 80 60 èá ðáñÜãåé 60 ãñáììÝò ôùí 80
÷áñáêôÞñùí ç êáèåìßá.Áí ï åêôõðùôÞò äåí äïõëåýåé, äåßôå ôçí åíüôçôá Åíôïðéóìüò Âëáâþí.Ñõèìßóåéò Åêôõðùôþí ãéá Ðñï÷ùñçìÝíïõòÁðü ôï &os; 8.0 êáé ìåôÜ, ôá áñ÷åßá óõóêåõþí ãéá ôéò
óåéñéáêÝò èýñåò ìåôïíïìÜóôçêáí áðü
/dev/ttydN óå
/dev/ttyuN.
Ïé ÷ñÞóôåò ôïõ &os; 7.X èá ðñÝðåé íá ðñïóáñìüóïõí ôçí
ôåêìçñßùóç ðïõ áêïëïõèåß ìå âÜóç áõôÝò ôéò áëëáãÝò.ÁõôÞ ç åíüôçôá ðåñéãñÜöåé ößëôñá ãéá ôçí åêôýðùóç åéäéêÞò ìïñöÞò
áñ÷åßùí, óåëßäùí êåöáëßäáò, ãéá åêôõðþóåéò ìÝóù äéêôýïõ, êáèþò êáé ãéá
ôïí Ýëåã÷ï ðñüóâáóçò êáé ôçí êáôáìÝôñçóç ÷ñÞóçò ôùí åêôõðùôþí.ÖßëôñáåêôýðùóçößëôñáÁí êáé ôï LPD ìðïñåß íá ÷åéñéóôåß
ðñùôüêïëëá äéêôýùí, ëßóôåò áíáìïíÞò, Ýëåã÷ï ðñüóâáóçò, êáé Üëëåò
ðáñáìÝôñïõò ôùí åêôõðþóåùí, ôï êýñéï ìÝñïò ôçò
ðñáãìáôéêÞò åñãáóßáò ãßíåôáé ìå ôá
ößëôñá. Ôá ößëôñá åßíáé ðñïãñÜììáôá ðïõ
åðéêïéíùíïýí ìå ôïí åêôõðùôÞ êáé ÷åéñßæïíôáé ôéò åîáñôÞóåéò ôçò
óõóêåõÞò êáé Üëëåò åéäéêÝò áðáéôÞóåéò ôçò. Óôçí áðëÞ åãêáôÜóôáóç
åêôõðùôÞ, åãêáôáóôÞóáìå Ýíá ößëôñï áðëïý êåéìÝíïõ éäéáßôåñá
áðëÞò ìïñöÞò, ðïõ èá ðñÝðåé íá äïõëåýåé ìå ôïõò ðåñéóóüôåñïõò
åêôõðùôÝò (åíüôçôá ÅãêáôÜóôáóç Ößëôñïõ ÊåéìÝíïõ).Ùóôüóï, ãéá íá ìðïñÝóåôå íá åêìåôáëëåõôåßôå ôéò äõíáôüôçôåò
ìåôáôñïðþí ìïñöÞò, åëÝã÷ïõ ðñüóâáóçò êáé êáôáìÝôñçóçò, êáé ôõ÷üí
åéäéêÝò äõíáôüôçôåò ôïõ åêôõðùôÞ óáò, èá ðñÝðåé íá êáôáëÜâåôå ðùò
äïõëåýïõí ôá ößëôñá. Óå ôåëéêÞ áíÜëõóç, èá åßíáé åõèýíç ôùí ößëôñùí
íá ÷åéñßæïíôáé üëåò áõôÝò ôéò ðáñáìÝôñïõò. Ôá êáêÜ íÝá åßíáé ðùò ôéò
ðåñéóóüôåñåò öïñÝò èá ðñÝðåé íá ðáñÝ÷åôå
åóåßò ïé ßäéïé ôá ößëôñá óáò. Ôá êáëÜ íÝá åßíáé
ðùò ãåíéêþò õðÜñ÷ïõí áñêåôÜ äéáèÝóéìá, êáé áí äåí õðÜñ÷ïõí, åßíáé
ó÷åôéêÜ åýêïëï íá ôá ãñÜøåôå.Åðßóçò, ôï &os; äéáôßèåôáé ìå Ýíá ößëôñï, ôï
/usr/libexec/lpr/lpf, ðïõ äïõëåýåé ìå ðïëëïýò
åêôõðùôÝò ðïõ ìðïñïýí íá åêôõðþóïõí áðëü êåßìåíï. (×åéñßæåôáé
backspacing êáé tabs óôï áñ÷åßï, êáé êÜíåé êáôáìÝôñçóç, áëëÜ
ôßðïôá ðåñéóóüôåñï.) ÕðÜñ÷ïõí, åðßóçò, äéÜöïñá Üëëá ößëôñá êáé
óõóôáôéêÜ ôïõò óôçí ÓõëëïãÞ ôùí Ports ôïõ &os;.Óå áõôÞ ôçí åíüôçôá èá âñåßôå: :Ç åíüôçôá Ðùò
äïõëåýïõí ôá Ößëôñá, ðñïóðáèåß íá äþóåé ìéá ãåíéêÞ Üðïøç
ãéá ôéò áñìïäéüôçôåò ôùí ößëôñùí óôéò äéåñãáóßåò åêôýðùóçò. Èá
ðñÝðåé íá äéáâÜóåôå áõôÞ ôçí åíüôçôá ãéá íá ìðïñåßôå íá êáôáëÜâåôå
ôé ðñáãìáôéêÜ óõìâáßíåé üôáí ôï
LPD ÷ñçóéìïðïéåß ößëôñá. ÁõôÝò ïé
ãíþóåéò èá óáò âïçèÞóïõí íá ðñïëáìâÜíåôå êáé íá áðïóöáëìáôþíåôå
ðñïâëÞìáôá ðïõ ìðïñïýí íá óõìâïýí êáèþò åãêáèéóôÜôå üëï êáé
ðåñéóóüôåñá ößëôñá óå êÜèå åêôõðùôÞ óáò.Ôï LPD áíáìÝíåé ðùò êÜèå
åêôõðùôÞò åßíáé éêáíüò, áðü ðñïåðéëïãÞ, íá åêôõðþóåé áðëü
êåßìåíï. Áõôü üìùò åßíáé ðñüâëçìá ãéá åêôõðùôÝò &postscript;
(Þ Üëëïõò ðïõ âáóßæïíôáé óå ãëþóóåò ðñïãñáììáôéóìïý) ïé ïðïßïé
äåí ìðïñïýí íá åêôõðþóïõí Üìåóá áðëü êåßìåíï. Ç åíüôçôá Óõìâáôüôçôá Åñãáóéþí
Áðëïý ÊåéìÝíïõ óå åêôõðùôÝò &postscript; óáò åîçãåß ôé èá
ðñÝðåé íá êÜíåôå ãéá íá îåðåñÜóåôå áõôü ôï ðñüâëçìá. Èá ðñÝðåé
íá äéáâÜóåôå áõôÞ ôçí åíüôçôá áí Ý÷åôå åêôõðùôÞ
&postscript;.Ôï &postscript; åßíáé äçìïöéëÞò ìïñöÞ åîüäïõ ãéá ðïëëÜ
ðñïãñÜììáôá. Ìåñéêïß Üíèñùðïé ðñïôéìïýí êáé íá ãñÜöïõí êáôåõèåßáí
óå êþäéêá &postscript;. Äõóôõ÷þò, ïé åêôõðùôÝò &postscript;
Ý÷ïõí ìåãÜëï êüóôïò. Ç åíüôçôá Ðñïóïìïßùóç &postscript; ãéá
åêôõðùôÝò ðïõ äåí ôï õðïóôçñßæïõí åîçãåß ëåðôïìåñþò ðùò
íá ìåôáôñÝøåôå Ýíá ößëôñï êåéìÝíïõ ãéá åêôõðùôÝò þóôå íá ëáìâÜíåé
êáé íá ôõðþíåé äåäïìÝíá &postscript; óå åêôõðùôÝò ðïõ
äåí åßíáé &postscript;. Èá ðñÝðåé íá
äéáâÜóåôå áõôÞí ôçí åíüôçôá áí åßóôå êÜôï÷ïò åêôõðùôÞ ðïõ äåí
õðïóôçñßæåé &postscript;.Ç åíüôçôá Ößëôñá ÌåôáôñïðÞò
ðåñéãñÜöåé ìéá áõôïìáôïðïéçìÝíç äéáäéêáóßá ãéá ôçí ìåôáôñïðÞ
áñ÷åßùí åéäéêÞò ìïñöÞò, üðùò äåäïìÝíá ãñáöéêþí Þ óôïé÷åéïèåóßáò,
óå ìéá ìïñöÞ êáôáíïçôÞ áðü ôïí åêôõðùôÞ óáò. ÌåôÜ ôçí áíÜãíùóç
áõôÞò ôçò åíüôçôáò, èá ðñÝðåé íá åßóôå óå èÝóç íá ñõèìßóåôå ôïõò
åêôõðùôÝò óáò ìå ôÝôïéï ôñüðï þóôå ðëçêôñïëïãþíôáò
lpr ïé ÷ñÞóôåò óáò íá
ìðïñïýí íá åêôõðþóïõí äåäïìÝíá troff, Þ ìå
lpr äåäïìÝíá &tex;
DVI, Þ ìå lpr íá
åêôõðþíïõí åéêüíåò äåäïìÝíùí ñÜóôåñ, êáé ïýôù êáèåîÞò. Óáò
óõìâïõëåýïõìå íá äéáâÜóåôå áõôÞ ôçí åíüôçôá.Ç åíüôçôá Ößëôñá
Åîüäïõ ðåñéãñÜöåé Ýíá ÷áñáêôçñéóôéêü ôïõ
LPD ðïõ äåí ÷ñçóéìïðïéåßôáé óõ÷íÜ: ôá
ößëôñá åîüäïõ. Ìðïñåßôå íá ðñïóðåñÜóåôå áõôÞ ôçí åíüôçôá, åêôüò
áí ôõðþíåôå óåëßäåò êåöáëßäáò (äåßôå ôéò Óåëßäåò Êåöáëßäáò).Ç åíüôçôá lpf: Ýíá
Ößëôñï ÊåéìÝíïõ ðåñéãñÜöåé ôï lpf, Ýíá
ðñáãìáôéêÜ ðëÞñåò, áí êáé áðëü, ößëôñï êåéìÝíïõ ãéá åêôõðùôÝò
ãñáììÞò (êáé åêôõðùôÝò laser ðïõ ìðïñïýí íá ëåéôïõñãÞóïõí êáé ùò
åêôõðùôÝò ãñáììÞò) ðïõ ðåñéÝ÷åôáé óôï &os;. Áí ÷ñåéÜæåóôå Ýíá
ãñÞãïñï ôñüðï ãéá íá êÜíåôå ôçí êáôáìÝôñçóç óåëßäùí íá äïõëåýåé
óå áðëü êåßìåíï, Þ áí Ý÷åôå êÜðïéïí åêôõðùôÞ ðïõ âãÜæåé êáðíïýò
üôáí âëÝðåé ÷áñáêôÞñåò backspace, èá ðñÝðåé ïðùóäÞðïôå íá
åîåôÜóåôå ôçí ðåñßðôùóç ôïõ lpf.Ìðïñåßôå íá âñåßôå áíôßãñáöï ôùí äéÜöïñùí scripts ðïõ
áíáöÝñïíôáé ðáñáêÜôù, óôïí êáôÜëïãï /usr/share/examples/printing.Ðùò Äïõëåýïõí ôá Ößëôñá¼ðùò áíáöÝñáìå ðñïçãïõìÝíùò, ößëôñï åßíáé Ýíá åêôåëÝóéìï
ðñüãñáììá ðïõ åíåñãïðïéåßôáé áðü ôï LPD
ãéá íá ÷åéñßæåôáé ôï ôìÞìá ôçò åðéêïéíùíßáò ìå ôïí åêôõðùôÞ ðïõ
åîáñôÜôáé áðü ôïí ôýðï ôçò ßäéáò ôçò óõóêåõÞò.¼ôáí ôï LPD èÝëåé íá åêôõðþóåé Ýíá
áñ÷åßï ìéáò åñãáóßáò, îåêéíÜ ôï ðñüãñáììá ôïõ ößëôñïõ. ÈÝôåé ùò
standard input ôïõ ößëôñïõ ôï áñ÷åßï ðïõ ðñÝðåé íá åêôõðùèåß, ùò
standard output ôïí ßäéï ôïí åêôõðùôÞ êáé ùò standard error ôï
áñ÷åßï áíáöïñÜò óöáëìÜôùí (áíáöÝñåôáé óôçí éêáíüôçôá
lf ôïõ /etc/printcap, Þ áðü
ðñïåðéëïãÞ ôï /dev/console).troffÔï ößëôñï ðïõ èá îåêéíÞóåé ôï LPD
êáèþò êáé ïé ðáñÜìåôñïé ôïõ ößëôñïõ, åîáñôþíôáé áðü ôï ôé Ý÷åôå
äçëþóåé óôï áñ÷åßï /etc/printcap êáé áðü ôï ôé
ðáñáìÝôñïõò Ý÷åé êáèïñßóåé ï ßäéïò ï ÷ñÞóôçò ãéá ôçí åñãáóßá ìå
ôçí ãñáììÞ åíôïëÞò &man.lpr.1;. Ãéá ðáñÜäåéãìá, áí ï ÷ñÞóôçò
ðëçêôñïëïãÞóåé lpr , ôï
LPD èá îåêéíÞóåé ôï ößëôñï troff, ðïõ
õðïäçëþíåôáé ìå ôçí éêáíüôçôá tf ãéá ôïí
åêôõðùôÞ ðñïïñéóìïý. Áí ï ÷ñÞóôçò åðéèõìåß íá åêôõðþóåé áðëü
êåßìåíï, èá îåêéíÞóåé ôï ößëôñï if
(áõôü ðñÜãìáôé éó÷ýåé ôéò ðåñéóóüôåñåò öïñÝò: äåßôå ôá Ößëôñá Åîüäïõ ãéá
ëåðôïìÝñåéåò).ÕðÜñ÷ïõí ôñåéò ôýðïé ößëôñùí ðïõ ìðïñåßôå íá ðñïóäéïñßóåôå óôï
/etc/printcap:Ôï ößëôñï êåéìÝíïõ, åðïíïìáæüìåíï êáé
ùò ößëôñï åéóüäïõ óôçí ôåêìçñßùóç ôïõ
LPD, ÷åéñßæåôáé åêôõðþóåéò êáíïíéêïý
êåéìÝíïõ. ÈåùñÞóôå ôï ùò ôï ðñïåðéëåãìÝíï ößëôñï. Ôï
LPD áíáìÝíåé ðùò üëïé ïé åêôõðùôÝò,
áðü ðñïåðéëïãÞ, åßíáé óå èÝóç íá åêôõðþóïõí áðëü êåßìåíï, êáé
åßíáé äïõëåéÜ ôïõ ößëôñïõ êåéìÝíïõ íá âåâáéùèåß üôé ôá
backspaces, ôá tabs, êáé üëïé ïé Üëëïé åéäéêïß ÷áñáêôÞñåò
äåí ðñüêåéôáé íá ðñïâëçìáôßóïõí ôïí åêôõðùôÞ. ÅÜí âñßóêåóôå óå
Ýíá ðåñéâÜëëïí üðïõ èá ðñÝðåé íá êáôáìåôñÞóåôå ôçí ÷ñÞóç ôùí
åêôõðùôþí, ôï ößëôñï êåéìÝíïõ èá ðñÝðåé åðßóçò íá êáôáìåôñÞóåé
ôéò åêôõðùìÝíåò óåëßäåò, óõíÞèùò ìåôñþíôáò ôïí áñéèìü ôùí
åêôõðùìÝíùí ãñáììþí êáé óõãêñßíïíôáò ôïí ìå ôïí áñéèìü ôùí
ãñáììþí ðïõ õðïóôçñßæåé ï åêôõðùôÞò áíÜ óåëßäá. Ôï ößëôñï
êåéìÝíïõ îåêéíÜ ìå ôçí áêüëïõèç ëßóôá ðáñáìÝôñùí:
filter-name-c-wwidth-llength-iindent-n login-h hostacct-file
üðïõ
åìöáíßæåôáé áí ç åñãáóßá Ý÷åé áðïóôáëåß ìå
lpr widthåßíáé ç ôéìÞ áðü ôçí éêáíüôçôá pw
(ðëÜôïò óåëßäáò - page width) üðùò ðñïóäéïñßæåôáé óôï
/etc/printcap, ìå ðñïåðéëåãìÝíç
ôéìÞ ôï 132lengthåßíáé ç ôéìÞ áðü ôçí éêáíüôçôá pl
(ìÞêïò óåëßäáò - page length), ìå ðñïåðéëåãìÝíç ôéìÞ
ôï 66indentåßíáé ôï ìÝãåèïò ôçò åóï÷Þò (indentation) áðü ôï
lpr , ìå
ðñïåðéëåãìÝíç ôéìÞ 0loginåßíáé ôï êáôáãåãñáììÝíï üíïìá ÷ñÞóôç ðïõ åêôõðþíåé
ôï áñ÷åßïhoståßíáé ôï üíïìá ôïõ õðïëïãéóôÞ áðü ôïí ïðïßï
óôÜëèçêå ç åñãáóßáacct-fileåßíáé ôï üíïìá ôïõ áñ÷åßïõ êáôáìÝôñçóçò áðü ôçí
éêáíüôçôá af.
-
- åêôõðþóåéò
- ößëôñá
-
-
- ¸íá ößëôñï ìåôáôñïðÞò ìåôáôñÝðåé Ýíá
+ ¸íá ößëôñï ìåôáôñïðÞòåêôõðþóåéòößëôñá ìåôáôñÝðåé Ýíá
áñ÷åßï åéäéêÞò ìïñöÞò óå Ýíá ôýðï áñ÷åßïõ êáôÜëëçëï ãéá åêôýðùóç
áðü ôïí óõãêåêñéìÝíï åêôõðùôÞ. Ãéá ðáñÜäåéãìá, ôá äåäïìÝíá
óôïé÷åéïèåóßáò ditroff äåí ìðïñïýí íá åêôõðùèïýí êáôåõèåßáí,
áëëÜ ìðïñåßôå íá åãêáôáóôÞóåôå Ýíá ößëôñï ìåôáôñïðÞò áñ÷åßùí
ditroff, þóôå íá ìåôáôñÝøåôå ôá äåäïìÝíá ditroff óå ìéá
ìïñöÞ ðïõ ï åêôõðùôÞò íá ìðïñåß íá áöïìïéþóåé êáé íá ôõðþóåé.
Èá ìÜèåôå ðåñéóóüôåñá óôçí åíüôçôá Öúëôñá ÌåôáôñïðÞò.
Ôá ößëôñá ìåôáôñïðÞò åðßóçò ÷ñåéÜæïíôáé ãéá íá êÜíåôå
áñßèìçóç/êáôáìÝôñçóç, áí ÷ñåéÜæåóôå êáôáìÝôñçóç ôùí åêôõðþóåùí
óáò. Ôá ößëôñá ìåôáôñïðÞò îåêéíïýí ìå ôéò áêüëïõèåò
ðáñáìÝôñïõò:
filter-name-xpixel-width-ypixel-height-n login-h hostacct-file
üðïõ pixel-width åßíáé ç ôéìÞ áðü ôçí
éêáíüôçôá px (ðñïåðéëåãìÝíç ôéìÞ 0) êáé
pixel-height åßíáé ç ôéìÞ áðü ôçí
éêáíüôçôá py (ðñïåðéëåãìÝíç ôéìÞ 0).Ôï ößëôñï åîüäïõ ÷ñçóéìïðïéåßôáé ìüíïí
áí äåí õðÜñ÷åé ößëôñï êåéìÝíïõ, Þ áí åßíáé åíåñãïðïéçìÝíåò ïé
óåëßäåò êåöáëßäáò. ÄéáâÜóôå ôç ó÷åôéêÞ åíüôçôá Ößëôñá Åîüäïõ, áí êáé
áðü ôçí åìðåéñßá ìáò ìðïñïýìå íá óáò ðïýìå üôé ÷ñçóéìïðïéïýíôáé
óðÜíéá. ÕðÜñ÷ïõí ìüíï äýï ðáñÜìåôñïé ãéá ôá ößëôñá åîüäïõ:
filter-name-wwidth-llength
ïé ïðïßåò åßíáé ðáíïìïéüôõðåò ìå ôéò ðáñáìÝôñïõò
êáé ôùí ößëôñùí
êåéìÝíïõ.Ôá ößëôñá èá ðñÝðåé åðßóçò íá ôåñìáôßæïõí
ìå êÜðïéá áðü ôéò áêüëïõèåò êáôáóôÜóåéò åîüäïõ:exit 0Áí ôï ößëôñï ôýðùóå åðéôõ÷þò ôï áñ÷åßï.exit 1Áí ôï ößëôñï áðÝôõ÷å íá ôõðþóåé ôï áñ÷åßï, áëëÜ èÝëåé ôï
LPD íá ðñïóðáèÞóåé íá åêôõðþóåé
ôï áñ÷åßï îáíÜ. Ôï LPD èá
îåêéíÞóåé îáíÜ ôï ößëôñï áí ãßíåé Ýîïäïò ìå áõôÞ ôçí
êáôÜóôáóç.exit 2Áí ôï ößëôñï áðÝôõ÷å íá åêôõðþóåé ôï áñ÷åßï êáé äåí èÝëåé
ôï LPD íá ðñïóðáèÞóåé îáíÜ. Ôï
LPD èá áðïññßøåé ôï áñ÷åßï.Ôï ößëôñï êåéìÝíïõ ðïõ Ýñ÷åôáé ìå ôçí êáíïíéêÞ Ýêäïóç ôïõ
&os;, /usr/libexec/lpr/lpf, åêìåôáëëåýåôáé ôéò
ðáñáìÝôñïõò ðëÜôïõò êáé ìÞêïõò óåëßäáò ãéá íá ðñïóäéïñßóåé ðüôå íá
áðïóôåßëåé ôï form feed êáé ðùò íá êÜíåé êáôáìÝôñçóç. ×ñçóéìïðïéåß
ôéò ðáñáìÝôñïõò ãéá login, host, êáé áñ÷åßïõ êáôáìÝôñçóçò ãéá íá
äçìéïõñãÞóåé ôéò ó÷åôéêÝò åããñáöÝò êáôáìÝôñçóçò.Áí åßóôå óôç äéáäéêáóßá åðéëïãÞò ößëôñùí, åëÝãîôå áí åßíáé
óõìâáôÜ ìå ôï LPD. Áí åßíáé óõìâáôÜ,
ôüôå ðñÝðåé íá õðïóôçñßæïõí ôçí ëßóôá ðáñáìÝôñùí ðïõ ðåñéãñÜøáìå
ðñïçãïõìÝíùò. Áí ó÷åäéÜæåôå íá ãñÜøáôå ôá äéêÜ óáò ößëôñá ãåíéêÞò
÷ñÞóçò, ôüôå ðñÝðåé íá ôá êÜíåôå íá õðïóôçñßæïõí ôçí ßäéá ëßóôá
ðáñáìÝôñùí êáé êùäéêþí åîüäïõ.Óõìâáôüôçôá Åñãáóéþí Áðëïý ÊåéìÝíïõ óå ÅêôõðùôÝò
&postscript;åêôýðùóç åñãáóéþíÁí åßóôå ï ìïíáäéêüò ÷ñÞóôçò ôïõ Ç/Õ óáò êáé ôïõ åêôõðùôÞ
&postscript; (Þ Üëëçò ãëþóóáò åêôõðùôþí), êáé åßóôå óßãïõñïé ðùò äåí
ðñüêåéôáé íá óôåßëåôå ðïôÝ åêôõðþóåéò áðëïý êåéìÝíïõ óôïí åêôõðùôÞ
óáò êáé ðùò äåí èá ÷ñçóéìïðïéÞóåôå ôéò õðçñåóßåò ôùí äéáöüñùí
ðñïãñáììÜôùí óáò ðïõ èá èåëÞóïõí íá óôåßëïõí áðëü êåßìåíï óôïí
åêôõðùôÞ óáò, ôüôå äåí ÷ñåéÜæåôáé íá áó÷ïëçèåßôå êáèüëïõ ìå áõôÞ ôçí
åíüôçôá.ÁëëÜ, áí åðéèõìåßôå íá óôåßëåôå ôüóï åñãáóßåò &postscript; üóï
êáé áðëïý êåéìÝíïõ óôïí åêôõðùôÞ óáò, ôüôå óáò ðñïôñÝðïõìå íá
ðñïóèÝóåôå êÜðïéåò ñõèìßóåéò óôçí åãêáôÜóôáóç óáò. Ãéá íá ãßíåé
áõôü, èá ðñÝðåé ôï ößëôñï êåéìÝíïõ íá áíé÷íåýåé áí ç ôñÝ÷ïõóá
åñãáóßá åßíáé áðëü êåßìåíï Þ &postscript;. ¼ëåò ïé åñãáóßåò
&postscript; ðñÝðåé íá îåêéíïýí ìå %!
(áí ï åêôõðùôÞò óáò ÷ñçóéìïðïéåß Üëëç ãëþóóá, óõìâïõëåõèåßôå
ôçí ôåêìçñßùóç ôïõ). Áí åßíáé áõôïß ïé ðñþôïé äýï ÷áñáêôÞñåò, ôüôå
Ý÷ïõìå &postscript;, êáé ç õðüëïéðç åñãáóßá ìðïñåß íá óôáëåß
áðåõèåßáò óôïí åêôõðùôÞ. Áí äåí åßíáé áõôïß ïé ðñþôïé äýï
÷áñáêôÞñåò, ôüôå ôï ößëôñï èá ìåôáôñÝøåé ôï êåßìåíï óå &postscript;
êáé èá ôõðþóåé ôï áðïôÝëåóìá.Ðùò ãßíåôáé áõôü;åêôõðùôÝòóåéñéáêïßÁí åßóôå êÜôï÷ïò óåéñéáêïý åêôõðùôÞ, Ýíáò êáëüò ôñüðïò ãéá
íá ãßíåé áõôü åöéêôü åßíáé íá åãêáôáóôÞóåôå ôï
lprps. Ôï lprps åßíáé Ýíá
ößëôñï åêôýðùóçò &postscript; ðïõ åðéêïéíùíåß áìößäñïìá ìå ôïí
åêôõðùôÞ. Åíçìåñþíåé ôï áñ÷åßï êáôÜóôáóçò ôïõ åêôõðùôÞ ìå
áíáëõôéêÝò ðëçñïöïñßåò, þóôå ïé ÷ñÞóôåò êáé ïé äéá÷åéñéóôÝò íá
ìðïñïýí íá äïõí åðáêñéâþò ðïéá åßíáé ç êáôÜóôáóç ôïõ åêôõðùôÞ
(üðùò ÷áìçëÞ óôÜèìç toner Þ
ðñüâëçìá ÷áñôéïý). Áêüìç ðéï óçìáíôéêü
åßíáé ðùò ðåñéÝ÷åé ôï ðñüãñáììá psif ðïõ
áíé÷íåýåé áí ç åéóåñ÷üìåíç åñãáóßá åßíáé áðëïý êåéìÝíïõ êáé êáëåß ôï
textps (Ýíá Üëëï ðñüãñáììá ðïõ ðåñéÝ÷åôáé óôï
lprps) íá ôï ìåôáôñÝøåé óå &postscript;. ÔÝëïò
÷ñçóéìïðïéåßôáé ôï lprps ãéá íá áðïóôåßëåé ôçí
åñãáóßá óôïí åêôõðùôÞ.Ôï lprps åßíáé ìÝñïò ôçò ÓõëëïãÞò ôùí Ports
ôïõ &os; (äåßôå Ç ÓõëëïãÞ ôùí Ports).
ÖõóéêÜ, ìðïñåßôå íá ôï êáôåâÜóåôå, íá ôï ìåôáãëùôôßóåôå êáé íá ôï
åãêáôáóôÞóåôå ìüíïé óáò. ÌåôÜ ôçí åãêáôÜóôáóç ôïõ
lprps, áðëÜ ðñïóäéïñßóôå ôç äéáäñïìÞ ðñïò ôï
ðñüãñáììá psif ðïõ åßíáé ìÝñïò ôïõ
lprps. Áí åãêáôáóôÞóáôå ôï
lprps áðü ôçí ÓõëëïãÞ ôùí Ports, ôüôå ãéá ôïí
óåéñéáêü óáò åêôõðùôÞ &postscript; ÷ñçóéìïðïéÞóôå ôçí áêüëïõèç
êáôá÷þñéóç óôï áñ÷åßï /etc/printcap::if=/usr/local/libexec/psif:Èá ðñÝðåé åðßóçò íá êáèïñßóåôå ôçí éêáíüôçôá
rw ç ïðïßá ïñßæåé üôé ôï
LPD èá ÷åéñßæåôáé ôïí åêôõðùôÞ óå
êáôÜóôáóç áíÜãíùóçò êáé åããñáöÞò.Áí Ý÷åôå ðáñÜëëçëï åêôõðùôÞ &postscript; (êáé ãéá ôï ëüãï áõôü
äåí ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå áìößäñïìç åðéêïéíùíßá ìå ôïí
åêôõðùôÞ, üðùò áðáéôåßôáé áðü ôï lprps), ìðïñåßôå
íá ÷ñçóéìïðïéÞóåôå ôï áêüëïõèï shell script ùò ößëôñï
êåéìÝíïõ:#!/bin/sh
#
# psif - Print PostScript or plain text on a PostScript printer
# Script version; NOT the version that comes with lprps
# Installed in /usr/local/libexec/psif
#
IFS="" read -r first_line
first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# PostScript job, print it.
#
echo "$first_line" && cat && printf "\004" && exit 0
exit 2
else
#
# Plain text, convert it, then print it.
#
( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
exit 2
fiÓôï ðáñáðÜíù script, ôï textps åßíáé Ýíá
ðñüãñáììá ðïõ åãêáôáóôÞóáìå îå÷ùñéóôÜ ãéá íá ìåôáôñÝðïõìå áðëü
êåßìåíï óå &postscript;. Ìðïñåßôå íá ÷ñçóéìïðïéåßôå ïðïéïäÞðïôå
ðñüãñáììá ìåôáôñïðÞò áðü êåßìåíï- óå-&postscript;. Ç ÓõëëïãÞ ôùí
Ports (äåßôå Ç ÓõëëïãÞ ôùí Ports)
ðåñéÝ÷åé åðßóçò Ýíá ðëÞñåò ðñüãñáììá ìåôáôñïðÞò
áðü êåßìåíï óå &postscript;, ôï a2ps ðïõ ßóùò
åðéèõìåßôå íá äéåñåõíÞóåôå.Ðñïóïìïßùóç &postscript; ãéá ÅêôõðùôÝò ðïõ äåí ôï
ÕðïóôçñßæïõíPostScriptðñïóïìïßùóçGhostscriptÔï &postscript; åßíáé ôï de facto ðñüôõðï
ãéá óôïé÷åéïèåóßá êáé åêôýðùóç õøçëÞò ðïéüôçôáò. Ùóôüóï, ôï
&postscript; åßíáé êÜðùò äáðáíçñü ðñüôõðï.
Åõôõ÷þò, ç Aladdin Enterprises ðáñÝ÷åé Ýíá ðáñåìöåñÝò åëåýèåñï
&postscript; ðïõ ïíïìÜæåôáé Ghostscript
êáé äïõëåýåé Üøïãá óôï &os;. Ôï Ghostscript äéáâÜæåé ôá ðåñéóóüôåñá
áñ÷åßá &postscript; êáé ìðïñåß íá áðïäþóåé ôéò óåëßäåò ôïõò óå
ìåãÜëç ãêÜìá óõóêåõþí, óõìðåñéëáìâÜíïíôáò ðïëëïýò ôýðïõò åêôõðùôþí
ðïõ äåí õðïóôçñßæïõí &postscript;. Åãêáèéóôþíôáò ôï
Ghostscript êáé ÷ñçóéìïðïéþíôáò Ýíá
åéäéêü ößëôñï êåéìÝíïõ ãéá ôïí åêôõðùôÞ óáò, ìðïñåßôå íá êÜíåôå ôïí
êïéíü åêôõðùôÞ óáò íá ëåéôïõñãåß óáí Ýíáò ðñáãìáôéêüò åêôõðùôÞò
&postscript;.Ôï Ghostscript âñßóêåôáé óôçí
ÓõëëïãÞ ôùí Ports ôïõ &os;, êáé ìÜëéóôá óå ðïëëÝò åêäüóåéò. Ç ðéï
äéáäåäïìÝíç åßíáé ôï print/ghostscript-gpl.Ãéá íá êÜíåôå ðñïóïìïßùóç &postscript;, ðñÝðåé ôï ößëôñï
êåéìÝíïõ íá áíé÷íåýóåé áí åêôõðþíåôå áñ÷åßï &postscript;. ÅÜí ü÷é,
ôüôå ôï ößëôñï èá ðåñÜóåé ôï áñ÷åßï êáôåõèåßáí óôïí åêôõðùôÞ.
ÄéáöïñåôéêÜ, èá ÷ñçóéìïðïéÞóåé ôï
Ghostscript ãéá íá ìåôáôñÝøåé
áñ÷éêÜ ôï áñ÷åßï óå Ýíá ôýðï ðïõ èá êáôáëáâáßíåé ï åêôõðùôÞò.Éäïý Ýíá ðáñÜäåéãìá: ôï áêüëïõèï script åßíáé Ýíá ößëôñï
êåéìÝíïõ ãéá åêôõðùôÝò Hewlett Packard DeskJet 500. Ãéá Üëëïõò
åêôõðùôÝò, áíôéêáôáóôÞóôå ôï üñéóìá óôçí
åíôïëÞ gs
(Ghostscript). (ÐëçêôñïëïãÞóôå
gs ãéá íá äåßôå ôçí ëßóôá
óõóêåõþí ðïõ õðïóôçñßæåé ç ôñÝ÷ïõóá åãêáôÜóôáóç ôïõ
Ghostscript.)#!/bin/sh
#
# ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500
# Installed in /usr/local/libexec/ifhp
#
# Treat LF as CR+LF (to avoid the "staircase effect" on HP/PCL
# printers):
#
printf "\033&k2G" || exit 2
#
# Read first two characters of the file
#
IFS="" read -r first_line
first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# It is PostScript; use Ghostscript to scan-convert and print it.
#
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
-sOutputFile=- - && exit 0
else
#
# Plain text or HP/PCL, so just print it directly; print a form feed
# at the end to eject the last page.
#
echo "$first_line" && cat && printf "\033&l0H" &&
exit 0
fi
exit 2ÔÝëïò, ÷ñåéÜæåôáé íá åíçìåñþóåôå ôï
LPD ãéá ôï ößëôñï ìå ôçí éêáíüôçôá
if::if=/usr/local/libexec/ifhp:Áõôü åßíáé üëï. Ìðïñåßôå íá ðëçêôñïëïãÞóåôå
lpr plain.text êáé
lpr whatever.ps êáé ôá äýï èá åêôõðùèïýí åðéôõ÷þò.Ößëôñá ÌåôáôñïðÞòÔï åðüìåíï âÞìá ìåôÜ ôçí ïëïêëÞñùóç ôçò áðëÞò åãêáôÜóôáóçò ðïõ
ðåñéãñÜøáìå óôéò ÂáóéêÝò Ñõèìßóåéò
Åêôõðùôþí, åßíáé óõíÞèùò ç åãêáôÜóôáóç ößëôñùí ìåôáôñïðÞò
ãéá ôïõò ôýðïõò áñ÷åßùí ðïõ ðñïôéìÜôå (åêôüò áðü áðëü êåßìåíï
ASCII).Ãéáôß íá åãêáôáóôÞóåôå Ößëôñá ÌåôáôñïðÞò;&tex;åêôýðùóç áñ÷åßùí DVIÔá ößëôñá ìåôáôñïðÞò êÜíïõí ôçí åêôýðùóç äéáöüñùí ôýðùí
áñ÷åßùí åýêïëç õðüèåóç. Ãéá ðáñÜäåéãìá, áò õðïèÝóïõìå üôé Ý÷ïõìå
íá êÜíïõìå áñêåôÞ åñãáóßá ìå ôï óýóôçìá óôïé÷åéïèåóßáò &tex;, êáé
üôé Ý÷ïõìå åêôõðùôÞ &postscript;. ÊÜèå öïñÜ ðïõ äçìéïõñãïýìå Ýíá
áñ÷åßï DVI ìå ôï &tex;, äåí ìðïñïýìå íá åêôõðþóïõìå êáôåõèåßáí Ýùò
üôïõ íá ìåôáôñÝøïõìå ôï áñ÷åßï DVI óå &postscript;. Ç áêïëïõèßá
åíôïëþí ðïõ ðñÝðåé íá áêïëïõèÞóïõìå åßíáé:&prompt.user; dvips seaweed-analysis.dvi
&prompt.user; lpr seaweed-analysis.psÌå ôçí ÷ñÞóç åíüò ößëôñïõ ìåôáôñïðÞò ãéá áñ÷åßá DVI, ìðïñïýìå
íá áðïöýãïõìå ôçí ìåôáôñïðÞ ðïõ ðñÝðåé íá êÜíïõìå êÜèå öïñÜ
÷åéñïêßíçôá, êáëþíôáò ôï LPD íá êÜíåé
ôç äïõëåéÜ ãéá ìáò. Ôþñá, êÜèå öïñÜ ðïõ Ý÷ïõìå Ýíá áñ÷åßï DVI,
ãéá íá ôï ôõðþóïõìå ÷ñåéÜæåôáé ìüíï Ýíá âÞìá:&prompt.user; lpr seaweed-analysis.dvi¸÷ïõìå áíáèÝóåé óôï LPD íá êÜíåé ôç
ìåôáôñïðÞ ôïõ áñ÷åßïõ DVI ðñïóèÝôïíôáò ôïõ ôçí åðéëïãÞ
. Ç åíüôçôá ÅðéëïãÝò Ìïñöïðïßçóçò êáé
ÌåôáôñïðÞò ðåñéÝ÷åé ôïõò ðßíáêåò åðéëïãÞò
ìåôáôñïðþí.Ãéá êÜèå åðéëïãÞ ìåôáôñïðÞò ðïõ èÝëåôå íá õðïóôçñßæåôå áðü
Ýíá åêôõðùôÞ, ðñÝðåé íá åãêáôáóôÞóåôå Ýíá
ößëôñï ìåôáôñïðÞò êáé íá ïñßóåôå ôçí
äéáäñïìÞ ôïõ óôï áñ÷åßï /etc/printcap. ¸íá
ößëôñï ìåôáôñïðÞò åßíáé óáí ôï ößëôñï êåéìÝíïõ óôçí áðëÞ
åãêáôÜóôáóç åêôõðùôÞ (äåßôå ôçí åíüôçôá ÅãêáôÜóôáóç Ößëôñïõ
ÊåéìÝíïõ) ìå ìüíç äéáöïñÜ ðùò áíôß ôï ößëôñï íá
åêôõðþíåé áðëü êåßìåíï, ìåôáôñÝðåé ôï áñ÷åßï óå ìéá äéáöïñåôéêÞ
ìïñöÞ þóôå íá åßíáé êáôáíïçôü áðü ôïí åêôõðùôÞ.Ðïéï Ößëôñï ÌåôáôñïðÞò èá ÐñÝðåé íá ÅãêáôáóôÞóù;Èá ðñÝðåé íá åãêáèéóôÜôå ôá ößëôñá ìåôáôñïðÞò ðïõ íïìßæåôå
ðùò èá ÷ñçóéìïðïéÞóåôå. Áí åêôõðþíåôå áñêåôÜ äåäïìÝíá DVI, ôüôå
åßíáé ëïãéêü íá óõìðåñéëÜâåôå Ýíá ößëôñï ìåôáôñïðÞò DVI. Áí
åêôõðþíåôå óõ÷íÜ äåäïìÝíá troff, èá èÝëåôå íá åãêáôáóôÞóåôå Ýíá
ößëôñï troff.Ï áêüëïõèïò ðßíáêáò óõíïøßæåé ôá ößëôñá ìå ôá ïðïßá
óõíåñãÜæåôáé ôï LPD, ôéò êáôá÷ùñßóåéò
ôçò áíôßóôïé÷çò éêáíüôçôáò óôï áñ÷åßï
/etc/printcap, êáé ðùò íá ôéò êáëÝóåôå ìÝóù
ôçò åíôïëÞò lpr:Ôýðïò áñ÷åßïõÉêáíüôçôá /etc/printcapÐáñÜìåôñïò åíôïëÞò lprcifplotcfDVIdfplotgfditroffnfFORTRAN textrftrofftfrastervfplain textifnone, , or
Óôï ðáñÜäåéãìá ìáò, áí ÷ñçóéìïðïéÞóïõìå
lpr óçìáßíåé üôé ï
åêôõðùôÞò ÷ñåéÜæåôáé ôçí éêáíüôçôá df óôçí
êáôá÷þñéóç ôïõ óôï /etc/printcap.FORTRANÁí êáé êÜðïéïé ìðïñåß íá éó÷õñéóôïýí ôï áíôßèåôï, ìåñéêïß
ôýðïé áñ÷åßùí üðùò åßíáé ôá êåßìåíá êáé ãñáöéêÜ FORTRAN åßíáé
îåðåñáóìÝíá. Ìðïñåßôå íá äþóåôå íÝá ðíïÞ óå áñ÷åßá áõôïý ôïõ
ôýðïõ (Þ êáé ïðïéáóäÞðïôå Üëëçò ìïñöÞò åîüäïõ), åãêáèéóôþíôáò
ðñïóáñìïóìÝíá ößëôñá. Ãéá ðáñÜäåéãìá, áò õðïèÝóïõìå üôé èá èÝëáôå
íá åêôõðþóåôå êáôåõèåßáí áñ÷åßá Printerleaf (áñ÷åßá ðñïåñ÷üìåíá
áðü ôï ðñüãñáììá åðéôñáðÝæéáò ôõðïãñáößáò Interleaf), áëëÜ äåí
èá åêôõðþóåôå ðïôÝ äéáãñÜììáôá (plots). Èá ìðïñïýóáôå íá
åãêáôáóôÞóåôå Ýíá ößëôñï ìåôáôñïðÞò áñ÷åßùí Printerleaf õðü ôçí
éêáíüôçôá gf êáé íá åêðáéäåýóåôå ôïõò ÷ñÞóôåò
óáò üôé ç åíôïëÞ lpr
óçìáßíåé ôýðùóå áñ÷åßá Printerleaf.ÅãêáôÜóôáóç Ößëôñùí ÌåôáôñïðþíÁðü ôç óôéãìÞ ðïõ ôá ößëôñá ìåôáôñïðÞò åßíáé ðñïãñÜììáôá ðïõ
äåí áíÞêïõí óôï âáóéêü óýóôçìá åãêáôÜóôáóçò ôïõ &os;, åßíáé ðéï
óùóôü íá åãêáôáóôáèïýí óôïí êáôÜëïãï
/usr/local. ¸íáò óõíÞèçò
ðñïïñéóìüò ôùí ðñïãñáììÜôùí áõôþí åßíáé ï êáôÜëïãïò
/usr/local/libexec, ìéá
ðïõ ðñüêåéôáé ãéá åîåéäéêåõìÝíá ðñïãñÜììáôá ðïõ åêôåëïýíôáé ìüíï
áðü ôï LPD. Ïé áðëïß ÷ñÞóôåò äåí èá
÷ñåéáóôåß ðïôÝ íá ôá åêôåëÝóïõí.Ãéá íá åíåñãïðïéÞóåôå Ýíá ößëôñï ìåôáôñïðÞò, ðñïóäéïñßóôå ôç
äéáäñïìÞ ôïõ óôï áñ÷åßï /etc/printcap,
áëëÜæïíôáò ôçí êáôÜëëçëç éêáíüôçôá óôïí åêôõðùôÞ ðïõ åðéèõìåßôå
íá ôï ÷ñçóéìïðïéÞóåôå.Óôï ðáñÜäåéãìá ìáò, èá ðñïóèÝóïõìå ôï ößëôñï ìåôáôñïðÞò DVI
óôçí êáôá÷þñéóç ìáò ãéá ôïí åêôõðùôÞ ìå ôï üíïìá
bamboo. Áêïëïõèåß, ëïéðüí, ôï ðáñÜäåéãìá
ãéá ôï áñ÷åßï /etc/printcap, ìå ôçí íÝá
éêáíüôçôá df ãéá ôïí åêôõðùôÞ
bamboo:#
# /etc/printcap for host rose - added df filter for bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Ôï ößëôñï DVI åßíáé Ýíá shell script ðïõ ïíïìÜæåôáé
/usr/local/libexec/psdf, ôï ïðïßï êáé
ðáñáèÝôïõìå ðáñáêÜôù:#!/bin/sh
#
# psdf - DVI to PostScript printer filter
# Installed in /usr/local/libexec/psdf
#
# Invoked by lpd when user runs lpr -d
#
exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"Áõôü ôï script ôñÝ÷åé ôï dvips óå êáôÜóôáóç
ößëôñïõ (ìå ôçí ðáñÜìåôñï ) óôçí standard
input, áðü üðïõ êáé ëáìâÜíåé ôçí åñãáóßá ðñïò åêôýðùóç. Áõôü
îåêéíÜ ôï ößëôñï åêôýðùóçò &postscript; lprps
(äåßôå ôçí åíüôçôá Óõìâáôüôçôá Åñãáóéþí
Áðëïý ÊåéìÝíïõ óå åêôõðùôÝò &postscript;) äßíïíôáò ôïõ
êáé ôéò ðáñáìÝôñïõò ðïõ ðÝñáóå ôï LPD
óôï ðáñáðÜíù script. Ôï lprps èá
÷ñçóéìïðïéÞóåé áõôÝò ôéò ðáñáìÝôñïõò ãéá ôçí êáôáìÝôñçóç ôùí
åêôõðùìÝíùí óåëßäùí.Áêüìá ìåñéêÜ Ðáñáäåßãìáôá Ößëôñùí ÌåôáôñïðÞòÁðü ôç óôéãìÞ ðïõ äåí õðÜñ÷åé áõôïìáôïðïéçìÝíç ìÝèïäïò ãéá ôçí
åãêáôÜóôáóç ôùí ößëôñùí ìåôáôñïðÞò, áò ìáò åðéôñáðåß íá ðáñÝ÷ïõìå
ìåñéêÜ áêüìç ðáñáäåßãìáôá. Ìðïñåßôå íá ôá ÷ñçóéìïðïéÞóåôå óáí
ïäçãü ãéá ôçí äçìéïõñãßá ôùí äéêþí óáò ößëôñùí. Áí íïìßæåôå ðùò
åßíáé êáôÜëëçëá ãéá ôçí ðåñßðôùóç óáò ìðïñåßôå íá ôá
÷ñçóéìïðïéÞóåôå êáé êáôåõèåßáí.Áõôü ôï ðáñÜäåéãìá script åßíáé Ýíá ößëôñï ìåôáôñïðÞò ñÜóôåñ
(áñ÷åßïõ GIF ãéá ôçí áêñßâåéá) ãéá Ýíáí åêôõðùôÞ Hewlett Packard
LaserJet III-Si:#!/bin/sh
#
# hpvf - Convert GIF files into HP/PCL, then print
# Installed in /usr/local/libexec/hpvf
PATH=/usr/X11R6/bin:$PATH; export PATH
giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
&& exit 0 \
|| exit 2Äïõëåýåé ùò åîÞò: ìåôáôñÝðåé ôï áñ÷åßï GIF óå Ýíá ãåíéêü
öïñçôü ôýðï anymap, åí óõíå÷åßá ôï ìåôáôñÝðåé óå Ýíá öïñçôü ôýðï
graymap, Ýðåéôá óå Ýíá öïñçôü ôýðï bitmap, êáé ôÝëïò ôï
ìåôáôñÝðåé óå äåäïìÝíá óõìâáôÜ ìå PCL ãéá ôïí LaserJet.Åäþ åßíáé ôï áñ÷åßï /etc/printcap ìå ìéá
êáôá÷þñéóç ãéá Ýíáí åêôõðùôÞ ðïõ ÷ñçóéìïðïéåß ôï ðáñáðÜíù
ößëôñï:#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:\
:vf=/usr/local/libexec/hpvf:Ôï áêüëïõèï script åßíáé Ýíá ößëôñï ìåôáôñïðÞò äåäïìÝíùí troff
áðü ôï óýóôçìá óôïé÷åéïèåóßáò groff ãéá ôïí åêôõðùôÞ &postscript;
ìå üíïìá bamboo:#!/bin/sh
#
# pstf - Convert groff's troff data into PS, then print.
# Installed in /usr/local/libexec/pstf
#
exec grops | /usr/local/libexec/lprps "$@"Ôï ðáñáðÜíù script ÷ñçóéìïðïéåß ðÜëé ôï
lprps ãéá íá ÷åéñéóôåß ôçí åðéêïéíùíßá ìå ôïí
åêôõðùôÞ. Áí ï åêôõðùôÞò Þôáí óå ðáñÜëëçëç ðüñôá ôüôå èá åß÷áìå,
áíôéèÝôùò, ÷ñçóéìïðïéÞóåé ôï áêüëïõèï script:#!/bin/sh
#
# pstf - Convert groff's troff data into PS, then print.
# Installed in /usr/local/libexec/pstf
#
exec gropsÅäþ åßíáé ç êáôá÷þñéóç ðïõ ÷ñåéÜæåôáé íá ðñïóèÝóïõìå óôï
/etc/printcap ãéá íá åíåñãïðïéÞóïõìå ôï
ößëôñï::tf=/usr/local/libexec/pstf:Åäþ åßíáé Ýíá ðáñÜäåéãìá ðïõ ìáò åðéôñÝðåé íá åêôõðþóïõìå
ðáëáéü êþäéêá ôçò FORTRAN. Åßíáé Ýíá ößëôñï êåéìÝíïõ ãéá FORTRAN
ãéá ïðïéïíäÞðïôå åêôõðùôÞ ìðïñåß íá åêôõðþóåé êáôåõèåßáí áðëü
êåßìåíï. Èá ôï åãêáôáóôÞóïõìå ãéá Ýíáí åêôõðùôÞ ðïõ ïíïìÜæåôáé
teak:#!/bin/sh
#
# hprf - FORTRAN text filter for LaserJet 3si:
# Installed in /usr/local/libexec/hprf
#
printf "\033&k2G" && fpr && printf "\033&l0H" &&
exit 0
exit 2Êáé èá ðñïóèÝóïõìå áõôÞ ôç ãñáììÞ óôï
/etc/printcap ãéá íá åíåñãïðïéÞóïõìå ôï
ößëôñï ãéá ôïí åêôõðùôÞ teak::rf=/usr/local/libexec/hprf:Êáé Ýíá ôåëåõôáßï êÜðùò ðåñßðëïêï ðáñÜäåéãìá: Èá
ðñïóèÝóïõìå Ýíá ößëôñï DVI óôïí åêôõðùôÞ LaserJet
teak ðïõ áíáöÝñáìå ðñïçãïýìåíá. Êáôáñ÷Þí ôï
åýêïëï ìÝñïò: áíáâáèìßæïõìå ôï /etc/printcap
ìå ôçí ôïðïèåóßá üðïõ âñßóêåôáé ôï ößëôñï DVI::df=/usr/local/libexec/hpdf:Ôþñá, ôï äýóêïëï ìÝñïò: ç êáôáóêåõÞ ôïõ ößëôñïõ. Èá
÷ñåéáóôïýìå Ýíá ðñüãñáììá ìåôáôñïðÞò áðü DVI-óå-LaserJet/PCL.
Óôçí ÓõëëïãÞ ôùí Ports ôïõ &os; (äåßôå ÓõëëïãÞ ôùí Ports) õðÜñ÷åé Ýíá ôÝôïéï
ðñüãñáììá: Ôï üíïìá ôïõ ðáêÝôïõ åßíáé dvi2xx.
Ç åãêáôÜóôáóç ôïõ ðáêÝôïõ, ìáò ðáñÝ÷åé áêñéâþò ôï ðñüãñáììá
ðïõ ÷ñåéáæüìáóôå, ôï dvilj2p, ôï ïðïßï
ìåôáôñÝðåé ôïí êþäéêá DVI óå êþäéêá óõìâáôü ìå LaserJet IIp,
LaserJet III, êáé LaserJet 2000.Ôï dvilj2p êÜíåé ôï ößëôñï
hpdf áñêåôÜ ðåñßðëïêï áðü ôç óôéãìÞ ðïõ ôï
dvilj2p äå ìðïñåß íá äéáâÜóåé áðü ôï standard
input. ×ñåéÜæåôáé íá äïõëÝøåé ìå êÜðïéï üíïìá áñ÷åßïõ. Áêüìç
÷åéñüôåñá, ôï üíïìá ôïõ áñ÷åßïõ ðñÝðåé íá ôåëåéþíåé óå
.dvi êé åðïìÝíùò ç ÷ñÞóç ôïõ
/dev/fd/0 ùò standard
input åßíáé ðñïâëçìáôéêÞ. Èá ìðïñïýóáìå íá áíôéìåôùðßóïõìå ôï
ðñüâëçìá äçìéïõñãþíôáò (óõìâïëéêïýò) äåóìïýò ìå êÜðïéï ðñïóùñéíü
üíïìá áñ÷åßïõ (ðïõ íá ôåëåéþíåé óå .dvi)
ãéá ôï /dev/fd/0, êáé ìå
áõôü ôïí ôñüðï íá åîáíáãêÜóïõìå ôï dvilj2p íá
äéáâÜæåé áðü ôï standard input.Áêüìç Ýíá ðñüâëçìá ðïõ ðñïêýðôåé åßíáé ôï ãåãïíüò ðùò äåí
ìðïñïýìå íá ÷ñçóéìïðïéÞóïõìå ôï
/tmp ãéá ôïí
ðñïóùñéíü äåóìü. Ïé óõìâïëéêïß äåóìïß áíÞêïõí óôïí ÷ñÞóôç êáé
óôçí ïìÜäá bin, åíþ ôï ößëôñï ôñÝ÷åé óáí
÷ñÞóôçò daemon. Åðßóçò óôïí êáôÜëïãï
/tmp åßíáé åíåñãü ôï
sticky bit. Ôï ößëôñï ìðïñåß íá äçìéïõñãÞóåé ôï äåóìü, áëëÜ äåí
èá åßíáé éêáíü íá ôïí åîáëåßøåé êáé íá ôïí áöáéñÝóåé áðü ôç
óôéãìÞ ðïõ áõôüò èá áíÞêåé óå äéáöïñåôéêü ÷ñÞóôç.Áíôßèåôá, ôï ößëôñï èá öôéÜîåé ôï óõìâïëéêü link óôïí ôñÝ÷ïíôá
êáôÜëïãï, ðïõ åßíáé ï êáôÜëïãïò ðáñï÷Ýôåõóçò (spooling) (êáé ðïõ
ðñïóäéïñßæåôáé áðü ôçí éêáíüôçôá sd óôï
/etc/printcap). Áõôü åßíáé ôï ôÝëåéï ìÝñïò
ãéá íá äïõëåýïõí ôá ößëôñá, åéäéêÜ ëüãù ôïõ üôé (ìåñéêÝò öïñÝò)
õðÜñ÷åé ðåñéóóüôåñåò åëåýèåñïò ÷þñïò óôï äßóêï óôïí êáôÜëïãï
ðáñï÷Ýôåõóçò (spool) áðü üôé óôï
/tmp.Êáé ôåëéêÜ, éäïý ôï ößëôñï:#!/bin/sh
#
# hpdf - Print DVI data on HP/PCL printer
# Installed in /usr/local/libexec/hpdf
PATH=/usr/local/bin:$PATH; export PATH
#
# Define a function to clean up our temporary files. These exist
# in the current directory, which will be the spooling directory
# for the printer.
#
cleanup() {
rm -f hpdf$$.dvi
}
#
# Define a function to handle fatal errors: print the given message
# and exit 2. Exiting with 2 tells LPD to do not try to reprint the
# job.
#
fatal() {
echo "$@" 1>&2
cleanup
exit 2
}
#
# If user removes the job, LPD will send SIGINT, so trap SIGINT
# (and a few other signals) to clean up after ourselves.
#
trap cleanup 1 2 15
#
# Make sure we are not colliding with any existing files.
#
cleanup
#
# Link the DVI input file to standard input (the file to print).
#
ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
#
# Make LF = CR+LF
#
printf "\033&k2G" || fatal "Cannot initialize printer"
#
# Convert and print. Return value from dvilj2p does not seem to be
# reliable, so we ignore it.
#
dvilj2p -M1 -q -e- dfhp$$.dvi
#
# Clean up and exit
#
cleanup
exit 0ÁõôïìáôïðïéçìÝíåò ÌåôáôñïðÝò: Ìßá ÅíáëëáêôéêÞ óôá Ößëôñá
ÌåôáôñïðÞò¼ëá ôá ößëôñá ìåôáôñïðÞò ìðïñåß íá ðëçñïýí ôï ðåñéâÜëëïí
åêôõðþóåùí óáò, áëëÜ õðï÷ñåþíïõí ôïí ÷ñÞóôç íá ðñïóäéïñßæåé
(óôçí ãñáììÞ åíôïëþí ôïõ &man.lpr.1;) ðïéü áðü áõôÜ èá
÷ñçóéìïðïéçèåß. Áí ïé ÷ñÞóôåò óáò äåí åßíáé éäéáßôåñá
åîïéêåéùìÝíïé ìå ôïõò Ç/Õ, ôï íá ðñÝðåé íá áíáöÝñïõí êÜèå öïñÜ
Ýíá ößëôñï ðéèáíþò íá åßíáé åíï÷ëçôéêü. Åßíáé áêüìá ÷åéñüôåñï
ùóôüóï íá ãßíåé ëáíèáóìÝíç åðéëïãÞ ößëôñïõ, ôï ïðïßï èá
åêôåëåóôåß óå áêáôÜëëçëï ãéá áõôü ôýðï áñ÷åßïõ, êáé èá ðñïêáëÝóåé
ôçí óðáôÜëç åêáôïíôÜäùí óåëßäùí ÷áñôéïý.Áíôß íá åãêáôáóôÞóåôå ïðïéïäÞðïôå ößëôñï ìåôáôñïðÞò, ìðïñåß íá
èÝëåôå íá äïêéìÜóåôå íá Ý÷åôå Ýíá ößëôñï êåéìÝíïõ (áöïý åßíáé
ôï ðñïåðéëåãìÝíï ößëôñï) ðïõ íá áíé÷íåýåé ôïí ôýðï ôïõ áñ÷åßïõ
ðïõ Ý÷åé æçôçèåß íá åêôõðùèåß êáé íá åêôåëåß áõôüìáôá ôï
êáôÜëëçëï ößëôñï ìåôáôñïðÞò. Åñãáëåßá óáí ôï
file ìðïñïýí íá óáò âïçèÞóïõí. Ìðïñåß íá
åßíáé äýóêïëï íá ðñïóäéïñéóôïýí ïé äéáöïñÝò ìåôáîý
êÜðïéùí ôýðùí áñ÷åßùí—áëëÜ, öõóéêÜ,
ìðïñåßôå ðÜíôá íá ðáñÝ÷åôå ößëôñá ìåôáôñïðÞò åéäéêÜ ãéá áõôÝò ôéò
ðåñéðôþóåéò.apsfilterprintingfiltersapsfilterÇ ÓõëëïãÞ ôùí Ports ôïõ &os; Ý÷åé Ýíá ößëôñï êåéìÝíïõ ðïõ
åêôåëåß áõôüìáôåò ìåôáôñïðÝò êáé ïíïìÜæåôáé
apsfilter. Ìðïñåß íá áíé÷íåýåé áðëü êåßìåíï,
&postscript;, DVI êáé ó÷åäüí ïðïéïäÞðïôå ôýðï áñ÷åßïõ, íá åêôåëåß
ôçí êáôÜëëçëç ìåôáôñïðÞ, êáé íá åêôõðþíåé.Ößëôñá ÅîüäïõÔï óýóôçìá ðáñï÷Ýôåõóçò LPD
õðïóôçñßæåé Ýíáí áêüìç ôýðï ößëôñïõ ðïõ ßóùò íá ìçí Ý÷åôå
åîåñåõíÞóåé áêüìá: ôï ößëôñï åîüäïõ. Ôï ößëôñï åîüäïõ ðñïïñßæåôáé
ìüíï ãéá åêôýðùóç áðëïý êåéìÝíïõ, üðùò ôï ößëôñï êåéìÝíïõ, áëëÜ ìå
ðïëëÝò áðëïðïéÞóåéò. ÅÜí ÷ñçóéìïðïéåßôå ößëôñï åîüäïõ áëëÜ ü÷é
ößëôñï êåéìÝíïõ, ôüôå:Ôï LPD îåêéíÜ Ýíá ößëôñï åîüäïõ
ìüíï ìéá öïñÜ ãéá üëç ôçí åñãáóßá, áíôß Ýíá ÷ùñéóôü ãéá êÜèå
áñ÷åßï ôçò åñãáóßáò.Ôï LPD äåí öñïíôßæåé íá
áíáãíùñßóåé ôçí áñ÷Þ Þ ôï ôÝëïò ôùí áñ÷åßùí ìÝóá óôçí ßäéá ôçí
åñãáóßá üôáí ÷ñçóéìïðïéåßôáé ôï ößëôñï åîüäïõ.Ôï LPD äåí ðåñíÜåé óôï ößëôñï ôá
äåäïìÝíá åéóüäïõ ôïõ ÷ñÞóôç Þ ôï üíïìá ôïõ ìç÷áíÞìáôïò, åðïìÝíùò
äåí ðñïïñßæåôáé ãéá êáôáìÝôñçóç åêôõðùìÝíùí óåëßäùí. Ôï ößëôñï
åîüäïõ äÝ÷åôáé ìüíïò ôéò ðáñáìÝôñïõò:filter-name-wwidth-llength¼ðïõ ôï width åßíáé áðü ôçí
éêáíüôçôá pw êáé ôï
length åßíáé áðü ôçí éêáíüôçôá
pl ãéá ôïí óõãêåêñéìÝíï åêôõðùôÞ.Ìçí ðáñáóýñåóôå áðü ôçí áðëüôçôá ôïõ ößëôñïõ åîüäïõ. Áí
åðéèõìåßôå êÜèå áñ÷åßï ìéáò åñãáóßáò íá îåêéíÜ óå ìéá íÝá óåëßäá,
ôï ößëôñï åîüäïõ äåí êÜíåé ãéá óáò.
×ñçóéìïðïéÞóôå Ýíá ößëôñï êåéìÝíïõ (ãíùóôü êáé ùò ößëôñï åéóüäïõ).
Äåßôå ôçí åíüôçôá ÅãêáôÜóôáóç
Ößëôñïõ ÊåéìÝíïõ. ÅðéðëÝïí, Ýíá ößëôñï åîüäïõ åßíáé óôçí
ðñáãìáôéêüôçôá ðéï ðåñßðëïêï áöïý ðñÝðåé íá
åîåôÜæåé ôçí ñïÞ ôùí byte ðïõ áðïóôÝëëåôáé ðñïò áõôü ãéá åéäéêïýò
÷áñáêôÞñåò flag êáé ðñÝðåé íá óôÝëíåé óÞìáôá óôïí åáõôü
ôïõ ãéá ëïãáñéáóìü ôïõ LPD.Ùóôüóï, Ýíá ößëôñï åîüäïõ åßíáé áíáãêáßï
áí èÝëåôå óåëßäåò êåöáëßäáò êáé ÷ñåéÜæåôáé íá óôÝëíåôå áêïëïõèßåò
äéáöõãÞò Þ Üëëåò áêïëïõèßåò áñ÷éêïðïßçóçò ðñïêåéìÝíïõ íá ôéò
åêôõðþóåôå. (ÁëëÜ åßíáé åðßóçò ìÜôáéï áí
èÝëåôå íá ÷ñåþíåôå óåëßäåò êåöáëßäáò óôïí ëïãáñéáóìü ôïõ áíôßóôïé÷ïõ
÷ñÞóôç, áðü ôç óôéãìÞ ðïõ ôï LPD äåí
óôÝëíåé êáìéÜ ðëçñïöïñßá ãéá ôïí ÷ñÞóôç Þ ôïí õðïëïãéóôÞ óôï ößëôñï
åîüäïõ.)Ôï LPD åðéôñÝðåé ôçí óõíýðáñîç
åíüò ößëôñïõ åîüäïõ êáé Üëëùí ößëôñùí (êåéìÝíïõ Þ äéáöïñåôéêïý
ôýðïõ) óôïí ßäéï åêôõðùôÞ. Óå áõôÝò ôéò ðåñéðôþóåéò, ôï
LPD èá îåêéíÜ ôï ößëôñï åîüäïõ ìüíï ãéá
ôçí åêôýðùóç ôçò óåëßäáò êåöáëßäáò (äåßôå ôçí åíüôçôá Óåëßäåò
Êåöáëßäáò). Ôï LPD èá áíáìÝíåé
ôï ößëôñï åîüäïõ íá óôáìáôÞóåé áðü ìüíï ôïõ
üôáí ôïõ óôåßëåé äýï bytes: Ýíá ASCII 031 áêïëïõèïýìåíï áðü Ýíá
ASCII 001. ¼ôáí Ýíá ößëôñï åîüäïõ âëÝðåé áõôÜ ôá äýï bytes (031,
001), èá ðñÝðåé íá óôáìáôÜ óôÝëíïíôáò óÞìá
SIGSTOP óôïí åáõôü ôïõ. ¼ôáí ôï
LPD ïëïêëçñþóåé ôçí åêôÝëåóç êáé ôùí
õðïëïßðùí ößëôñùí, èá åðáíåêêéíÞóåé ôï ößëôñï åîüäïõ óôÝëíïíôáò
ôïõ ôï óÞìá SIGCONT.Áí õðÜñ÷åé ößëôñï åîüäïõ, áëëÜ äåí õðÜñ÷åé
ößëôñï êåéìÝíïõ êáé ôï LPD äïõëåýåé óå
åñãáóßá áðëïý êåéìÝíïõ, ôï LPD
÷ñçóéìïðïéåß ôï ößëôñï åîüäïõ ãéá ôçí åêôÝëåóç ôçò åñãáóßáò. ¼ðùò
áíáöÝñáìå êáé ðáñáðÜíù, ôï ößëôñï åîüäïõ èá åêôõðþóåé êÜèå áñ÷åßï
åñãáóßáò óôç óåéñÜ, äß÷ùò äõíáôüôçôá ðáñåìâïëÞò êåíÞò óåëßäáò Þ
Üëëùí ñõèìßóåùí óôçí ôñïöïäïóßá ÷áñôéïý, êáé ðéèáíþò áõôü íá
ìçí åßíáé åðéèõìçôü. Ó÷åäüí óå üëåò ôéò
ðåñéðôþóåéò, èá ÷ñåéáóôåßôå Ýíá ößëôñï êåéìÝíïõ.Ôï ðñüãñáììá lpf, ðïõ áíáöÝñáìå íùñßôåñá óáí
ößëôñï êåéìÝíïõ, ìðïñåß íá ôñÝîåé êáé óáí ößëôñï åîüäïõ. Áí
÷ñåéÜæåóôå Ýíá ãñÞãïñï ößëôñï åîüäïõ áëëÜ äåí èÝëåôå íá ãñÜøåôå ôïí
êþäéêá áíß÷íåõóçò ôùí byte êáé ôïí êþäéêá áðïóôïëÞò óçìÜôùí,
äïêéìÜóôå ôï lpf. Ìðïñåßôå åðßóçò íá
÷ñçóéìïðïéÞóåôå ôï lpf ìÝóá áðü Ýíá shell script
ôï ïðïßï èá ÷åéñßæåôáé ôïõò êùäéêïýò áñ÷éêïðïßçóçò ðïõ ßóùò íá
÷ñåéÜæåôáé ï åêôõðùôÞò.lpf: Ýíá Ößëôñï ÊåéìÝíïõÔï ðñüãñáììá /usr/libexec/lpr/lpf ðïõ
ðáñÝ÷åôáé ìå ôç äéáíïìÞ åêôåëÝóéìùí ôïõ &os; åßíáé Ýíá ößëôñï
êåéìÝíïõ (ößëôñï åéóüäïõ) ðïõ ìðïñåß íá ðáñáãñáöïðïéåß ôçí Ýîïäï
(åñãáóßåò ðïõ Ý÷ïõí óôáëåß ìå
lpr ), íá
åðéôñÝðåé ôçí äéÝëåõóç literal ÷áñáêôÞñùí (åñãáóßåò ðïõ Ý÷ïõí
óôáëåß ìå lpr ), íá ñõèìßæåé
ôçí èÝóç åêôýðùóçò ìå ôç ÷ñÞóç ÷áñáêôÞñùí backspace êáé tab óôçí
åñãáóßá, êáé íá êÜíåé êáôáìÝôñçóç ôùí åêôõðùìÝíùí óåëßäùí. Åðßóçò
ìðïñåß íá åíåñãåß êáé óáí ößëôñï åîüäïõ.Ôï lpf åßíáé êáôÜëëçëï ãéá äéÜöïñá
ðåñéâÜëëïíôá åêôýðùóçò. Áí êáé äåí Ý÷åé äõíáôüôçôá áðïóôïëÞò
áêïëïõèéþí áñ÷éêïðïßçóçò óôïí åêôõðùôÞ, åßíáé åýêïëï íá ãñÜøåôå
Ýíá shell script ãéá íá êÜíåôå ôçí áðáñáßôçôç áñ÷éêïðïßçóç êáé
íá åêôåëÝóåôå Ýðåéôá ôï lpf.êáôáìÝôñçóç óåëßäùíêáôáìÝôñçóçåêôõðùôÞòÃéá íá êÜíåé óùóôÜ êáôáìÝôñçóç óåëßäùí, ôï
lpf ÷ñåéÜæåôáé êáôÜëëçëåò ôéìÝò ãéá ôéò
éêáíüôçôåò pw êáé pl óôï
áñ÷åßï /etc/printcap. ×ñçóéìïðïéåß áõôÝò ôéò
ôéìÝò ãéá íá ðñïóäéïñßóåé ðüóï êåßìåíï ìðïñåß íá ÷ùñÝóåé óå ìßá
óåëßäá êáé áðü ðüóåò óåëßäåò áðïôåëåßôáé ç åñãáóßá ôïõ ÷ñÞóôç. Ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí êáôáìÝôñçóç óåëßäùí,
óõìâïõëåõôåßôå ôçí ÊáôáìÝôñçóç ×ñÞóçò Åêôõðùôþí.Óåëßäåò ÊåöáëßäáòÁí Ý÷åôå áñêåôïýò ÷ñÞóôåò, êáé üëïé ôïõò
÷ñçóéìïðïéïýí äéÜöïñïõò åêôõðùôÝò, ôüôå ðéèáíþò íá èåùñåßôå ôéò
óåëßäåò êåöáëßäáò ùò áíáãêáßï êáêü.óåëßäåò banneróåëßäåò êåöáëßäáòóåëßäåò êåöáëßäáòÏé óåëßäåò êåöáëßäáò, ãíùóôÝò åðßóçò êáé ùò
banner Þ óåëßäåò burst
áíáãíùñßæïõí óå ðïéïí áíÞêïõí ïé åñãáóßåò ìåôÜ ôçí åêôýðùóç ôïõò.
ÓõíÞèùò ôõðþíïíôáé ìå ìåãÜëá, Ýíôïíá ãñÜììáôá, êáé ßóùò ìå
äéáêïóìçôéêÜ ðåñéãñÜììáôá, þóôå óå ìéá óôïßâá åêôõðþóåùí íá
îå÷ùñßæïõí áðü ôá ðñáãìáôéêÜ Ýããñáöá åñãáóéþí ôùí ÷ñçóôþí.
ÅðéôñÝðïõí Ýôóé óôïõò ÷ñÞóôåò íá âñßóêïõí ãñÞãïñá ôéò åñãáóßåò ôïõò.
Ôï ðñïöáíÝò ìåéïíÝêôçìá óå ìéá óåëßäá êåöáëßäáò åßíáé ðùò ðñüêåéôáé
íá åêôõðùèåß ìéá áêüìá óåëßäá ãéá êÜèå ìßá åñãáóßá. Ç åöÞìåñç
÷ñçóéìüôçôá ôïõò äéáñêåß ëßãá ëåðôÜ, êáé ï ðñïïñéóìüò ôïõò åßíáé ï
êÜäïò á÷ñÞóôùí/áíáêýêëùóçò. (ÐáñáôçñÞóôå ðùò ïé óåëßäåò êåöáëßäáò
åßíáé áíÜ åñãáóßá, êáé ü÷é áíÜ áñ÷åßï óå ìéá åñãáóßá, åðïìÝíùò ôï
á÷ñçóôåõìÝíï ÷áñôß ßóùò íá ìçí åßíáé ôüóï ðïëý).Ôï óýóôçìá LPD ìðïñåß íá ðáñÝ÷åé
áõôüìáôá óåëßäåò êåöáëßäáò ãéá ôéò åêôõðþóåéò óáò,
áí ï åêôõðùôÞò óáò ìðïñåß íá åêôõðþóåé Üìåóá
áðëü êåßìåíï. Áí Ý÷åôå åêôõðùôÞ &postscript;, èá ÷ñåéáóôåßôå Ýíá
åîùôåñéêü ðñüãñáììá ãéá íá äçìéïõñãÞóåôå ôçí óåëßäá êåöáëßäáò. Äåßôå
ôï Óåëßäåò
Êåöáëßäáò óå ÅêôõðùôÝò &postscript;.Åíåñãïðïßçóç Óåëßäùí ÊåöáëßäáòÓôçí åíüôçôá ÂáóéêÝò Ñõèìßóåéò
Åêôõðùôþí, áðåíåñãïðïéÞóáìå ôéò óåëßäåò êåöáëßäáò
ìå ôçí êáôá÷þñéóç sh (óçìáßíåé suppress
header) óôï áñ÷åßï /etc/printcap.
Ãéá íá åíåñãïðïéÞóåôå ôéò óåëßäåò êåöáëßäáò ãéá êÜðïéïí åêôõðùôÞ,
áðëÜ áöáéñÝóôå ôçí éêáíüôçôá sh.Áêïýãåôáé åýêïëï, äåí íïìßæåôå;¸ôóé åßíáé. ºóùò ÷ñåéáóôåß íá ðáñÝ÷åôå Ýíá
ößëôñï åîüäïõ ãéá íá óôåßëåôå åíôïëÝò áñ÷éêïðïßçóçò óôïí åêôõðùôÞ.
Åäþ åßíáé Ýíá ðáñÜäåéãìá ößëôñïõ åîüäïõ ãéá åêôõðùôÝò óõìâáôïýò ìå
ôïí ôýðï PCL ôçò Hewlett Packard:#!/bin/sh
#
# hpof - Output filter for Hewlett Packard PCL-compatible printers
# Installed in /usr/local/libexec/hpof
printf "\033&k2G" || exit 2
exec /usr/libexec/lpr/lpfÐñïóäéïñßóôå ôçí äéáäñïìÞ ðñïò ôï ößëôñï åîüäïõ óôçí éêáíüôçôá
of. Äåßôå ôçí åíüôçôá Ößëôñá Åîüäïõ ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò.Åäþ åßíáé Ýíá ðáñÜäåéãìá áñ÷åßïõ
/etc/printcap ãéá ôïí åêôõðùôÞ
teak áðü ôï ðñïçãïýìåíï ðáñÜäåéãìá.
ÅíåñãïðïéÞóáìå ôéò óåëßäåò êåöáëßäáò êáé ðñïóèÝóáìå ôï ðáñáðÜíù
ößëôñï åîüäïõ:#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:\
:vf=/usr/local/libexec/hpvf:\
:of=/usr/local/libexec/hpof:Ôþñá, üôáí ïé ÷ñÞóôåò åêôõðþíïõí åñãáóßåò óôïí
teak, èá ðáßñíïõí êáé ìßá óåëßäá êåöáëßäáò áíÜ
åñãáóßá. Áí ïé ÷ñÞóôåò èÝëïõí íá îïäåýïõí ÷ñüíï øÜ÷íïíôáò ãéá
ôéò åêôõðþóåéò ôïõò, ìðïñïýí íá ðáñåìðïäßóïõí ôéò óåëßäåò êåöáëßäáò
áðïóôÝëëïíôáò ôéò åñãáóßåò ôïõò ìå
lpr . Äåßôå ôçí åíüôçôá
ÅðéëïãÝò Óåëßäùí
Êåöáëßäáò ãéá ðåñéóóüôåñåò åðéëïãÝò ôïõ &man.lpr.1;.Ôï LPD óôÝëíåé ôï ÷áñáêôÞñá
áëëáãÞò óåëßäáò (form feed) áìÝóùò ìåôÜ ôç óåëßäá êåöáëßäáò. Áí
ï åêôõðùôÞò óáò ÷ñçóéìïðïéåß äéáöïñåôéêü ÷áñáêôÞñá Þ áêïëïõèßá
÷áñáêôÞñùí ãéá ôçí áëëáãÞ óåëßäáò, ðñïóäéïñßóôå ôá ìå ôçí
éêáíüôçôá ff óôï áñ÷åßï
/etc/printcap.¸ëåã÷ïò Óåëßäùí Êåöáëßäáò ÌåôÜ ôçí åíåñãïðïßçóç ôùí óåëßäùí êåöáëßäáò, ôï
LPD èá ðáñÜãåé ìßá åðéìÞêç
êåöáëßäá, ìßá ïëüêëçñç óåëßäá ìå ìåãÜëá ãñÜììáôá ðïõ
ðñïóäéïñßæåé ôïí ÷ñÞóôç, ôïí õðïëïãéóôÞ (host), êáé ôçí åñãáóßá.
Åäþ åßíáé Ýíá ðáñÜäåéãìá (ç kelly åêôýðùóå ôçí
åñãáóßá ìå üíïìá outline áðü ôïí õðïëïãéóôÞ
rose): k ll ll
k l l
k l l
k k eeee l l y y
k k e e l l y y
k k eeeeee l l y y
kk k e l l y y
k k e e l l y yy
k k eeee lll lll yyy y
y
y y
yyyy
ll
t l i
t l
oooo u u ttttt l ii n nnn eeee
o o u u t l i nn n e e
o o u u t l i n n eeeeee
o o u u t l i n n e
o o u uu t t l i n n e e
oooo uuu u tt lll iii n n eeee
r rrr oooo ssss eeee
rr r o o s s e e
r o o ss eeeeee
r o o ss e
r o o s s e e
r oooo ssss eeee
Job: outline
Date: Sun Sep 17 11:04:58 1995Ôï LPD ðñïóèÝôåé ìéá åíôïëÞ áëëáãÞò
óåëßäáò (form feed) ìåôÜ áðü áõôü ôï êåßìåíï Ýôóé þóôå ç
åñãáóßá íá îåêéíÞóåé óå íÝá óåëßäá (åêôüò áí Ý÷åôå ðñïóäéïñßóåé ôçí
éêáíüôçôá sf (suppress form feeds) ãéá ôïí
åêôõðùôÞ óôï áñ÷åßï /etc/printcap).Áí ðñïôéìÜôå, ôï LPD ìðïñåß íá
öôéÜîåé ìéá ìéêñüôåñïõ ìÞêïõò êåöáëßäá.
Ðñïóäéïñßóôå sb (short banner) óôï áñ÷åßï
/etc/printcap. Ç óåëßäá êåöáëßäáò èá ìïéÜæåé
óáí áõôÞ:rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995Ôï LPD ôõðþíåé (áðü ðñïåðéëïãÞ)
ðñþôá ôçí óåëßäá êåöáëßäáò, êáé ìåôÜ ôçí åñãáóßá. Ãéá íá
áíôéóôñÝøåôå ôçí óåéñÜ, ÷ñçóéìïðïéÞóôå ôçí éêáíüôçôá
hl (header last) óôï áñ÷åßï
/etc/printcap.ÊáôáìÝôñçóç ìå Óåëßäåò ÊåöáëßäáòÇ ÷ñÞóç ôùí ðñïåãêáôåóôçìÝíùí óåëßäùí êåöáëßäáò ôïõ
LPD ïõóéáóôéêÜ õðï÷ñåþíïõí ôçí ôÞñçóç
ôïõ ðáñáêÜôù êáíüíá üôáí êÜíïõìå êáôáìÝôñçóç ÷ñÞóçò ôïõ åêôõðùôÞ:
Ïé óåëßäåò êåöáëßäáò ðñÝðåé íá äéáôßèåíôáé åëåýèåñá (äß÷ùò
÷ñÝùóç).Ãéáôß;Äéüôé ôï ößëôñï åîüäïõ åßíáé ôï ìïíáäéêü åîùôåñéêü ðñüãñáììá
ðïõ Ý÷åé ôïí Ýëåã÷ï óôçí åêôýðùóç ôçò êåöáëßäáò êáé èá ìðïñïýóå íá
êÜíåé êáôáìÝôñçóç, áëëÜ ùóôüóï äåí ðáñÝ÷åé êáìßá ðëçñïöïñßá ãéá
ôïí ÷ñÞóôç Þ ôïí õðïëïãéóôÞ Þ êÜðïéï Üëëï
áñ÷åßï êáôáìÝôñçóçò, åðïìÝíùò äåí ãíùñßæåé óå ðïéüí íá áðïäþóåé
ôçí ÷ñÞóç ôïõ åêôõðùôÞ. Äåí áñêåß áðëÜ íá ðñïóèÝóåôå ìßá
áêüìç óåëßäá óôçí êáôáìÝôñçóç ôñïðïðïéþíôáò ôï ößëôñï
êåéìÝíïõ Þ ïðïéïäÞðïôå Üëëï ößëôñï ìåôáôñïðÞò (ôï ïðïßï äéáèÝôåé ôéò
ðëçñïöïñßåò ÷ñÞóôç êáé õðïëïãéóôÞ), áðü ôç óôéãìÞ ðïõ ïé ÷ñÞóôåò
Ý÷ïõí ôçí äõíáôüôçôá íá ðáñåìðïäßóïõí ôéò óåëßäåò êåöáëßäáò ìå
lpr . Èá ìðïñïýóáí ðÜëé íá
÷ñåùèïýí ãéá óåëßäåò êåöáëßäáò ðïõ äåí åêôýðùóáí. ÂáóéêÜ, ç
lpr èá åßíáé ç ðñïôéìþìåíç
åðéëïãÞ óå Ýíá ðåñéâÜëëïí ðïõ ïé ÷ñÞóôåò Ý÷ïõí ïéêïëïãéêÞ
óõíåßäçóç, áëëÜ äåí ìðïñåßôå ðñáãìáôéêÜ íá ðáñïôñýíåôå ïðïéïíäÞðïôå
íá ôç ÷ñçóéìïðïéÞóåé.Äåí åßíáé áñêåôü áðëÜ êÜèå ößëôñï óáò íá
äçìéïõñãåß ôç äéêéÜ ôïõ óåëßäá êåöáëßäáò (Ýôóé þóôå íá ìðïñåß íá
÷ñåþíåé ìå áõôü ôïí ôñüðï). Áí ïé ÷ñÞóôåò åðéèõìïýí ôçí åðéëïãÞ
ðáñåìðüäéóçò ôùí óåëßäùí êåöáëßäáò ìå
lpr , èá óõíå÷ßóïõí íá ôéò
ðáñáëáìâÜíïõí - êáé íá ÷ñåþíïíôáé ãéá áõôÝò - áöïý ôï
LPD äåí Ý÷åé äõíáôüôçôá íá
ðåñÜóåé óå ïðïéïäÞðïôå ößëôñï ôçí åðéëïãÞ
.ÅðïìÝíùò, ðïéåò åðéëïãÝò Ý÷åôå;Ìðïñåßôå:Íá áðïäå÷èåßôå ôçí õðüäåéîç ôïõ
LPD êáé íá ðáñÝ÷åôå ôéò óåëßäåò
êåöáëßäáò åëåýèåñá.Íá åãêáôáóôÞóåôå åíáëëáêôéêÝò ëýóåéò áíôß ôïõ
LPD, üðùò ôï
LPRng. Ç åíüôçôá ÅíáëëáêôéêÝò Ëýóåéò ãéá
ôïí ÓôÜíôáñ Spooler äßíåé ðåñéóóüôåñåò ðëçñïöïñßåò
ãéá Üëëåò åöáñìïãÝò ðáñï÷Ýôåõóçò ðïõ ìðïñåßôå íá
÷ñçóéìïðïéÞóåôå áíôß ãéá ôï
LPD.Íá ãñÜøåôå Ýíá Ýîõðíï ößëôñï åîüäïõ.
Õðü êáíïíéêÝò óõíèÞêåò, Ýíá "ößëôñï åîüäïõ" äåí êÜíåé ôßðïôå
ðáñáðÜíù áðü ôçí áñ÷éêïðïßçóç åíüò åêôõðùôÞ Þ ìåñéêÝò áðëÝò
ìåôáôñïðÝò ÷áñáêôÞñùí. Åßíáé êáôÜëëçëï ãéá óåëßäåò êåöáëßäáò
êáé ãéá åñãáóßåò áðëïý êåéìÝíïõ (üôáí äåí õðÜñ÷åé ößëôñï
(åéóüäïõ) êåéìÝíïõ). ÁëëÜ áí õðÜñ÷åé ößëôñï êåéìÝíïõ ãéá
åñãáóßåò áðëïý êåéìÝíïõ, ôüôå ôï
LPD èá åíåñãïðïéåß ôï ößëôñï åîüäïõ
ìüíï ãéá ôéò óåëßäåò êåöáëßäáò. Êáé ôï ößëôñï åîüäïõ ìðïñåß íá
áíáëýåé ôï êåßìåíï ôçò óåëßäáò êåöáëßäáò ðïõ äçìéïõñãåß ôï
LPD ãéá íá ðñïóäéïñßæåé ôïí ÷ñÞóôç
êáé ôïí õðïëïãéóôÞ, þóôå íá ÷ñåþíåé ôéò óåëßäåò êåöáëßäáò.
Ôï ìüíï åðéðëÝïí ðñüâëçìá ìå áõôÞ ôç ìÝèïäï åßíáé ðùò ôï ößëôñï
åîüäïõ åîáêïëïõèåß íá ìç ãíùñßæåé ðïéü áñ÷åßï êáôáìÝôñçóçò íá
÷ñçóéìïðïéÞóåé (äåí ôïõ Ý÷åé äïèåß ôï üíïìá ôïõ áñ÷åßïõ áðü ôçí
éêáíüôçôá af), áëëÜ áí ôï üíïìá ôïõ áñ÷åßïõ
óáò åßíáé ãíùóôü, ìðïñåßôå íá ôï åíóùìáôþóåôå áðåõèåßáò óôïí
êþäéêá ôïõ ößëôñïõ åîüäïõ. Ãéá íá äéåõêïëýíåôå ôçí äéáäéêáóßá
áíÜëõóçò, ÷ñçóéìïðïéÞóôå ôçí éêáíüôçôá sh
(short header) óôï /etc/printcap. ºóùò
ðÜëé üëá áõôÜ íá åßíáé õðåñâïëéêÜ êïðéáóôéêÜ, åíþ åßíáé óßãïõñï
ðùò ïé ÷ñÞóôåò èá åêôéìÞóïõí ôïí ãåííáéüäùñï äéá÷åéñéóôÞ
óõóôÞìáôïò ðïõ åðéôñÝðåé åëåýèåñá ôéò óåëßäåò êåöáëßäáò.Óåëßäåò Êåöáëßäáò óå ÅêôõðùôÝò &postscript;¼ðùò ðåñéãñÜøáìå ðáñáðÜíù, ôï LPD
ìðïñåß íá äçìéïõñãÞóåé ìßá óåëßäá êåöáëßäáò áðëïý êåéìÝíïõ,
êáôÜëëçëç ãéá ðïëëïýò åêôõðùôÝò. Ïé åêôõðùôÝò &postscript;,
öõóéêÜ, äåí ìðïñïýí íá ôõðþóïõí êáôåõèåßáí áðëü êåßìåíï, åðïìÝíùò
áõôÞ ç äõíáôüôçôá ôïõ LPD ãéá ôéò
óåëßäåò êåöáëßäáò åßíáé Ü÷ñçóôç óå áõôÞ ôçí ðåñßðôùóç.¸íáò ðñïöáíÞò ôñüðïò íá ðáñÝ÷ïíôáé óåëßäåò êåöáëßäáò åßíáé íá
äçìéïõñãïýíôáé áðü êÜèå ößëôñï ìåôáôñïðÞò êáé ôï ößëôñï êåéìÝíïõ.
Ôá ößëôñá èá ðñÝðåé íá äÝ÷ïíôáé ùò ðáñáìÝôñïõò ôï üíïìá ôïõ ÷ñÞóôç
êáé ôïõ õðïëïãéóôÞ þóôå íá äçìéïõñãïýí ôçí êáôÜëëçëç óåëßäá
êåöáëßäáò. Ôï ìåéïíÝêôçìá áõôÞò ôçò ìåèüäïõ åßíáé ðùò ïé
÷ñÞóôåò èá åêôõðþíïõí ðÜíôá óåëßäá êåöáëßäáò, áêüìç êé áí
áðïóôÝëëïõí ôçí åñãáóßá ôïõò ìå
lpr .ÅðéôñÝøôå ìáò íá åîåñåõíÞóïõìå áõôÞ ôç ìÝèïäï. Ôï áêüëïõèï
script äÝ÷åôáé ôñåéò ðáñáìÝôñïõò (ôï üíïìá ÷ñÞóôç - login name, ôï
üíïìá ôïõ õðïëïãéóôÞ - host name, êáé ôï üíïìá åñãáóßáò) êáé
äçìéïõñãåß ìßá áðëÞ óåëßäá êåöáëßäáò &postscript;:#!/bin/sh
#
# make-ps-header - make a PostScript header page on stdout
# Installed in /usr/local/libexec/make-ps-header
#
#
# These are PostScript units (72 to the inch). Modify for A4 or
# whatever size paper you are using:
#
page_width=612
page_height=792
border=72
#
# Check arguments
#
if [ $# -ne 3 ]; then
echo "Usage: `basename $0` <user> <host> <job>" 1>&2
exit 1
fi
#
# Save these, mostly for readability in the PostScript, below.
#
user=$1
host=$2
job=$3
date=`date`
#
# Send the PostScript code to stdout.
#
exec cat <<EOF
%!PS
%
% Make sure we do not interfere with user's job that will follow
%
save
%
% Make a thick, unpleasant border around the edge of the paper.
%
$border $border moveto
$page_width $border 2 mul sub 0 rlineto
0 $page_height $border 2 mul sub rlineto
currentscreen 3 -1 roll pop 100 3 1 roll setscreen
$border 2 mul $page_width sub 0 rlineto closepath
0.8 setgray 10 setlinewidth stroke 0 setgray
%
% Display user's login name, nice and large and prominent
%
/Helvetica-Bold findfont 64 scalefont setfont
$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
($user) show
%
% Now show the boring particulars
%
/Helvetica findfont 14 scalefont setfont
/y 200 def
[ (Job:) (Host:) (Date:) ] {
200 y moveto show /y y 18 sub def }
forall
/Helvetica-Bold findfont 14 scalefont setfont
/y 200 def
[ ($job) ($host) ($date) ] {
270 y moveto show /y y 18 sub def
} forall
%
% That is it
%
restore
showpage
EOFÔþñá, êáèÝíá áðü ôá ößëôñá ìåôáôñïðÞò êáé ôï ößëôñï êåéìÝíïõ
ìðïñïýí íá êáëÝóïõí ôï script, ðñþôá ãéá íá äçìéïõñãÞóïõí ôç óåëßäá
êåöáëßäáò, êáé Ýðåéôá ãéá íá åêôõðþóïõí ôçí åñãáóßá ôïõ ÷ñÞóôç.
Áêïëïõèåß ôï ößëôñï ìåôáôñïðÞò DVI ðïõ äåßîáìå íùñßôåñá, åéäéêÜ
äéáìïñöùìÝíï ãéá íá öôéÜîïõìå ìéá óåëßäá êåöáëßäáò:#!/bin/sh
#
# psdf - DVI to PostScript printer filter
# Installed in /usr/local/libexec/psdf
#
# Invoked by lpd when user runs lpr -d
#
orig_args="$@"
fail() {
echo "$@" 1>&2
exit 2
}
while getopts "x:y:n:h:" option; do
case $option in
x|y) ;; # Ignore
n) login=$OPTARG ;;
h) host=$OPTARG ;;
*) echo "LPD started `basename $0` wrong." 1>&2
exit 2
;;
esac
done
[ "$login" ] || fail "No login name"
[ "$host" ] || fail "No host name"
( /usr/local/libexec/make-ps-header $login $host "DVI File"
/usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_argsÐáñáôçñÞóôå ðùò ôï ößëôñï ðñÝðåé íá áíáëýóåé ôçí ëßóôá
ðáñáìÝôñùí ãéá íá ðñïóäéïñßóåé ôï üíïìá ÷ñÞóôç êáé õðïëïãéóôÞ. Ç
ìÝèïäïò áíÜëõóçò åßíáé ðáñüìïéá êáé ãéá ôá õðüëïéðá ößëôñá
ìåôáôñïðÞò. Ôï ößëôñï êåéìÝíïõ ðáßñíåé Ýíá åëáöñþò äéáöïñåôéêü
óåô ðáñáìÝôñùí, (äåßôå ôçí åíüôçôá Ðùò äïõëåýïõí ôá
Ößëôñá).¼ðùò áíáöÝñáìå ðñïçãïýìåíá, ï ðáñáðÜíù ó÷åäéáóìüò, áí êáé
ðñáãìáôéêÜ áðëüò, áðåíåñãïðïéåß ôçí åðéëïãÞ
ðáñåìðüäéóçò óåëßäùí êåöáëßäáò (ôçí åðéëïãÞ
) ôïõ lpr. Áí ïé ÷ñÞóôåò
åðéèõìïýí íá óþóïõí Ýíá äÝíôñï (Þ ëßãá ÷ñÞìáôá, áí ÷ñåþíåôå ôéò
óåëßäåò êåöáëßäáò), äåí èá õðÜñ÷åé ôñüðïò ãéá íá ãßíåé áõôü, áðü
ôç óôéãìÞ ðïõ êÜèå åêôýðùóç ìÝóù ôùí ößëôñùí èá óõíïäåýåôáé êáé áðü
ìéá óåëßäá êåöáëßäáò ãéá êÜèå åñãáóßá.Ãéá íá åðéôñÝøåôå óôïõò ÷ñÞóôåò íá áðåíåñãïðïéïýí ôéò óåëßäåò
êåöáëßäáò áíÜ åñãáóßá, èá ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôï ôÝ÷íáóìá
ðïõ ðáñïõóéÜóáìå óôçí åíüôçôá ÊáôáìÝôñçóç ìå
Óåëßäåò Êåöáëßäáò: äçëáäÞ íá ãñÜøåôå Ýíá ößëôñï åîüäïõ ðïõ
íá áíáëýåé ôçí óåëßäá êåöáëßäáò ðïõ äçìéïõñãåßôáé áðü ôï
LPD êáé íá êáôáóêåõÜæåé ìéá
&postscript; Ýêäïóç. Áí ï ÷ñÞóôçò óôåßëåé ìéá åñãáóßá ìå
lpr , ôüôå ïýôå ôï
LPD, ïýôå ôï ößëôñï åîüäïõ èá öôéÜîïõí
óåëßäá êåöáëßäáò. Óå üëåò ôéò Üëëåò ðåñéðôþóåéò, ôï ößëôñï åîüäïõ
èá äéáâÜæåé ôï êåßìåíï áðü ôï LPD êáé èá
óôÝëíåé ôïí êáôÜëëçëï êþäéêá &postscript; óôïí åêôõðùôÞ þóôå íá
åêôõðþíåôáé ç óåëßäá êåöáëßäáò.Áí Ý÷åôå åêôõðùôÞ &postscript; ìå óåéñéáêÞ óýíäåóç, ìðïñåßôå íá
êÜíåôå ÷ñÞóç ôçò lprps, ç ïðïßá óõíïäåýåôáé áðü
Ýíá ößëôñï åîüäïõ, ôï psof, ôï ïðïßá êÜíåé ôá
ðáñáðÜíù. Óçìåéþóôå ðùò ôï psof äåí ÷ñåþíåé ãéá
ôéò óåëßäåò êåöáëßäáò.Åêôõðþóåéò ìÝóù ÄéêôýïõåêôõðùôÝòäßêôõïåêôõðþóåéò ìÝóù äéêôýïõÔï &os; õðïóôçñßæåé ôéò åêôõðþóåéò ìÝóù äéêôýïõ: ìðïñåß íá óôåßëåé
åñãáóßåò óå áðïìáêñõóìÝíïõò åêôõðùôÝò. Ç Ýííïéá ôçò äéêôõáêÞò
åêôýðùóçò áíáöÝñåôáé ãåíéêÜ óå äýï äéáöïñåôéêÜ ðñÜãìáôá:Ðñüóâáóç óå åêôõðùôÞ óõíäåäåìÝíï óå áðïìáêñõóìÝíï õðïëïãéóôÞ
(host). ÅãêáèéóôÜôå Ýíáí åêôõðùôÞ ìå óõìâáôéêÞ óåéñéáêÞ Þ
ðáñÜëëçëç óýíäåóç óå Ýíá õðïëïãéóôÞ. ¸ðåéôá, ñõèìßæåôå ôï
LPD ãéá íá åíåñãïðïéçèåß ç ðñüóâáóç
óôïí åêôõðùôÞ áðü Üëëïõò õðïëïãéóôÝò ôïõ äéêôýïõ. Ç åíüôçôá
ÅêôõðùôÝò
ÅãêáôåóôçìÝíïé óå ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò åîçãåß ôéò
áðáñáßôçôåò åíÝñãåéåò.Ðñüóâáóç óå åêôõðùôÞ óõíäåäåìÝíï êáôåõèåßáí óôï äßêôõï.
Åêôüò (Þ áíôß) ôçò óõìâáôéêÞò óåéñéáêÞò Þ ðáñÜëëçëçò èýñáò, ï
åêôõðùôÞò ðñÝðåé íá Ý÷åé åðéðñüóèåôá ìéá äéêôõáêÞ äéáóýíäåóç.
¸íáò ôÝôïéïò åêôõðùôÞò äïõëåýåé ùò åîÞò:Ìðïñåß íá êáôáëáâáßíåé ôï ðñùôüêïëëï
LPD êáé íá äçìéïõñãåß ïõñÜ
áíáìïíÞò ãéá ôéò åñãáóßåò ðïõ ðñïÝñ÷ïíôáé áðü áðïìáêñõóìÝíïõò
õðïëïãéóôÝò. Óå áõôÞ ôçí ðåñßðôùóç, åíåñãåß óáí Ýíáò
êáíïíéêüò õðïëïãéóôÞò ðïõ åêôåëåß ôï
LPD. ÁêïëïõèÞóôå ôçí ßäéá
äéáäéêáóßá ìå ôçí åíüôçôá ÅêôõðùôÝò
ÅãêáôåóôçìÝíïé óå ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò ãéá íá
åãêáôáóôÞóåôå áõôüí ôïí åêôõðùôÞ.Ìðïñåß íá õðïóôçñßæåé óýíäåóç äéêôõáêÞò ñïÞò äåäïìÝíùí
(data stream). Óå áõôÞ ôçí ðåñßðôùóç, óõíäÝåôå
ôïí åêôõðùôÞ óå Ýíáí õðïëïãéóôÞ óõíäåäåìÝíï óôï äßêôõï, ï
ïðïßïò èá åßíáé õðåýèõíïò ãéá ôçí ðáñï÷Ýôåõóç ôùí åñãáóéþí
êáé ôçí áðïóôïëÞ ôïõò óôïí åêôõðùôÞ. Ç åíüôçôá ÅêôõðùôÝò Ìå
ÓõíäÝóåéò Äéêôýïõ äßíåé ìåñéêÝò óõìâïõëÝò ãéá ôçí
åãêáôÜóôáóç åêôõðùôþí áõôïý ôïõ ôýðïõ.ÅêôõðùôÝò ÅãêáôåóôçìÝíïé óå ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝòÔï óýóôçìá ðáñï÷Ýôåõóçò LPD Ý÷åé
åíóùìáôùìÝíç õðïóôÞñéîç ãéá ôçí áðïóôïëÞ åñãáóéþí óå Üëëïõò
õðïëïãéóôÝò ðïõ åêôåëïýí ôï LPD (Þ ðïõ
åßíáé óõìâáôïß ìå ôï LPD). Áõôü ôï
÷áñáêôçñéóôéêü óáò åðéôñÝðåé íá åãêáôáóôÞóåôå Ýíáí åêôõðùôÞ óå Ýíá
õðïëïãéóôÞ êáé íá Ý÷åôå ðñüóâáóç óå áõôüí áðü Üëëïõò. Åðßóçò
äïõëåýåé êáé ìå åêôõðùôÝò ðïõ Ý÷ïõí äéêôõáêÝò äéáóõíäÝóåéò ðïõ
êáôáëáâáßíïõí ôï ðñùôüêïëëï LPD.Ãéá íá åíåñãïðïéÞóåôå áõôüí ôïí ôýðï áðïìáêñõóìÝíçò åêôýðùóçò,
åãêáôáóôÞóôå ðñþôá Ýíáí åêôõðùôÞ óå Ýíá õðïëïãéóôÞ, ôïí
õðïëïãéóôÞ åêôýðùóçò (printer host),
÷ñçóéìïðïéþíôáò ôçí áðëÞ åãêáôÜóôáóç åêôõðùôÞ ðïõ ðåñéãñÜöåôáé óôçí
åíüôçôá ÂáóéêÝò Ñõèìßóåéò Åêôõðùôþí.
ÊÜíôå üóåò ðñï÷ùñçìÝíåò ñõèìßóåéò ÷ñåéÜæåóôå üðùò áíáöÝñåôáé óôéò
Ñõèìßóåéò Åêôõðùôþí ãéá
Ðñï÷ùñçìÝíïõò. ÅëÝãîôå ôïí åêôõðùôÞ êáé äåßôå áí äïõëåýåé
ìå ôá ÷áñáêôçñéóôéêÜ ôïõ LPD ðïõ Ý÷åôå
åíåñãïðïéÞóåé. Åðßóçò âåâáéùèåßôå ðùò ï
ôïðéêüò õðïëïãéóôÞò (local host) åßíáé
åîïõóéïäïôçìÝíïò íá ÷ñçóéìïðïéåß ôéò õðçñåóßåò ôïõ
LPD óôïí
áðïìáêñõóìÝíï õðïëïãéóôÞ (remote host)
(äåßôå Ðáñåìðüäéóç
Åñãáóéþí áðü ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò).åêôõðùôÝòäßêôõïäéêôõáêÝò åêôõðþóåéòÅÜí ÷ñçóéìïðïéåßôå åêôõðùôÞ ìå äéêôõáêÞ äéáóýíäåóç ðïõ åßíáé
óõìâáôüò ìå ôï LPD, ôüôå ï
ï õðïëïãéóôÞò åêôýðùóçò (printer host) åßíáé ï
åí ëüãù åêôõðùôÞò, êáé ôï üíïìá ôïõ åêôõðùôÞ
åßíáé ôï üíïìá ðïõ Ý÷åôå ïñßóåé ãéá ôïí åêôõðùôÞ. Äåßôå ôçí
ôåêìçñßùóç ðïõ óõíïäåýåé ôïí åêôõðùôÞ óáò êáé/Þ ôçí êÜñôá äéêôýïõ
ôïõ.Áí ÷ñçóéìïðïéåßôå Hewlett Packard Laserjet ìå üíïìá åêôõðùôÞ
text èá ãßíïíôáé áõôüìáôá ïé ìåôáôñïðÝò áðü
LF óå CRLF, åðïìÝíùò äåí ÷ñåéÜæåôáé íá ôñÝîåôå ôï script
hpif.ÅðïìÝíùò, óôïõò õðüëïéðïõò õðïëïãéóôÝò üðïõ åðéèõìåßôå íá Ý÷åôå
ðñüóâáóç óôïí åêôõðùôÞ, áðëÜ êÜíôå ìéá êáôá÷þñéóç óôï áñ÷åßï
/etc/printcap ìå ôá áêüëïõèá óôïé÷åßá:ÏíïìÜóôå ôçí êáôá÷þñéóç üðùò åðéèõìåßôå: Ãéá äéêÞ óáò
åõêïëßá ðéèáíþò íá èÝëåôå íá ÷ñçóéìïðïéÞóåôå ôï ßäéï üíïìá êáé
ôá ßäéá ðáñùíýìéá ìå áõôÜ ôïõ õðïëïãéóôÞ åêôýðùóçò.ÁöÞóôå ôçí éêáíüôçôá lp êåíÞ, ãéá ôçí
áêñßâåéá (:lp=:).ÄçìéïõñãÞóôå Ýíá êáôÜëïãï spooling êáé ðñïóäéïñßóôå ôçí
ôïðïèåóßá ôïõ ìå ôçí éêáíüôçôá sd. Ôï
LPD èá áðïèçêåýåé åäþ ôéò åñãáóßåò
ðñéí ôçí áðïóôïëÞ ôïõò óôïí õðïëïãéóôÞ åêôýðùóçò.ÔïðïèåôÞóôå ôï üíïìá ôïõ õðïëïãéóôÞ åêôýðùóçò óôçí éêáíüôçôá
rm.ÔïðïèåôÞóôå ôï üíïìá ôïõ åêôõðùôÞ óôçí éêáíüôçôá
rp, óôïí
õðïëïãéóôÞ åêôýðùóçò.Áõôü åßíáé üëï. Äåí ÷ñåéÜæåôáé íá äçìéïõñãÞóåôå ëßóôá ößëôñùí
ìåôáôñïðÞò, äéáóôÜóåéò óåëßäáò, Þ ïôéäÞðïôå Üëëï óôï
áñ÷åßï/etc/printcap.Åäþ åßíáé Ýíá ðáñÜäåéãìá. Ï õðïëïãéóôÞò rose
Ý÷åé äýï åêôõðùôÝò, ôïí bamboo êáé ôïí
rattan. ÈÝëïõìå íá åíåñãïðïéÞóïõìå ôéò
åêôõðþóåéò óå áõôïýò ôïõò åêôõðùôÝò ãéá ôïõò ÷ñÞóôåò ôïõ
áðïìáêñõóìÝíïõ õðïëïãéóôÞ orchid. Åäþ åßíáé ôï
áñ÷åßï /etc/printcap ôïõ õðïëïãéóôÞ
orchid (äåßôå ðéï ðßóù óôçí åíüôçôá Åíåñãïðïßçóç
Óåëßäùí Êåöáëßäáò). ¹äç Ý÷åé ìéá êáôá÷þñéóç ãéá ôïí
åêôõðùôÞ teak. Åäþ ðñïóèÝóáìå ôéò áðáñáßôçôåò
êáôá÷ùñßóåéò ãéá ôïõò äýï åêôõðùôÝò ôïõ õðïëïãéóôÞ
rose:#
# /etc/printcap for host orchid - added (remote) printers on rose
#
#
# teak is local; it is connected directly to orchid:
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:
#
# rattan is connected to rose; send jobs for rattan to rose:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
#
# bamboo is connected to rose as well:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:Ôï ìüíï ðïõ áðïìÝíåé åßíáé íá äçìéïõñãÞóïõìå ôïõò êáôáëüãïõò
spooling óôïí êüìâï orchid:&prompt.root; mkdir /var/spool/lpd/rattan/var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan/var/spool/lpd/bamboo
&prompt.root; chown daemon:daemon /var/spool/lpd/rattan/var/spool/lpd/bambooÔþñá, ïé ÷ñÞóôåò ôïõ orchid ìðïñïýí íá
åêôõðþíïõí óôïí rattan êáé óôïí
bamboo. Áí, ãéá ðáñÜäåéãìá, Ýíáò ÷ñÞóôçò ôïõ
orchid ðëçêôñïëïãÞóåé:
&prompt.user; lpr bamboo sushi-review.dvi
ôï óýóôçìá LPD óôïí
orchid èá áíôéãñÜøåé ôçí åñãáóßá óôïí êáôÜëïãï
spooling
/var/spool/lpd/bamboo êáé èá
óçìåéþóåé ðùò ðñüêåéôáé ãéá åñãáóßá DVI. Ìüëéò ï õðïëïãéóôÞò
rose Ý÷åé äéáèÝóéìï ÷þñï óôïí êáôÜëïãï spooling ôïõ
bamboo, ôá äýï LPDs
èá ìåôáöÝñïõí ôï áñ÷åßï óôïí rose. Ôï áñ÷åßï èá
ìðåé óå ïõñÜ áíáìïíÞò óôïí õðïëïãéóôÞ rose Ýùò
üôïõ åêôõðùèåß. Èá ìåôáôñáðåß áðü DVI óå &postscript; (áöïý ï
bamboo åßíáé åêôõðùôÞò &postscript;) óôïí
õðïëïãéóôÞ rose.ÅêôõðùôÝò ìå ÓõíäÝóåéò ÄéêôýïõÓõ÷íÜ, üôáí áãïñÜæåôå êÜñôá äéêôýïõ ãéá åêôõðùôÞ, Ý÷åôå ôç
äõíáôüôçôá åðéëïãÞò äýï åêäüóåùí: ç ìßá åßíáé ðñïóïìïßùóç ôïõ
spooler (ç ðéï áêñéâÞ Ýêäïóç) åíþ ç Üëëç áðëÜ óáò åðéôñÝðåé íá
óôÝëíåôå äåäïìÝíá ìÝóù áõôÞò óáí íá ÷ñçóéìïðïéïýóáôå ìéá óåéñéáêÞ
Þ ðáñÜëëçëç èýñá (ç öôçíÞ Ýêäïóç). ÁõôÞ ç åíüôçôá ðåñéãñÜöåé ðùò íá
÷ñçóéìïðïéåßôå ôçí öôçíÞ Ýêäïóç. Ãéá ôçí ðéï áêñéâÞ Ýêäïóç ìðïñåßôå
íá âñåßôå ðåñéóóüôåñåò ðëçñïöïñßåò óôçí ðñïçãïýìåíç åíüôçôá ÅêôõðùôÝò ÅãêáôåóôçìÝíïé
óå ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò.Ç ìïñöÞ ôïõ áñ÷åßïõ /etc/printcap óáò
åðéôñÝðåé íá ïñßóåôå ôç äéáóýíäåóç - óåéñéáêÞ Þ ðáñÜëëçëç - ðïõ èá
÷ñçóéìïðïéÞóåôå, êáé (áí ÷ñçóéìïðïéåßôå óåéñéáêÞ äéáóýíäåóç) ôïí
ñõèìü baud, ðéèáíïýò åëÝã÷ïõò ñïÞò, êáèõóôåñÞóåéò ãéá tabs,
ìåôáôñïðÝò ãéá ÷áñáêôÞñåò íÝáò ãñáììÞò, êáé Üëëá. ÁëëÜ äåí õðÜñ÷åé
ôñüðïò íá ïñßóåôå ìéá óýíäåóç óå åêôõðùôÞ ðïõ áêïýåé óå èýñá TCP/IP
Þ Üëëï ôýðï äéêôýïõ.Ãéá íá óôåßëåôå äåäïìÝíá óå Ýíá äéêôõáêü åêôõðùôÞ, ÷ñåéÜæåôáé
íá áíáðôýîåôå ðñïãñÜììáôá åðéêïéíùíßáò ðïõ íá êáëïýíôáé áðü ößëôñá
êåéìÝíïõ êáé ößëôñá ìåôáôñïðÞò. Åäþ Ý÷ïõìå Ýíá ôÝôïéï ðáñÜäåéãìá:
ôï script netprint ðáßñíåé üëá ôá äåäïìÝíá áðü
ôï standard input êáé ôá óôÝëíåé óå Ýíáí åêôõðùôÞ óõíäåäåìÝíï óôï
äßêôõï. Ïñßæïõìå óôï netprint ôï üíïìá
ôïõ åêôõðùôÞ ùò ðñþôç ðáñÜìåôñï, êáé ôïí áñéèìü èýñáò óôçí ïðïßá
óõíäÝåôáé ùò äåýôåñç. Óçìåéþóôå ðùò áõôüò ï ôñüðïò õðïóôçñßæåé
ìüíï åðéêïéíùíßá ìéáò êáôåýèõíóçò (áðü ôï &os; óôïí åêôõðùôÞ).
Ðïëëïß äéêôõáêïß åêôõðùôÝò õðïóôçñßæïõí áìößäñïìç åðéêïéíùíßá, êáé
åßíáé ðïëý ðéèáíü íá åðéèõìåßôå íá åêìåôáëëåõôåßôå ôá ðñïôåñÞìáôá
ôïõò (ãéá íá åëÝã÷åôå ôçí êáôÜóôáóç ôïõ åêôõðùôÞ, ãéá êáôáìÝôñçóç
åêôõðþóåùí, êëð.).#!/usr/bin/perl
#
# netprint - Text filter for printer attached to network
# Installed in /usr/local/libexec/netprint
#
$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";
$printer_host = $ARGV[0];
$printer_port = $ARGV[1];
require 'sys/socket.ph';
($ignore, $ignore, $protocol) = getprotobyname('tcp');
($ignore, $ignore, $ignore, $ignore, $address)
= gethostbyname($printer_host);
$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);
socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
|| die "Can't create TCP/IP stream socket: $!";
connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
while (<STDIN>) { print PRINTER; }
exit 0;Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå áõôü ôï script óå äéÜöïñá ößëôñá.
Áò õðïèÝóïõìå ðùò Ý÷ïõìå Ýíáí åêôõðùôÞ ãñáììÞò Diablo 750-N
óõíäåäåìÝíï óôï äßêôõï. Ï åêôõðùôÞò äÝ÷åôáé äåäïìÝíá ðñïò åêôýðùóç
óôçí èýñá 5100. Ôï üíïìá ôïõ åêôõðùôÞ óôï äßêôõï åßíáé
scrivener. Åäþ åßíáé ôï ößëôñï êåéìÝíïõ ãéá ôïí
åêôõðùôÞ:#!/bin/sh
#
# diablo-if-net - Text filter for Diablo printer `scrivener' listening
# on port 5100. Installed in /usr/local/libexec/diablo-if-net
#
exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100¸ëåã÷ïò Ðñüóâáóçò êáé Ðåñéïñéóìïß óôç ×ñÞóç ôùí ÅêôõðùôþíåêôõðùôÝòÝëåã÷ïò ðñüóâáóçòÁõôÞ ç åíüôçôá äßíåé ðëçñïöïñßåò ãéá ôïí Ýëåã÷ï ðñüóâáóçò êáé ôïí
ðåñéïñéóìü ÷ñÞóçò ôùí åêôõðùôþí. Ôï óýóôçìá
LPD óáò åðéôñÝðåé íá åëÝã÷åôå ðïéüò ìðïñåß
íá Ý÷åé ðñüóâáóç óå êÜèå åêôõðùôÞ, ôüóï ôïðéêÜ üóï êáé áðïìáêñõóìÝíá,
êáé åðßóçò áí ìðïñïýí ïé ÷ñÞóôåò íá åêôõðþíïõí ðïëëáðëÜ áíôßãñáöá,
ðüóï ìåãÜëåò ìðïñïýí íá åßíáé ïé åñãáóßåò ôïõò, êáé ðüóï ìåãÜëåò
ìðïñïýí íá ãßíïõí ïé ïõñÝò áíáìïíÞò (print queues).Ðåñéïñéóìüò Åêôýðùóçò Ðïëëáðëþí ÁíôéãñÜöùíÔï óýóôçìá LPD äéåõêïëýíåé ôïõò
÷ñÞóôåò íá åêôõðþóïõí ðïëëáðëÜ áíôßãñáöá åíüò áñ÷åßïõ. Ïé ÷ñÞóôåò
ìðïñïýí íá åêôõðþíïõí åñãáóßåò ìå
lpr (ãéá
ðáñÜäåéãìá) êáé íá ðáßñíïõí ðÝíôå áíôßãñáöá êÜèå áñ÷åßïõ ôçò
åñãáóßáò åêôýðùóçò. Ôï áí áõôü åßíáé êáëü, åîáñôÜôáé áðü
åóÜò.Áí ðéóôåýåôå ðùò ôá ðïëëáðëÜ áíôßãñáöá äçìéïõñãïýí Üóêïðç
êáôáðüíçóç ôùí åêôõðùôþí óáò, ìðïñåßôå íá áðåíåñãïðïéÞóåôå
ôçí åðéëïãÞ óôï &man.lpr.1; ðñïóèÝôïíôáò ôçí
éêáíüôçôá sc óôï áñ÷åßï
/etc/printcap. ¼ôáí ïé ÷ñÞóôåò áðïóôÝëëïõí
åñãáóßåò ìå ôçí åðéëïãÞ , èá âëÝðïõí:lpr: multiple copies are not allowedÓçìåéþóôå ðùò áí Ý÷åôå ñõèìßóåé ðñüóâáóç óå Ýíáí åêôõðùôÞ
áðïìáêñõóìÝíá (äåßôå ôçí åíüôçôá ÅêôõðùôÝò ÅãêáôåóôçìÝíïé óå
ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò), èá ÷ñåéáóôåß íá ðñïóèÝóåôå
ôçí éêáíüôçôá sc óå üëá ôá áðïìáêñõóìÝíá áñ÷åßá
/etc/printcap, äéáöïñåôéêÜ ïé ÷ñÞóôåò èá
Ý÷ïõí áêüìç ôçí äõíáôüôçôá íá áðïóôÝëëïõí åñãáóßåò ðïëëáðëþí
áíôéãñÜöùí ÷ñçóéìïðïéþíôáò äéáöïñåôéêü êüìâï.Åäþ åßíáé Ýíá ðáñÜäåéãìá. Áõôü åßíáé ôï áñ÷åßï
/etc/printcap ãéá ôïí êüìâï
rose. Ï åêôõðùôÞò rattan
åßíáé äõíáôü ìç÷Üíçìá êáé åðéôñÝðåé ôçí åêôýðùóç ðïëëáðëþí
áíôéãñÜöùí, áëëÜ ï åêôõðùôÞò laser bamboo åßíáé
ðéï åõáßóèçôï, åðïìÝíùò èá áðåíåñãïðïéÞóïõìå ôç äõíáôüôçôá
ðïëëáðëþí áíôéãñÜöùí ðñïóèÝôïíôáò ôçí éêáíüôçôá
sc:#
# /etc/printcap for host rose - restrict multiple copies on bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Ôþñá, èá ÷ñåéáóôåß íá ðñïóèÝóïõìå åðßóçò ôçí éêáíüôçôá
sc óôï áñ÷åßï /etc/printcap
ôïõ êüìâïõ orchid (êáé åíþ âñéóêüìáóôå óå áõôü,
åðéôñÝøôå ìáò íá áðåíåñãïðïéÞóïõìå ôá ðïëëáðëÜ áíôßãñáöá ãéá ôïí
åêôõðùôÞ teak):#
# /etc/printcap for host orchid - no multiple copies for local
# printer teak or remote printer bamboo
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:×ñçóéìïðïéþíôáò ôçí éêáíüôçôá sc,
ðñïëáìâÜíïõìå ôçí ÷ñÞóç ôùí åíôïëþí
lpr ,
áëëÜ äåí Ý÷ïõìå áêüìç ôçí äõíáôüôçôá íá ðáñåìðïäßóïõìå ôïõò ÷ñÞóôåò
íá ôñÝîïõí ôçí åíôïëÞ &man.lpr.1; ðïëëÝò öïñÝò, Þ íá áðïóôåßëïõí
ôï ßäéï áñ÷åßï ðïëëÝò öïñÝò óå ìßá ìïíáäéêÞ åñãáóßá, üðùò
åäþ:&prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.signÕðÜñ÷ïõí ðïëëïß ôñüðïé ðñüëçøçò áõôþí ôùí åíåñãåéþí
(óõìðåñéëáìâÜíïíôáò êáé ôçí ðåñßðôùóç íá ôï áãíïÞóåôå) ðïõ åßóôå
åëåýèåñïé íá åîåñåõíÞóåôå.Ðåñéïñßæïíôáò ôçí Ðñüóâáóç óå ÅêôõðùôÝòÌðïñåßôå íá åëÝã÷åôå ðïéüò ìðïñåß íá åêôõðþíåé óå ðïéüí
åêôõðùôÞ ÷ñçóéìïðïéþíôáò ôïõò ìç÷áíéóìïýò ïìÜäùí (groups) ôïõ &unix;
êáé ôçí éêáíüôçôá rg óôï
/etc/printcap. ÁðëÜ ôïðïèåôÞóôå ôïõò ÷ñÞóôåò
ðïõ èÝëåôå íá Ý÷ïõí ðñüóâáóç óå êÜðïéïí åêôõðùôÞ óå ìéá
óõãêåêñéìÝíç ïìÜäá (÷ñçóôþí), êáé äçëþóôå áõôÞ ôçí ïìÜäá óôçí
éêáíüôçôá rg.¼ëïé ïé ÷ñÞóôåò ðïõ äåí áíÞêïõí óôçí ïìÜäá (óõìðåñéëáìâáíïìÝíïõ
êáé ôïõ root) èá äÝ÷ïíôáé ôï áêüëïõèï ìÞíõìá:
lpr: Not a member of the restricted group
üôáí ðñïóðáèïýí íá åêôõðþóïõí óôïí åëåã÷üìåíï åêôõðùôÞ.¼ðùò êáé ìå ôçí éêáíüôçôá sc
(ðåñéïñéóìïý ðïëëáðëþí áíôéãñÜöùí), èá ÷ñåéáóôåß íá ðñïóäéïñßóåôå
ôçí rg óôïõò áðïìáêñõóìÝíïõò êüìâïõò ðïõ èá
Ý÷ïõí ðñüóâáóç óôïõò åêôõðùôÝò óáò, áí íïìßæåôå ðùò áõôü åßíáé
óùóôü (äåßôå ôçí åíüôçôá ÅêôõðùôÝò ÅãêáôåóôçìÝíïé
óå ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò).Ãéá ðáñÜäåéãìá, èá áöÞóïõìå ãéá üëïõò åëåýèåñç ôçí ðñüóâáóç
óôïí åêôõðùôÞ rattan, áëëÜ ìüíï ïé ÷ñÞóôåò ôçò
ïìÜäáò artists èá ìðïñïýí íá ÷ñçóéìïðïéÞóïõí ôïí
bamboo. Åäþ åßíáé ôï ãíùóôü ìáò
/etc/printcap ãéá ôïí êüìâï
rose:#
# /etc/printcap for host rose - restricted group for bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:ÅðéôñÝøôå ìáò íá ìçí áëëÜîïõìå ôï áñ÷åßï
/etc/printcap áðü ôï Üëëï ðáñÜäåéãìá
(ãéá ôïí õðïëïãéóôÞ orchid). ÖõóéêÜ, ïðïéïóäÞðïôå
÷ñÞóôçò ôïõ orchid ìðïñåß íá åêôõðþóåé óôïí
bamboo. ºóùò üìùò íá åðéôñÝðïõìå ìüíïí óå
óõãêåêñéìÝíïõò ÷ñÞóôåò ôçí ðñüóâáóç óôïí õðïëïãéóôÞ
orchid, êáé èÝëïõìå áõôïß ïé ÷ñÞóôåò íá Ý÷ïõí
ðñüóâáóç óôïí åêôõðùôÞ. ¹ ßóùò ðÜëé, êáé ü÷é.ÅðéôñÝðåôáé ìüíï ìéá ðåñéïñéóìÝíç ïìÜäá áíÜ åêôõðùôÞ.¸ëåã÷ïò ÌåãÝèïõò ôùí ÁðåóôáëìÝíùí Åñãáóéþíåñãáóßåò åêôýðùóçòÁí ðïëëïß ÷ñÞóôåò Ý÷ïõí ðñüóâáóç óôïõò åêôõðùôÝò óáò, ðéèáíþò
íá ÷ñåéÜæåôáé íá èÝóåôå Ýíá áíþôáôï üñéï óôï åðéôñåðüìåíï ìÝãåèïò
áñ÷åßùí ðïõ ìðïñïýí íá áðïóôåßëïõí ïé ÷ñÞóôåò ãéá åêôýðùóç. Áêüìá
êáé áí õðÜñ÷åé áñêåôüò ÷þñïò óôï óýóôçìá áñ÷åßùí ðïõ öéëïîåíåß ôïõò
êáôáëüãïõò spool, èá ðñÝðåé ùóôüóï íá âåâáéùèåßôå üôé åðáñêåß ãéá
ôéò åñãáóßåò üëùí ôùí ÷ñçóôþí.åñãáóßåò åêôýðùóçòÝëåã÷ïòÔï LPD óáò åðéôñÝðåé íá
ïñéïèåôÞóåôå ôï ìÝãéóôï áñéèìü bytes ðïõ ðåñéÝ÷åé ìéá åñãáóßá, ìå
ôçí éêáíüôçôá mx. Ç ìïíÜäá ìÝôñçóçò åßíáé óå
BUFSIZ blocks, ôá ïðïßá åßíáé 1024 bytes. Áí
èÝóåôå ìçäÝí óå áõôÞ ôçí éêáíüôçôá, äåí èá õðÜñ÷ïõí üñéá óôï
ìÝãåèïò ôùí áñ÷åßùí. Ùóôüóï, áí äåí Ý÷åé ïñéóôåß ç éêáíüôçôá
mx, ôüôå èá ÷ñçóéìïðïéåßôáé ç ðñïåðéëåãìÝíç ôéìÞ
ôùí 1000 blocks.Ôï üñéï åöáñìüæåôáé óôá áñ÷åßá ìéáò
åñãáóßáò, êáé ü÷é óôï óõíïëéêü ìÝãåèïò ôçò
åñãáóßáò.Ôï LPD äåí èá áðïññßøåé Ýíá áñ÷åßï
ðïõ îåðåñíÜ ôï üñéï ìåãÝèïõò ðïõ Ý÷åôå èÝóåé. ÁíôéèÝôùò, èá ôï
ôïðïèåôÞóåé óôçí ïõñÜ áíáìïíÞò ìå ìÝãåèïò ßóï ìå ôï ìÝãéóôï
åðéôñåðôü, ôï ïðïßï êáé èá åêôõðþóåé ôåëéêÜ. Ôï õðüëïéðï áñ÷åßï
áðïññßðôåôáé. Áí áõôüò åßíáé óùóôüò Þ ëáíèáóìÝíïò ôñüðïò
áíôéìåôþðéóçò ãéá ôçí õðÝñâáóç ôïõ ïñßïõ, åßíáé èÝìá ðñïò
óõæÞôçóç.Áò ïñéïèåôÞóïõìå óôï ðáñÜäåéãìá ìáò ôïõò åêôõðùôÝò
rattan êáé bamboo. ÅðåéäÞ
ôá áñ÷åßá &postscript; ôùí artists ôåßíïõí
ðñïò ìåãÜëá ìåãÝèç, èá èÝóïõìå Ýíá üñéï ðÝíôå megabytes. Äåí èá
èÝóïõìå üñéá ãéá ôïí åêôõðùôÞ ãñáììÞò áðëïý êåéìÝíïõ:#
# /etc/printcap for host rose
#
#
# No limit on job size:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:mx#0:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
#
# Limit of five megabytes:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Êáé ðÜëé, ôá üñéá åöáñìüæïíôáé ìüíï ãéá ôïõò ôïðéêïýò ÷ñÞóôåò.
Áí Ý÷åôå åíåñãïðïéÞóåé áðïìáêñõóìÝíç ðñüóâáóç ãéá ôïõò åêôõðùôÝò
óáò, ôá üñéá áõôÜ äåí éó÷ýïõí ãéá ôïõò áðïìáêñõóìÝíïõò ÷ñÞóôåò. Èá
÷ñåéáóôåß íá ðñïóäéïñßóåôå ìå ôçí éêáíüôçôá mx
êáé ôá áðïìáêñõóìÝíá áñ÷åßá /etc/printcap.
Äåßôå ôçí åíüôçôá ÅêôõðùôÝò ÅãêáôåóôçìÝíïé óå
ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò ãéá ðåñéóóüôåñåò ðëçñïöïñßåò
ó÷åôéêÜ ìå ôéò åêôõðþóåéò áðü áðïìáêñõóìÝíïõò õðïëïãéóôÝò.ÕðÜñ÷åé êáé Üëëïò åîåéäéêåõìÝíïò ôñüðïò ðåñéïñéóìïý ôïõ ìåãÝèïõò
åñãáóéþí ãéá áðïìáêñõóìÝíïõò åêôõðùôÝò. Äåßôå ôçí åíüôçôá Ðåñéïñéóìüò
Åñãáóéþí áðü ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝò.Ðåñéïñéóìüò Åñãáóéþí áðü ÁðïìáêñõóìÝíïõò ÕðïëïãéóôÝòÔï óýóôçìá ðáñï÷Ýôåõóçò LPD ðáñÝ÷åé
äéÜöïñïõò ôñüðïõò ðåñéïñéóìïý ôùí åñãáóéþí áðü áðïìáêñõóìÝíïõò
õðïëïãéóôÝò:Ðáñåìðüäéóç õðïëïãéóôþíÌðïñåßôå íá åëÝã÷åôå áðü ðïéïõò áðïìáêñõóìÝíïõò
õðïëïãéóôÝò èá äÝ÷åôáé áéôÞóåéò åêôýðùóçò ôï ôïðéêü
LPD, ÷ñçóéìïðïéþíôáò ôá áñ÷åßá
/etc/hosts.equiv êáé
/etc/hosts.lpd. Ôï
LPD åëÝã÷åé íá äåé áí ç åéóåñ÷üìåíç
áßôçóç ðñïÝñ÷åôáé áðü Ýíáí õðïëïãéóôÞ ðïõ áíáöÝñåôáé óå êÜðïéï
áðü ôá äýï áñ÷åßá. Áí ü÷é, ôï LPD
áðïññßðôåé ôçí áßôçóç.Ç ìïñöÞ áõôþí ôùí áñ÷åßùí åßíáé áðëÞ: Ýíá üíïìá õðïëïãéóôÞ
áíÜ ãñáììÞ. ÐáñáôçñÞóôå ðùò ôï áñ÷åßï
/etc/hosts.equiv ÷ñçóéìïðïéåßôáé êáé áðü
ôï ðñùôüêïëëï &man.ruserok.3;, êáé åðçñåÜæåé ðñïãñÜììáôá üðùò
ôï &man.rsh.1; êáé ôï &man.rcp.1;, åðïìÝíùò íá åßóôå
ðñïóåêôéêïß.Ãéá ðáñÜäåéãìá, åäþ åßíáé ôï áñ÷åßï
/etc/hosts.lpd óôïí õðïëïãéóôÞ
rose:orchid
violet
madrigal.fishbaum.deÁõôü óçìáßíåé ðùò ï rose äÝ÷åôáé
áéôÞóåéò áðü ôïõò õðïëïãéóôÝò orchid,
violet, êáé
madrigal.fishbaum.de. Áí
êÜðïéïò Üëëïò õðïëïãéóôÞò ðñïóðáèÞóåé íá áðïêôÞóåé ðñüóâáóç
óôï LPD ôïõ rose,
ç åñãáóßá èá áðïññéöèåß.Ðåñéïñéóìïß óôï ÌÝãåèïòÌðïñåßôå íá åëÝã÷åôå ðüóïò åëåýèåñïò ÷þñïò ðñÝðåé íá
áðïìÝíåé óôï óýóôçìá áñ÷åßùí üðïõ âñßóêåôáé ï êáôÜëïãïò
spool. ÄçìéïõñãÞóôå Ýíá áñ÷åßï ìå üíïìá
minfree óôïí êáôÜëïãï spool ãéá ôïí
ôïðéêü åêôõðùôÞ. ÅéóÜãåôå óå áõôü ôï áñ÷åßï Ýíáí áñéèìü ðïõ
áíôéðñïóùðåýåé ðüóá blocks äßóêïõ (512 bytes) åëåýèåñïõ ÷þñïõ
ðñÝðåé íá õðÜñ÷ïõí ãéá íá åßíáé äåêôÞ ìéá áðïìáêñõóìÝíç
åñãáóßá.Áõôü óáò åðéôñÝðåé íá åßóôå âÝâáéïé ðùò ïé áðïìáêñõóìÝíïé
÷ñÞóôåò äåí èá ãåìßóïõí ôï óýóôçìá áñ÷åßùí óáò. Ìðïñåßôå
åðßóçò íá ôï ÷ñçóéìïðïéÞóåôå ãéá íá äþóåôå ìåñéêÞ
ðñïôåñáéüôçôá óôïõò ôïðéêïýò ÷ñÞóôåò: ïé ôïðéêïß ÷ñÞóôåò èá
ìðïñïýí íá óôÝëíïõí åñãáóßåò óôçí ïõñÜ áíáìïíÞò áêüìç êáé
üôáí ï åëåýèåñïò ÷þñïò ôïõ äßóêïõ Ý÷åé ðÝóåé êÜôù áðü ôïí
áñéèìü ðïõ áíáöÝñåôáé óôï áñ÷åßï
minfree.Ãéá ðáñÜäåéãìá, áò ðñïóèÝóïõìå Ýíá áñ÷åßï
minfree ãéá ôïí åêôõðùôÞ
bamboo. ÅîåôÜæïõìå ôï
/etc/printcap ãéá íá âñïýìå ôïí êáôÜëïãï
spool ãéá áõôüí ôïí åêôõðùôÞ. Åäþ åßíáé ç êáôá÷þñéóç ãéá ôïí
bamboo:bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Ï êáôÜëïãïò spool êáèïñßæåôáé óôçí éêáíüôçôá
sd. Èá èÝóïõìå ôñßá megabytes (éóïäõíáìåß
ìå 6144 disk blocks) ùò ôï ìÝãåèïò ôïõ åëåýèåñïõ ÷þñïõ ðïõ
ðñÝðåé íá õðÜñ÷åé óôï óýóôçìá áñ÷åßùí, þóôå ôï
LPD íá äÝ÷åôáé áðïìáêñõóìÝíåò
åñãáóßåò:&prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfreeÐåñéïñéóìïß ÷ñçóôþíÌðïñåßôå íá åëÝã÷åôå ðïéüò áðïìáêñõóìÝíïò ÷ñÞóôçò ìðïñåß
íá åêôõðþíåé óôïõò ôïðéêïýò åêôõðùôÝò ïñßæïíôáò ôçí éêáíüôçôá
rs óôï /etc/printcap.
¼ôáí åìöáíßæåôáé ç rs óå ìéá êáôá÷þñéóç
êÜðïéïõ ôïðéêÜ óõíäåäåìÝíïõ åêôõðùôÞ, ôï
LPD èá äå÷èåß åñãáóßåò áðü
áðïìáêñõóìÝíïõò õðïëïãéóôÝò áí ï ÷ñÞóôçò
ðïõ áðïóôÝëëåé ôçí åñãáóßá Ý÷åé ëïãáñéáóìü óôïí ôïðéêü
õðïëïãéóôÞ êáé ìå ôï ßäéï üíïìá ÷ñÞóôç. ÄéáöïñåôéêÜ, ôï
LPD èá áðïññßøåé ôçí
åñãáóßá.ÁõôÞ ç éêáíüôçôá åßíáé éäéáßôåñá ÷ñÞóéìç óå ðåñéâÜëëïíôá
üðïõ õðÜñ÷ïõí (ãéá ðáñÜäåéãìá) äéáöïñåôéêÜ åðé÷åéñçóéáêÜ
ôìÞìáôá ðïõ ìïéñÜæïíôáé ôï äßêôõï, êáé êÜðïéïé ÷ñÞóôåò
ðñÝðåé íá õðåñâáßíïõí ôá óýíïñá ôïõ ôìÞìáôïò. Äçìéïõñãþíôáò
ëïãáñéáóìïýò óôá óõóôÞìáôá óáò, èá ìðïñïýí íá ÷ñçóéìïðïéïýí
ôïõò åêôõðùôÝò óáò áðü ôï äéêü ôïõò ôìÞìá ôçò åðé÷åßñçóçò.
Áí åðéèõìåßôå íá ôïõò åðéôñÝðåôå íá ÷ñçóéìïðïéïýí
ìüíï ôïõò åêôõðùôÝò êáé ü÷é ôá
ìç÷áíÞìáôá óáò, ôüôå ìðïñåßôå íá äçìéïõñãÞóåôå
ëïãáñéáóìïýò token, äß÷ùò ðñïóùðéêïýò
êáôáëüãïõò êáé ìå êÝëõöïò ðïõ äåí ìðïñåß íá ÷ñçóéìïðïéçèåß,
üðùò ôï /usr/bin/false.ÊáôáìÝôñçóç ×ñÞóçò ÅêôõðùôþíêáôáìÝôñçóçåêôõðùôÞòÁðïöáóßóáôå üôé ÷ñåéÜæåôáé íá ÷ñåþíåôå ãéá ôéò åêôõðþóåéò óáò.
Êáé ãéáôß ü÷é; Ôï ÷áñôß êáé ôï ìåëÜíé êïóôßæïõí ÷ñÞìáôá. Êáé
åðéðëÝïí õðÜñ÷åé êüóôïò óõíôÞñçóçò — ïé åêôõðùôÝò áðïôåëïýíôáé
áðü êéíçôÜ ìÝñç êáé Ý÷ïõí ôçí ôÜóç íá ÷áëÜíå. ¸÷åôå åîåôÜóåé ôïõò
åêôõðùôÝò óáò, ôïí ôñüðï ðïõ ÷ñçóéìïðïéïýíôáé, êáé ôï êüóôïò
óõíôÞñçóçò êáé Ý÷åôå õðïëïãßóåé ìéá ÷ñÝùóç áíÜ óåëßäá (Þ áíÜ ìÝôñï,
áíÜ ðüäé, Þ Üëëç ìïíÜäá ìÝôñçóçò). Ôï èÝìá åßíáé ôþñá ðùò ìðïñåßôå
ðñáãìáôéêÜ íá îåêéíÞóåôå íá êáôáìåôñÜôå ôéò åêôõðþóåéò óáò.Ôá Üó÷çìá íÝá åßíáé ðùò ôï óýóôçìá ðáñï÷Ýôåõóçò ôïõ
LPD äåí ðáñÝ÷åé ðïëý âïÞèåéá óå áõôüí ôïí
ôïìÝá. Ç êáôáìÝôñçóç åîáñôÜôáé óå ìåãÜëï âáèìü áðü ôïí ôýðï ôïõ
åêôõðùôÞ ðïõ ÷ñçóéìïðïéåßôå, ôïõò ôýðïõò áñ÷åßùí ðïõ åêôõðþíåôå, êáé
ôéò äéêÝò óáò áðáéôÞóåéò ãéá ôçí ÷ñÝùóç ôùí
åêôõðþóåùí.Ãéá ôçí êáôáìÝôñçóç, èá ðñÝðåé íá ìåôáôñÝøåôå ôï ößëôñï êåéìÝíïõ
(ãéá ôç ÷ñÝùóç åñãáóéþí áðëïý êåéìÝíïõ) ôïõ åêôõðùôÞ êáé ôá ößëôñá
ìåôáôñïðÞò (ãéá ôç ÷ñÝùóç üëùí ôùí Üëëùí ôýðùí áñ÷åßùí) þóôå íá
ìåôñïýí óåëßäåò Þ íá æçôïýí íá ìÜèïõí áðü ôïí åêôõðùôÞ ôïí áñéèìü ôùí
åêôõðùìÝíùí óåëßäùí. Äåí èá óáò âïçèÞóåé éäéáßôåñá ç ÷ñÞóç ößëôñïõ
åîüäïõ, áðü ôç óôéãìÞ ðïõ äåí ìðïñåß íá êÜíåé êáôáìÝôñçóç. Äåßôå ôçí
åíüôçôá Ößëôñá.ÃåíéêÜ, õðÜñ÷ïõí äýï ôñüðïé ãéá íá êÜíåôå êáôáìÝôñçóç:Ç ÐåñéïäéêÞ êáôáìÝôñçóç åßíáé ï ðéï
óõíçèéóìÝíïò ôñüðïò, ðéèáíþò ãéáôß åßíáé ï åõêïëüôåñïò. ÊÜèå öïñÜ
ðïõ êÜðïéïò åêôõðþíåé ìéá åñãáóßá, ôï ößëôñï äçìéïõñãåß Ýíá
áñ÷åßï êáôáãñáöÞò üðïõ áíáöÝñåé ôïí ÷ñÞóôç, ôïí õðïëïãéóôÞ, êáé
ôïí áñéèìü ôùí óåëßäùí. ÊÜèå ìÞíá, åîÜìçíï, ÷ñüíï, Þ Üëëç ÷ñïíéêÞ
ðåñßïäï ôçò áñåóêåßáò óáò, óõëëÝãåôå ôá áñ÷åßá êáôáãñáöÞò ãéá ôïõò
äéÜöïñïõò åêôõðùôÝò, ëïãáñéÜæåôå ôéò óåëßäåò ðïõ áíáëïãïýí óôïõò
÷ñÞóôåò, êáé ÷ñåþíåôå áíáëüãùò. ¸ðåéôá óâÞíåôå ôá óôïé÷åßá áðü ôá
áñ÷åßá êáôáãñáöÞò, îåêéíþíôáò áðü êáèáñÞ êáôÜóôáóç ãéá ôçí åðüìåíç
ðåñßïäï.Ç ÊáôáìÝôñçóç êáôÜ ôç ÷ñÞóç åßíáé
ëéãüôåñï ãíùóôÞ, ßóùò åðåéäÞ åßíáé ðéï äýóêïëïò ôñüðïò. Óå áõôÞ
ôç ìÝèïäï ôá ößëôñá ÷ñåþíïõí ôïõò ÷ñÞóôåò ãéá ôéò åêôõðþóåéò ôïõò
áìÝóùò ìüëéò áõôÝò ðñáãìáôïðïéçèïýí. ¼ðùò êáé ìå ôçí êáôáãñáöÞ
÷ñÞóçò äßóêïõ (disk quotas), ç êáôáìÝôñçóç åßíáé Üìåóç. Ìðïñåßôå
íá ðñïëáìâÜíåôå ôçí ÷ñÞóç åêôõðùôþí áðü ÷ñÞóôåò ðïõ Ý÷ïõí ÷ôõðÞóåé
êüêêéíï, êáé ìðïñåßôå íá ðáñÝ÷åôå óôïõò ÷ñÞóôåò Ýíá ôñüðï ãéá íá
åëÝã÷ïõí êáé íá ñõèìßæïõí ôïí üãêï åêôõðþóåùí (print
quotas). ÁëëÜ áõôÞ ç ìÝèïäïò ðñïûðïèÝôåé ëßãï êþäéêá
âÜóåùí äåäïìÝíùí ãéá ôçí êáôáãñáöÞ ÷ñçóôþí êáé ôùí åí ëüãù
ìåãåèþí.Ôï óýóôçìá ðáñï÷Ýôåõóçò LPD
õðïóôçñßæåé åýêïëá êáé ôéò äýï ìåèüäïõò: áðü ôç óôéãìÞ ðïõ ðñÝðåé
åóåßò íá ðáñÝ÷åôå ôá ößëôñá (ôéò ðåñéóóüôåñåò öïñÝò), èá ðñÝðåé
åðßóçò íá ðáñÝ÷åôå êáé ôïí êþäéêá êáôáìÝôñçóçò. ÁëëÜ õðÜñ÷åé êáé Ýíá
êáëü óå áõôÞ ôçí õðüèåóç: Ý÷åôå áðåñéüñéóôç åõåëéîßá óôéò ìåèüäïõò
êáôáìÝôñçóçò. Ãéá ðáñÜäåéãìá, ìðïñåßôå íá åðéëÝîåôå ðåñéïäéêÞ Þ êáôÜ
ôç ÷ñÞóç êáôáìÝôñçóç. Ìðïñåßôå íá åðéëÝîåôå ôéò ðëçñïöïñßåò ðïõ èá
êáôáãñÜöïíôáé: ïíüìáôá ÷ñçóôþí, ïíüìáôá õðïëïãéóôþí, ôýðïõò åñãáóéþí,
ôõðùìÝíåò óåëßäåò, ôåôñáãùíéêÜ ìÝôñá ÷áñôéïý ðïõ ÷ñçóéìïðïéÞèçêå,
ðüóïò ÷ñüíïò ÷ñåéÜóôçêå ãéá íá ãßíåé ç åêôýðùóç, êáé ðïëëÜ áêüìá. Êáé
üëá áõôÜ ãßíïíôáé ìåôáôñÝðïíôáò ôá ößëôñá ãéá íá áðïèçêåýïõí áõôÝò ôéò
ðëçñïöïñßåò.ÃñÞãïñç êáé Ðñü÷åéñç ÊáôáìÝôñçóç ÅêôõðþóåùíÔï &os; äéáôßèåôáé ìå äýï ðñïãñÜììáôá ðïõ ìðïñïýí íá ðáñÝ÷ïõí
Üìåóá áðëÞ ðåñéïäéêÞ êáôáìÝôñçóç. Åßíáé ôï ößëôñï êåéìÝíïõ
lpf, ðïõ ðåñéãñÜöåôáé óôçí åíüôçôá lpf: Ýíá Ößëôñï ÊåéìÝíïõ,
êáé ôï &man.pac.8;, Ýíá ðñüãñáììá ðïõ óõëëÝãåé êáé áèñïßæåé
êáôá÷ùñßóåéò áðü áñ÷åßá êáôáìåôñÞóåùí.¼ðùò áíáöÝñáìå óôçí åíüôçôá ôùí ößëôñùí (Ößëôñá), ôï
LPD îåêéíÜ ôá ößëôñá êåéìÝíïõ êáé
ìåôáôñïðÞò ðåñíþíôáò óôçí ãñáììÞ åíôïëþí ôïõ ößëôñïõ êáé ôï üíïìá
ôïõ áñ÷åßïõ êáôáãñáöÞò. Ôá ößëôñá ìðïñïýí íá ÷ñçóéìïðïéÞóïõí áõôÞ
ôçí ðáñÜìåôñï ãéá íá îÝñïõí ðïõ íá ãñÜöïõí ôéò êáôá÷ùñßóåéò
êáôáìÝôñçóçò. Ôï üíïìá ôïõ áñ÷åßïõ êáôáìÝôñçóçò öáßíåôáé óôçí
éêáíüôçôá af óôï
/etc/printcap, êáé áí äåí ïñßæåôáé ç ðëÞñçò
äéáäñïìÞ ôïõ, ÷ñçóéìïðïéåßôáé ç ó÷åôéêÞ äéáäñïìÞ ùò ðñïò ôïí
êáôÜëïãï spool.Ôï LPD îåêéíÜ ôï
lpf ìå ðáñáìÝôñïõò ðëÜôïõò êáé ìÞêïõò óåëßäáò
(áðü ôéò éêáíüôçôåò pw êáé
pl). Ôï lpf ÷ñçóéìïðïéåß
áõôÝò ôéò ðáñáìÝôñïõò ãéá íá ðñïóäéïñßóåé ôçí ðïóüôçôá ÷áñôéïý ðïõ
÷ñçóéìïðïéÞèçêå. ÌåôÜ ôçí áðïóôïëÞ ôïõ áñ÷åßïõ óôïí åêôõðùôÞ,
ãñÜöåé ìéá êáôá÷þñéóç êáôáìÝôñçóçò óôï áñ÷åßï êáôáãñáöÞò. Ïé
êáôá÷ùñßóåéò ìïéÜæïõí ìå ôéò ðáñáêÜôù:2.00 rose:andy
3.00 rose:kelly
3.00 orchid:mary
5.00 orchid:mary
2.00 orchid:zhangÈá ðñÝðåé íá ÷ñçóéìïðïéåßôå îå÷ùñéóôü áñ÷åßï êáôáãñáöÞò ãéá
êÜèå åêôõðùôÞ, áöïý ôï lpf äåí Ý÷åé åíóùìáôùìÝíç
äõíáôüôçôá êëåéäþìáôïò áñ÷åßïõ (file locking), êáé äýï
lpf ìðïñïýí íá êáôáóôñÝøïõí ôï Ýíá ôçí
êáôá÷þñéóç ôïõ Üëëïõ áí ðñüêåéôáé íá ãñÜøïõí ôáõôü÷ñïíá óôï ßäéï
áñ÷åßï. ¸íáò åýêïëïò ôñüðïò ãéá íá âåâáéþóåôå ôçí ìïíáäéêüôçôá
áñ÷åßïõ êáôáãñáöÞò áíÜ åêôõðùôÞ åßíáé íá ÷ñçóéìïðïéÞóåôå ôçí
éêáíüôçôá af=acct óôï
/etc/printcap. ¸ôóé, êÜèå áñ÷åßï êáôáãñáöÞò
èá âñßóêåôáé óôïí êáôÜëïãï spool ôïõ áíôßóôïé÷ïõ åêôõðùôÞ, óå Ýíá
áñ÷åßï ìå üíïìá acct.¼ôáí åßóôå Ýôïéìïé íá ÷ñåþóåôå ôïõò ÷ñÞóôåò ãéá ôéò åêôõðþóåéò,
åêôåëÝóôå ôï ðñüãñáììá &man.pac.8;. ÁðëÜ ìåôáâåßôå óôïí êáôÜëïãï
spool ãéá ôïí åêôõðùôÞ ðïõ êÜíåôå êáôáìÝôñçóç êáé ðëçêôñïëïãÞóôå
pac. Èá åìöáíéóôåß Ýíáò áðïëïãéóìüò ìå ÷ñåþóåéò
óå äïëÜñéá, üðùò âëÝðåôå óôç óõíÝ÷åéá: Login pages/feet runs price
orchid:kelly 5.00 1 $ 0.10
orchid:mary 31.00 3 $ 0.62
orchid:zhang 9.00 1 $ 0.18
rose:andy 2.00 1 $ 0.04
rose:kelly 177.00 104 $ 3.54
rose:mary 87.00 32 $ 1.74
rose:root 26.00 12 $ 0.52
total 337.00 154 $ 6.74ÐáñáêÜôù åßíáé ïé ðáñÜìåôñïé ðïõ äÝ÷åôáé ôï &man.pac.8;:Ãéá ðïéü printer íá
êÜíåé áðïëïãéóìü. ÁõôÞ ç åðéëïãÞ äïõëåýåé ìüíï áí õðÜñ÷åé ç
ðëÞñçò äéáäñïìÞ óôçí éêáíüôçôá af óôï
/etc/printcap.Ôáîéíïìåß ôï áðïôÝëåóìá áíÜ êüóôïò áíôß ôçò áëöáâçôéêÞò
ôáîéíüìçóçò ôùí ÷ñçóôþí.Áãíïåß ôï üíïìá ôïõ õðïëïãéóôÞ óôá áñ÷åßá êáôáãñáöÞò. Ìå
áõôÞ ôçí åðéëïãÞ, ï ÷ñÞóôçò smith óôïí
õðïëïãéóôÞ alpha åßíáé ï ßäéïò ÷ñÞóôçò ìå ôïí
smith óôïí õðïëïãéóôÞ
gamma. ×ùñßò ôçí åðéëïãÞ áõôÞ, åßíáé
äéáöïñåôéêïß ÷ñÞóôåò.Õðïëïãßæåé ôéò ÷ñåþóåéò ìå
price (ôéìÞ) óå äïëÜñéá áíÜ óåëßäá
Þ áíÜ ðüäé áíôß ãéá ôçí ôéìÞ áðü ôçí éêáíüôçôá
pc óôï /etc/printcap,
Þ áëëéþò äýï óåíôò (áðü ðñïåðéëïãÞ). Ìðïñåßôå íá ïñßóåôå
ùò price ìéá ôéìÞ ìå äåêáäéêÜ
øçößá (floating point).ÁíôéóôñÝöåé ôçí óåéñÜ ôáîéíüìçóçò.Äçìéïõñãåß Ýíá áñ÷åßï áðïëïãéóìïý ôùí êáôáìåôñÞóåùí êáé
êáèáñßæåé ôá ðåñéå÷üìåíá ôùí áñ÷åßùí êáôáãñáöÞò.name…Ôõðþíåé ðëçñïöïñßåò áíáöïñÜò ìüíï ãéá ôá óõãêåêñéìÝíá
name (ïíüìáôá) ÷ñçóôþí.Óôïí ðñïåðéëåãìÝíï áðïëïãéóìü ðïõ ðáñÜãåé ôï &man.pac.8;,
âëÝðåôå ôùí áñéèìü ôùí ôõðùìÝíùí óåëßäùí áíÜ ÷ñÞóôç áðü ôïõò
äéÜöïñïõò õðïëïãéóôÝò. Áí, óôï ÷þñï óáò, ï õðïëïãéóôÞò äåí Ý÷åé
óçìáóßá (ãéáôß ïé ÷ñÞóôåò ìðïñïýí íá ÷ñçóéìïðïéÞóïõí ïðïéïíäÞðïôå
èÝëïõí), åêôåëÝóôå ôçí åíôïëÞ
pac , ãéá íá
äçìéïõñãÞóåôå ôïí áêüëïõèï áðïëïãéóìü: Login pages/feet runs price
andy 2.00 1 $ 0.04
kelly 182.00 105 $ 3.64
mary 118.00 35 $ 2.36
root 26.00 12 $ 0.52
zhang 9.00 1 $ 0.18
total 337.00 154 $ 6.74Ãéá ôïí ïñéóìü ðïóïóôïý ÷ñÝùóçò óå äïëÜñéá, ôï &man.pac.8;
÷ñçóéìïðïéåß ôçí éêáíüôçôá pc óôï áñ÷åßï
/etc/printcap (ðñïåðéëåãìÝíç ôéìÞ 200, Þ 2
óåíôò áíÜ óåëßäá). Ðñïóäéïñßóôå óå áõôÞí ôçí éêáíüôçôá, óå
åêáôïóôÜ ôïõ óåíô, ôçí ôéìÞ áíÜ óåëßäá Þ áíÜ ðüäé ðïõ èÝëåôå íá
÷ñåþíåôå ãéá ôéò åêôõðþóåéò. Ìðïñåßôå íá ðñïóðåñÜóåôå áõôÞ ôçí
ôéìÞ üôáí ôñÝ÷åôå ôï &man.pac.8; ìå ôçí åðéëïãÞ
. H ìïíÜäá ìÝôñçóçò ãéá ôçí åðéëïãÞ
åßíáé óå äïëÜñéá, ü÷é óå åêáôïóôÜ ôïõ óåíô.
Ãéá ðáñÜäåéãìá,
&prompt.root; pac
ïñßæåé êüóôïò êÜèå óåëßäáò Ýíá äïëÜñéï êáé ðåíÞíôá óåíôò.
Ìðïñåßôå ðñáãìáôéêÜ íá Ý÷åôå ðïëëÜ Ýóïäá ÷ñçóéìïðïéþíôáò áõôÝò ôéò
÷ñåþóåéò.ÔÝëïò, åêôåëþíôáò pac èá
áðïèçêåýóåôå ôéò ðëçñïöïñßåò ôïõ áðïëïãéóìïý óå Ýíá áñ÷åßï
êáôáãñáöÞò áðïëïãéóìïý, ðïõ èá Ý÷åé ôï ßäéï üíïìá ìå ôï áñ÷åßï
êáôáãñáöÞò ôïõ åêôõðùôÞ, áëëÜ ìå êáôÜëçîç _sum.
¸ðåéôá êáèáñßæåôáé ôï áñ÷åßï êáôáãñáöÞò. ¼ôáí åêôåëÝóåôå ðÜëé ôï
&man.pac.8;, èá îáíáäéáâÜóåé ôï áñ÷åßï áðïëïãéóìïý, ãéá íá ðÜñåé ôá
áñ÷éêÜ óýíïëá, êáé èá ðñïóèÝóåé ôéò ðëçñïöïñßåò áðü ôï êáíïíéêü
áñ÷åßï êáôáãñáöÞò.Ðùò Ìðïñåßôå íá ÌåôñÞóåôå ôéò ÔõðùìÝíåò Óåëßäåò;Ãéá íá ìåôñÞóåôå ôéò ôõðùìÝíåò óåëßäåò ìå Ýóôù óôïé÷åéþäç
ëåðôïìÝñåéá, èá ðñÝðåé íá ðñïóäéïñßóåôå ðüóï ÷áñôß ÷ñåéÜæåôáé ìéá
åñãáóßá. Áõôü åßíáé ôï ïõóéáóôéêüôåñï ðñüâëçìá óôçí êáôáìÝôñçóç
åêôõðþóåùí.Ãéá åñãáóßåò áðëïý êåéìÝíïõ, ôï ðñüâëçìá äåí åßíáé äýóêïëï íá
ëõèåß: ÌåôñÜôå ðüóåò ãñáììÝò õðÜñ÷ïõí óå ìéá åñãáóßá êáé ôéò
óõãêñßíåôå ìå ðüóåò ãñáììÝò ìðïñåß íá ôõðþóåé ï åêôõðùôÞò óáò óå
ìéá óåëßäá. Ìçí îå÷Üóåôå íá óõìðåñéëÜâåôå ôá backspaces ðïõ
ðñïêáëïýí õðåñôýðùóç, Þ åðéìÞêçò ëïãéêÝò ãñáììÝò ðïõ áíáäéðëþíïíôáé
óå ðåñéóóüôåñåò áðü ìßá öõóéêÝò ãñáììÝò.Ôï ößëôñï êåéìÝíïõ lpf (ðïõ ðáñïõóéÜóáìå óôï
lpf: Ýíá Ößëôñï
ÊåéìÝíïõ) ëáìâÜíåé õðüøéí ôïõ áõôÜ ôá óôïé÷åßá üôáí êÜíåé
êáôáìÝôñçóç. Áí ãñÜöåôå êÜðïéï ößëôñï êåéìÝíïõ ðïõ ÷ñåéÜæåôáé íá
êÜíåé êáôáìÝôñçóç, ßóùò íá èÝëåôå íá åëÝãîåôå ôïí ðçãáßï êþäéêá
ôïõ lpf.Ðùò ÷åéñßæåóôå üìùò ôïõò õðüëïéðïõò ôýðïõò áñ÷åßùí;Ãéá ôéò ìåôáôñïðÝò áðü DVI-óå-LaserJet Þ áðü
DVI-óå-&postscript;, ìðïñåßôå íá êÜíåôå ôï ößëôñï óáò íá áíáëýåé
ôçí Ýîïäï ôïõ dvilj Þ ôïõ
dvips êáé íá åëÝã÷åé ðüóåò óåëßäåò
äçìéïõñãÞèçêáí áðü ôç ìåôáôñïðÞ. ºóùò ìðïñÝóåôå íá êÜíåôå êÜôé
ðáñüìïéï êáé ìå äéáöïñåôéêïýò ôýðïõò áñ÷åßùí êáé ðñïãñÜììáôá
ìåôáôñïðÞòÙóôüóï, üëåò áõôÝò ïé ìÝèïäïé Ý÷ïõí ôï ìåéïíÝêôçìá ðùò ï
åêôõðùôÞò ðéèáíþò óôçí ðñáãìáôéêüôçôá íá ìçí åêôõðþóåé üëåò ôéò
óåëßäåò. Ãéá ðáñÜäåéãìá, èá ìðïñïýóå íá ìðëïêáñéóôåß ôï ÷áñôß, Þ íá
ôåëåéþóåé ôï ôüíåñ, Þ áêüìç íá óõìâåß êáé Ýêñçîç —åíþ ï
÷ñÞóôçò èá óõíå÷ßóåé íá ÷ñåþíåôáé.Ôé èá ìðïñïýóáôå íá êÜíåôå;ÕðÜñ÷åé ìüíï Ýíáò óßãïõñïò ôñüðïò ãéá íá
êÜíåôå êáôáìÝôñçóç áêñéâåßáò. Íá ðÜñåôå Ýíáí
åêôõðùôÞ ðïõ íá ìðïñåß íá óáò ðåé ðüóï ÷áñôß ÷ñçóéìïðïéåß, êáé íá
ôïí óõíäÝóåôå ìÝóù óåéñéáêÞò èýñáò Þ ìÝóù äéêôýïõ. Ó÷åäüí
üëïé ïé åêôõðùôÝò &postscript; õðïóôçñßæïõí áõôÞ ôçí äõíáôüôçôá. Èá
âñåßôå êáé Üëëïõò ôýðïõò êáé êáôáóêåõáóôÝò ðïõ êÜíïõí åðßóçò ôï ßäéï
(ãéá ðáñÜäåéãìá, ïé laser åêôõðùôÝò äéêôýïõ ôçò Imagen).
ÌåôáôñÝøôå ôá ößëôñá ãéá áõôïýò ôïõò åêôõðùôÝò þóôå íá êáôáãñÜöïõí
ôéò ôõðùìÝíåò óåëßäåò ìåôÜ ôçí ïëïêëÞñùóç ôçò åêÜóôïôå åñãáóßáò
åêôýðùóçò, êáé ñõèìßóôå ôïõò íá êñáôïýí áñ÷åßá êáôáãñáöÞò ìå
ìüíï áõôÞ ôçí ðëçñïöïñßá. Äåí ÷ñåéÜæåôáé
êáôáìÝôñçóç ãñáììþí ïýôå áíáöïñÜ óöáëìÜôùí.ÖõóéêÜ, ðÜíôá Ý÷åôå ôç äõíáôüôçôá íá öáíåßôå ãåííáéüäùñïò êáé íá
ðáñÝ÷åôå ôéò åêôõðþóåéò óáò äùñåÜí.×ñÞóç ÅêôõðùôþíprintersusageÁõôÞ ç åíüôçôá ðåñéãñÜöåé ðùò íá ÷ñçóéìïðïéåßôå ôïõò åêôõðùôÝò ðïõ
Ý÷åôå åãêáôáóôÞóåé óôï &os;. Ïé âáóéêÝò åíôïëÝò ãéá ôïí ôåëéêü ÷ñÞóôç
åßíáé ïé áêüëïõèåò:&man.lpr.1;Åêôýðùóç åñãáóéþí&man.lpq.1;¸ëåã÷ïò ïõñÜò áíáìïíÞò (print queue) ôïõ åêôõðùôÞ&man.lprm.1;ÄéáãñáöÞ åñãáóéþí áðü ôçí ïõñÜ áíáìïíÞòÕðÜñ÷åé åðßóçò ìéá åíôïëÞ ãéá ôïõò äéá÷åéñéóôÝò, ç &man.lpc.8;,
ðïõ ðåñéãñÜöåôáé óôçí åíüôçôá Äéá÷åßñéóç Åêôõðùôþí, êáé
÷ñçóéìïðïéåßôáé ãéá íá åëÝã÷åé ôïõò åêôõðùôÝò êáé ôéò ïõñÝò
áíáìïíÞò.Êáé ïé ôñåéò åíôïëÝò &man.lpr.1;, &man.lprm.1;, êáé &man.lpq.1;
äÝ÷ïíôáé ôçí åðéëïãÞ
ìå ôçí
ïðïßá êáèïñßæåôáé óå ðïéïí åêôõðùôÞ Þ ïõñÜ áíáìïíÞò èá åíåñãÞóïõí, üðùò
áíáöÝñåôáé óôï áñ÷åßï /etc/printcap. Áõôü óáò
åðéôñÝðåé íá áðïóôåßëåôå, íá äéáãñÜøåôå, êáé íá åëÝãîåôå åñãáóßåò óå
äéÜöïñïõò åêôõðùôÝò. Áí äåí ÷ñçóéìïðïéåßôå ôçí åðéëïãÞ
, ôüôå ïé åíôïëÝò ÷ñçóéìïðïéïýí ôïí åêôõðùôÞ ðïõ
áíáöÝñåôáé óôç ìåôáâëçôÞ ðåñéâÜëëïíôïò PRINTER. ÔÝëïò,
áí äåí Ý÷åôå èÝóåé ìéá ìåôáâëçôÞ ðåñéâÜëëïíôïò PRINTER,
ïé åíôïëÝò åêôåëïýíôáé ìå ôïí ðñïåðéëåãìÝíï åêôõðùôÞ ðïõ ïíïìÜæåôáé
lp.Áðü äù êáé óôï åîÞò, ìå ôçí ïñïëïãßá ðñïåðéëåãìÝíïò
åêôõðùôÞò èá åííïïýìå ôïí åêôõðùôÞ ðïõ áíáöÝñåôáé óôçí
ìåôáâëçôÞ ðåñéâÜëëïíôïò PRINTER, Þ áí äåí õðÜñ÷åé, ôïí
åêôõðùôÞ ìå ôï üíïìá lp.Åêôýðùóç ÅñãáóéþíÃéá íá åêôõðþóåôå áñ÷åßá, ðëçêôñïëïãÞóôå:&prompt.user; lpr filename...printingÈá åêôõðùèïýí üëá ôá áíáöåñüìåíá áñ÷åßá óôïí ðñïåðéëåãìÝíï
åêôõðùôÞ. Áí äåí áíáöÝñåôå áñ÷åßá, ôï &man.lpr.1; äéáâÜæåé
äåäïìÝíá áðü ôï standard input. Ãéá ðáñÜäåéãìá, áõôÞ ç åíôïëÞ
èá åêôõðþóåé ìåñéêÜ óçìáíôéêÜ áñ÷åßá ôïõ óõóôÞìáôïò:&prompt.user; lpr /etc/host.conf/etc/hosts.equivÃéá íá åðéëÝîåôå Ýíá óõãêåêñéìÝíï åêôõðùôÞ, ðëçêôñïëïãÞóôå:&prompt.user; lpr printer-namefilename...Óôï ðáñÜäåéãìá ìáò èá åêôõðùèåß ìéá ìåãÜëç ëßóôá áñ÷åßùí ôïõ
ôñÝ÷ïíôïò êáôáëüãïõ óôïí åêôõðùôÞ ðïõ ïíïìÜæåôáé
rattan:&prompt.user; ls | lpr rattanÁöïý äåí áíáöÝñïíôáé ïíüìáôá áñ÷åßùí óôçí åíôïëÞ &man.lpr.1;,
ôï lpr äéáâÜæåé ôá äåäïìÝíá ðïõ èá åêôõðþóåé áðü
ôï standard input, ôá ïðïßá åßíáé ç Ýîïäïò ôçò åíôïëÞò
ls .Ç åíôïëÞ &man.lpr.1; ìðïñåß íá äå÷èåß Ýíá ìåãÜëï áñéèìü åðéëïãþí
ãéá íá åëÝã÷åé ôçí ìïñöïðïßçóç, íá ìåôáôñÝðåé áñ÷åßá, íá äçìéïõñãåß
ðïëëáðëÜ áíôßãñáöá, ê.ë.ð. Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò, äåßôå ôçí
åíüôçôá ÅðéëïãÝò Åêôýðùóçò.¸ëåã÷ïò Åñãáóéþíåêôýðùóç åñãáóéþí¼ôáí åêôõðþíåôå ìå ôï &man.lpr.1;, ôá äåäïìÝíá ðïõ èÝëåôå íá
åêôõðþóåôå ôïðïèåôïýíôáé óå Ýíá ðáêÝôï (package) ðïõ ïíïìÜæåôáé
åñãáóßá åêôýðùóçò (print job), ç ïðïßá áðïóôÝëëåôáé
óôï óýóôçìá ðáñï÷Ýôåõóçò LPD. ÊÜèå
åêôõðùôÞò Ý÷åé ìéá ïõñÜ áíáìïíÞò åñãáóéþí, êáé ç åñãáóßá óáò
áíáìÝíåé ìáæß ìå Üëëåò äéêÝò óáò êáé Üëëùí ÷ñçóôþí. Ï åêôõðùôÞò ôéò
åêôõðþíåé ìå ôçí óåéñÜ Üöéîçò óôçí ïõñÜ áíáìïíÞò.Ãéá íá åìöáíßóåôå ôçí ïõñÜ áíáìïíÞò ãéá ôïí ðñïåðéëåãìÝíï
åêôõðùôÞ, ðëçêôñïëïãÞóôå &man.lpq.1;. Ãéá êÜðïéïí óõãêåêñéìÝíï
åêôõðùôÞ, ÷ñçóéìïðïéÞóôå ôçí åðéëïãÞ . Ãéá
ðáñÜäåéãìá, ç åíôïëÞ:
&prompt.user; lpq bamboo
åìöáíßæåé ôçí ïõñÜ áíáìïíÞò ãéá ôïí åêôõðùôÞ ìå ôï üíïìá
bamboo. Áêïëïõèåß Ýíá ðáñÜäåéãìá åîüäïõ ôçò
åíôïëÞò lpq:bamboo is ready and printing
Rank Owner Job Files Total Size
active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
2nd kelly 10 (standard input) 1635 bytes
3rd mary 11 ... 78519 bytesÅìöáíßæïíôáé ôñåéò åñãáóßåò óôç ëßóôá áíáìïíÞò ãéá ôïí
bamboo. Óôçí ðñþôç åñãáóßá, ðïõ Ý÷åé óôáëåß áðü
ôïí ÷ñÞóôç kelly, Ý÷åé áðïäïèåß ï
áñéèìüò åñãáóßáò (job number) 9. ÊÜèå åñãáóßá åíüò
åêôõðùôÞ ÷áñáêôçñßæåôáé áðü Ýíá ìïíáäéêü ôÝôïéï áñéèìü. Ôéò
ðåñéóóüôåñåò öïñÝò ìðïñåßôå íá ôïí áãíïÞóåôå, áëëÜ èá ôïí ÷ñåéáóôåßôå
áí èÝëåôå íá äéáãñÜøåôå êÜðïéá åñãáóßá. Äåßôå ôçí åíüôçôá ÄéáãñáöÞ Åñãáóéþí ãéá
ðåñéóóüôåñåò ðëçñïöïñßåò.Ç åñãáóßá ìå ôï íïýìåñï åííÝá áðïôåëåßôáé áðü äýï áñ÷åßá. Ôá
ðïëëáðëÜ áñ÷åßá ðïõ äüèçêáí óôç ãñáììÞ åíôïëþí ôïõ &man.lpr.1;
èåùñïýíôáé ìÝñïò ìßáò ìüíï åñãáóßáò. ÁõôÞ åßíáé êáé ç ôñÝ÷ïõóá åíåñãÞ
åñãáóßá (ðáñáôçñÞóôå ôç ëÝîç active ôçò óôÞëçò
Rank), ðïõ óçìáßíåé ðùò ç åñãáóßá åêôõðþíåôáé áõôÞ ôç
óôéãìÞ. Ç äåýôåñç åñãáóßá áðïôåëåßôáé áðü äåäïìÝíá ðïõ Ý÷ïõí ðåñÜóåé
óôçí standard input ôçò åíôïëÞò &man.lpr.1;. Ç ôñßôç åñãáóßá
ðñïÝñ÷åôáé áðü ôïí ÷ñÞóôç mary, êáé ðñüêåéôáé
ãéá ìéá ðïëý ïãêþäç åñãáóßá. Ôï üíïìá äéáäñïìÞò ôïõ áñ÷åßïõ ðïõ
ðñüêåéôáé íá åêôõðùèåß åßíáé ðïëý ìåãÜëï ãéá íá ÷ùñÝóåé óôç óôÞëç,
êáé ãéá áõôü ç åíôïëÞ &man.lpq.1; áðëÜ ôï óõìâïëßæåé ìå ôñåéò
ôåëåßåò.Ç ðñþôç ãñáììÞ ôçò åîüäïõ áðü ôçí &man.lpq.1; åßíáé åðßóçò ðïëý
÷ñÞóéìç: ìáò åíçìåñþíåé ãéá ôï ôé êÜíåé ôçí ðáñïýóá óôéãìÞ ï
åêôõðùôÞò (Þ ôïõëÜ÷éóôïí ãéá ôï ôé ðéóôåýåé ôï
LPD ðùò êÜíåé ï åêôõðùôÞò áõôÞ ôç
óôéãìÞ).Ç åíôïëÞ &man.lpq.1; åðßóçò õðïóôçñßæåé ôçí åðéëïãÞ
ãéá íá äçìéïõñãÞóåé ìéá ìåãÜëç, ëåðôïìåñÞ ëßóôá.
Áêïëïõèåß Ýíá ðáñÜäåéãìá ôïõ
lpq :waiting for bamboo to become ready (offline ?)
kelly: 1st [job 009rose]
/etc/host.conf 73 bytes
/etc/hosts.equiv 15 bytes
kelly: 2nd [job 010rose]
(standard input) 1635 bytes
mary: 3rd [job 011rose]
/home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytesÁöáßñåóç ÅñãáóéþíÁí áëëÜîåôå ãíþìç ãéá ìéá åñãáóßá ðïõ åß÷áôå áðïóôåßëåé ðñïò
åêôýðùóç, ìðïñåßôå íá ôçí áöáéñÝóåôå áðü ôçí ëßóôá áíáìïíÞò ìå ôçí
åíôïëÞ &man.lprm.1;. Ìðïñåßôå áêüìç íá ÷ñçóéìïðïéÞóåôå ôçí
&man.lprm.1; ãéá íá áöáéñÝóåôå ìéá åíåñãÞ åñãáóßá, áëëÜ ðéèáíüí
êÜðïéï ìÝñïò ôçò íá åêôõðùèåß Ýôóé êáé áëëéþò.Ãéá íá áöáéñÝóåôå ìéá åñãáóßá áðü ôïí ðñïåðéëåãìÝíï åêôõðùôÞ,
÷ñçóéìïðïéÞóôå ðñþôá ôçí &man.lpq.1; ãéá íá âñåßôå ôïí áñéèìü ôçò.
¸ðåéôá ðëçêôñïëïãÞóôå:&prompt.user; lprm job-numberÃéá íá áöáéñÝóåôå ìéá åñãáóßá áðü êÜðïéïí óõãêåêñéìÝíï åêôõðùôÞ,
ðñïóèÝóôå ôçí åðéëïãÞ . Ç áêüëïõèç åíôïëÞ áöáéñåß
ôçí åñãáóßá ìå áñéèìü 10 áðü ôçí ïõñÜ áíáìïíÞò ãéá ôïí åêôõðùôÞ
bamboo:&prompt.user; lprm bamboo 10Ç åíôïëÞ &man.lprm.1; Ý÷åé ìåñéêÝò óõíôïìåýóåéò:lprm -Áöáéñåß üëåò ôéò åñãáóßåò (ãéá ôïí ðñïåðéëåãìÝíï åêôõðùôÞ)
ðïõ áíÞêïõí óå åóÜò.lprm userÁöáéñåß üëåò ôéò åñãáóßåò (ãéá ôïí ðñïåðéëåãìÝíï åêôõðùôÞ)
ðïõ áíÞêïõí óôïí ÷ñÞóôç (user).
Ï õðåñ÷ñÞóôçò (superuser) ìðïñåß íá áöáéñÝóåé åñãáóßåò Üëëùí
÷ñçóôþí, åóåßò ìðïñåßôå íá áöáéñÝóåôå ìüíï ôéò äéêÝò óáò.lprmÇ åíôïëÞ &man.lprm.1; ÷ùñßò áñéèìü åñãáóßáò, üíïìá ÷ñÞóôç,
Þ ðïõ åìöáíßæåôáé óôçí ãñáììÞ åíôïëþí,
áöáéñåß ôçí ôñÝ÷ïõóá åíåñãÞ åñãáóßá óôïí ðñïåðéëåãìÝíï
åêôõðùôÞ, áí áíÞêåé óå óÜò. Ï õðåñ÷ñÞóôçò (superuser) ìðïñåß
íá áöáéñÝóåé ïðïéáäÞðïôå åíåñãÞ åñãáóßá.Ãéá íá äïõëÝøåôå óå êÜðïéïí óõãêåêñéìÝíï åêôõðùôÞ áíôß ôïõ
ðñïåðéëåãìÝíïõ, áðëÜ ÷ñçóéìïðïéÞóôå ôçí åðéëïãÞ
ìå ôéò ðáñáðÜíù óõíôïìåýóåéò. Ãéá ðáñÜäåéãìá, ç áêüëïõèç åíôïëÞ
áöáéñåß üëåò ôéò åñãáóßåò ôïõ ôñÝ÷ïíôïò ÷ñÞóôç áðü ôçí ïõñÜ áíáìïíÞò
ôïõ åêôõðùôÞ rattan:&prompt.user; lprm rattan -Áí åñãÜæåóôå óå ðåñéâÜëëïí äéêôýïõ, ç &man.lprm.1; èá óáò
åðéôñÝøåé íá áöáéñÝóåôå åñãáóßåò ìüíï áðü ôïí õðïëïãéóôÞ ðïõ
ôéò Ý÷åôå óôåßëåé, áíåîÜñôçôá áí ï åêôõðùôÞò åßíáé ðñïóâÜóéìïò êáé
áðü Üëëïõò õðïëïãéóôÝò. Ç áêüëïõèç åíôïëÞ åðéäåéêíýåé áêñéâþò áõôü
ôï ÷áñáêôçñéóôéêü:&prompt.user; lpr rattan myfile
&prompt.user; rlogin orchid
&prompt.user; lpq rattan
Rank Owner Job Files Total Size
active seeyan 12 ... 49123 bytes
2nd kelly 13 myfile 12 bytes
&prompt.user; lprm rattan 13
rose: Permission denied
&prompt.user; logout
&prompt.user; lprm rattan 13
dfA013rose dequeued
cfA013rose dequeued
ÐÝñá áðü ôï Áðëü Êåßìåíï: Ðåñéóóüôåñåò ÅðéëïãÝò ÅêôýðùóçòÇ åíôïëÞ &man.lpr.1; õðïóôçñßæåé ìéá ãêÜìá åðéëïãþí ãéá ôïí Ýëåã÷ï
ìïñöïðïßçóçò êåéìÝíïõ, ìåôáôñïðÞò ãñáöéêþí êáé Üëëùí ìïñöþí áñ÷åßùí,
ðáñáãùãÞò ðïëëáðëþí áíôéãñÜöùí, ÷åéñéóìïý åñãáóéþí, êáé Üëëá. Ïé
åðéëïãÝò áõôÝò ðåñéãñÜöïíôáé óôçí ðáñïýóá åíüôçôá.ÅðéëïãÝò Ìïñöïðïßçóçò êáé ÌåôáôñïðÞòÏé áêüëïõèåò åðéëïãÝò ôçò &man.lpr.1; åëÝã÷ïõí ôçí ìïñöïðïßçóç
ôùí áñ÷åßùí ôçò åñãáóßáò åêôýðùóçò. ×ñçóéìïðïéÞóôå ôéò áí ç åñãáóßá
óáò äåí ðåñéÝ÷åé áðëü êåßìåíï Þ áí åðéèõìåßôå íá ìïñöïðïéÞóåôå áðëü
êåßìåíï äéáìÝóïõ ôïõ åñãáëåßïõ &man.pr.1;.&tex;Ãéá ðáñÜäåéãìá, ç áêüëïõèç åíôïëÞ ôõðþíåé Ýíá áñ÷åßï DVI (áðü ôï
óýóôçìá óôïé÷åéïèåóßáò &tex;) ìå üíïìá
fish-report.dvi
óôïí åêôõðùôÞ ìå üíïìá bamboo:&prompt.user; lpr bamboo fish-report.dviÁõôÝò ïé åðéëïãÝò åöáñìüæïíôáé óå êÜèå áñ÷åßï ôçò åñãáóßáò, êáé
Ýôóé äåí ìðïñåßôå íá áíáìßîåôå (áò ðïýìå) áñ÷åßá DVI êáé ditroff
ìáæß óôçí ßäéá åñãáóßá. Áðëþò óôåßëôå ôá áñ÷åßá óáí äéáöïñåôéêÝò
åñãáóßåò, ÷ñçóéìïðïéþíôáò äéáöïñåôéêÝò åðéëïãÝò ìåôáôñïðÞò ãéá êÜèå
åñãáóßá.¼ëåò áõôÝò ïé åðéëïãÝò åêôüò ôçò êáé ôçò
áðáéôïýí åãêáôåóôçìÝíá ößëôñá ìåôáôñïðÞò ãéá
ôïí åêôõðùôÞ ðñïïñéóìïý. Ãéá ðáñÜäåéãìá, ç åðéëïãÞ
áðáéôåß ôï ößëôñï ìåôáôñïðÞò DVI. Ç åíüôçôá
Ößëôñá
ÌåôáôñïðÞò äßíåé ðåñéóóüôåñåò ëåðôïìÝñåéåò.Åêôõðþíåé áñ÷åßá cifplot.Åêôõðþíåé áñ÷åßá DVI.Åêôõðþíåé áñ÷åßá êåéìÝíïõ FORTRAN.Åêôõðþíåé äåäïìÝíá ó÷åäßáóçò (plot).Åêôõðþíåé ôçí Ýîïäï ìå åóï÷Þ
number óôçëþí. Áí ðáñáëåßøåôå
ôï number, ç åóï÷Þ èá åßíáé
8 óôÞëåò. ÁõôÞ ç åðéëïãÞ äïõëåýåé ìüíï ìå ïñéóìÝíá ößëôñá
ìåôáôñïðÞò.Ìçí ôïðïèåôåßôå êåíü äéÜóôçìá ìåôáîý ôïõ
êáé ôïõ áñéèìïý.Åêôõðþíåé äåäïìÝíá êåéìÝíïõ êáôÜ ãñÜììá (literal),
óõìðåñéëáìâÜíïíôáò êáé ôïõò ÷áñáêôÞñåò åëÝã÷ïõ.Åêôõðþíåé äåäïìÝíá ditroff (äåäïìÝíá troff áíåîÜñôçôá áðü
ôç óõóêåõÞ).-pÌïñöïðïéåß ôï áðëü êåßìåíï ìå ôçí &man.pr.1; ðñéí íá ôï
åêôõðþóåé. Äåßôå ôçí &man.pr.1; ãéá ðåñéóóüôåñåò
ðëçñïöïñßåò.×ñçóéìïðïéåß ôï title óôçí
êåöáëßäá ôïõ &man.pr.1; áíôß ãéá ôï üíïìá áñ÷åßïõ. ÁõôÞ ç
åðéëïãÞ åðéäñÜ ìüíï üôáí ÷ñçóéìïðïéåßôáé ìå ôçí åðéëïãÞ
Åêôõðþíåé äåäïìÝíá troff.Åêôõðþíåé äåäïìÝíá ñÜóôåñ.Åäþ åßíáé Ýíá ðáñÜäåéãìá: áõôÞ ç åíôïëÞ åêôõðþíåé ìéá êïìøÜ
ìïñöïðïéçìÝíç Ýêäïóç ôçò óåëßäáò âïçèåßáò &man.ls.1; óôïí
ðñïåðéëåãìÝíï åêôõðùôÞ:&prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -man | lpr Ç åíôïëÞ &man.zcat.1; áðïóõìðéÝæåé ôïí ðçãáßï êþäéêá ôçò
óåëßäáò âïçèåßáò &man.ls.1; êáé ôïí ðåñíÜåé óôçí åíôïëÞ
&man.troff.1;, ç ïðïßá ôïí ìïñöïðïéåß êáé äçìéïõñãåß óôçí Ýîïäï ôçò
äåäïìÝíá GNU troff, ôá áðïóôÝëëåé óôçí &man.lpr.1;, ç ïðïßá ìå
ôç óåéñÜ ôçò áðïóôÝëëåé ôçí åñãáóßá óôï
LPD. ÅðåéäÞ ÷ñçóéìïðïéÞóáìå ôçí åðéëïãÞ
óôï &man.lpr.1;, ï spooler, êáôÜ ôç äéÜñêåéá ôçò
åêôýðùóçò, èá ìåôáôñÝøåé ôçí Ýîïäï GNU troff óå Ýíá ôýðï äåäïìÝíùí
êáôáíïçôü áðü ôïí ðñïåðéëåãìÝíï åêôõðùôÞ.ÅðéëïãÝò ×åéñéóìïý ÅñãáóéþíÏé áêüëïõèåò åðéëïãÝò ôïõ &man.lpr.1; ïäçãïýí ôï
LPD íá ÷åéñéóôåß ôéò åñãáóßåò ìå åéäéêü
ôñüðï:-# copiesÄçìéïõñãåß Ýíáí áñéèìü copies
(áíôéãñÜöùí) ãéá êÜèå áñ÷åßï ôçò åñãáóßáò áíôß ãéá Ýíá ìüíï
áíôßãñáöï. Ï äéá÷åéñéóôÞò ìðïñåß íá áðåíåñãïðïéÞóåé áõôÞ ôçí
åðéëïãÞ ãéá íá ìåéþóåé ôçí êáôáðüíçóç ôùí åêôõðùôþí êáé íá
åíèáññýíåé ôçí ÷ñÞóç öùôïôõðéêþí ìç÷áíçìÜôùí. Äåßôå ôçí
åíüôçôá Ðåñéïñéóìüò
Åêôýðùóçò Ðïëëáðëþí ÁíôéãñÜöùí.Óå áõôü ôï ðáñÜäåéãìá, åêôõðþíïõìå óôïí ðñïåðéëåãìÝíï
åêôõðùôÞ ôñßá áíôßãñáöá ôïõ
parser.c
êáé ôñßá áíôßãñáöá ôïõ
parser.h:&prompt.user; lpr parser.c parser.h-mÁðïóôïëÞ mail ìåôÜ ôçí ïëïêëÞñùóç åêôýðùóçò ôçò åñãáóßáò.
Ìå áõôÞ ôçí åðéëïãÞ, ôï óýóôçìá
LPD óôÝëíåé mail óôï ëïãáñéáóìü
óáò ìüëéò ïëïêëçñùèåß ï ÷åéñéóìüò åêôýðùóçò ôçò åñãáóßáò
óáò. Óôï ìÞíõìá ôïõ, èá óáò åíçìåñþóåé áí ç åñãáóßá
ïëïêëçñþèçêå åðéôõ÷þò Þ áí ðáñïõóéÜóôçêå óöÜëìá êáé (óõ÷íÜ)
ðïéü Þôáí ôï óöÜëìá.-sÄåí áíôéãñÜöåé ôá áñ÷åßá óôïí êáôÜëïãï spool, áëëÜ
áíôß ãéá áõôü, äçìéïõñãåß óõìâïëéêÝò óõíôïìåýóåéò (symbolic
links) ðñïò áõôÜ.Áí åêôõðþíåôå ìéá ìåãÜëç åñãáóßá, ßóùò èÝëåôå íá
÷ñçóéìïðïéÞóåôå áõôÞ ôçí åðéëïãÞ. Èá óáò ãëõôþóåé ÷þñï óôïí
êáôÜëïãï spool (ßóùò ç åñãáóßá óáò íá õðåñâáßíåé ôïí åëåýèåñï
÷þñï ôïõ óõóôÞìáôïò áñ÷åßùí ðïõ ðåñéÝ÷åé ôïí êáôÜëïãï
spool). Åðßóçò èá êåñäßóåôå ÷ñüíï áöïý ôï
LPD äåí èá ÷ñåéáóôåß íá áíôéãñÜøåé
üëç ôçí åñãáóßá óáò óôïí êáôÜëïãï spool.Áõôü, ùóôüóï, Ý÷åé êáé Ýíá ìåéïíÝêôçìá: áðü ôç óôéãìÞ ðïõ
ôï LPD èá êÜíåé áíáöïñÜ êáôåõèåßáí
óôï ðñùôüôõðï áñ÷åßï, äåí èá Ý÷åôå äõíáôüôçôá íá ìåôáôñÝøåôå
Þ íá äéáãñÜøåôå ôï áñ÷åßï Ýùò üôïõ åêôõðùèåß.Áí åêôõðþíåôå óå Ýíá áðïìáêñõóìÝíï åêôõðùôÞ, ôï
LPD ðéèáíþò èá ÷ñåéáóôåß ôåëéêÜ
íá áíôéãñÜøåé ôá áñ÷åßá áðü ôïí ôïðéêü õðïëïãéóôÞ óôïí
áðïìáêñõóìÝíï, åðïìÝíùò ç åðéëïãÞ óå
áõôÞ ôçí ðåñßðôùóç åîïéêïíïìåß ÷þñï óôïí ôïðéêü êáôÜëïãï
spool, áëëÜ ü÷é óôïí áðïìáêñõóìÝíï. Åîáêïëïõèåß ùóôüóï íá
åßíáé éäéáßôåñá ÷ñÞóéìç.-rÁðïìáêñýíåé ôá áñ÷åßá ôçò åñãáóßáò ìåôÜ ôçí áíôéãñáöÞ
ôïõò óôïí êáôÜëïãï spool, Þ ìåôÜ ôçí åêôýðùóç ôïõò ìå ôçí
åðéëïãÞ . Íá åßóôå ðñïóåêôéêïß ìå áõôÞ
ôçí åðéëïãÞ!ÅðéëïãÝò Óåëßäùí ÊåöáëßäáòÁõôÝò ïé åðéëïãÝò ôïõ &man.lpr.1; ñõèìßæïõí ôï êåßìåíï ðïõ
êáíïíéêÜ åìöáíßæåôáé óôçí óåëßäá êåöáëßäáò ôçò åñãáóßáò. Áí ïé
óåëßäåò êåöáëßäáò ðáñåìðïäßæïíôáé ãéá ôïí óõãêåêñéìÝíï åêôõðùôÞ,
áõôÝò ïé åðéëïãÝò äåí Ý÷ïõí êáìßá åðßäñáóç. Äåßôå ôçí åíüôçôá
Óåëßäåò
Êåöáëßäáò ãéá ðëçñïöïñßåò ó÷åôéêÜ ìå ôéò ñõèìßóåéò ôùí
óåëßäùí êåöáëßäáò.-C textÁíôéêáèéóôÜ ôï üíïìá õðïëïãéóôÞ óôç óåëßäá êåöáëßäáò ìå
text. Ôï üíïìá õðïëïãéóôÞ ðïõ
åìöáíßæåôáé åßíáé, áðü ðñïåðéëïãÞ, ôï üíïìá ôïõ õðïëïãéóôÞ
áðü ôïí ïðïßï Ýãéíå ç áðïóôïëÞ ôçò åñãáóßáò.-J textÁíôéêáèéóôÜ ôï üíïìá åñãáóßáò óôç óåëßäá êåöáëßäáò ìå
text. Ôï üíïìá åñãáóßáò ðïõ
åìöáíßæåôáé áðü ðñïåðéëïãÞ, åßíáé ôï üíïìá ôïõ ðñþôïõ áñ÷åßïõ
ôçò åñãáóßáò, Þ stdin áí ç åêôýðùóç
ãßíåôáé áðü ôï standard input.-hÄåí åêôõðþíåé óåëßäá êåöáëßäáò.ÁíÜëïãá ìå ôéò ñõèìßóåéò, áõôÞ ç åðéëïãÞ ßóùò íá ìçí
Ý÷åé åðßäñáóç ëüãù ôïõ ôñüðïõ ìå ôïí ïðïßï äçìéïõñãïýíôáé ïé
óåëßäåò êåöáëßäáò. Ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò, äåßôå ôçí
åíüôçôá Óåëßäåò
Êåöáëßäáò.Äéá÷åßñéóç ÅêôõðùôþíÙò äéá÷åéñéóôÞò, ÷ñåéÜóôçêå íá åãêáôáóôÞóåôå, íá ñõèìßóåôå êáé íá
äïêéìÜóåôå ôïõò åêôõðùôÝò óáò. ×ñçóéìïðïéþíôáò ôçí åíôïëÞ
&man.lpc.8;, ìðïñåßôå íá åðéêïéíùíÞóåôå ìå ôïõò åêôõðùôÝò óáò ìå áêüìç
ðåñéóóüôåñïõò ôñüðïõò. Ìå ôçí &man.lpc.8;, ìðïñåßôå:Íá åêêéíåßôå êáé íá óôáìáôÜôå ôïõò åêôõðùôÝòÍá åíåñãïðïéåßôå êáé íá áðåíåñãïðïéåßôå ôéò ïõñÝò
áíáìïíÞòÍá áíáêáôáôÜóóåôå ôçí óåéñÜ åñãáóéþí óå êÜèå ïõñÜ
áíáìïíÞò.Êáôáñ÷Þí, ìßá óçìåßùóç ó÷åôéêÜ ìå ôçí ïñïëïãßá: áí Ýíáò
åêôõðùôÞò åßíáé óôáìáôçìÝíïò (stopped), äåí èá
åêôõðþóåé ôßðïôå áðü ôçí ïõñÜ áíáìïíÞò åñãáóéþí. Ïé ÷ñÞóôåò ìðïñïýí
áêüìç íá óôÝëíïõí åñãáóßåò, ïé ïðïßåò ìðáßíïõí óôçí ïõñÜ áíáìïíÞò Ýùò
üôïõ ï åêôõðùôÞò îåêéíÞóåé Þ êáèáñéóôåß ç ïõñÜ
áíáìïíÞò.Áí Ý÷åé áðåíåñãïðïéçèåß ç ïõñÜ áíáìïíÞò,
êáíåßò ÷ñÞóôçò (åêôüò ôïõ root) äåí ìðïñåß íá
áðïóôåßëåé åñãáóßåò óôïí åêôõðùôÞ. Ìéá åíåñãÞ
ïõñÜ áíáìïíÞò åðéôñÝðåé íá áðïóôáëïýí åñãáóßåò óôïí åêôõðùôÞ. ¸íáò
åêôõðùôÞò ìðïñåß íá îåêéíÞóåé ìå ïõñÜ
áíáìïíÞò áðåíåñãïðïéçìÝíç, êáé óå áõôÞ ôçí ðåñßðôùóç èá óõíå÷ßóåé íá
åêôõðþíåé ôéò åñãáóßåò ôçò ïõñÜò Ýùò üôïõ áõôÞ áäåéÜóåé.ÃåíéêÜ, ðñÝðåé íá Ý÷åôå ðñïíüìéá root ãéá íá
÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ &man.lpc.8;. Ïé êáíïíéêïß ÷ñÞóôåò
ìðïñïýí íá ÷ñçóéìïðïéïýí ôçí åíôïëÞ &man.lpc.8; ìüíï ãéá íá âëÝðïõí
ôçí êáôÜóôáóç ôïõ åêôõðùôÞ êáé íá åðáíåêêéíïýí ôïí åêôõðùôÞ óå
ðåñßðôùóç ìðëïêáñßóìáôïò.ÐáñáêÜôù èá âñåßôå ìéá ëßóôá åíôïëþí ôïõ &man.lpc.8;. Ïé
ðåñéóóüôåñåò áðü ôéò åíôïëÝò ðáßñíïõí ùò ðáñÜìåôñï ôï
printer-name ãéá ôç ñýèìéóç ôïõ
óõãêåêñéìÝíïõ åêôõðùôÞ. Ìðïñåßôå íá ÷ñçóéìïðïéåßôå
all óôç èÝóç ôïõ
printer-name ãéá íá áíáöåñèåßôå óå üëïõò
ôïõò åêôõðùôÝò ðïõ åßíáé êáôá÷ùñéóìÝíïé óôï
/etc/printcap.abort printer-nameÄéáãñÜöåé ôçí ôñÝ÷ïõóá åñãáóßá êáé óôáìáôÜåé ôïí åêôõðùôÞ.
Ïé ÷ñÞóôåò ìðïñïýí áêüìç íá áðïóôåßëïõí åñãáóßåò áí ç ïõñÜ
áíáìïíÞò åßíáé áêüìç åíåñãÞ.clean printer-nameÄéáãñÜöåé ôá ðáëéÜ áñ÷åßá áðü ôïí êáôÜëïãï spool ôïõ
åêôõðùôÞ. Óå êÜðïéåò ðåñéðôþóåéò, ôá áñ÷åßá áðü ôá ïðïßá
áðïôåëåßôáé êÜðïéá åñãáóßá äåí áöáéñïýíôáé êáíïíéêÜ áðü ôï
LPD, åéäéêÜ áí õðÞñîáí óöÜëìáôá êáôÜ
ôçí åêôýðùóç Þ êÜðïéåò åíÝñãåéåò áðü ôïí äéá÷åéñéóôÞ. ÁõôÞ ç
åíôïëÞ âñßóêåé áñ÷åßá ðïõ äåí áíÞêïõí óôïí êáôÜëïãï spool êáé
ôá áöáéñåß.disable printer-nameÁðåíåñãïðïéåß ôçí ïõñÜ áíáìïíÞò ãéá íÝåò åñãáóßåò. Áí ï
åêôõðùôÞò äïõëåýåé, èá óõíå÷ßóåé íá åêôõðþíåé ôéò
åíáðïìåßíáíôåò åñãáóßåò óôçí ïõñÜ áíáìïíÞò. Ï superuser
(root) ìðïñåß ðÜíôá íá óôÝëíåé åñãáóßåò,
áêüìç êáé óå áðåíåñãïðïéçìÝíç óåéñÜ áíáìïíÞò.ÁõôÞ ç åíôïëÞ åßíáé ÷ñÞóéìç, üôáí åëÝã÷åôå Ýíá íÝï åêôõðùôÞ
Þ üôáí åãêáèéóôÜôå Ýíá ößëôñï: áðåíåñãïðïéÞóôå ôçí ïõñÜ
áíáìïíÞò êáé óôåßëôå åñãáóßåò óáí root.
Ïé õðüëïéðïé ÷ñÞóôåò äåí èá Ý÷ïõí äõíáôüôçôá íá áðïóôåßëïõí
åñãáóßåò Ýùò üôïõ ïëïêëçñþóåôå ôïõò åëÝã÷ïõò óáò êáé
åðáíåíåñãïðïéÞóåôå ôçí ïõñÜ áíáìïíÞò ìå ôçí åíôïëÞ
enable.down printer-namemessageÏäçãåß ôïí åêôõðùôÞ óå "êáôÝâáóìá" (down). Åßíáé éóïäýíáìï
ìå ôï disable áêïëïõèïýìåíï áðü Ýíá
stop. Ôï message
(ìÞíõìá) åìöáíßæåôáé üôáí êÜðïéïò ÷ñÞóôçò åëÝã÷åé ôçí óåéñÜ
áíáìïíÞò ìå &man.lpq.1; Þ ôçí êáôÜóôáóç ôïõ åêôõðùôÞ ìå
lpc status.enable
printer-nameÅíåñãïðïßçóç ôçò ïõñÜò áíáìïíÞò ôïõ åêôõðùôÞ. Ïé ÷ñÞóôåò
ìðïñïýí íá áðïóôåßëïõí åñãáóßåò áëëÜ ï åêôõðùôÞò äåí èá ôõðþóåé
Ýùò üôïõ îåêéíÞóåé.help
command-nameÔõðþíåé óåëßäåò âïçèåßáò ãéá ôçí åíôïëÞ
command-name. Äß÷ùò ôï
command-name, åêôõðþíåé ìéá ðåñßëçøç
üëùí ôùí äéáèÝóéìùí åíôïëþí.restart printer-nameÎåêéíÜ ôïí åêôõðùôÞ. Ïé êáíïíéêïß ÷ñÞóôåò ìðïñïýí íá
÷ñçóéìïðïéÞóïõí áõôÞ ôçí åíôïëÞ ìüíï óå êÜðïéá åéäéêÞ
ðåñßðôùóç ðïõ ôï LPD äåí áðïêñßíåôáé,
áëëÜ äåí ìðïñïýí íá îåêéíÞóïõí Ýíá åêôõðùôÞ ðïõ Ý÷åé óôáìáôÞóåé
åîáéôßáò ôùí åíôïëþí stop Þ
down. Ç åíôïëÞ restart
åßíáé éóïäýíáìç ìå ôçí abort áêïëïõèïýìåíç
áðü ôç start.start printer-nameÎåêéíÜ ôïí åêôõðùôÞ. Ï åêôõðùôÞò èá ôõðþóåé åñãáóßåò áðü
ôçí ïõñÜ áíáìïíÞò ôïõ.stop
printer-nameÓôáìáôÜåé ôïí åêôõðùôÞ. Ï åêôõðùôÞò èá ïëïêëçñþóåé ôçí
ôñÝ÷ïõóá åñãáóßá ôïõ êáé äåí èá ôõðþóåé êáìßá Üëëç åñãáóßá áðü
ôçí ïõñÜ áíáìïíÞò ôïõ. Áêüìç êáé áí ï åêôõðùôÞò åßíáé
óôáìáôçìÝíïò, ïé ÷ñÞóôåò ìðïñïýí áêüìç íá óôÝëíïõí åñãáóßåò áí
åßíáé åíåñãïðïéçìÝíç ç ïõñÜ áíáìïíÞò.topq printer-namejob-or-usernameÁíáêáôÜôáîç ôçò ïõñÜò áíáìïíÞò ãéá ôïí
printer-name. Ôïðïèåôïýíôáé ðñþôåò
ïé åñãáóßåò ìå áñéèìü áíáöïñÜò job Þ
áõôÝò ðïõ áíÞêïõí óôï ÷ñÞóôç
username. Ãéá áõôÞ ôçí åíôïëÞ, äåí
ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå all óôçí èÝóç ôïõ
printer-name.up printer-nameÏäçãåß ôïí åêôõðùôÞ óå "áíÝâáóìá" (up). Ôï áíôßèåôï ôçò
åíôïëÞò down. Éóïäõíáìåß ìå ôçí
start áêïëïõèïýìåíç áðü ôçí åíôïëÞ
enable.Ôï &man.lpc.8; äÝ÷åôáé ôéò ðáñáðÜíù åíôïëÝò óôçí ãñáììÞ åíôïëþí.
Áí äåí åéóÜãåôå êáìßá åíôïëÞ, ôï &man.lpc.8; ìðáßíåé óå êáôÜóôáóç
áëëçëåðßäñáóçò (interactive), üðïõ ìðïñåßôå íá ðëçêôñïëïãåßôå åíôïëÝò
ìÝ÷ñé íá äþóåôå exit,
quit, Þ end-of-file.ÅíáëëáêôéêÝò Ëýóåéò ãéá ôïí ÓôÜíôáñ SpoolerÁí Ý÷åôå ìåëåôÞóåé ðéóôÜ üëï ôï êåöÜëáéï ìÝ÷ñé åäþ, èá Ý÷åôå ìÜèåé
ó÷åäüí ôá ðÜíôá ó÷åôéêÜ ìå ôï óýóôçìá ðáñï÷Ýôåõóçò
LPD ðïõ äéáôßèåôáé ìå ôï &os;. Èá Ý÷åôå
êáôáíïÞóåé êáé ðïëëÝò áðü ôéò åëëåßøåéò ôïõ, ðïõ öõóéêÜ ãåííïýí ôï
åñþôçìá: Ðïéá Üëëá óõóôÞìáôá ðáñï÷Ýôåõóçò (ðïõ íá ëåéôïõñãïýí
óôï &os;) õðÜñ÷ïõí äéáèÝóéìá;LPRng
- LPRng
-
- Ôï LPRng, ôï ïðïßï óêüðéìá
+ Ôï LPRngLPRng, ôï ïðïßï óêüðéìá
óçìáßíåé LPR: the Next Generation (ç Åðüìåíç
ÃåíéÜ) åßíáé ìéá áðü ôçí áñ÷Þ õëïðïßçóç ôïõ PLP.
Ï Patrick Powell êáé ï Justin Mason (êýñéïò óõíôçñçôÞò ôïõ PLP)
óõíåñãÜóôçêáí ãéá íá öôéÜîïõí ôï
LPRng. Ç êýñéá ôïðïèåóßá ôïõ
LPRng åßíáé ç .CUPS
- CUPS
-
- Ôï CUPS, Þ áëëéþò Common UNIX
+ Ôï CUPSCUPS, Þ áëëéþò Common UNIX
Printing System, ðáñÝ÷åé ìéá öïñçôÞ ðëáôöüñìá åêôõðþóåùí ãéá
ëåéôïõñãéêÜ óõóôÞìáôá âáóéóìÝíá óôï &unix;. Áíáðôý÷èçêå áðü ôçí
Easy Software Products ãéá íá ðñïùèÞóåé ìéá óôÜíôáñ ëýóç
åêôõðþóåùí ãéá üëïõò ôïõò ÷ñÞóôåò êáé êáôáóêåõáóôÝò
&unix;.Ôï CUPS ÷ñçóéìïðïéåß ôï ðñùôüêïëëï
Internet Printing Protocol (IPP) ùò âÜóç ôïõ
ãéá ôç äéá÷åßñéóç åñãáóéþí åêôýðùóçò êáé ïõñþí áíáìïíÞò.
Õðïóôçñßæïíôáé åðßóçò, áëëÜ ìå ìåéùìÝíç ëåéôïõñãéêüôçôá, ôá
ðñùôüêïëëá Line Printer Daemon (LPD), Server
Message Block (SMB), êáé AppSocket (ãíùóôü ùò
JetDirect). Ôï CUPS ðñïóèÝôåé äõíáôüôçôåò áíß÷íåõóçò äéêôõáêþí
åêôõðùôþí, åíþ ìÝóù ôùí åðéëïãþí PostScript Printer Description
(PPD) ãßíåôáé åöéêôÞ ç õðïóôÞñéîç
óýã÷ñïíùí åêôõðùôþí óôïí êüóìï ôïõ &unix;.Ç êýñéá ôïðïèåóßá ôïõ CUPS åßíáé ç
.HPLIP
- HPLIP
-
- Ôï HPLIP, Þ Óýóôçìá Áðåéêüíéóçò
+ Ôï HPLIPHPLIP, Þ Óýóôçìá Áðåéêüíéóçò
êáé Åêôýðùóçò ôçò HP ãéá &linux;, åßíáé ìéá óïõßôá åöáñìïãþí
ãéá óõóêåõÝò ôçò HP, ðïõ õðïóôçñßæåé ëåéôïõñãßåò üðùò ç åêôýðùóç,
ç óÜñùóç êáé ç áðïóôïëÞ / ëÞøç öáî. Ç óïõßôá áõôÞ ÷ñçóéìïðïéåß
ôï CUPS ùò backend ãéá êÜðïéåò áðü ôéò
ëåéôïõñãßåò åêôýðùóçò ðïõ ðáñÝ÷åé.Ç êýñéá äéêôõáêÞ ôïðïèåóßá ôçò åöáñìïãÞò
HPLIP åßíáé .Åíôïðéóìüò ÂëáâþíÌåôÜ ôçí åêôÝëåóç ôïõ áðëïý ôåóô ìå ôï &man.lptest.1;, áíôß ôçò
êáíïíéêÞò åêôýðùóçò, ìðïñåß íá Ý÷åôå ëÜâåé ùò áðïôÝëåóìá ìßá áðü ôéò
áêüëïõèåò êáôáóôÜóåéò:Ï åêôõðùôÞò êáèõóôÝñçóå íá îåêéíÞóåé Þ äåí åêôýðùóå ïëüêëçñç ôç
óåëßäá.Ï åêôõðùôÞò ôýðùóå ôï ôåóô, áëëÜ äåí îåêßíçóå áìÝóùò. ºóùò
÷ñåéÜóôçêå íá ðéÝóåôå ôï ðëÞêôñï PRINT REMAINING Þ ôï FORM FEED
ôïõ åêôõðùôÞ óáò ãéá íá åìöáíéóôåß ôï åðéèõìçôü áðïôÝëåóìá.ÅÜí åßíáé üíôùò áõôÞ ç ðåñßðôùóç óáò, ï åêôõðùôÞò ðéèáíþò
íá Þôáí óå áíáìïíÞ ãéá íá åîáêñéâþóåé áí õðÞñ÷áí ðñüóèåôá äåäïìÝíá
óôçí åñãáóßá åêôýðùóçò ðñéí îåêéíÞóåé íá åêôõðþíåé ïôéäÞðïôå. Ãéá
íá äéïñèþóåôå ôï ðñüâëçìá, ìðïñåßôå íá èÝóåôå ôï ößëôñï êåéìÝíïõ
íá óôÝëíåé Ýíá ÷áñáêôÞñá FORM FEED (Þ Üëëï êáôÜëëçëï) óôïí
åêôõðùôÞ. Áõôü óõíÞèùò åßíáé áñêåôü ãéá íá ìðïñåßôå íá åêôõðþíåôå
êáôåõèåßáí ïðïéïäÞðïôå êåßìåíï áðïìÝíåé óå áíáìïíÞ óôçí åóùôåñéêÞ
ìíÞìç (buffer) ôïõ åêôõðùôÞ. Åßíáé åðßóçò ÷ñÞóéìï íá ñõèìßæåôå
ôéò åêôõðþóåéò óáò þóôå íá ôåëåéþíïõí ìå ãåìÜôç ôçí ôåëåõôáßá
óåëßäá, þóôå ç åðüìåíç åñãáóßá íá ìçí áñ÷ßæåé áðü ôá ìéóÜ ôïõ
ðñïçãïýìåíïõ öýëëïõ.Ç áêüëïõèç ôñïðïðïßçóç óôï shell script
/usr/local/libexec/if-simple åêôõðþíåé Ýíá
form feed ìåôÜ ôçí áðïóôïëÞ ôçò åñãáóßáò óôïí åêôõðùôÞ:#!/bin/sh
#
# if-simple - Simple text input filter for lpd
# Installed in /usr/local/libexec/if-simple
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Writes a form feed character (\f) after printing job.
/bin/cat && printf "\f" && exit 0
exit 2Ç åêôýðùóç ðáñïõóéÜæåé öáéíüìåíï óêÜëáò (staircase
effect).Óôçí åêôýðùóç óáò öáßíåôáé ôï áêüëïõèï:!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456MS-DOSOS/2ASCIIÃßíáôå Ýíá áêüìá èýìá ôïõ
öáéíïìÝíïõ óêÜëáò, ðïõ ðñïêëÞèçêå áðü
áíôéöáôéêÝò åñìçíåßåò ôùí ÷áñáêôÞñùí ìå ôïõò ïðïßïõò äçëþíåôáé ç
ôñïöïäïóßá íÝáò ãñáììÞò. Ôá ëåéôïõñãéêÜ óõóôÞìáôá ôýðïõ &unix;
÷ñçóéìïðïéïýí Ýíáí ìüíï ÷áñáêôÞñá ASCII ìå êùäéêü 10, ôïí line
feed (ôñïöïäïóßá ãñáììÞò, LF). Ôï &ms-dos;, ôï &os2;, êáé äéÜöïñá
Üëëá, ÷ñçóéìïðïéïýí Ýíá æåýãïò ÷áñáêôÞñùí ASCII êùäéêïý 10
êáé ASCII êùäéêïý 13 (ôïí carriage return Þ
áëëéþò CR). Ðïëëïß åêôõðùôÝò ÷ñçóéìïðïéïýí ôçí óýìâáóç ôïõ
&ms-dos; ãéá ôçí áëëáãÞ ãñáììÞò.¼ôáí åêôõðþíåôå ìå ôï &os;, ôï êåßìåíï óáò áðëÜ ÷ñçóéìïðïéåß
ôïí ÷áñáêôÞñá ôñïöïäïóßáò ãñáììÞò (line feed). Ï åêôõðùôÞò, ìüëéò
áíôéëçöèåß ôïí ÷áñáêôÞñá line feed, ðñïùèåß ôï ÷áñôß êáôÜ ìßá
ãñáììÞ, áëëÜ êñáôÜåé ôçí ßäéá èÝóç ïñéæüíôéá êáèþò êáëåßôáé íá
åêôõðþóåé ôïí åðüìåíï ÷áñáêôÞñá. Óå áõôü ôï óçìåßï
÷ñçóéìïðïéåßôáé ôï CR (carriage return): ìåôáêéíåß äçëáäÞ ôçí
èÝóç åñãáóßáò ãéá ôïí åðüìåíï ÷áñáêôÞñá ðïõ ðñüêåéôáé íá
åêôõðùèåß óôï áñéóôåñü Üêñï ôïõ ÷áñôéïý.Ôï &os; åðéèõìåß ï åêôõðùôÞò íá ìðïñåß íá åíåñãåß ùò
åîÞò:¼ôáí ï åêôõðùôÞò ëáìâÜíåé CRÍá åêôõðþíåé CR¼ôáí ï åêôõðùôÞò ëáìâÜíåé LFÍá åêôõðþíåé CR + LFÕðÜñ÷ïõí äéÜöïñïé ôñüðïé ãéá íá åðéôåõ÷èåß áõôü:×ñçóéìïðïéÞóôå ôá ðëÞêôñá ñýèìéóçò ôïõ åêôõðùôÞ Þ
ôïí ðßíáêá åëÝã÷ïõ ãéá íá áëëÜîåôå ôïí ôñüðï ìå ôïí ïðïßï
åñìçíåýåé áõôïýò ôïõò ÷áñáêôÞñåò ï åêôõðùôÞò óáò.
Óõìâïõëåõôåßôå ôï åã÷åéñßäéï ÷ñÞóçò ôïõ ãéá íá äåßôå ðùò
ìðïñåß íá ãßíåé áõôü.Áí Ý÷åôå êáé Üëëá ëåéôïõñãéêÜ óôï óýóôçìá óáò åêôüò áðü
ôï &os;, ðéèáíüí íá ÷ñåéáóôåß, üôáí ôá ÷ñçóéìïðïéåßôå, íá
åðáíáñõèìßóåôå ôïí åêôõðùôÞ óáò þóôå
íá åñìçíåýåé äéáöïñåôéêÜ ôïõò ÷áñáêôÞñåò CR êáé LF.
Óôçí ðåñßðôùóç áõôÞ, ßóùò åßíáé êáëýôåñï íá ðñïôéìÞóåôå
êÜðïéá áðü ôéò ëýóåéò ðïõ áêïëïõèïýí.Ï ïäçãüò (driver) ôçò óåéñéáêÞò ãñáììÞò ôïõ &os; ìðïñåß íá
ìåôáôñÝðåé áõôüìáôá áðü LF óå CR+LF. ÖõóéêÜ, áõôü äïõëåýåé
ìüíï óå óåéñéáêÝò èýñåò.
Ãéá íá åíåñãïðïéÞóåôå áõôÞ ôçí ëåéôïõñãßá, ÷ñçóéìïðïéÞóôå ôçí
éêáíüôçôá ms# êáé ïñßóôå ôçí êáôÜóôáóç
ëåéôïõñãßáò onlcr óôï áñ÷åßï
/etc/printcap ãéá ôïí åêôõðùôÞ.Óôåßëôå Ýíá
êùäéêü äéáöõãÞò (escape code) óôïí
åêôõðùôÞ þóôå íá ÷åéñßæåôáé ðñïóùñéíÜ ôïõò ÷áñáêôÞñåò LF ìå
äéáöïñåôéêü ôñüðï. Óõìâïõëåõôåßôå ôï åã÷åéñßäéï ÷ñÞóçò ôïõ
åêôõðùôÞ óáò ãéá ôïõò êþäéêåò äéáöõãÞò ðïõ õðïóôçñßæïíôáé.
¼ôáí áíáêáëýøåôå ôïí êáôÜëëçëï, ìåôáôñÝøôå ôï ößëôñï êåéìÝíïõ
þóôå íá óôÝëíåé ðñþôá ôïí êùäéêü, êáé Ýðåéôá ôçí åñãáóßá óôïí
åêôõðùôÞ.PCLÅäþ åßíáé Ýíá ðáñÜäåéãìá ößëôñïõ êåéìÝíïõ ãéá åêôõðùôÝò
ðïõ êáôáëáâáßíïõí ôïõò êùäéêïýò äéáöõãÞò PCL ôçò
Hewlett-Packard. Áõôü ôï ößëôñï êÜíåé ôïí åêôõðùôÞ íá
÷åéñßæåôáé ôïõò ÷áñáêôÞñåò LF ùò LF êáé CR. ¸ðåéôá áðïóôÝëëåé
ôçí åñãáóßá, óôÝëíïíôáò óôï ôÝëïò ôçò Ýíá ÷áñáêôÞñá áëëáãÞò
óåëßäáò (form feed) þóôå íá ãßíåé óùóôÞ åîáãùãÞ ôçò ôåëåõôáßáò
óåëßäáò. Ôï ößëôñï áõôü èá ðñÝðåé íá äïõëåýåé ìå ó÷åäüí
üëïõò ôïõò åêôõðùôÝò ôçò Hewlett Packard.#!/bin/sh
#
# hpif - Simple text input filter for lpd for HP-PCL based printers
# Installed in /usr/local/libexec/hpif
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Tells printer to treat LF as CR+LF. Ejects the page when done.
printf "\033&k2G" && cat && printf "\033&l0H" && exit 0
exit 2Åäþ åßíáé Ýíá ðáñÜäåéãìá ãéá ôï
/etc/printcap åíüò õðïëïãéóôÞ ìå üíïìá
orchid. ¸÷åé Ýíá ìüíï åêôõðùôÞ óôçí ðñþôç
ðáñÜëëçëç èýñá ôïõ, Ýíá Hewlett Packard LaserJet 3Si ìå üíïìá
teak. ×ñçóéìïðïéåß ôï ðáñáðÜíù script ùò
ößëôñï êåéìÝíïõ:#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:Åêôõðþíåôáé ç ìßá ãñáììÞ ðÜíù óôçí Üëëç.Ï åêôõðùôÞò äåí ðñïùèåß êáèüëïõ ôï ÷áñôß êáé üëåò ïé ãñáììÝò
êåéìÝíïõ ôõðþíïíôáé ç ìßá ðÜíù áðü ôçí Üëëç, óå ìßá ãñáììÞ.Áõôü ôï ðñüâëçìá åßíáé ôï áíôßóôñïöï ôïõ
öáéíüìåíïõ óêÜëáò, ðïõ ðåñéãñÜøáìå ðñïçãïõìÝíùò, êáé åßíáé ðïëý
óðÜíéï. Óå êÜðïéï óçìåßï, ïé ÷áñáêôÞñåò LF ðïõ ÷ñçóéìïðïéåß ôï
&os; ãéá íá ôåñìáôßóåé ôçí ãñáììÞ, åñìçíåýïíôáé ùò ÷áñáêôÞñåò CR
ïé ïðïßïé åðéóôñÝöïõí ôçí êåöáëÞ óôï áñéóôåñü Üêñï ôïõ ÷áñôéïý,
áëëÜ äß÷ùò íá ðñïùèÞóïõí ôï ÷áñôß ìßá ãñáììÞ ðñïò ôá êÜôù.×ñçóéìïðïéÞóôå ôïõò äéáêüðôåò ñõèìßóåùí ôïõ åêôõðùôÞ Þ ôïí
ðßíáêá åëÝã÷ïõ ãéá íá èÝóåôå ôéò áêüëïõèåò åðéëïãÝò ãéá ôá LF êáé
CR characters:Ï åêôõðùôÞò ëáìâÜíåéÏ åêôõðùôÞò ôõðþíåéCRCRLFCR + LFÏ åêôõðùôÞò äåí åêôõðþíåé (÷Üíåé) êÜðïéïõò ÷áñáêôÞñåò.Ï åêôõðùôÞò, åíþ åßíáé óå ëåéôïõñãßá åêôýðùóçò, äåí åêôõðþíåé
êÜðïéïõò ÷áñáêôÞñåò óå üëåò ôéò ãñáììÝò. Ôï ðñüâëçìá ðéèáíþò íá
ãßíåôáé åíôïíüôåñï êáèþò ç åêôýðùóç åîåëßóóåôáé, ÷Üíïíôáò áêüìç
ðåñéóóüôåñïõò ÷áñáêôÞñåò.Ôï ðñüâëçìá åßíáé ðùò ï åêôõðùôÞò, êáèþò åêôõðþíåé, äåí
ðñïëáâáßíåé íá áêïëïõèÞóåé ôçí ôá÷ýôçôá ìå ôçí ïðïßá ï
õðïëïãéóôÞò óôÝëíåé äåäïìÝíá ìÝóù ôçò óåéñéáêÞò äéáóýíäåóçò (áõôü
ôï ðñüâëçìá äåí ðñÝðåé êáíïíéêÜ íá óõìâáßíåé óå åêôõðùôÝò
óõíäåìÝíïõò óå ðáñÜëëçëåò èýñåò). ÕðÜñ÷ïõí äýï ôñüðïé ãéá íá
îåðåñáóôåß áõôü ôï ðñüâëçìá:ÅÜí ï åêôõðùôÞò õðïóôçñßæåé Ýëåã÷ï ñïÞò XON/XOFF, ñõèìßóôå
ôï &os; íá ôïí ÷ñçóéìïðïéÞóåé ïñßæïíôáò ôçí êáôÜóôáóç
ëåéôïõñãßáò ixon ìå ôçí éêáíüôçôá
ms#.ÅÜí ï åêôõðùôÞò õðïóôçñßæåé Ýëåã÷ï ñïÞò ôýðïõ Request to
Send / Clear to Send (hardware handshake, ãíùóôü êáé ìå ôçí
ïíïìáóßá RTS/CTS), ðñÝðåé íá ïñéóôåß ç
êáôÜóôáóç ëåéôïõñãßáò crtscts óôçí
éêáíüôçôá ms#. Âåâáéùèåßôå ðùò ôï êáëþäéï
ðïõ óõíäÝåé ôïí åêôõðùôÞ ìå ôïí õðïëïãéóôÞ åßíáé óùóôÜ
öôéáãìÝíï ãéá ÷ñÞóç áõôïý ôïõ åëÝã÷ïõ ñïÞò.Ï åêôõðùôÞò ôõðþíåé óêïõðßäéá.Ï åêôõðùôÞò ôýðùóå êÜôé ðïõ áðïêáëïýìå ôõ÷áßá óêïõðßäéá,
åííïþíôáò ïôéäÞðïôå åêôüò ôïõ åðéèõìçôïý êåéìÝíïõ.Áõôü åßíáé óõíÞèùò Ýíá áêüìá óýìðôùìá ëáíèáóìÝíùí ðáñáìÝôñùí
óåéñéáêÞò åðéêïéíùíßáò ìå ôïí åêôõðùôÞ. ÅëÝãîôå îáíÜ ôçí ôéìÞ bps
rate óôçí éêáíüôçôá br, êáé ôçí ñýèìéóç parity
óôçí éêáíüôçôá ms#. Âåâáéùèåßôå ðùò ï
åêôõðùôÞò ÷ñçóéìïðïéåß ôéò ßäéåò ñõèìßóåéò ðïõ Ý÷ïõí êáèïñéóôåß
óôï áñ÷åßï /etc/printcap.Äåí óõíÝâç ôßðïôå, ï åêôõðùôÞò äåí îåêßíçóå êáí.Áí äåí óõíÝâç ôßðïôå, ôï ðñüâëçìá ðéèáíüí íá ïöåßëåôáé
óôï &os; êáé ü÷é óôï hardware. ÐñïóèÝóôå ôçí éêáíüôçôá áñ÷åßïõ
êáôáãñáöÞò (log file, lf) óôï áñ÷åßï
/etc/printcap, óôçí êáôá÷þñéóç ôïõ åêôõðùôÞ
ðïõ Ý÷åé ôï ðñüâëçìá. Ãéá ðáñÜäåéãìá, åäþ åßíáé ç êáôá÷þñéóç ãéá
ôïí rattan, ìå ôçí éêáíüôçôá
lf:rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:\
:lf=/var/log/rattan.log¸ðåéôá, ðñïóðáèÞóôå íá îáíáåêôõðþóåôå. ÅëÝãîôå ôï áñ÷åßï
êáôáãñáöÞò (log) (óôï ðáñÜäåéãìá ìáò,
/var/log/rattan.log) ãéá íá âñåßôå ðéèáíÝò
áíáöïñÝò óöáëìÜôùí. Ìå âÜóç ôá ìçíýìáôá ðïõ âëÝðåôå, ðñïóðáèÞóôå
íá äéïñèþóåôå ôï ðñüâëçìá.Áí äåí êáèïñßóåôå ôçí éêáíüôçôá lf, ôï
LPD ÷ñçóéìïðïéåß áðü ðñïåðéëïãÞ ôï
/dev/console.
diff --git a/es_ES.ISO8859-1/books/handbook/mail/chapter.xml b/es_ES.ISO8859-1/books/handbook/mail/chapter.xml
index 24959b566d..10a3d5f76c 100755
--- a/es_ES.ISO8859-1/books/handbook/mail/chapter.xml
+++ b/es_ES.ISO8859-1/books/handbook/mail/chapter.xml
@@ -1,2568 +1,2567 @@
BillLloydEscrito por JimMockReescrito por Correo ElectrónicoSinopsisemailcorreo electónicoEl Correo Electrónico, o email,
es una de las formas de comunicación más usadas hoy en
dia.
Este capítulo es una introducción básica de
cómo poner en marcha un servidor de correo en FreeBSD, aunque
no es una guía completa y se han omitido muchos conceptos
importantes. Si se necesita información exhaustiva sobre el
tema puede recurrirse a los libros listados en .Después de leer este capítulo usted sabrá:Qué software está involucrado en el envío y
recepción de correo electrónico.Dónde se encuentran en FreeBSD los ficheros
básicos de configuración de
sendmail.Cómo bloquear a los spammers y evitar
el uso no autorizado de su servidor de correo.Cómo instalar y configurar agentes de transferencia de
correo (MTA) en su sistema, para reemplazar
sendmail.Cómo resolver problemas comunes en servidores de
correo.Cómo usar SMTP con UUCP.Cómo usar correo con una conexión dialup.Cómo configurar SMTP con autentificación para
más seguridad.Antes de leer este capítulo debería usted:Configurar apropiadamente su conexión de red
().Configurar apropiadamente la información de DNS de su
servidor de correo ().Saber como instalar software adicional ().Utilización del correo electrónicoPOPIMAPDNSExisten varios elementos relacionados con el intercambio de correo
electrónico. A saber:
El agente de usuario (Mail User Agent o
MUA),
El agente de transporte de correo (Mail
Transport Agent o MTA),
El DNS,
Las carpetas de correo (Mailboxes),
y por supuesto,
la máquina servidora de correo (mail
host).El Agente de UsuarioEntre las opciones más conocidas tenemos:
mutt,
pine, elm,
y mail, junto con programas con interfaz
gráfica del estilo de balsa o
xfmail por nombrar unos pocos.
También existen lectores de correo basados en navegadores web.
Los programas de correo basados en navegadores web
actúan de pasarela para las transacciones de correo
electrónico, entregando dichas transacciones al
servidor de correo
local, llamando a uno de los agentes
de transporte de correo disponibles en la máquina local,
o entregando dichas transacciones a un agente de transporte
remoto utilizando el protocolo TCP.Agente de Transporte de Correotransportesendmailtransportepostfixtransporteqmailtransporteexim&os; viene con sendmail por defecto,
pero también se soportan otros dæmones, entre los cuales
se encuentran:exim;postfix;qmail.El agente de transporte de correo normalmente posee dos
funcionalidades, por un lado se responsabiliza de la recepción
y por otro se encarga de entregar el correo de salida.
No es responsable de la recolección
automática de correo mediante la utilización de
protocolos como POP o IMAP,
ni se utiliza para que el usuario pueda acceder a las
carpetas de correo locales. Para realizar estas otras tareas,
se necesitan dæmons
adicionales. Versiones antiguas de sendmail
poseen varios problemas de seguridad que pueden facilitar a un
atacante el acceso local o remoto a la máquina
que ejecuta sendmail.
Para evitar dichos problemas de seguridad se recomienda
utilizar una versión actualizada de
sendmail.
Tiene más opciones a la hora de elegir
MTA en los Ports de
&os;.Correo electrónico y DNSEl Sistema de Nombres de Dominio (en inglés DNS) y su
correspondiente dæmon (llamado named)
constituyen una parte fundamental del procedimiento
de entrega de correo electrónico. Para entregar el correo
electrónico al destinatario adecuado el dæmon
servidor de correo busca el sitio remoto dentro del sistema de
DNS.registro MXEl DNS es la entidad responsable de asociar
nombres con direcciones IP, pero además se encarga de
almacenar información específica relacionada con la
entrega de correo mediante registros de tipo MX. Los registros MX
(Mail eXchanger) especifican qué máquina o
máquinas están encargadas de recibir correo
electrónico para un determinado nombre de dominio. En caso
de no existir ningún registro MX para el dominio del
destinatario, se busca información almacenada
en registros de tipo A para enviar el correo al destino final.Se pueden consultar los registros MX para cualquier dominio
utilizando el comando &man.host.1;, como se puede observar en el
siguiente ejemplo:&prompt.user; host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgRecepción de correocorreorecepciónLa recepción de correo electrónico para su dominio
se realiza mediante lo que se conoce como la máquina de
correo (mail host). Ésta máquina recoge todo el correo
dirigido a su dominio y lo almacena en mbox
(el método por defecto para el almacenamiento de correo) o en
formato Maildir, dependiendo de la configuración de la
máquina. Una vez que el correo ha sido almacenado
con éxito se puede leer en local utilizando aplicaciones como
&man.mail.1; o como mutt, o de forma remota
mediante un conjunto de protocolos tales como
POP o IMAP. Esto significa que
si usted va a leer el correo de forma local no necesita instalar
ningún servidor de POP o
IMAP.Acceso a carpetas de correo remotas mediante
POP e IMAPPOPIMAPPara poder acceder a carpetas de correo de forma remota se
necesita tener acceso a un servidor de POP o
IMAP. Éstos protocolos permiten a los
usuarios conectarse a sus carpetas de correo desde ubicaciones
remotas de una forma sencilla. Aunque ambos, POP
y IMAP, permiten este acceso remoto
IMAP ofrece algunas ventajas añadidas,
algunas de las cuales son:El acceso mediante IMAP permite almacenar
los correos en el servidor remoto sin necesidad de extraerlos
y tener que almacenarlos en local.IMAP soporta actualizaciones concurrentes.IMAP resulta ser extremadamente
útil bajo enlaces de baja velocidad puesto que permite
a los usuarios recuperar la estructura de los mensajes sin
necesidad de bajarse todo el contenido. Además puede
realizar tareas tales como búsquedas directas en el
servidor con el fin de minimizar la utilización
de la red.Para instalar un servidor de POP o de
IMAP se deben dar los siguientes pasos:Seleccionar el servidor IMAP o
POP que mejor cumpla a sus necesidades.
Los siguientes servidores POP e
IMAP son bien conocidos y son firmes
candidatos para ello:qpopper;teapop;imap-uw;courier-imap;Instalar el dæmon POP o
IMAP de su elección desde
el árbol de ports.Modifique donde sea necesario
/etc/inetd.conf para que el servidor
POP o IMAP
se ejecute automáticamente. Tenga en cuenta que tanto POP
como IMAP transmiten información,
en especial el usuario y la contraseña, en texto plano.
Eso significa que si se desea seguridad en la transmisión
de la información a través de la red se deben
considerar mecanismos adicionales como por ejemplo el
encapsulado de la sesión mediante &man.ssh.1;.
El encapsulado de sesiones se explica en
.Acceso a carpetas de correo localesLas carpetas de correo pueden abrirse de forma local utilizando
un agente de correo de usuario (MUA)
en el servidor donde reside la carpeta. Se suelen usar los
programas mutt or &man.mail.1;.El Servidor de Correo (Mail Host)servidor de correoEl servidor de correo es el nombre que se usa para identificar a
la máquina responsable de la entrega y
recepción de correo electrónico dentro de una
organización. Ésta máquina puede recibir correo
de varios usuarios dentro de su dominio.ChristopherShumwayContribuido por Configuración de sendmailsendmail&man.sendmail.8; es el agente de transporte de correo (MTA) por
defecto de FreeBSD.
La responsabilidad de sendmail consiste en
aceptar correo de agentes de correo de usuario (MUA)
y en entregar dichos correos al agente de transporte de correo
apropiado, según se especifique en su archivo de
configuración. Sendmail
también acepta conexiones de red provinientes de otros agentes
de transporte y puede depositar el correo recibido en carpetas locales o
o entregarlo a otros programas.sendmail utiliza los siguientes ficheros
de configuración:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertableFilenameFunction/etc/mail/accessBase de datos de accesos de sendmail/etc/mail/aliasesCarpeta de alias/etc/mail/local-host-namesListados de máquinas para las que
sendmailacepta correo/etc/mail/mailer.confConfiguración del programa de correo/etc/mail/mailertableTabla de entregas de correo/etc/mail/sendmail.cfArchivo de configuración principal de
sendmail/etc/mail/virtusertableUsuarios virtuales y tablas de dominio/etc/mail/accessLa base de datos de accesos define qué máquinas o
direcciones IP pueden acceder al servidor de correo y quée clase
de acceso tienen permitido. Las máquinas se listan junto con
las opciones , ,
o simplemente junto con un mensaje de error
que se entrega a la rutina de gestión de excepciones de
sendmail.
Las máquinas que se listan junto con la opción
, que es el valor por defecto, tienen permiso
para enviar correo a la máquina servidora siempre y cuando la
dirección de correo de destino sea la máquina servidora
de correo. Las máquinas listadas junto con la opción
tienen el acceso prohibido a
conexiones de correo electrónico con el servidor. Por
último las máquinas que poseen la etiqueta
para sus nombres tienen permitido enviar correo
para cualquier destino a través de la máquina
servidora de correo.Configuración de la base de datos de acceso de sendmailcyberspammer.com 550 We don't accept mail from spammers
FUENTE.DE.CORREO.INDISCRIMINADO@ 550 We don't accept mail from spammers
otra.fuente.de.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYEn el ejemplo se pueden observar cinco entradas. Los generadores de
correo que coinciden con la parte izquierda de la tabla se ven afectados
por la parte acción especificada en la parte derecha.
Los primeros dos ejemplos emiten un código de error para la
rutina de excepciones de sendmail.
El mensaje de error se transmite a la máquina remota cuando
se recibe un correo que coincide con la parte izquierda de la tabla.
La siguiente entrada rechaza correo de una determinada máquina
de internet, otra.fuente.de.spam.
La siguiente entrada acepta conexiones de correo de la máquina
okay.cyberspammer.com, lo cual es
más exacto que la línea de arriba de
cyberspammer.com. Las coincidencias
más completas tienen precedencia sobre las menos
específicas. La última entrada permite actuar como
relay o pasarela de correo electrónico para aquellas
máquinas que posean una dirección IP que comience por
128.32. Éstas máquinas podrían
enviar correo destinado a otros servidores de correo utilizando el
nuestro.Cuando se actualiza este fichero se debe ejecutar
make dentro de /etc/mail/
para que se actualice la base de datos./etc/mail/aliasesLa base de datos de alias contiene una lista de directorios virtuales
que son traducidas a otros usuarios, ficheros, programas o incluso otros
alias.
A continuación se muestran unos pocos ejemplos de la
sintáxis que se puede utilizar
dentro del fichero /etc/mail/aliases:Mail Aliasesroot: usuariolocal
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"El formato del fichero es sencillo; el nombre de la carpeta de
correo que aparece a la izquierda
de los dos puntos se traduce al/los destinos de la derecha.
El primer ejemplo simplemente traduce la carpeta
root
a la carpeta usuariolocal, la cual se examina de
nuevo utilizando la misma base de datos de alias, y si no existe
ninguna otra coincidencia el mensaje se entrega
al usuario local usuariolocal.
En el ejemplo siguiente se muestra una lista de correo.
Todo correo que se envía a la carpeta ftp-bugs se traduce en un envío para
tres carpetas locales diferentes: joe,
eric y paul.
Es importante señalar que
también se pueden especificar carpetas remotas mediante la forma
usuario@ejemplo.com. El siguiente ejemplo muestra
la escritura del correo a un fichero, en este caso en
/dev/null. El último ejemplo muestra el
envió de correo a un programa; en este caso el mensaje de
correo se escribe en la entrada estándar del programa
/usr/local/bin/procmail utilizando una
tubería (o pipe) de &unix;.Cuando se actualiza este fichero se debe ejecutar
make dentro de /etc/mail/
para actualizar la base de datos./etc/mail/local-host-namesEste archivo es una lista de nombres de máquinas que
&man.sendmail.8; acepta como nombres locales.
Se suele utilizar para escribir aquellos dominios o máquinas
de los cuales sendmail va a recibir correo.
Por ejemplo, si nuestro servidor de correo
va a aceptar correo proveniente del dominio ejemplo.com y también de la
máquina mail.ejemplo.com nuestro
local-host-names
debería ser algo así:ejemplo.com
mail.ejemplo.comCuando se actualiza este fichero &man.sendmail.8; necesita ser
reiniciado para que tenga en cuenta los cambios./etc/mail/sendmail.cfArchivo de configuración principal de
sendmail, controla el comportamiento global de
sendmail, incluyendo cualquier tarea
desde la reescritura de direcciones de correo electrónico
hasta la devolución de mensajes de error a los servidores
de correo remotos. Es evidente que con un abanico tan diverso el
fichero de configuración
acaba por ser bastante complejo y sus detalles quedan fuera de los
objetivos de esta sección. Afortunadamente este
fichero raras veces necesita ser modificado, al menos en lo que
respecta a servidores de correo estándar.
El fichero de configuración principal de
sendmail se puede construir a partir de
&man.m4.1;, es decir, macros que se utilizan para definir
características y comportamientos específicos
de sendmail. Se ruega al lector consultar
/usr/src/contrib/sendmail/cf/README para obtener
más detalles acerca de las distintas macros que
se pueden utilizar.Cuando se realizan cambios a este fichero
sendmail debe ser reiniciado para que los
cambios surtan efecto./etc/mail/virtusertableEl fichero virtusertable asocia direcciones de
correo pertenecientes a dominios y carpetas virtuales con carpetas
reales. Estas carpetas pueden ser locales, remotas, alias
definidos en /etc/mail/aliases o incluso ficheros.Ejemplo de asociación de correo de dominio virtualroot@ejemplo.com root
postmaster@ejemplo.com postmaster@noc.ejemplo.net
@ejemplo.com joeEn el ejemplo superior se observa una asociación para el
dominio ejemplo.com.
Este fichero se procesa de arriba a abajo buscando la primera
coincidencia. La primera entrada asocia
root@ejemplo.com con la carpeta de correo local denominada
root. La siguiente entrada asocia
postmaster@ejemplo.com con la carpeta
postmaster situada en la máquina
noc.ejemplo.net. Por último, si
no se ha encontrado ninguna coincidencia para
ejemplo.com se le asigna la
última asociación, la cual asocia cualquier mensaje
de correo proveniente de
ejemplo.com con la carpeta de
correo local denominada joe.AndrewBoothmanEscrito por GregoryNeil ShapiroInformación obtenida de correos escritos por Sustitución del Agente de Transferencia de Correoemailcambio de mtaComo ya se ha comentado FreeBSD viene con
sendmail ya instalado como agente de transferencia de
correo por defecto. De esta forma sendmail
se encarga de gestionar el correo entrante y saliente.No obstante, debido a distintas razones algunos administradores de
sistemas prefieren utilizar otro MTA.
Estas razones varían desde simplemente querer probar otros
programas de transferencia de correo, hasta la necesidad
de utilizar un determinado programa que hace uso de una función
específica de un agente determinado. Por suerte
cualesquiera que sean estas razones FreeBSD posee un sencillo
procedimiento para sustituir a
sendmail.Instalación de un nuevo MTAExisten una amplia gama de MTA alternativos a
sendmail. Un buen punto de partida es el Sistema de Ports de FreeBSD,
donde se pueden localizar varios. Por supuesto el usuario tiene
libertad para utilizar cualquier MTA, siempre y cuando se pueda
ejecutar en FreeBSD sin problemas.Lo primero es instalar el nuevo MTA. Una vez que está
instalado normalmente se tiene la oportunidad para decidir si
realmente cubre las necesidades y también se tiene la
oportunidad de configurar el nuevo software antes de sustituir a
sendmail. El usuario debe tener en cuenta
que el nuevo MTA puede sobreescribir algunos binarios del sistema como
por ejemplo /usr/bin/sendmail.
En cualquier caso el nuevo software de correo
suele entrar en funcionamiento con una configuración
por defecto.Por favor, recuerde que se recomienda leer la documentación
del MTA seleccionado para obtener más
información.Desactivación de la aplicación
sendmailEl procedimiento utilizado para ejecutar
sendmail cambió significativamente
entre las releases 4.5-RELEASE y 4.6-RELEASE.
De esta forma el procedimiento utilizado para la desactivación
hoy en día es
sutílmente distinto al utilizado en dichas distribuciones.FreeBSD 4.5-STABLE antes de 2002/4/4 y anteriores
(Incluyendo 4.5-RELEASE y anteriores)Introducir:sendmail_enable="NO"dentro de /etc/rc.conf. Esta variable
desactiva el servicio de recepción de correo de
sendmail,
pero salvo que se modifique (ver más adelante) el
fichero /etc/mail/mailer.confsendmail todavía será
la aplicación elegida para enviar correo
electrónico.FreeBSD 4.5-STABLE desde de 2002/4/4
(Incluyendo 4.6-RELEASE y posteriores)Para poder desactivar completamente
sendmail haga lo siguiente:sendmail_enable="NONE"dentro del fichero /etc/rc.conf. Se desactiva el servicio de correo de salida de
sendmail.
Es importanque que se reemplace con un sistema de entrega de
correo alternativo que sea totalmente funcional.
En caso contrario funciones del sistema FreeBSD tales como
&man.periodic.8; no podrán entregar sus resultados por
correo eletrónico tal y como normalmente hacen.
Varias partes del sistema FreeBSD esperan disponer de un sistema
de correo funcional compatible con
sendmail. Si las aplicaciones continúan utilizando los
binarios de sendmail
para realizar envíos de correo después de su
desactivación el correo podría ser almacenado en una
cola inactiva de sendmail, en cuyo caso
nunca se entregaría.Si sólo se quiere desactivar el servicio de correo de
entrada de sendmail, basta con establecer
la variable:sendmail_enable="NO"dentro de /etc/rc.conf.
En &man.rc.sendmail.8; tiene más información sobre
las opciones de arranque de
sendmail.Ejecución del nuevo MTA en el arranqueExisten dos métodos alternativos para ejecutar el nuevo
MTA en el arranque, dependiendo
de la versión de FreeBSD que se esté ejecutando.FreeBSD 4.5-STABLE antes de 2002/4/11
(Incluyendo 4.5-RELEASE y anteriores)Se debe añadir un script en
/usr/local/etc/rc.d/ cuyo nombre termine en
.sh y que sea ejecutable por
root. El script debe aceptar los
parámetros start y
stop. Cuando el sistema &os; se está
inicializando, los scripts de arranque
ejecutarán el siguiente comando:/usr/local/etc/rc.d/supermailer.sh startLa misma orden se puede utilizar también para ejecutar
el servidor de forma manual.
Cuando el sistema se está reiniciando los scripts del sistema
ejecutan los ficheros ubicados en
/usr/local/etc/rc.d/ utilizando la opción
stop, en nuestro caso:/usr/local/etc/rc.d/supermailer.sh stopDicho comando tambíen se puede utilizar para detener el
servidor de correo de forma manual cuando el
sistema FreeBSD se ejecuta con normalidad.FreeBSD 4.5-STABLE después de 2002/4/11
(Incluyendo 4.6-RELEASE y posteriores)Con las últimas versiones de FreeBSD se puede utilizar el
método anterior pero también se puede
especificarmta_start_script="nombre_de_fichero"dentro de /etc/rc.conf, donde
nombre_de_fichero es el nombre de
algún script que se ejecuta en tiempo de arranque
para inicializar el nuevo MTA.Sustitución de sendmail como el
agente de transporte de correo predeterminado.El programa sendmail es tan
imprescindible y es utilizado por tal multitud de programas en
los sistemas &unix; que algunos programas simplemente asumen que
sendmail se encuentra instalado y
configurado dentro del sistema.
Por esta razón varios MTAs alternativos proporcionan su propia
implementación de la interfaz de línea de comandos que
posée sendmail; esto facilita que se
puedan utilizar como sustitutos de sendmail
sin mayores dificultades.Por lo tanto si desea utilizar un agente de transporte de correo
alternativo debe asegurarse de que todo software que intente ejecutar
binario de sendmail estándar,
/usr/bin/sendmail, realmente ejecute el nuevo MTA
en su lugar. Por fortuna FreeBSD proporciona un sistema llamado
&man.mailwrapper.8; que realiza precisamente esta tarea.Cuando sendmail está funcionando
se debe localizar algo como lo siguiente dentro del fichero
/etc/mail/mailer.conf:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailEsto significa que cuando cualquiera de estos comandos
(por ejemplo sendmail mísmamente)
se ejecutan el sistema ejecutará en su lugar una copia del
el sistema ejecuta en su lugar una copia del
mailwrapper denominada sendmail
que chequea el fichero mailer.conf y ejecuta
/usr/libexec/sendmail/sendmail.
Este sistema permite cambiar de una forma sencilla los binarios que
se ejecutan realmente cuando se invocan las funciones de
sendmail.Si se quiere que ejecutar
/usr/local/supermailer/bin/sendmail-compat
en lugar de sendmail se puede cambiar el
fichero /etc/mail/mailer.conf para que contenga
lo siguiente:sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatÚltimos PasosUna vez que todo estáconfigurado a su gusto
hay que matar los procesos de sendmail
que ya no se necesitan y ejecutar los procesos pertenecientes al
nuevo software de MTA, o utilizar la opción más
sencilla: reiniciar la máquina. Reinicar la máquina
nos brinda la oportunidad de comprobar que se ha configurado
correctamente el arranque del sistema para que ejecute de forma
automática el nuevo MTA.Depuración de ProblemasemailDepuración de problemas?Por qué tengo que utilizar el FQDN para las
máquinas de mi organización?Probablemente se deba a que la máquina de correo se
encuentra en un dominio diferente; si por ejemplo la
máquina de correo se encuentra en foo.bar.edu
y se desea alcanzar una máquina llamada
mumble en el dominio
bar.edu se tiene que referir a
ella mediante un nombre de dominio completo
(fully-quailified domain name o FQDN), en éste
caso mumble.bar.edu en lugar de
referirse a ella simplemente como mumble.Tradicionalmente, la referencia incompleta era posible
utilizando resolvers de BSD BINDBIND.
No obstante la versión de BIND
que en la actualidad se ofrece con FreeBSD ya no permite por defecto
el uso de dichas abreviaturas salvo para aquellas máquinas
que pertenecen al dominio al que su sistema pertenezca.
Una máquina como mumble será buscada
como mumble.foo.bar.edu o la
búsqueda será redireccionada al servidor de dominio
raíz del DNS.Esto es distinto a lo que ocurría en versiones anteriores
de BIND, donde la búsqueda se producía a través
de mumble.bar.edu y de
mumble.edu. Se recomienda
consultar a la RFC 1535 para conocer el motivo que se considerara
una práctica errónea o incluso un agujero de
seguridad.Una buena solución a este problema puede ser
incluír la siguiente línea
search foo.bar.edu bar.edu
en lugar de
domain foo.bar.edu
dentro del fichero /etc/resolv.conf.
No obstante se debe asegurar de que el orden de
búsqueda no se expande más allá del
límite entre la administración local y la administración pública,
tal y como se le denomina en la RFC 1535.sendmail dice mail
loops back to myself (el correo vuelve a mis manos)Esta pregunta se responde en las FAQ de
sendmail de la siguiente forma:Estoy obteniendo los siguientes mensajes de error:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
¿Cómo puedo solucionar esto?
Usted ha especificado que el correo para el dominio (por ejemplo,
para el dominio dominio.net) sea reenviado a una máquina determinada
(en este caso relay.dominio.net), para lo que se utiliza un registro
de DNS de tipo MXMX record,
pero la máquina que actúa de relay no se
reconoce a sí misma como perteneciente al dominio dominio.net.
Se debe añadir dominio.net al fichero /etc/mail/local-host-names,
que recibe el nombre de /etc/sendmail.cw en versiones de sendmail previas
a la 8.10. Se puede utilizar la macro FEATURE(use_cw_file) para indicar
dónde se encuentra el fichero local-host-names; también se
puede añadir Cw dominio.net directamente
al fichero /etc/mail/sendmail.cfLas FAQ de sendmail se pueden
encontrar en y son de lectura
obligada si se quiere depurar el comportamiento y la
configuración de sendmail.
?Cómo puedo ejecutar un servidor de correo
utilizando una máquina que se conecta a internet
mediante modem analógico (dial-up) ?Se quiere conectar una máquina FreeBSD dentro de una LAN a
Internet. La máquina FreeBSD será una pasarela de
correo para dicha LAN. La conexión mediante PPPPPP no es
dedicada.Existen al menos dos formas distintas de hacerlo. Una de ellas
consiste en utilizar UUCPUUCP.Otra forma consiste en hacerse con un servidor de internet a
tiempo completo para proporcionar servicios de agente de transporte
secundario para nuestro dominio. Si por ejemplo el dominio de
nuestra compañía es ejemplo.com, nuestro proveedor de acceso
a internet puede instalar lo siguiente en el DNS:ejemplo.com. MX 10 ejemplo.com.
MX 20 ejemplo.net.Nótese que el agente de correo primario es nuestro
dominio, ejemplo.com, y además se encuentra configurado
un agente de transporte secundario en la máquina
ejemplo.net. En este caso sólamente se debe especificar
una máquina como receptor final de correo
(añadiendo Cw ejemplo.com) al fichero
/etc/mail/sendmail.cf de la máquina
example.com)Cuando el sendmail que está enviando
el correo trata de entregar dicho correo primero intentará
conectarse con nosotros (ejemplo.com) utilizando el enlace de
modem. Lo más probable es que la operación termine
después de un tiempo de espera debido a que el enlace modem
esté caído.
La aplicación sendmail
automáticamente entregará el correo al servidor
especificado como agente de transporte de correo secundario
(segundo registro MX)MX record, es decir, entregará el correo a
nuestro proveedor de servicios de internet (ejemplo.net). El sitio MX secundario
tratará de conectarse con nuestra máquina de una forma
periódica con el objeto de entregar el correo a la
máquina que actúa como agente servidor de correo
primario (ejemplo.com).Puede ser de mucha utilidad un script de login
como el que se muestra a continuación:#!/bin/sh
# Ponme en /usr/local/bin/pppmiconexion
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmiconexionSi vamos a crear un script de login separado para
un usuario determinado se puede utilizar
sendmail -qRejemplo.com en lugar del script
anterior. Esto obliga a que se procesen
de forma inmediata todos los correos que se encuentren en la cola de
ejemplo.com.Vamos a dar una vuelta más de tuerca a la
situación:Mensaje robado a la &a.isp;.
> Nosotros proporcionamos servicio de MX secundario a un cliente nuestro.
> El cliente se conecta a nuestro servidor varias veces al día
> de forma automática para recoger sus correos para almacenarlos en
> su servidor MX primario (nosotros no llamamos a su organización
> justo cuando nos llega un correo suyo).
> Nuestro sendmail envía la cola de correos cada 30 minutos. En
> estos momentos nuestro cliente tiene que estar al menos 30 minutos
> conectado para asegurarnos de que todo su correo ha sido enviado al
> servidor MX primario.
>
> ?Existe algún comando que permita indicar a sendmail que
> envíe todos los correos de la cola cuando quiera el cliente?
> El cliente no tiene permisos de superusuario en la máquina que
> alberga nuestro agente de transporte, por supuesto.
En la sección de privacy flags del fichero sendmail.cf
existe una definición como ésta:
Opgoaway,restrictqrun
Basta con eliminar restrictqrun para permitir que usuarios sin permisos de
superusuario arranquen el procesamiento de la cola.
Sería conveniente además que reordenaran los registros MX.
Nosotros somos el primer MX para nuestros clientes.
Además de esto hay que especificar:
# Si somos el mejor MX para una determinada máquina, intenta
# utilizarnos directamente en vez de generar un error de
# configuración local.
OwTrue
en el archivo de configuración de sendmail.
Mediante la configuración anterior,
una organización remota entregará sus correos directamente a
usted, sin necesidad de intentar conectarse primero a través de
la conexión del cliente. La etiqueta "OwTrue" se necesita para evitar
que sendmail genere un mensaje de error.
A continuación ustedes se encargan de entregar el
correo a su(s) respectivo(s) cliente(s) tal como vienen haciendo.
Esta configuración sólo funciona para
máquinas individuales,
de tal forma que se necesita que el cliente especifique su servidor de correo
mediante entradas de tipo A en el DNS. En concreto se necesita una entrada de
tipo A en el DNS para el dominio del cliente (cliente.com).
?Por qué me siguen saliendo mensajes de error
del tipo Relaying Denied cuando se trata
de enviar correo proveniente de otras máquinas?En las instalaciones del sistema FreeBSD por defecto
sendmail se configura para enviar
correo sólamente desde la máquina en la cual
se está ejecutando. Por ejemplo si un servidor
POP está disponible los usuarios
serán capaces de consultar su correo desde la universidad,
el trabajo u otras localizaciones remotas, pero dichos usuarios
podrán enviar correo desde dichas ubicaciones.
Es habitual que unos instantes después del envío
del correo dichos usuarios reciban un mensaje proveniente del
MAILER-DAEMON con un error como
5.7 Relaying Denied.Existen varias formas de solventar este problema. La
más sencilla consiste en escribir la dirección
IP de su proveedor de servicios dentro del fichero
/etc/mail/relay-domains. Una forma
rápida de hacerlo sería:
&prompt.root; echo "un.isp.ficticio.com" > /etc/mail/relay-domainsDespués de crear o editar dicho fichero se debe
reiniciar sendmail. Esto funciona
perfectamente si usted es el administrador del servidor y no
desea enviar correo localmente o si prefiere utilizar un cliente
de correo o cualquier otro sistema en otra máquina distinta
a la que alberga el servidor de correo. Es muy útil sobre
todo cuando sólamente se tienen una o dos direcciones de
correo eletrónico. Si hay en liza un gran número de
direcciones de correo, edite el fichero anterior con su editor de
texto favorito y añada uno a uno los correspondientes
dominios.un.isp.ficticio.com
otro.isp.ficticio.net
y.otro.isp.ficticio.org
www.ejemplo.orgAhora, cualquier correo enviado a través de su sistema
por cualquier máquina que se encuentre en este fichero
(siempre y cuando el usuario tenga una cuenta en nuestro sistema)
podrá ser enviado con éxito.
Es una manera elegante de permitir a los usuarios enviar
correo eletrónico desde nuestro servidor de correo sin
permitir al resto del mundo que haga lo mismo (lo que se conoce
como SPAM).Conceptos AvanzadosLa siguiente sección trata conceptos más
específicos relacionados con la configuración del correo
y la implantación del servicio de correo en una
organización.Configuración BásicaemailconfigurationPor defecto debemos ser capaces de enviar correo a máquinas
externas, siempre y cuando tengamos nuestro
/etc/resolv.conf bien configurado o ejecutemos nuestro
propio servidor de nombres. Si queremos que el correo para nuestra
máquina se nos entregue en nuestra propia máquina,
es decir, a nuestro propio sendmail,
en lugar de tener que ir a recogerlo al servidor de correo de
nuestra organización, podemos usar dos métodos:Ejecutar nuestro propio servidor de nombres y comprar nuestro
propio dominio. Por ejemplo FreeBSD.orgConseguir la entrega de correo directa hacia nuestra
máquina. Esto se logra entregando el correo a la
dirección IP que se asocia al nombre de DNS de nuestra
máquina. Por ejemplo ejemplo.FreeBSD.org.SMTPIndependientemente de la opción elegida para tener entrega
directa en nuestra máquina debemos poseer una dirección
IP estática (a diferencia de las direcciones dinámicas,
que son utilizadas en configuraciones donde se utiliza el protocolo
PPP). Si nos encontramos detrás de un cortafuegos se debe
permitir el tráfico SMTP (puerto 25) hacia nuestra
máquina. Si además queremos recibir correo directamente
en nuestra máquina se deben cumplir los siguientes
requisitos:
- MX record
- Asegurar que el registro MX de menor numeración de
+ Asegurar que el registro MXMX record de menor numeración de
nuestro DNS apunta a la dirección IP de nuestra
máquina.Asegurar que no existe ninguna entrada MX en nuestro DNS para
nuestra máquina. Es decir, mientras que el registro MX del
punto anterior hace referencia al dominio administrativo que
gestionamos con nuestro servidor de nombres, en este apartado se
quiere destacar que no debe existir ningún registro MX
específico para el nombre concreto de nuestra
máquina.Cumpliendo las dos puntualizaciones anteriores podemos recibir
correo electrónico mediante entrega directa en nuestra
máquina.Por ejemplo:&prompt.root; hostname
ejemplo.FreeBSD.org
&prompt.root; host ejemplo.FreeBSD.org
ejemplo.FreeBSD.org has address 204.216.27.XXSi se observa esta configuración la entrega directa de
correo para su_login@ejemplo.FreeBSD.org debería
funcionar sin problemas (suponiendo que
sendmail se está ejecutando correctamente en
ejemplo.FreeBSD.org).Si en lugar de lo anterior ve algo como esto:&prompt.root; host ejemplo.FreeBSD.org
ejemplo.FreeBSD.org has address 204.216.27.XX
ejemplo.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.orgTodos los correos enviados a nuestro host (ejemplo.FreeBSD.org) serán recogidos por
hub bajo el mismo nombre de usuario en lugar de ser
enviados directamente a nuestra máquina.La información anterior se gestiona utilizando el servidor
de DNS. El registro de DNS que transporta la información
de encaminamiento de correo eletrónico es el
registro Mail eXchange.
Si no existe ningún registro MX el correo se entregará
a la dirección IP que se obtenga de resolver el nombre
de dominio que se encuentre a continuación del nombre de
usuario en la dirección de correo de destino (esto es,
(después de la @).En un cierto momento la entrada MX para freefall.FreeBSD.org tenía este
aspecto:freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.comComo se puede observar, freefall tenía
varias entradas MX. El número de MX más bajo es la
máquina que recibe correo directamente si se encuentra
disponible; si dicha máquina no está accesible por
algún motivo las otras máquinas (llamadas también
MXs de backup) aceptarán los mensajes
temporalmente, y los transmitirán de nuevo cuando alguna
máquina perteneciente a alguna entrada MX de numeración
más baja se encuentre disponible y el proceso se
repetirá hasta que se alcance la máquina que tenga
el registro MX más bajo.Las organizaciones donde residen los servidores (MX) de backup
deberían poseer acceso a internet de una forma independiente
para minimizar el riesgo de pérdida de conectividad. Nuestro
ISP o cualquier otra organización independiente debería
poder proporcionarnos este servicio sin problemas.Correo para Nuestro DominioPara establecer un mailhost (servidor de correo)
en nuestra organización debemos ser capaces de redirigir el
correo destinado a cualquier máquina de nuestra
organización hacia nuestro servidor de correo.
Básicamente queremos reclamar como nuestro
cualquier correo destinado a cualquier máquina de nuestro
dominio (en este caso *.FreeBSD.org) y desviarlo a nuestro servidor
de tal forma que los usuario lean su correo
utilizando nuestra máquina servidora.DNSPara hacer las cosas lo más sencillas posible se debe crear
una cuenta de usuario (con el mismo
nombre de usuario) tanto en el servidor de correo como en
la máquina del usuario o destinatario final del correo.
&man.adduser.8; puede usarse para ello.El servidor de correo debe funcionar como el agente de transporte
predeterminado para todas las máquinas de nuestra
organización. Esto se realiza mediante la siguiente
configuración del DNS:ejemplo.FreeBSD.org A 204.216.27.XX ; Workstation
MX 10 hub.FreeBSD.org ; MailhostEsta configuración redirigirá el correo para
cualquier estación de trabajo hacia nuestro servidor de correo
sin que tengan importancia las direcciones IP asignadas mediante
el registro de tipo A. Recordemos que el correo siempre
se encamina utilizando primero los registros de tipo MX.Normalmente no podremos realizar esta configuración salvo
que estemos ejecutando nuestro propio servidor de DNS
para nuestro dominio. Si no es el caso y no es posible ejecutar
nuestro propio servidor de DNS debemos comunicarnos con nuestro
proveedor de servicios o con quien pueda proporcionarnos servicio de
DNS y solicitarle una modificación como la anterior.Si además ofrecemos servicios de alojamiento virtual de
correo la siguiente información puede resultar útil.
Asumiremos que tenemos un cliente con su propio dominio, por ejemplo
cliente1.org y queremos que todo el
correo enviado a cliente1.org sea redirigido hasta nuestro
servidor de correo, mail.nuestroservidor.com. La entrada necesaria
en el DNS debería ser la siguiente:cliente1.org MX 10 mail.nuestroservidor.comNo necesitamos ningún registro de tipo
A para cliente1.org si sólamente queremos
gestionar el correo para ese dominio.
Tenga en cuenta que un ping a cliente1.org no funcionará a menos
que exista un registro de tipo A para dicha máquina.
La última cosa que debemos realizar en nuestro servidor de
correo es comunicar a sendmail para
qué dominios y/o máquinas debe aceptar correo. Existen
varias formas en las que se puede realizar esta tarea.
Cualquiera de las siguiente funcionará:Añadir las máquinas deseadas al fichero
/etc/mail/local-host-names si se está
utlizando la macro
FEATURE(use_cw_file). Si se está
utilizando una versión de
sendmail anterior a la 8.10 el fichero que se debe
utilizar es /etc/sendmail.cw.Añadir la línea
Cwsu.servidor.com al fichero
/etc/sendmail.cf o
/etc/mail/sendmail.cf si se está
utilizando una versión de
sendmail posterior a la versión 8.10.SMTP con UUCPLa configuración de sendmail que
se proporciona con la distribución de FreeBSD está
diseñada para organizaciones que se conectan directamente a
internet. Las organizaciones que deseén enviar y recibir
sus correos utilizando UUCP deben instalar otro fichero de
configuración para
sendmail.El ajuste de forma manual del archivo
/etc/mail/sendmail.cf es un tema para expertos.
La versión 8 de sendmail genera
ficheros de configuración mediante el preprocesador
&man.m4.1;, gracias al que las opciones de configuración se
pueden escribir utilizando un nivel de abstracción mayor.
Los archivos de configuración de &man.m4.1; se pueden encontrar
en /usr/src/usr.sbin/sendmail/cf.Si no se instaló el sistema base con todas las fuentes el
conjunto de ficheros de configuración de
sendmail se puede obtener a partir de un paquete de
fuentes determinado. Suponiendo que tengamos el CDROM con el
código fuente de FreeBSD montado se puede ejecutar:&prompt.root; cd /cdrom/src
&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmailEste comando extrae sólamente unos pocos cientos de
kilobytes. El fichero README que hay en
el directorio cf puede servirle como
una introducción básica a la configuración
mediante &man.m4.1;.La mejor forma de soportar la entrega de correo mediante UUCP es
utilizando la característica mailertable.
Esta característica crea una base de datos que
sendmail utiliza para tomar decisiones de
encaminamiento.En primer lugar creamon el fichero .mc.
El directorio /usr/src/usr.sbin/sendmail/cf/cf
alberga varios ejemplos del mismo. Suponiendo que nuestro fichero
configuración se llama
foo.mc para convertir dicho archivo en un fichero
sendmail.cf válido basta con ejecutar lo
siguiente:&prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfUn fichero .mc suele tener este aspecto:VERSIONID(`Su número de versión') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', su.relay.uucp)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw alias.de.su.servidor
Cw nombredesunodouucp.UUCPLas líneas que contienen
accept_unresolvable_domains,
nocanonify, y
confDONT_PROBE_INTERFACES prohíben la
utilización del DNS durante la entrega de correo.
La cláusula UUCP_RELAY es necesaria
para soportar entrega mediante UUCP. Lo único que hay que hacer
es escribir un nombre de máquina en ese punto.
Dicha máquina debe ser capaz de gestionar las direcciones del
pseudo-dominio .UUCP; en la mayoría de los casos se escribe en
este punto el nombre de la máquina perteneciente al proveedor de
servicios que hace de relay.Una vez que tenemos esto configurado se necesita un fichero
/etc/mail/mailertable. Si solamente tenemos un
enlace con el exterior, que usamos para todos nuestro correos,
basta una configuración como la que se muestra a
continuación:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:su.relay.uucpUn ejemplo más complejo puede parecerse al siguiente:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:Las primeras tres líneas se encargan de manejar casos
especiales en los que el correo dirigido directamente al dominio no se
envía a la ruta por defecto sino a algún vecino UUCP para
acortar el número de saltos involucrados en la entrega de dichos
correos.
La siguiente línea gestiona el correo para el dominio ethernet
local, el cual puede ser entregado utilizando SMTP. Finalmente los
vecinos UUCP se mencionan en la notación de pseudo-dominio
.UUCP para permitir que un
vecino UUCP receptor
de correo pueda sobreescribir las reglas por defecto. La última
línea siempre es un punto; se asocia con cualquier otra cosa que
no ha sido tratada en reglas anteriores y donde se realiza entrega UUCP
a un vecino UUCP que sirve como pasarela de correo universal para todo
el mundo. Todos los nombres de máquinas bajo la clave
uucp-dom: deben ser vecinos UUCP válidos, lo
cual se puede verificar utilizando el comando
uuname.Recuerde que este fichero debe convertirse en una base de datos DBM
antes de que usarse. El comando que se utiliza para realizar esta tarea
se suele especificar como un comentario al principio del fichero
mailertable. Cada vez que se modifique el fichero
mailertable se debe ejecutar dicho comando.Un consejo final: si dudamos sobre una determinada ruta de
encaminamiento de correo se puede ejecutar
sendmail con el parámetro .
Este parámetro ejecuta sendmail
en modo prueba de direcciones;
simplemente basta con escribir 3,0 seguido por la
dirección de correo de la que queremos comprobar su correcto
encaminamiento. La última línea nos dice el agente de
correo interno que se utiliza, la máquina de destino con que el
agente será invocado y la dirección (posiblemente
traducida) de correo. Se puede abandonar este modo de funcionamiento
escribiendo CtrlD.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 prueba@ejemplo.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ su.relay.uucp $: prueba < @ ejemplo . com . >
>^DBillMoranEscrito por Configuración para sólamente enviar correoExisten multitud de casos en los que puede bastarnos con enviar
nuestro correo a través de una pasarela o relay. He aquí
algunos de ellos:Nuestra computadora es una máquina de escritorio, pero
queremos ser capaces de utilizar programas como &man.send-pr.1;.
Para ello se debería utilizar el relay de nuestro ISP.Nuestra computadora es un servidor que no gestiona correo de
forma local, si no que necesita pasar todos los correos recibidos
una pasarela que se encarga de su procesamiento y entrega
final.Casi cualquier MTA es capaz de actuar como
pasarela o relay. Por desgracia configurar un MTA para que sólo
gestione correo saliente puede ser muy complicado. Programas del estilo
de sendmail y
postfix son demasiado pesados para realizar
sólamente esta tarea.Si además estamos utilizando un servicio de acceso a internet
típico nuestro contrato puede prohibir explícitamente
la ejecución de un servidor de correo (o los puertos pueden estar
filtrados).La forma más sencilla de utilizar un servicio de pasarela es
mediante la instalación del port
mail/ssmtp. Basta con ejecutar el
siguiente comando como root:&prompt.root; cd /usr/ports/mail/ssmtp
&prompt.root; make install replace cleanUna vez que ha sido instalado mail/ssmtp podemos configurarlo
mediante un fichero de sólo cuatro líneas ubicado en
/usr/local/etc/ssmtp/ssmtp.conf:root=sudireccionrealdecorreo@ejemplo.com
mailhub=mail.ejemplo.com
rewriteDomain=ejemplo.com
hostname=_HOSTNAME_Debemos asegurarnos de que se utiliza una dirección de correo
real para root. Se debe introducir nuestra
pasarela de correo en lugar de
mail.ejemplo.com (algunos ISP llaman a la pasarela
servidor de correo saliente o simplemente
servidor SMTP).Debemos asegurarnos de que se desactiva
sendmail mediante
sendmail_enable="NONE"
en /etc/rc.conf.mail/ssmtp acepta algunas otras
opciones. Consulte el fichero de ejemplo que encontrará en
/usr/local/etc/ssmtp; consulte también
la página de manual de ssmtp,
en la que hay más ejemplos e información al respecto.
Ejecutar ssmtp de esta forma permite que
cualquier software de nuestra computadora que necesite enviar correo
funcione sin problemas y a la vez poder cumplir con las normas
estipuladas en el contrato con nuestro ISP. Al mismo tiempo evitamos el
uso de nuestro servidor de correo por parte de
spammers.Utilización del correo con una conexión mediante módem analógico (dial-up)Si se dispone de una dirección IP privada no es necesario
realizar ningún ajuste a partir de la configuración por
defecto. Basta con asignar como nombre de nuestra máquina el
nombre que tenemos registrado en el DNS y
sendmail se encargará del resto.Por otra parte si utilizamos una conexión temporal a internet
mediante PPP y se nos asigna una dirección IP
de forma dinámica, lo más normal es tener nuestras
carpetas de correo alojadas en el servidor de correo de
nuestro proveedor de servicios. Supongamos que el dominio de nuestro
ISP es ejemplo.net y que nuestro nombre de usuario
es usuario; además hemos llamado a nuestra
user, además, hemos llamado a nuestra
máquina bsd.home, y nuestro ISP nos ha comunicado que
debemos utilizar como pasarela la máquina relay.ejemplo.net.Para recuperar correo de nuestra carpeta de correo se debe instalar
un agente de recuperación automática de correo.
fetchmail es una buena elección puesto
que permite utilizar varios protocolos. Este programa está
disponible como un paquete y también desde la colección de
ports (mail/fetchmail). Normalmente nuestro
ISP proporciona POP
POP. Si utilizamos ppp a nivel de
usuario se puede recuperar automáticamente el correo cuando se
establece la conexión ppp utilizando
el fichero /etc/ppp/ppp.linkup:MYADDR:
!bg su user -c fetchmailSi utilizamos sendmail (como se muestra
más adelante) para entregar correo a cuentas remotas
probablemente queramos que sendmail
procese nuestras colas de correo tan pronto como nuestra conexión
de internet se establezca. Para ello escriba el siguiente comando tras
el comando de fetchmail que hemos escrito antes en
el fichero /etc/ppp/ppp.linkup: !bg su user -c "sendmail -q"Asumiendo que tenemos una cuenta para el usuario
usuario en bsd.home. En el directorio home
del usuario usuario en la máquina
bsd.home debemos crear un fichero
.fetchmailrc con el siguiente contenido:poll ejemplo.net protocol pop3 fetchall pass Secr3ToEste fichero debe tener permisos de lectura sólo para el
propio dueño ya que contiene la contraseña de acceso
a nuestra cuenta de POP en nuestro ISP (
Secr3To).Para poder enviar correo con la cabecera from:
correcta, debemos decir a
sendmail que utilice
usuario@ejemplo.net en vez de
usuario@bsd.home. Siguiendo con nuestro ejemplo
es necesario decirle a sendmail que
envíe todo el correo a través de la pasarela
relay.ejemplo.net.El siguiente fichero de configuración
.mc debe ser suficiente para cumplir
con las anteriores tareas:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`ejemplo.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.ejemplo.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnlEn la sección anterior se explica cómo convertir este
fichero .mc en un fichero de
configuración para sendmail,
sendmail.cf. No debemos olvidar
reiniciar sendmail
después de mofidificar el fichero
sendmail.cf.JamesGorhamEscrito por Autentificación utilizando SMTPLa autentificación mediante SMTP puede proporcionarnos
diversas ventajas. Añade una capa adicional de seguridad a
a sendmail y además proporciona a los
usuarios móviles (usuarios que cambian de máquina)
la posibilidad de mantener el mismo servidor de correo sin necesidad de
reconfigurar sus agentes de usuario de correo cada vez que se
trasladan.Instalar security/cyrus-sasl
desde los ports. Se puede encontrar dicho port en
security/cyrus-sasl.
security/cyrus-sasl posée
varias opciones en tiempo de compilación pero para el
método en particular que se va a explicar en esta
sección basta con asegurarse de seleccionar
la opción .Después de instalar security/cyrus-sasl,
edite /usr/local/lib/sasl/Sendmail.conf
(o créelo si no existe) y añada la siguiente
línea:pwcheck_method: passwdEste método activa la autentificación de
sendmail contra nuestra base de
datos de FreeBSD, passwd.
Esto nos evita el problema de tener que crear un nuevo conjunto de
usuarios y contraseñas para cada usuario que necesite
validarse mediante SMTP y además nos permite mantener el
mismo login y contraseña que los usuarios
utilizan para acceder a sus cuentas para el acceso al correo
electrónico.Editar/etc/make.conf y añadir las
siguientes líneas:SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsaslEstas líneas proporcionan a
sendmail las opciones de configuración necesarias
para enlazar con cyrus-sasl en
tiempo de compilación. Debemos asegurarnos de que cyrus-sasl ha sido instalado correctamente
recompilar sendmail.Recompile sendmail utilizando el
siguiente comando:&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir
&prompt.root; make obj
&prompt.root; make
&prompt.root; make installLa compilación de sendmail no
debería dar problemas siempre y cuando
/usr/src no haya cambiado sustancialmente y
siempre y cuando las bibliotecas compartidas
necesarias se encuentren disponibles.Una vez que sendmail se ha compilado
y reinstalado con correctamente debemos editar el fichero
/etc/mail/freebsd.mc (o el fichero que se
utilice como .mc de referencia. Hay
administradores que escogen utilizar la salida de &man.hostname.1;
como el nombre del fichero .mc que se utiliza
para la configuración de sendmail por motivos de
uniformidad ). Añada las siguientes líneas a dicho
fichero:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnlEstas opciones configuran los distintos métodos
de que dispone sendmail para validar a
los usuarios de correo. Si se desea utilizar otro método
distinto a pwcheck por favor consulte
la documentación.Para terminar ejecutamos &man.make.1; mientras nos encontramos
dentro de /etc/mail.
Este comando trata el fichero .mc y crea el
fichero .cf correspondiente
(con el mismo nombre que el anterior pero terminado en .cf).
A continuación se utiliza el comando
make install restart, el cual copia el fichero .cf
recién generado al fichero
sendmail.cf y a continuación reinicia
sendmail.
Para más información sobre este proceso puede
consultarse el contenido de
/etc/mail/Makefile.Si todo lo anteriormente comentado ha funcionado correctamente
deberíamos ser capaces de introducir la información de
nuestro login en nuestro cliente de correo y enviar un
mensaje de prueba. Para investigar más a fondo estos temas se
puede habilitar la opción de
sendmail al valor 13 y observar detenidamente
el archivo /var/log/maillog en busca de posibles
mensajes de error.Puede ser necesario añadir las siguientes líneas al
fichero /etc/rc.conf de modo que el servicio
explicado en esta sección se encuentre disponible
automáticamente desde el arranque:sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"Esto permite que la inicialización de SMTP_AUTH se produzca durante el arranque del sistema.Para más información por favor visite la página
autentificación SMTP
de sendmail·MarcSilverEscrito por Agente de Correo de UsuarioAgentes de Correo de UsuarioUn agente de correo de usuario (MUA en
inglés Mail User Agent) es una aplicación
que se utiliza para enviar y recibir correo. Coomo el correo
electrónico está en constante evolución
y cada vez se vuelve más complejo y con más opciones,
los MUAs son cada vez más complejos y potentes.
Esto permite a los usuarios disponer de mayor flexibilidad y
funcionalidad. &os; admite para muchísimos
agentes de correo de usuario, todos los cuales pueden instalarse
desde los
Ports. Los usuarios pueden elegir entre
lientes de correo con interfaz gráfica como
evolution o balsa
o entre clientes basados en consola como
mutt, pine
o mail, e incluso utilizar interfaces web.mail&man.mail.1; es el agente de correo de usuario
(MUA) que viene por defecto con &os;. Es un MUA de
consola que ofrece toda la funcionalidad básica
necesaria para enviar y recibir correos, aunque resulta limitado
limitado en su capacidad para manejar adjuntos y sólamente
soporta carpetas de correo locales.Aunque mail no soporta de forma nativa la
interacción con servidores de correo mediante
POP o
IMAP estas carpetas de correo remotas pueden
descargarse a un fichero
mbox local utilizando una aplicación de
descarga como fetchmail, que se describe
en este mismo capítulo en ().Para enviar y recibir correo eletrónico basta con
ejecutar el comando
mail. Veamos un ejemplo:&prompt.user; mailEl contenido de la carpeta de usuario en el directorio
/var/mail se leen
automáticamente.
Si la carpeta se encuentra vacía la aplicación termina
su ejecución con un mensaje que indica que no ha podido
encontrar correo. Una vez que la carpeta ha sido
leída la interfaz de la aplicación entra en
funcionamiento y se muestra por pantalla un listado de los
mensajes recuperados. Los mensajes se numeran
automáticamente y pueden leerse como se observa en el
siguiente ejemplo:Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"Los mensajes se pueden leer utilizando el comando
t de mail escribiendo a continuación
el número del mensaje que queremos leer.
En este ejemplo vamos a leer el primer correo:&prompt.user; t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.Como podemos observar en el ejemplo anterior el comando
t muestra el contenido del correo
eletrónico con todas sus cabeceras. Para mostrar el
listado con todos los correos de nuevo, se debe utilizar la tecla
h.Si el correo eletrónico requiere una contestación
se puede utilizar la aplicación
mail para responder utilizando la tecla
R o r. La tecla
R indica a
mail que conteste sólo al origen (remitente)
del correo, mientras que la tecla r tanto
al remitente a los otros usuarios receptores del mensaje original.
Además ambos comandos se pueden ejecutar escribiendo a
continuación el número que identifica al mensaje que
se quiere responder. Tras esto la respuesta puede redactarse
, y se debe indicar el final del mensaje mediante un punto
(.) a continuación de un salto de
línea. Veamos un ejemplo:&prompt.user; R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOTPara enviar nuevos correos eletrónicos se debe utilizar
la tecla m seguida de la dirección de
de correo del destinatario. Se pueden especificar varios
destinatarios de correo separando cada dirección de correo
con una coma ( , ).
El asunto del mensaje de correo se puede escribir a
continuación seguido por el cuerpo del mensaje. El final del
mensaje se especifica como en el caso anterior, utilizando un
. tras un saldo de línea y pulsando la
tecla enter.&prompt.user; mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOTMientras nos encontremos dentro de la mail
el comando ? puede utilizarse para mostrar la
ayuda en línea aunque la principal fuente de información
detallda sobre esta aplicación es la página man
&man.mail.1;.Tal y como se ha dicho ya la aplicación &man.mail.1;
no fue diseñada originalmente para gestionar adjuntos, por
lo que su forma de gestionarlos resulta ser extremadamente mala.
MUA más modernos como
mutt gestionan los adjuntos de correo
de una forma mucho más inteligente. Si se desea utilizar el
comando mail el port converters/mpack le puede resultar
bastante útil.muttmutt es un agente de correo de usuario
pequeño pero muy potente, funcional y con excelentes
características; veamos algunas:La habilidad de agrupar mensajes en hilos.Soporte de PGP para cifradon y firma digital de correos
eletrónicos.Soporte de tipos MIME.Soporte de gestión de correo en formato Maildir.Altamente configurable por el usuario.Toda estas características hacen de
mutt uno de los agentes de correo
más avanzados del momento.
Consulte para más
información sobre mutt.La versión estable de mutt se
puede instalar usando el port mail/mutt mientras que la versión de
desarrollo está en mail/mutt-devel. Una vez que se ha
instalado el port, mutt puede ejecutarse
mediante el siguiente comando:&prompt.user; muttmutt lee automáticamente el
contenido de la carpeta de correo del usuario dentro del directorio
/var/mail y muestra por pantalla
su contenido. Si el directorio está vacío
mutt
quedará a la espera de los comandos que pueda pasarle el
usuario. En el ejemplo que se muestra a continuación
puede verse cómo mutt facilita
la lista de mensajes al usuario:Para leer un correo basta con seleccionarlo usando las teclas de cursor, y
presionando la tecla Enter. Veamos cómo
muestra mutt un correo
electrónico:Al igual que ocurre con &man.mail.1;
mutt permite que los usuarios contesten al
remitente de cualquier mensaje así como a los demás
receptores. Para responder sólo al remitente se puede utilizar
la tecla r. Para responder a un grupo, es decir a
todos los receptores y al remitente del correo
eletrónico pulse g.mutt tiene &man.vi.1;
como editor por defecto para crear y responder a los mensajes de
correo eletrónico. Si prefiere emplear otro editor
modifique el valor de la variable editor en
.muttrc.Para escribir un mensaje de correo presione la tecla
m. Después de escribir el asunto
mutt ejecuta &man.vi.1; y el cuerpo del
mensaje puede escribirse. Una vez escrito el correo
salga de vi y mutt se
ejecutará de nuevo mostrando por pantalla un resumen del
correo que está a punto de ser enviado. Para enviar ese
correo hay que pulsar y. Este es un ejemplo de
uno de esos resúmenes:mutt también contiene una amplia
ayuda a la que se accede desde la mayoría de los
menús pulsando la tecla ?. La primera
lína de la pantalla también muestra las teclas de
método abreviado cuando es posible utilizarlas.pinepine es una aplicación de correo
enfocada a los usuarios principiantes o inexpertos pero
también incluye algunas características avanzadas.Se han descubierto en pine varias
vulnerabilidades que pueden explotarse de forma remota.
Esas vulnerabilidades permiten que atacantes remotos puedan ejecutar
código como si fueran usuarios locales del sistema
mediante el envío de correos con un formato determinado.
Todos los problemas conocidos se han
resuelto pero el código de
pine está escrito de una forma insegura y el
Security Officer de &os; opina que es probable que
existan todavía vulnerabilidades sin descubrir. Si decide
instalar pine
debe asumir los riesgos que ello puede implicar.La versión actual de pine se
puede instalar utilizando el port mail/pine4. Una vez que se ha instalado
pine se puede ejecutar mediante el siguiente comando:&prompt.user; pineLa primera vez que se ejecuta pine se
muestra un mensaje de bienvenida con una pequeña
introducción a la herramienta junto con una petición del
equipo de desarrollo de pine en la que se
solicita que se envíe un correo de forma anónima
un correo de forma anónima para que puedan hacerse una idea s
de cuántos usuarios están utilizando
la herramienta. Para enviar dicho correo hay que presionar la tecla
Enter, o bien puede pulsar
la tecla E para salir de la ventana de bienvenida
sin enviar dicho correo. A continuación se muestra un ejemplo
de la página de bienvenida:Los usuarios disponen de un menú principal, que puede
navegarse utilizando las flechas. Este menú proporciona
atajos para la composición de nuevos correos, para navegar a
través de las carpetas de correo, e incluso para
la administración de la libreta de direcciones. Justo debajo
del menú principal, se muestran las teclas de método
abreviado (atajos) que pueden utilizarse en cada momento.El directorio por defecto que pine
intenta abrir es inbox. Para ver el índice de
todos los mensajes recibidos pulse la tecla
I o seleccione la opción de menú
denominada
MESSAGE INDEX como se muestra a
continuación:El índice muestra los mensajes en el directorio actual y
puede navegarse en él utilizando las teclas
del cursor. El mensaje seleccionado se puede leer presionando la
tecla Enter.En la captura de pantalla que se muestra a continuación se
muestra un mensaje de ejemplo. Las teclas de atajo se muestran
como referencia en la parte baja de la pantalla. Un ejemplo de dichas
teclas de método abreviado es la tecla r que
permite responder al mensaje que se muestra en dicho momento.La contestación a un mensaje de correo eletrónico
en pine se realiza mediante el editor
pico, que se instala por defecto junto con
pine. pico
permite navegar de forma sencilla por los distintos mensajes de
correo y es ligeramente más sencilla de manejar
que &man.vi.1;, sobre todo para los usuarios noveles. Una vez que se
ha escrito la réplica al correo se envía pulsando
la tecla
CtrlX. pine pedirá
confirmación antes de enviarlo.pine puede configurarse utilizando la
entrada SETUP del menú principal.
Se ruega consultar
para obtener más información.MarcSilverEscrito por Manejo de fetchmailUso de fetchmailfetchmail es un cliente de
IMAP y POP que permite a
los usuarios descargar automáticamente el correo de cuentas
remotas en servidores
IMAP y POP y almacenarlos
en carpetas de correo locales; una vez en local, se puede acceder a los
correos de una forma más sencilla y utilizando multitud de
programas cliente.
fetchmail se puede instalar a partir del port
mail/fetchmail. Veamos algunas de
sus características más útiles:Suporte de POP3,
APOP, KPOP,
IMAP, ETRN y
ODMR.Puede reenviar correo utilizando SMTP lo que
permite que las reglas de filtrado, reenvío y
aliasing funcionen correctamente.Se puede ejecutar en modo dæmon comprobar
periódicamente el correo entrante.Puede recuperar correo de múltiples carpetas y reenviarlos, en función de la configuración establecida,
a varios usuarios locales.Queda fuera del objetivo de este documento explicar todas las
características de
fetchmail pero algunas de ellas se exponen a
ontinuación.
fetchmail usa un fichero de
configuración denominado
.fetchmailrc. Este fichero incluye
información sobre el servidor de correo remoto y los datos
necesarios para poder hacer login en él. Debido a la naturaleza
sensible de la información que se almacena en dicho fichero
se recomienda modificar los permisos para que sea de sólo
sea legible por su propietario. Lo conseguirá mediante el
siguiente comando:&prompt.user; chmod 600 .fetchmailrcEl siguiente ejemplo muestra un fichero de configuración
.fetchmailrc.
Este ejemplo sirve para automatizar la descarga del correo de un
determinado usuario mediante POP. El fichero de
configuración hace que
fetchmail se conecte a ejemplo.com utilizando como nombre de usuario
joesoap y como contraseña
XXX. En el ejemplo se asume que el usuario
joesoap también es un usuario válido
en el sistema local.poll ejemplo.com protocol pop3 username "joesoap" password "XXX"El siguiente ejemplo permite a fetchmail
conectarse a múltiples servidores
POP e IMAP y redirige los correos
a diferentes usuarios locales en función
de la configuración establecida:poll ejemplo.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll ejemplo.net proto imap:
user "john", with password "XXXXX", is "myth" here;fetchmail se puede ejecutar en modo
dæmon mediante el parámetro seguido
seguido por un intervalo de tiempo (expresado en segundos)
que indica cada cuánto tiempo debe
fetchmail interrogar a los distintos
servidores listados en .fetchmailrc.
El siguiente ejemplo hace que
fetchmail interroge cada 60 segundos:&prompt.user; fetchmail -d 60Se puede encontrar más información sobre
fetchmail en .MarcSilverEscrito por Uso de procmailUso de procmailprocmail es una aplicación
increíblemente potente que se utiliza para filtrar el correo de
entrada.
Permite a los usuarios definir reglas que se asocian
con correos entrantes y que realizan funciones concretas, como
reencaminar el correo a carpetas o direciones alternativas.
procmail se puede instalar utilizando el port
mail/procmail. Una vez instalado,
se puede integrar directamente en la mayoría de los
MTAs; por favor, consulte
la documentación del MTA que utilice para
saber más sobre la integración entre ambos.
Por otro lado procmail se puede integrar
con el MTA que prefiera de una forma sencilla
añadiendo la siguiente línea al
fichero .forward dentro del directorio home del
usuario que desée usar
procmail:"|exec /usr/local/bin/procmail || exit 75"La siguiente sección muestra algunas reglas básicas de
procmail, junto con una breve
descripción de las acciones que realizan.
Estas reglas, y muchas otras se deben insertar dentro del fichero
.procmailrc ubicado en el directorio home del
usuario.En la página man de procmailex se explica
la mayoría de estas reglas.Reenvío de todo el correo proveniente de
usuario@ejemplo.com hacia la
dirección externa correodefiar@ejemplo.com::0
* ^From.*usuario@ejemplo.com
! correodefiar@ejemplo.comReenvío de todos los correos que ocupen menos de 1000 bytes
a la dirección corredefiar@ejemplo2.com::0
* < 1000
! correodefiar@ejemplo2.comEnvío de todos los correos dirigidos a
opcional@ejemplo.com
hacia una carpeta de correo llamada opcional::0
* ^TOopcional@ejemplo.com
opcionalEnvío de todos los correos con un asunto que contenga la
palabra Spam al
dispositivo /dev/null::0
^Subject:.*Spam
/dev/nullUna útil receta para examinar mensajes de correo provenientes
de listas de distribución de
&os;.org y poner cada mensaje en
el directorio apropiado en función del origen del mensaje::0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}
diff --git a/fr_FR.ISO8859-1/books/handbook/boot/chapter.xml b/fr_FR.ISO8859-1/books/handbook/boot/chapter.xml
index 68cd24ce49..1c9b73cd72 100644
--- a/fr_FR.ISO8859-1/books/handbook/boot/chapter.xml
+++ b/fr_FR.ISO8859-1/books/handbook/boot/chapter.xml
@@ -1,942 +1,938 @@
Processus de démarrage de FreeBSD
&trans.a.fonvieille;
SynopsisdémarragebootstrapL'action de démarrer un ordinateur et de
charger le système d'exploitation est désignée
sous le nom de “processus de bootstrap”, ou simplement
démarrage. Le processus de démarrage de FreeBSD
fournit une grande flexibilité en adaptant ce qui se passe
quand vous démarrez le système, vous permettant
de choisir parmi les différents systèmes
d'exploitation installés sur l'ordinateur, ou même
parmi les différentes versions du même système
d'exploitation ou du noyau installées.Ce chapitre détaille les options de configuration que
vous pouvez paramétrer et comment personnaliser le processus
de démarrage de FreeBSD. Cela inclut tout ce qui se produit
jusqu'au démarrage du noyau FreeBSD, la détection des
périphériques, et le démarrage d'&man.init.8;.
Si vous n'êtes pas tout à fait sûr du moment auquel
cela arrive, cela se produit à l'instant où la
couleur du texte passe d'un blanc lumineux au gris.Après la lecture de ce chapitre, vous
connaîtrez:Quels sont les composants du système de
démarrage de FreeBSD, et comment ils agissent les uns
sur les autres.Les options que vous pouvez passer aux composants du
système de démarrage de FreeBSD pour
contrôler le processus.Les bases du système &man.device.hints.5;.x86 seulementCe chapitre ne décrit que le processus de
démarrage de FreeBSD pour les systèmes Intel x86.Le problème du démarrageAllumer un ordinateur et démarrer le système
d'exploitation pose un intéressant dilemme. Par
définition, l'ordinateur ne sait rien faire jusqu'à
ce que le système d'exploitation soit lancé.
Ceci inclut l'exécution des programmes à partir du disque.
Donc si l'ordinateur ne peut pas exécuter de programme
à partir du disque sans le système d'exploitation, et
que les programmes du système d'exploitation sont sur
le disque, comment le système d'exploitation est-il
démarré?On peut faire le parallèle avec un
événement du livre Les aventures du Baron
Munchausen. Le personnage tombe dans une bouche
d'égout avec une partie du corps hors de la bouche, et il s'en
sort en attrapant les fixations de ses bottes
(“bootstraps”), et en se soulevant ainsi. Dans les
premiers jours de l'informatique le terme
bootstrap fut appliqué au mécanisme
utilisé pour charger le système d'exploitation, terme qui a
été
raccourci en “booting” (que l'on traduit par démarrage
en Français).BIOSBasic Input/Output SystemBIOSSur l'architecture x86 c'est le BIOS (“Basic
Input/Output System”) qui est responsable du chargement du
système d'exploitation. Pour effectuer cela, le BIOS recherche
sur le disque dur le “Master Boot Record” - Secteur
Principal de Démarrage (MBR), qui doit être
placé à un endroit bien précis sur le disque.
Le BIOS dispose de
suffisamment de connaissances pour charger et exécuter
le MBR, et suppose que le MBR peut alors effectuer le reste des
tâches impliquées dans le chargement du système
d'exploitation, probablement avec l'aide du BIOS.Master Boot Record (MBR)Gestionnaire de démarrageBoot LoaderPour parler du code contenu dans le MBR, on fait souvent
référence aux termes de gestionnaire de
démarragegestionnaire
d'amorce, tout particulièrement quand il y a
intéraction avec l'utilisateur. Dans ce cas le code de
ce gestionnaire occupe un espace plus important sur la
première piste du disque ou du
système de fichier du système d'exploitation (le
gestionnaire de démarrage est parfois également
appelé gestionnaire de chargement ou chargeur,
boot loader, sous &os; ce terme est
utilisé pour une étape ultérieur du
démarrage). Parmi les gestionnaire de démarrage
populaire, se trouvent boot0
(également connu sous le nom de Boot
Easy, le gestionnaire de démarrage standard
de &os;), Grub,
GAG, et
LILO (seul
boot0 peut tenir entièrement
dans l'espace du MBR.).Si vous n'avez qu'un seul système d'exploitation
installé sur vos disques alors le MBR PC standard sera suffisant. Ce
MBR recherche la première tranche (“slice”)
amorçable (souvent appelée active) sur le disque, et puis exécute le code sur cette
tranche pour charger le reste du système d'exploitation.
Le MBR installé par &man.fdisk.8; par défaut se
comporte de cette manière. Il est basé sur
/boot/mbr.Si vous avez installé plusieurs systèmes
d'exploitation sur vos disques alors vous pouvez installer un gestionnaire d'amorce
différent, qui permet d'afficher une liste des
différents systèmes d'exploitation, et vous permet de
sélectionner
celui à partir duquel démarrer. Ceci est
abordé dans la sous-section suivante.Le reste du système de démarrage de FreeBSD est
divisé en trois étapes.
La première étape est exécutée
par le MBR, qui en sait juste assez pour mettre l'ordinateur dans
un état spécifique et lancer la deuxième
étape. La seconde étape peut en faire un peu plus, avant de
lancer la troisième étape. La troisième étape
termine la tâche de chargement du système d'exploitation.
La tâche a été séparée en trois
étapes parce que le standard PC
impose des limites sur la taille des programmes qui peuvent
être exécutés aux étapes une et deux.
L'enchaînement des tâches permet à FreeBSD de fournir
un chargeur plus flexible.noyauinitLe noyau est ensuite démarré et commence
à sonder le système à la recherche de
périphériques et les initialise. Une fois le
processus de démarrage du noyau achevé, le noyau
passe la main au processus &man.init.8;, qui alors vérifie
que les disques sont utilisables.
&man.init.8; commence ensuite la configuration des ressources au
niveau utilisateur, monte les systèmes de fichiers,
initialise les cartes réseaux pour communiquer sur le
réseau, et lance tous les processus qui sont habituellement
exécutés au démarrage d'un système
FreeBSD.Le gestionnaire de démarrage et les étapes de
démarrageGestionnaire de
démarrageLe gestionnaire de démarrageMaster Boot Record (MBR)Le code contenu dans le MBR ou gestionnaire de
démarrage ou d'amorce est parfois appelé
étape zéro du processus de
démarrage. Cette section discute de deux gestionnaires
de démarrage précédemment
mentionnés: boot0 et
LILO.Le gestionnaire d'amorce
boot0:Le MBR installé par l'installateur &os; ou par
&man.boot0cfg.8; est basé sur
/boot/boot0.
(boot0 est très simple, puisque le
programme dans le MBR ne peut pas occuper plus
de 446 octets en raison de la
table de partition principale et l'identifiant
0x55AA à la fin du MBR).
Si vous avez installé boot0
et plusieurs systèmes d'exploitation sur vos disques durs alors
vous verrez un affichage semblable à celui-ci au
démarrage:Ecran de boot0F1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2D'autres systèmes d'exploitation, en particulier
&windows;, sont connus pour écraser le MBR existant avec le
leur. Si cela vous arrive, ou que vous désirez remplacer
le MBR existant avec le MBR de FreeBSD alors utilisez la commande
suivante:&prompt.root; fdisk -B -b /boot/boot0 deviceoù device est le
périphérique à partir duquel vous
démarrez, comme ad0 pour le premier
disque IDE, ad2 pour le premier disque
IDE sur le second contrôleur IDE, da0
pour le premier disque SCSI, et ainsi de suite. Ou, si vous
voulez une configuration sur mesure du MBR, employez
&man.boot0cfg.8;.Le gestionnaire de démarrage LILO:Pour installer ce gestionnaire de manière à ce qu'il
amorce également &os;, démarrez tout d'abord Linux et
ajoutez ce qui suit au fichier de configuration
/etc/lilo.conf:other=/dev/hdXY
table=/dev/hdX
loader=/boot/chain.b
label=FreeBSDDans ce qui précède, précisez la
partition primaire et le disque &os; en utilisant les
paramètres propres à Linux, en remplaçant
X avec la lettre correspondant au
disque Linux et Y avec le
numéro de la partition primaire Linux. Si vous
utilisez un disque SCSI, vous changerez
/dev/hd pour quelque chose de
semblable à /dev/sd. La ligne
peut être omise si vous
avez les deux systèmes d'exploitation sur le même disque.
Lancez maintenant la commande /sbin/lilo -v pour
entériner vos modifications; des messages de contrôle
devraient s'afficher, vérifiant ces modifications.Etape une, /boot/boot1, et étape deux,
/boot/boot2Conceptuellement la première et la seconde étapes
font partie du même programme, sur le même emplacement du
disque. Mais en raison de contraintes d'espace elles ont
été divisées en deux, mais vous les installerez
toujours de paire. Elles sont copiées, à partir
du fichier combiné /boot/boot, par
l'installateur ou bsdlabel (voir
plus bas).On les trouve en dehors des systèmes de fichiers,
sur la première piste de la tranche de
démarrage, à partir du premier secteur. C'est
l'endroit où boot0, ou tout autre gestionnaire
de démarrage s'attend à trouver le code à
exécuter pour continuer le processus de démarrage.
Le nombre de secteurs utilisés est facilement
déterminé à partir de la taille du
fichier /boot/boot.boot1 est très simple, puisqu'il est
limité à 512 octets, et en
sait juste assez du
bsdlabel de FreeBSD, qui contient
l'information sur la tranche, pour trouver et lancer
boot2.boot2 est légèrement
plus sophistiqué, et en connaît assez sur le
système de fichiers
de FreeBSD pour y trouver des fichiers, et il peut également
fournir une interface simple pour sélectionner un noyau ou un
chargeur à exécuter.Comme le chargeur est
beaucoup plus sophistiqué, et dispose d'une interface de
configuration du démarrage facile d'emploi,
boot2 l'exécute habituellement, bien que
précédemment, c'est lui qui
lançait directement le noyau.Ecran de boot2>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Si vous avez un jour besoin de remplacer
boot1 et boot2,
utilisez &man.bsdlabel.8;:&prompt.root; bsdlabel -B disksliceoù diskslice est le disque et la
tranche à partir de laquelle vous démarrez, comme
ad0s1 pour la première tranche sur le
premier disque IDE.Mode dangereusement dédiéSi vous utilisez juste le nom du disque, comme
ad0, dans la commande &man.bsdlabel.8;
vous créerez un disque dangereusement dédié,
sans tranches.
Ce n'est presque certainement pas ce que vous voulez faire,
donc vérifiez à deux fois la commande
&man.bsdlabel.8; avant d'appuyer sur
Entrée.Etape trois, /boot/loaderboot-loaderLe chargeur est la dernière étape
du processus de démarrage en trois temps, et il réside sur
le système de fichiers, c'est habituellement le fichier
/boot/loader.Le chargeur a pour objet de fournir une méthode de
configuration conviviale, en utilisant un jeu de commandes faciles
d'emploi, doublé d'un interpréteur plus puissant, avec un
ensemble de commandes plus complexes.Déroulement des opérations du chargeurA l'initialisation, le chargeur recherchera la console et
les disques, et déterminera à partir de quel disque
démarrer. Il positionnera les variables en
conséquence, et un interpréteur sera lancé
pour lequel l'utilisateur pourra passer des commandes par
l'intermédiaire d'une procédure ou de façon
interactive.chargeurconfiguration du chargeurLe chargeur lira ensuite
/boot/loader.rc, qui lui ira lire
dans /boot/defaults/loader.conf
les valeurs par défaut des variables à positionner et dans
/boot/loader.conf les variantes locales de
ces dernières. loader.rc se sert de ces
variables pour charger les modules et le noyau
sélectionnés.Finalement, par défaut, le chargeur attend 10 secondes l'appui
sur une ou plusieurs touches, et démarre le noyau s'il n'est pas
interrompu. S'il est interrompu, une invite est alors affichée
à l'utilisateur, un jeu de commandes simples permet à
l'utilisateur de modifier des variables, charger ou décharger des
modules, et enfin démarrer ou redémarrer.Commandes intégrées au chargeurVoici les commandes du chargeur les plus utilisées.
Pour une information complète sur toutes les commandes
disponibles, veuillez consulter la page &man.loader.8;.autoboot secondesDémarre le noyau si elle n'est pas interrompue
dans le laps de temps donné en secondes. Elle affiche
un compte à rebours, et le délai par défaut
est de 10 secondes.boot
-optionsnom_du_noyauDémarre immédiatement le noyau dont le nom
est indiqué, avec les options données,
s'il y en a.boot-confPasse par la même configuration automatique
des modules basée sur des variables comme ce
qui se produit au démarrage. Cela n'a de sens
que si vous utilisez unload en premier,
et modifiez certaines variables, généralement
kernel.help
sujetAffiche les messages d'aide contenus dans
/boot/loader.help. Si le sujet donné
est index, alors c'est la liste de tous les
sujets existants qui est donnée.include nom_du_fichier
…Traite le fichier dont le nom est donné.
Le fichier est lu, et interprété ligne par ligne.
Une erreur stoppe immédiatement le traitement.load typenom_du_fichierCharge le noyau, le module, ou le fichier du type
donné, dont le nom est passé en
paramètre. Les arguments qui suivent le nom du fichier
sont passés au fichier.ls chemin_d_accèsAffiche la liste des fichiers du répertoire
donné, ou du répertoire racine, si le chemin
d'accès n'est pas précisé.
Si l'option est utilisée, les
tailles des fichiers seront également
listées.lsdev Liste tous les périphériques depuis lesquels
il sera possible de charger des modules. Si l'option
est utilisée, plus de détails
seront donnés.lsmod Affiche la liste des modules chargés.
Si l'option est utilisée, plus de
détails seront donnés.more nom_du_fichierAffiche les fichiers indiqués, avec une pause toutes
LINES lignes.rebootRedémarre immédiatement le
système.set variableset
variable=valuePositionne les variables d'environnement du
chargeur.unloadRetire de la mémoire tous les modules
chargés.Exemples d'utilisation du chargeurVoici quelques exemples pratiques d'utilisation du
chargeur:
- mode mono-utilisateurPour simplement démarrer votre noyau habituel,
- mais en mode mono-utilisateur:
+ mais en mode mono-utilisateur:mode mono-utilisateurboot -sPour décharger votre noyau et modules habituels,
puis charger votre ancien (ou un autre) noyau:
-
- kernel.old
- unloadload kernel.oldVous pouvez utiliser kernel.GENERIC
pour faire référence au noyau
générique du disque d'installation, ou
- kernel.old pour désigner votre noyau
+ kernel.oldkernel.old pour désigner votre noyau
précédent (quand vous avez mis à jour ou
configuré votre propre noyau, par exemple).Utilisez ce qui suit pour charger vos modules
habituels avec un autre noyau:unloadset kernel="kernel.old"boot-confPour charger une procédure de configuration
du noyau (une procédure qui automatise ce que vous faites
normalement avec l'outil de configuration du noyau au
démarrage):load -t userconfig_script /boot/kernel.confInteraction avec le noyau au démarragenoyauinteraction au démarrageUne fois que le noyau est chargé, soit par le
chargeur (habituellement) soit
par boot2 (en court-circuitant
le chargeur), il examine les options de démarrage s'il y en a, et
adapte son comportement en conséquence.Options de démarrage du noyaunoyauoptions de démarrageVoici les options de démarrage les plus courantes:A l'initialisation du noyau, demande quel est le
périphérique où se trouve le système
de fichiers racine.Démarre depuis le CDROM.Exécute UserConfig, l'outil de configuration du
noyau au démarrage.Démarre en mode mono-utilisateur.Donne plus de détails lors du lancement
du noyau.Il existe d'autres options de démarrage, lisez
la page de manuel &man.boot.8; pour plus
d'informations.TomRhodesContribution de “Device Hints”—Paramétrage des
périphériquesdevice.hintsC'est une caractéristique de FreeBSD 5.0 et
des versions suivantes qui n'existe pas dans les versions
précédentes.Lors du démarrage du système, le chargeur
(&man.loader.8;) lira le fichier &man.device.hints.5;. Ce
fichier stocke les informations de démarrage du noyau connues
sous le nom de variables, et parfois appelées “device
hints”. Ces “device hints” sont utilisés
par les pilotes de périphérique pour la configuration
des périphériques.Les “device hints” peuvent être
spécifiés à l'invite du chargeur.
Des variables peuvent être ajoutées en
utilisant la commande set, retirées
avec la commande unset, et affichées
avec la commande show. Les variables
positionnées dans le fichier
/boot/device.hints peuvent être
écrasées à cet endroit. Les “device hints”
entrés au niveau du chargeur ne sont pas permanents et seront
oubliés au prochain redémarrage.Une fois le système démarré, la commande
&man.kenv.1; peut être utilisée pour afficher toutes
les variables.La syntaxe du fichier /boot/device.hints
est d'une variable par ligne, en utilisant le caractère
“#” comme signe de mise en commentaire. Les
lignes sont présentées comme suit:hint.pilote.unité.motclé="valeur"La syntaxe à utiliser avec le chargeur est:set hint.pilote.unité.motclé=valeuroù pilote est le pilote de périphérique,
unité est le numéro de l'unité et
motclé est le mot-clé correspondant à la variable.
Le mot-clé pourra être une des options suivantes:at: spécifie le bus auquel le
périphérique est attaché.port: spécifie l'adresse de départ de
l'E/S à utiliser.irq: spécifie le numéro de la
requête d'interruption à utiliser.drq: spécifie le numéro du canal DMA.maddr: spécifie l'adresse mémoire physique
occupée par le périphérique.flags: fixe les bits des indicateurs pour le
périphérique.disabled: si positionnée à 1
le périphérique est désactivé.Les pilotes de périphérique pourront accepter (ou
nécessiter) plus de variables non listées ici, il est
recommandé de lire leur page de manuel. Pour plus
d'information, consultez les pages de manuel
&man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5;, et
&man.loader.8;.Init: Initialisation de la gestion des processusinitUne fois que le noyau a démarré, il passe le
contrôle au processus utilisateur &man.init.8;,
qui se trouve dans /sbin/init, ou au
programme défini dans la variable d'environnement
init_path du chargeur.Séquence de redémarrage automatiqueLa séquence de redémarrage automatique
vérifie que les systèmes de fichiers
sont cohérents. S'ils ne le sont pas, et que
&man.fsck.8; ne peut pas corriger les
incohérences, &man.init.8; place le
système dans le mode
mono-utilisateur pour que l'administrateur système
règle directement le problème.Mode mono-utilisateurmode mono-utilisateurconsoleCe mode peut être atteint depuis la séquence de redémarrage
automatique, ou quand l'utilisateur démarre avec l'option
ou en positionnant la variable
boot_single du chargeur.On peut également y parvenir en appelant la commande
&man.shutdown.8; sans les options de redémarrage
() ou d'arrêt (),
à partir du mode multi-utilisateur.Si la console système est
positionnée dans le mode insecure dans le
fichier /etc/ttys, alors le système
demande le mot de passe de root avant de
passer en mode mono-utilisateur.Une console non sécurisée dans
/etc/ttys# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecureUne console insecure (non
sécurisée) signifie que vous considérez que la
console n'est pas sécurisée, et vous désirez que
seul quelqu'un connaissant
le mot passe de root puisse utiliser le
mode mono-utilisateur, et cela ne signifie pas que vous utilisez une
console sans sécurité. Donc, si vous voulez de la
sécurité, choisissez insecure,
et non secure.Mode multi-utilisateurmode multi-utilisateurSi &man.init.8; trouve vos systèmes de fichiers
en état de marche, ou dès que l'utilisateur quitte
le mode mono-utilisateur,
le système entre dans le mode multi-utilisateur, dans lequel il
commence la configuration de ses ressources.Configuration des ressources (rc)fichiersLe système de configuration des ressources lit les
valeurs par défaut dans
/etc/defaults/rc.conf, et les valeurs
propres à la machine dans /etc/rc.conf,
puis ensuite monte les systèmes de fichiers
mentionnés dans /etc/fstab,
démarre les services réseau, divers autres
“démons” système, et enfin exécute
les procédures de démarrage des logiciels
installés localement.La page de manuel &man.rc.8; est une bonne
référence au sujet du système de
configuration des ressources, de même que la lecture des
procédures de démarrage elles-mêmes.Séquence d'arrêt du systèmeshutdownLors de l'arrêt manuel du système, via
&man.shutdown.8;, &man.init.8; tentera
d'exécuter la procédure
/etc/rc.shutdown, et ensuite enverra à
tous les processus le signal TERM, suivi
du signal KILL à tous ceux qui ne se
terminent pas à temps.Pour éteindre une machine FreeBSD et cela sur des
architectures ou des systèmes supportant la gestion par
logiciel de l'énergie, utilisez simplement la commande
shutdown -p now pour arrêter et couper
l'alimentation de la machine. Pour juste redémarrer un
système FreeBSD, utilisez shutdown -r now.
Vous devez être super-utilisateur (root)
ou un membre du groupe operator pour
pouvoir exécuter &man.shutdown.8;. Les commandes &man.halt.8;
et &man.reboot.8; peuvent également être
utilisées, veuillez consulter leur page de manuel ainsi
que celle de &man.shutdown.8; pour plus d'informations.La gestion de l'énergie nécessite d'avoir le support
&man.acpi.4; dans son noyau ou chargé en tant que
module.
diff --git a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml
index 1b929066bf..e074f31258 100644
--- a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml
+++ b/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml
@@ -1,2862 +1,2809 @@
JimMockRestructuré, réorganisé, et en partie mis
à jour par JordanHubbardTravail original de Poul-HenningKampJohnPolstraNikClaytonMise à jour de &os;
&trans.a.fonvieille;
Synopsis&os; est en constant développement entre deux
versions.
Certains utilisateurs préfèrent utiliser les
versions publiées officiellement alors que d'autres
voudront rester à jour avec les tous derniers
développements. Mêmes les versions officielles
sont souvent mises à jour avec les correctifs de
problèmes critiques et de sécurité.
Indépendamment de la version utilisée, &os;
fournit tous les outils nécessaires à la mise
à jour de votre système, et permet
également des mises à jour aisées entre
versions.
Ce chapitre vous aidera à
décider si vous voulez suivre les développements, ou vous
en tenir aux versions publiées. Les outils de base pour
le maintien à jour de votre système seront
également présentés.Après la lecture de ce chapitre, vous
connaîtrez:Quels utilitaires peuvent être employés
pour mettre à jour le système et le catalogue
des logiciels portés.Comment maintenir votre système à
jour avec freebsd-update,
CVSup,
CVS, ou
CTM.Comment comparer l'état d'un système
installé avec une copie de confiance.La différence entre les deux branches de
développement: &os.stable; et &os.current;.Comment recompiler et réinstaller
l'intégralité du système de base avec
la commande make buildworld (etc.).Avant de lire ce chapitre, vous devrez:Correctement configurer votre connexion
réseau ().Savoir comment installer des logiciels
tiers ().Tout au long de ce chapitre, la commande
cvsup sera utilisée pour
récupérer et mettre à jour les sources de
&os;. Pour l'utiliser, vous devrez installer un logiciel
porté ou pré-compilé tel que net/cvsup-without-gui. Si vous
utilisez &os; 6.2-RELEASE ou une version
ultérieure, vous pouvez remplacer cette commande par
&man.csup.1;, qui fait désormais partie du
système de base.TomRhodesEcrit par ColinPercivalBasé sur des notes de Mise à jour de FreeBSDMise à jourfreebsd-updatemise à jourAppliquer des correctifs de sécurité est une
part importante de la maintenance de logiciels informatiques
tout particulièrement dans le cas du système
d'exploitation. Pendant très longtemps sous &os;, ce
processus n'était pas aisé. Les correctifs
devaient être appliqués au code source, le code
ensuite recompilé sous forme de binaires, et enfin les
binaires devaient être ré-installés.Ce processus n'est plus de mise comme &os; dispose
désormais d'un utilitaire appelé simplement
freebsd-update. Cet utilitaire fournit deux
fonctions distinctes. Tout d'abord, il permet l'application de
mises à jour de correction et de sécurité
sur le système de base de &os; sans nécessiter une
compilation et une ré-installation. En second lieu,
l'utilitaire supporte les mises à jour mineures et
majeures des versions publiées.Les mise à jour binaires sont disponibles pour
toutes les architectures actuellement supportées par
l'équipe de sécurité. Avant de mettre
à jour vers une nouvelle version, les annonces
concernant la version devront être passées en
revue sachant qu'elles peuvent contenir des informations
importantes au sujet de cette version. Ces annonces peuvent
être consultées à l'adresse suivante:
.S'il existe une table crontab utilisant
freebsd-update, elle doit être
désactivée avant de démarrer les
opérations qui vont suivre.Le fichier de configurationCertains utilisateurs peuvent souhaiter adapter le fichier
de configuration par défaut
/etc/freebsd-update.conf, permettant un
meilleur contrôle du processus. Les options sont
très bien documentées, mais les suivantes
demandent un peu plus d'explication:# Composants du système de base qui doivent être maintenus à jour.
Components src world kernelCe paramètre contrôle quelles sont les
parties de &os; qui seront mises à jour. Par
défaut on met à jour le code source,
l'intégralité du système de base et le
noyau. Les composants sont les mêmes que ceux
disponibles durant l'installation, par exemple, ajouter
world/games ici permettrait d'appliquer les
correctifs relatifs aux jeux. Utiliser
src/bin permettrait la mise à jour
du code source du répertoire src/bin.La meilleure option est de laisser telle quelle la
configuration par défaut car la modifier pour ajouter
des éléments particuliers demandera à
l'utilisateur de lister chaque élément qu'il
désire mettre à jour. Cela pourrait avoir des
conséquences désastreuses puisque le code source
et les binaires peuvent à terme ne plus être en
phase.# Les chemins d'accès commençant par quelque chose correspondant à une
# entrée de type IgnorePaths seront ignorés.
IgnorePathsAjoute les chemins d'accès comme /bin ou /sbin pour préserver
intacts ces répertoires durant le processus de mise
à jour. Cette option peut être utilisée
pour empêcher freebsd-update
d'écraser des modifications locales.# Les chemins d'accès qui commencent par quelque chose correspondant à
# une entrée de type UpdateIfUnmodified seront mis à jour que si le
# contenu du fichier n'a pas été modifié par l'utilisateur (à moins
# que les modifications ne soient fusionnées; voir plus bas).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profileMet à jour les fichiers de configuration dans les
répertoires désignés seulement s'ils
n'ont pas été modifiés. Tout changement
effectué par l'utilisateur invalidera automatiquement
la mise à jour de ces fichiers. Il existe une autre
option KeepModifiedMetadata qui indiquera
à freebsd-update de sauvegarder les
changements durant la fusion.# Quand on met à jour vers une nouvelle version de &os;, les fichiers
# correspondant à une entrée de type MergeChanges verront leurs
# différences locales fusionnées avec le fichier de la nouvelle
# version de &os;.
MergeChanges /etc/ /var/named/etc/Liste des répertoires avec des fichiers de
configuration que freebsd-update devrait
tenter de fusionner. Le processus de fusion des fichiers est
l'application d'une série de correctifs &man.diff.1;
similaires à ceux de &man.mergemaster.8; avec cependant
moins d'options, les fusions sont soit acceptées,
ouvrant un éditeur, soit abandonnées par
freebsd-update. En cas de doute,
sauvegardez /etc et
acceptez les fusions. Consultez la section sur pour plus d'information sur la commande
mergemaster.# Répertoire dans lequel stocker les mise à jour téléchargées et les
# fichiers temporaires utilisés par la mise à jour de &os;.
# WorkDir /var/db/freebsd-updateCe répertoire est l'endroit où tous les
correctifs et les fichiers temporaires seront placés.
Dans les cas où l'utilisateur effectue une mise
à jour de version, cet emplacement doit disposer d'au
moins un gigaoctet d'espace disponible.# Lors de mises à jour entre versions de &os;, doit-on lire la liste
# de composants de manière stricte (StrictComponents yes)
# ou tout simplement comme une liste de composants qui *pourraient*
# être installés et pour lesquels la mise à jour de &os; devrait
# déterminer lesquels sont effectivement installés et les mettre à
# jour (StrictComponents no)?
# StrictComponents noCette option fixée à yes,
freebsd-update supposera que la liste de
composants est complète et n'essaiera pas d'effectuer
des modifications en dehors de cette liste.
Concrètement, freebsd-update tentera
de mettre à jour chaque fichier appartenant à la
liste de composants.Correctifs de sécuritéLes correctifs de sécurité sont
stockés sur une machine distante et peuvent être
téléchargés et installés en
utilisant la commande suivante:&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update installSi des correctifs ont été appliqués
au noyau le système devra être
redémarré. Si tout c'est bien passé le
système est corrigé et
freebsd-update pourra être
exécuté chaque nuit via un processus
&man.cron.8;. Une entrée dans le fichier
/etc/crontab devrait être
suffisante pour accomplir cette tâche:@daily root freebsd-update cronCette entrée indique qu'une fois par jour,
l'utilitaire freebsd-update sera
exécuté. De cette manière, en employant
l'option ,
freebsd-update vérifiera seulement
l'existence de mises à jour. Si des correctifs
existent, il seront automatiquement
téléchargés sur le disque local mais
non-appliqués. L'utilisateur root
sera contacté par courrier électronique, il
pourra ainsi les installer manuellement.Si quelque s'est mal passé,
freebsd-update a la capacité
d'annuler le dernier ensemble de changements avec la commande
suivante:&prompt.root; freebsd-update rollbackUne fois la commande achevée, le système
devra être redémarré si le noyau ou un de
ses modules ont été modifiés. Cela
permettra à &os; de charger en mémoire les
nouveaux binaires.L'utilitaire freebsd-update peut mettre
à jour uniquement et automatiquement le noyau
GENERIC. Si un noyau personnalisé
est utilisé, il devra être recompilé et
réinstallé après que la commande
freebsd-update ait achevé
l'installation du reste des mises à jour. Cependant
freebsd-update détectera et mettra
à jour le noyau GENERIC dans
/boot/GENERIC (s'il
existe), et cela même si ce n'est pas le noyau actuel
(qui tourne) du système.C'est toujours une bonne idée de conserver une
copie du noyau GENERIC dans /boot/GENERIC. Cela sera utile
pour diagnostiquer une variété de
problèmes, et lors des mises à jour utilisant
freebsd-update comme décrit dans
la .A moins que la configuration par défaut
présente dans
/etc/freebsd-update.conf n'ait
été modifiée,
freebsd-update installera les sources du
noyau mises à jour avec le reste des mises à
jour. La recompilation et la réinstallation d'un noyau
personnalisé peuvent effectuées de la
manière classique.Les mises à jour distribuées via
freebsd-update, n'impliquent pas toujours
le noyau. Il ne sera pas nécessaire de recompiler
votre noyau personnalisé si les sources du noyau
n'ont pas été modifiées par
l'exécution de freebsd-update
install. Cependant
freebsd-update met toujours à jour
le fichier
/usr/src/sys/conf/newvers.sh. Le
niveau ou la version de correctifs (comme indiqué par
le nombre -p rapporté par
uname -r) est obtenu à partir de
ce fichier. Recompiler votre noyau personnalisé,
même si rien d'autre n'a changé, permettra
à la commande &man.uname.1; de rapporter
précisément le niveau de correctifs du
système. C'est particulièrement utile quand
on gère de multiples systèmes, car cela permet
une évaluation rapide des mises à jour
présentes sur chacun d'eux.Mises à jour mineures et majeuresCe processus supprimera les anciens fichiers objets et
bibliothèques qui rendent inutilisables la plupart des
applications tierce-partie. Il est recommandé que tous
les logiciels portés soient supprimés et
réinstallés ou mis à jour
ultérieurement en utilisant l'outil ports-mgmt/portupgrade. La plupart
des utilisateurs voudront lancer une compilation test à
l'aide de la commande suivante:&prompt.root; portupgrade -afCela garantira que tout sera réinstallé
correctement. Notez que fixer la variable d'environnement
BATCH à yes
répondra yes à toute question
lors de ce processus, supprimant ainsi la
nécessité d'une intervention humaine durant le
processus de compilation.Si un noyau personnalisé est utilisé, le
processus de mise à jour est un peu plus complexe. Une
copie du noyau GENERIC est
nécessaire et devrait être placée dans le
répertoire /boot/GENERIC. Si le noyau
GENERIC n'est pas présent sur le
système, il peut être obtenu en utilisant une des
méthodes suivantes:Si un noyau personnalisé a déjà
été compilé, le noyau présent
dans /boot/kernel.old est en fait
le noyau GENERIC. Renommer ce
répertoire en /boot/GENERIC.En supposant qu'un accès physique à la
machine est possible, une copie du noyau
GENERIC peut être installé
à partir d'un CD-ROM. Insérer votre disque
d'installation et utiliser les commandes suivantes:&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERICRemplacer X.Y-RELEASE
avec la version que vous utilisez. Le noyau
GENERIC sera installé par
défaut dans /boot/GENERIC.En dehors de ce qui précède le noyau
GENERIC peut être
recompilé et installé à partir des
sources:&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/bootPour que ce noyau soit pris en compte comme
GENERIC par
freebsd-update, le fichier de
configuration GENERIC devra ne pas
avoir été modifié. Il est
également suggéré qu'il soit
compilé sans aucune option particulière (de
préférence avec un fichier
/etc/make.conf vide).Redémarrer avec le noyau GENERIC
n'est pas nécessaire à ce stade.Les mises à jour de versions majeures et mineures
peuvent être effectuées en passant à la
commande freebsd-update la version vers
laquelle on désire mettre à jour, par exemple,
la commande suivante effectuera la mise à jour vers
&os; 8.1:&prompt.root; freebsd-update -r 8.1-RELEASE upgradeLa commande freebsd-update analysera le
fichier de configuration et le système afin de
récupérer les informations nécessaires
à la mise à jour du système. A
l'écran s'affichera quels sont les composants
détectés et quels sont ceux qui n'ont pas
été détectés. Par exemple:Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? yA ce niveau freebsd-update tentera de
télécharger tous les fichiers nécessaires
à la mise à jour. Dans certains cas
l'utilisateur sera interrogé sur ce qu'il faut
installer ou sur comment procéder à certaines
actions.Si un noyau personnalisé est utilisé,
l'étape précédente produira un
avertissement semblable au suivant:WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"Cet avertissement peut sans risque être
ignoré à ce niveau. Le noyau
GENERIC mis à jour sera
utilisé comme une étape intermédiaire
dans le processus de mise à jour.Une fois l'ensemble des correctifs
téléchargé sur le système local,
ils seront appliqués. Ce processus peut prendre plus
ou moins de temps en fonction de la vitesse et de la charge de
la machine. Les fichiers de configuration seront
fusionnés — cette partie du processus
demande l'intervention de l'utilisateur car un fichier peut
être automatiquement fusionné ou en cas de besoin
un éditeur peut apparaître sur l'écran
pour une fusion manuelle. Les résultats des fusions
réussies seront affichés au fur et à
mesure que se déroule l'opération. Un
échec ou une fusion ignorée provoqueront
l'arrêt du processus. Certains utilisateurs peuvent
vouloir conserver une sauvegarde du répertoire
/etc et fusionner plus
tard à la main les fichiers importants comme
master.passwd ou
group.Le système n'a pas encore été
réellement modifié, les fusions et
l'application des correctifs ont lieu dans un autre
répertoire. Quand tous les correctifs ont
été appliqués avec succès, que
tous les fichiers de configuration ont été
fusionnés et que le processus s'est
déroulé sans problème, les
modifications devront être appliquées
définitivement au système par
l'utilisateur.Une fois les opérations précédentes
achevées, la mise à jour peut être
appliquée en utilisant la commande suivante:&prompt.root; freebsd-update installLe noyau et les modules seront corrigés les
premiers. A ce moment la machine doit être
obligatoirement redémarrée. Si le
système utilisait un noyau personnalisé,
utiliser la commande &man.nextboot.8; pour indiquer le noyau
/boot/GENERIC (qui a
été mis à jour) pour le prochain
démarrage:&prompt.root; nextboot -k GENERICAvant de redémarrer sur le noyau
GENERIC, assurez-vous qu'il contient tous
les pilotes nécessaires pour que votre système
démarre correctement (et se connecte au
réseau, si la mise à jour de la machine se
fait à distance). En particulier, si le noyau
précédemment utilisé contient des
fonctions généralement fournies par des
modules, faites en sorte de charger temporairement ces
modules avec le noyau GENERIC à
l'aide de /boot/loader.conf. Vous
pouvez également avoir intérêt à
désactiver les services non-indispensables, les
montages réseaux ou disques, etc. avant que le
processus de mise à jour ne soit
achevé.La machine doit maintenant être
redémarrée avec le noyau mis à
jour:&prompt.root; shutdown -r nowUne fois la machine de nouveau active,
freebsd-update devra être
lancée à nouveau. L'état du processus de
mise à jour a été sauvegardé, et
donc freebsd-update ne recommencera pas au
début, mais supprimera les anciens fichiers objet et
bibliothèques partagées. Afin de poursuivre les
opérations, taper la commande suivante:&prompt.root; freebsd-update installEn fonction d'un changement ou non de
numérotation d'une ou plusieurs bibliothèques,
il pourra y avoir deux phases d'installation au lieu de
trois.Tous les logiciels tierce-partie doivent être
maintenant recompilés et réinstallés.
Cela est nécessaire comme certains logiciels peuvent
dépendre de bibliothèques qui ont
été supprimées lors du processus de mise
à jour. La commande ports-mgmt/portupgrade peut
être employée pour automatiser la chose. Les
commandes suivantes peuvent être utilisées pour
initier le processus:&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -afUne fois cela effectué, terminer le processus de
mise à jour avec un dernier appel à
freebsd-update. Taper la commande suivante
pour régler les derniers détails:&prompt.root; freebsd-update installSi le noyau GENERIC a été
utilisé temporairement, il est temps de compiler et
d'installer un nouveau noyau personnalisé suivant la
méthode habituelle.Redémarrer la machine avec la nouvelle version de
&os;. Le processus de mise à jour est
terminé.Comparaison de l'état du systèmeL'utilitaire freebsd-update peut
être utilisé pour comparer l'état du
système &os; installé avec une copie de
confiance. Cette fonctionnalité inspecte la version
actuelle des utilitaires système, des
bibliothèques et des fichiers de configuration. Pour
lancer la comparaison, utiliser la commande suivante:&prompt.root; freebsd-update IDS >> outfile.idsBien que le nom de la commande soit
IDS, elle ne devrait en aucun cas
être considérée comme un système
de détection d'intrusion du type de security/snort. Etant
donné que freebsd-update stocke
des données sur le disque, le risque de modification
des données est évident. Alors que cette
possibilité peut être minimisée en
utilisant le paramétrage
kern.securelevel et en stockant les
données freebsd-update sur un
système de fichiers en lecture seule quand elles ne
sont pas utilisées, une bien meilleure solution
serait de comparer le système avec un disque
sécurisé comme un DVD ou un
disque USB conservé à
l'extérieur.Le système sera analysé, et une liste de
fichiers ainsi que la valeur de leur empreinte
numérique &man.sha256.1;, celle de la version d'origine
et celle de la version actuellement installée, seront
affichés. C'est pour cela que cet affichage est
copié dans le fichier outfile.ids.
L'affichage défile trop rapidement une comparaison
visuelle et remplira rapidement le tampon de la
console.Ces lignes sont également très longues mais
le format de sortie peut être facilement passé
par une analyse syntaxique. Par exemple, pour obtenir une
liste des fichiers qui diffèrent avec ceux de la
version d'origine, utiliser la commande suivante:&prompt.root; cat outfile.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.confLa sortie de cette commande a été
tronquée, bien plus de fichiers sont concernés.
Certains de ces fichiers sont naturellement modifiés,
le fichier /etc/passwd a
été modifié en raison de l'ajout
d'utilisateurs au système. Dans certains cas, d'autres
fichiers apparaîtrons, comme les modules du noyau, qui
diffèrent puisque freebsd-update
peut les avoir mis à jour. Pour exclure des fichiers
ou des répertoires spécifiques, ajoutez-les au
paramètre IDSIgnorePaths dans le
fichier /etc/freebsd-update.conf.Ce système peut prendre part à une
méthode de mise à jour élaboré, en
dehors de ce qui a été présenté
précédemment.TomRhodesEcrit par ColinPercivalBasé sur les notes de Portsnap: un outil de mise à jour du catalogue des
logiciels portésMise à jourPortsnapmise à jourLe système de base de &os; dispose également
d'un utilitaire pour la mise à jour du catalogue des
logiciels portés: &man.portsnap.8;. Lors de son
exécution, il se connectera sur un site distant,
contrôlera la clé de sécurité et
téléchargera une nouvelle copie du catalogue des
logiciels portés. La clé est utilisée pour
vérifier l'intégrité de tous les fichiers
téléchargés, s'assurant qu'ils n'ont pas
été modifiés au vol. Pour
récupérer les tout derniers fichiers du catalogue
des logiciels portés, utiliser la commande
suivante:&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.Cet exemple nous montre que &man.portsnap.8; a trouvé
et contrôlé plusieurs mises à jour pour les
données actuelles du catalogue. Est également
indiqué si l'utilitaire a été
précédemment exécuté, si cela avait
été une première exécution, le
catalogue aurait été tout simplement
téléchargé.Lorsque &man.portsnap.8; termine avec succès une
opération de récupération
(fetch), le catalogue des logiciels
portés et ses mises à jour sont présents
sur le système. A la première exécution de
portsnap vous devez utiliser la commande
extract pour installer les fichiers
téléchargés:&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...Pour mettre à jour un catalogue des logiciels
portés déjà installé utilisez la
commande portsnap update:&prompt.root; portsnap updateLe processus est maintenant terminé et les
applications peuvent être installées ou mises
à jour à l'aide du catalogue à jour.Les opérations fetch et
extract ou update peuvent
être exécutées à la suite comme
montré dans l'exemple suivant:&prompt.root; portsnap fetch updateCette commande téléchargera la dernière
version du catalogue des logiciels portés et mettra
à jour votre version locale située dans /usr/ports.Suivre une branche de développement-CURRENT-STABLEIl existe deux branches de développement de FreeBSD:
&os.current; et &os.stable;. Cette section détaillera
un peu chacune d'elles et décrira comment garder à
jour votre système avec chaque arborescence respective.
&os.current; sera tout d'abord traité, suivit de
&os.stable;.Se synchroniser avec la version -CURRENT de &os;En lisant ces lignes, gardez à l'esprit que
&os.current; représente “les tout derniers”
développement de &os;. On attend des utilisateurs
de &os.current; un degré élevé de
compétences techniques, et devraient être
capables de résoudre des problèmes système
compliqués par eux-mêmes. Si vous êtes
nouveau à &os;, pensez à deux fois avant de
l'installer.Qu'est-ce que &os.current;?instantané&os.current; est la toute dernière version des sources
de &os; en cours de développement. Cela inclut des
évolutions en cours, des modifications expérimentales,
et des mécanismes de transition qui feront ou ne feront pas
partie de la prochaine version officielle du logiciel.
Bien que de nombreux développeurs de &os; compilent les
sources de &os.current; quotidiennement, il arrive que
celles-ci ne soient pas compilables pendant une certaine
période de temps. Ces problèmes sont résolus
aussi rapidement que possible, mais que &os.current; soit
à l'origine d'un désastre ou de l'apport d'une nouvelle
fonctionnalité attendue peut parfois dépendre
que du moment auquel vous avez chargé le code
source.Qui a besoin de &os.current;?&os.current; est mis à disposition pour 3
types de personnes:Les membres de la communauté &os; qui travaillent
activement sur une partie de l'arborescence des sources
et pour qui rester constamment à jour est une
nécessité absolue.Les membres de la communauté &os; qui participent
activement aux tests et sont disposés à passer du
temps à résoudre les problèmes pour
garantir que &os.current; reste aussi saine que
possible. Il y a également ceux qui désirent
faire des suggestions dans certains domaines sur les
modifications à faire et la direction
générale que prend &os;, et soumettent des
correctifs pour les implémenter.Ceux qui veulent simplement garder un oeil sur les
évolutions, ou utiliser les dernières sources comme
référence (e.g. pour les lire,
et non pour les utiliser). Ces personnes font parfois
des remarques ou contribuent au code.Qu'est-ce que n'est pas
&os.current;?Un raccourci pour se procurer des pré-versions
parce que vous avez entendu dire qu'il y a de nouvelles
fonctionnalités géniales et que vous voulez
être le premier du coin à les avoir. Etre le
premier à avoir la nouvelle fonctionnalité
signifie être le premier à avoir les nouveaux bogues
également.Une moyen rapide d'avoir des corrections de bogues.
N'importe quelle version de &os.current; apportera
probablement de nouveaux bogues comme elle corrigera
ceux déjà présents.Nous ne le “supportons officiellement”
en aucun cas. Nous faisons du mieux que nous pouvons
pour aider les personnes qui font vraiment partie des
trois groupes “légitimes” à qui s'adresse
&os.current;, mais nous n'avons tout simplement
“pas le temps” de fournir un support
technique. Ce n'est pas parce que nous sommes des
personnes détestables qui n'aiment pas aider les autres
(nous ne ferions pas &os; si tel était le cas), nous ne
pouvons simplement pas répondre à des centaines de
messages par jour et travailler sur
FreeBSD! Entre améliorer &os; et répondre à de
nombreuses questions sur le code expérimental, les
développeurs optent pour le premier choix.Utiliser &os.current;
-
- -CURRENT
- utilisation
-
- Inscrivez-vous à la &a.current.name; et la &a.svn-src-head.name;.
+ Inscrivez-vous à la &a.current.name;-CURRENTutilisation et la &a.svn-src-head.name;.
Ce n'est pas seulement une bonne idée, c'est
indispensable. Si vous n'êtes
pas sur la liste &a.current.name;, vous
ne verrez pas les commentaires qui sont faits sur l'état
courant du système et vous vous retrouverez probablement
confrontés à de nombreux problèmes que
d'autres ont déjà identifiés et
résolus. Encore plus grave, vous manqueriez des
bulletins importants potentiellement critiques pour la bonne
santé de votre système.La liste &a.svn-src-head.name; vous permettra de voir les courriers
de trace des soumissions de toutes les modifications
dès qu'elles sont faites et des informations
pertinentes sur les éventuels effets de bord.Pour vous inscrire à ces listes, ou à
une autre, rendez vous à &a.mailman.lists.link;
et cliquez sur la liste à laquelle vous
désirez vous inscrire. Des instructions sur le
reste de la procédure sont alors données.
Si vous êtes intéressé par le suivi
des modifications appliquées à l'ensemble
de l'arborescence des sources, nous vous recommandons de
vous inscrire à &a.svn-src-all.name;.Récupérez les sources sur un site miroir &os;. Vous pouvez le
faire de deux manières:
-
- cvsup
-
-
- cron
-
-
- -CURRENT
- Synchronisation avec CVSup
-
-
- Utilisez le programme cvsup
+ Utilisez le programme cvsupcvsup
avec le fichier supfile
nommé standard-supfile
disponible dans le répertoire /usr/share/examples/cvsup.
C'est la méthode recommandée, puisqu'elle
permet de récupérer la totalité
des sources la première fois et par la suite
uniquement ce qui a été modifié.
De nombreuses personnes exécutent
cvsup depuis
- cron et maintiennent ainsi
+ croncron et maintiennent ainsi
automatiquement à jour leurs sources. Vous devez
personnaliser l'exemple de supfile
précédent, et configurer
- cvsup pour
+ cvsup-CURRENTSynchronisation avec CVSup pour
votre environnement.Le fichier d'exemple
standard-supfile est
destiné au suivi d'une branche de
sécurité &os; spécifique et
non pas à celui de &os.current;. Vous
devrez éditer ce fichier et remplacer la
ligne suivante:*default release=cvs tag=RELENG_X_YPar celle-ci:*default release=cvs tag=.Pour une explication détaillée
des étiquettes utilisables, veuillez vous
référer à la section Etiquettes CVS de ce
manuel.
-
- -CURRENT
- Synchroniser avec
- CTM
-
-
Utilisez CTM. Si vous
+ linkend="ctm">CTM-CURRENTSynchroniser avec CTM. Si vous
disposez d'une mauvaise connexion (connexions chères
ou seulement un accès au courrier électronique)
CTM est une bonne
solution. Cependant, c'est une source de problèmes
et peut donner lieu à des fichiers endommagés.
C'est pourquoi cette méthode est rarement
utilisée, ce qui augmente les chances que cela ne
fonctionne pas pendant d'assez longue périodes.
Nous recommandons d'utiliser
CVSup
à tous ceux disposant d'un modem 9600 bps ou
d'une connexion plus rapide.
Si vous récupérez les sources pour compiler
un système opérationnel, et pas simplement
pour les lire, alors récupérez
tout &os.current;, et pas
uniquement certaines portions. La raison de cela est
que diverses parties des sources dépendent de
modifications effectuées ailleurs, et si vous essayez
de compiler juste une partie des source, il est quasiment
certain que vous aurez des problèmes.
-
- -CURRENT
- compilation
-
-
- Avant de compiler &os.current;, lisez attentivement
+ Avant de compiler &os.current;-CURRENTcompilation, lisez attentivement
le Makefile dans
/usr/src. Vous devriez au moins
la première fois installer un nouveau noyau et recompiler le système, comme
étape nécessaire à votre processus de
mise à jour. La lecture de la &a.current; et du fichier /usr/src/UPDATING vous tiendra
au courant des autres procédures de transition qui
sont parfois nécessaires lorsque nous préparons la
prochaine version.Participez! Si vous utilisez &os.current;, nous
aimerions savoir ce que vous en pensez, tout
particulièrement si vous avez des améliorations
à nous suggérer ou des corrections de bogues
à nous soumettre. Les suggestions accompagnées
de code sont accueillies avec enthousiasme!Se synchroniser avec la version -STABLE de &os;Qu'est-ce que &os.stable;?-STABLE&os.stable; est notre branche de développement à
partir de laquelle sont extraites les versions majeures.
Les modifications sur cette branche se font à une allure
différente, et en supposant généralement
qu'elles ont été tout d'abord testées
sur &os.current;. Cela reste cependant
toujours une branche de développement,
et cela signifie qu'à certains moments, les sources de
&os.stable; pourront être ou pas utilisables pour une
quelconque raison. C'est tout simplement une autre branche
de mise au point, et non pas une ressource pour
l'utilisateur final.Qui a besoin de &os.stable;?Si vous désirez suivre ou contribuer au processus
de développement de FreeBSD, tout particulièrement si
cela a rapport avec la prochaine version de FreeBSD, alors
vous devriez penser à suivre &os.stable;.Bien qu'il soit vrai que les correctifs de sécurité
vont également dans la branche &os.stable;, vous
n'avez pas besoin de suivre
&os.stable; pour cela. Chaque rapport de sécurité
concernant FreeBSD explique comment corriger le problème sur
les versions affectées
Ceci n'est pas tout à fait vrai. Nous
ne pouvons continuer à supporter les anciennes versions de
FreeBSD éternellement, bien que nous les supportions
pendant de nombreuses années. Pour une description
complète de la politique de sécurité
actuelle pour les anciennes versions de FreeBSD, veuillez
consulter http://www.FreeBSD.org/security/.
, et suivre intégralement une branche de développement
juste pour des raisons de sécurité apportera
également de nombreux changements non
désirés.Bien que nous tentons de nous assurer que la branche
&os.stable; soit compilable et constamment stable, cela
ne peut être garanti. De plus, alors que le code est
développé sous &os.current; avant de l'inclure dans
&os.stable;, le nombre de personnes utilisant &os.stable;
est plus nombreux que celui utilisant &os.current;, aussi
il est inévitable que des bogues et des problèmes
pourront parfois apparaître sous &os.stable; alors qu'ils
n'existaient pas sous &os.current;.Pour ces raisons, nous ne recommandons
pas de suivre aveuglément
&os.stable;, et il est tout particulièrement important que
vous ne mettiez pas à jour des serveurs de production
sous &os.stable; sans avoir tout d'abord testé le code
dans votre environnement de travail.Si vous ne disposez pas des ressources pour faire
cela alors nous recommandons que vous utilisiez la version
de FreeBSD la plus récente, et que vous utilisiez le
mécanisme de mise à jour binaire pour passer d'une
version à une autre.Utiliser &os.stable;
-
- -STABLE
- utilisation
-
-
Inscrivez-vous à à la liste &a.stable.name;.
Vous serez tenu au courant des dépendances de
compilation qui peuvent apparaître dans la
- branche &os.stable; ou de tout autre problème
+ branche &os.stable;-STABLEutilisation ou de tout autre problème
demandant une attention particulière. Les
développeurs publieront également des annonces
sur cette liste lorsqu'ils envisagent une correction ou
modification controversée, offrant la possibilité
aux utilisateurs de répondre s'ils ont des questions
à soulever en rapport avec la modification
proposée.Inscrivez-vous à la liste
SVN correspondant à la
branche que vous suivez. Par exemple, si vous suivez la
branche 7-STABLE, inscrivez-vous à la liste
&a.svn-src-stable-7.name;. Cela vous permettra de lire
les courriers de trace des soumissions de toutes les
modifications dès qu'elles sont faites et des
informations pertinentes sur les éventuels effets
de bord.Pour vous inscrire à ces listes, ou à
une autre, rendez vous à &a.mailman.lists.link;
et cliquez sur la liste à laquelle vous
désirez vous inscrire. Des instructions sur le
reste de la procédure sont alors
données. Si vous êtes
intéressé par le suivi des modifications
appliquées à l'ensemble de l'arborescence
des sources, nous vous recommandons de vous inscrire
à &a.svn-src-all.name;.Si vous installez un nouveau système et vous
voulez qu'il utilise le dernier instantané
publié tous les mois à partir de la
branche &os.stable;, consultez la page sur les instantanés
pour plus d'information. D'autre part, vous pouvez
installer la version &os.stable; la plus récente
à partir des sites
miroirs et suivre les instructions ci-dessous
pour mettre à jour votre système avec les
sources &os;stable; les plus récentes.Si vous faites tourner une version précédente
de &os; et que vous désirez mettre à jour via
les sources vous pouvez aisément le faire à partir
d'un site miroir &os;. Cela
peut être fait de deux manières:
-
- cvsup
-
-
- cron
-
-
- -STABLE
- Synchronisation avec CVSup
-
-
- Utilisez le programme cvsup
+ Utilisez le programme cvsupcvsup
avec le fichier supfile
nommé stable-supfile
disponible dans le répertoire /usr/share/examples/cvsup.
C'est la méthode recommandée, puisqu'elle
permet de récupérer la totalité
des sources la première fois et par la suite
uniquement ce qui a été modifié.
De nombreuses personnes exécutent
cvsup depuis
- cron et maintiennent ainsi
+ croncron et maintiennent ainsi
automatiquement à jour leurs sources. Vous devez
personnaliser l'exemple de supfile
précédent, et configurer
- cvsup pour
+ cvsup-STABLESynchronisation avec CVSup pour
votre environnement.
-
- -STABLE
- Synchroniser avec
- CTM
-
-
Utilisez CTM. Si vous
+ linkend="ctm">CTM-STABLESynchroniser avec CTM. Si vous
ne disposez pas d'une connexion Internet rapide et
peu coûteuse, c'est la méthode que vous
devriez penser à utiliser.Avant tout, si vous avez besoin d'un accès rapide
à la demande aux sources et que la bande passante n'est
pas un problème, utilisez
cvsup ou ftp.
Sinon, utilisez CTM.
-
- -STABLE
- compilation
-
-
- Avant de compiler &os.stable;, lisez attentivement
+ Avant de compiler &os.stable;-STABLEcompilation, lisez attentivement
le Makefile dans
/usr/src. Vous devriez au moins
la première fois installer un nouveau noyau et recompiler le système, comme
étape nécessaire à votre processus de
mise à jour. La lecture de la &a.stable; et du fichier /usr/src/UPDATING vous tiendra
au courant des autres procédures de transition qui
sont parfois nécessaires lorsque nous préparons la
prochaine version.Synchroniser vos sourcesIl existe différentes façons d'utiliser une connexion
Internet (ou le courrier électronique) pour garder à jour
les sources de n'importe quelle partie, ou de l'ensemble,
du projet &os;, selon ce qui vous intéresse. Les
principaux services que nous fournissons sont le
CVS anonyme, CVSup, et CTM.Alors qu'il est possible de mettre à jour seulement
certaines parties de l'arbre des sources, la seule procédure
de mise à jour supportée est celle consistant
à mettre à jour l'intégralité de
l'arborescence et de recompiler les sources des applicatifs de
base—“userland” (i.e., tous les programmes
qui tournent dans l'espace utilisateur, comme ceux des
répertoires /bin et
/sbin) et du noyau. Ne mettre à jour
qu'une partie des sources, uniquement le noyau, ou seul le
“userland” mènera souvent à des
problèmes. Ces problèmes pourront aller d'erreurs de
compilation à des paniques du noyau ou même des
corruptions de données.CVSanonymeCVS anonyme et
CVSup utilisent une méthode de
mise à jour pilotée par le
client—pull. Dans le cas de
CVSup, l'utilisateur (ou une
procédure cron) appelle le programme
cvsup, qui interagit avec un serveur
cvsupd distant, pour mettre à jour vos
fichiers. Les mises à jour que vous recevez sont les plus
récentes, et vous ne les recevez seulement lorsque vous le
désirez. Vous pouvez aisément restreindre vos mises
à jour aux fichiers ou répertoires particuliers
qui vous intéressent. Les mises à jour sont
générées à la volée par le serveur,
en fonction de ce que vous avez déjà et de ce que vous
voulez. CVS anonyme est plus
simpliste que CVSup, car ce n'est
qu'une extension de CVS qui
permet de récupérer des modifications directement
d'une archive CVS distante. Pour cela,
CVSup est bien plus efficace mais
CVS anonyme est plus facile à
utiliser.CTMCTM, à l'inverse, ne compare
pas interactivement les sources dont vous disposez avec celles
qui sont sur l'archive de référence. Au lieu de cela,
une procédure qui identifie les modifications intervenues
depuis qu'elle a été exécutée pour la
dernière fois, est lancée plusieurs fois par jour
sur la machine CTM de référence (maître),
les modifications détectées sont
compressées, affectées d'un numéro de
séquence et encodées pour pouvoir être envoyées
par courrier électronique (en ASCII imprimable uniquement).
Une fois reçus, ces “deltas CTM” peuvent
être passés à l'utilitaire &man.ctm.rmail.1;
qui décodera, contrôlera et appliquera automatiquement
les modifications à l'exemplaire des sources de l'utilisateur.
Cette méthode est beaucoup plus efficace que
CVSup et consomme beaucoup moins de
ressources sur notre serveur, parce que c'est un modèle
piloté par le serveur—push
plutôt que par
l'utilisateur—pull.Il y a, bien sûr, quelques contreparties.
Si vous effacez par inadvertance des parties de votre archive,
CVSup s'en apercevra et vous
reconstruira les parties endommagées.
CTM ne le fera pas, et si vous
effacez des parties de votre l'arborescence des sources
(et que vous n'avez pas fait de sauvegarde) alors vous devrez
repartir de zéro (à partir du plus récent
“delta de base” CVS) et tout reconstituer avec
CTM ou CVS
anonyme, effacer les parties endommagées et
resynchroniser.Recompiler le systèmerecompiler le systèmeUne fois que vous avez synchronisé votre arborescence des
sources avec une version donnée de &os; (&os.stable;,
&os.current;, et ainsi de suite) vous pouvez alors utiliser
cette arborescence des sources pour recompiler le
système.Faites une sauvegardeOn n'insistera jamais assez sur l'importance de faire une
sauvegarde de votre système avant tout
autre chose. Bien qu'il soit facile de “refaire le
monde” (recompiler FreeBSD), si vous suivez ces
instructions, vous ferez inévitablement des erreurs
à un moment ou un autre, ou d'autres feront des erreurs
au niveau de l'arborescence des sources qui empêcheraient
votre système de redémarrer.Assurez-vous que vous avez bien fait une sauvegarde. Ayez
une disquette de maintenance, ou un CD démarrable à portée de la main.
Vous ne l'utiliserez probablement pas, mais prudence est mère
de sûreté!S'abonner à la bonne liste de diffusionliste de diffusionLes branches &os.stable; et &os.current; sont, par
nature, en développement. Les personnes
qui participent à &os; sont des humains, et
des erreurs se produisent occasionnellement.Ces erreurs sont parfois bénignes, provocant
simplement l'affichage d'un nouveau message d'avertissement
par votre système. Elles peuvent aussi être
catastrophiques, et empêcher votre système de
redémarrer ou détruire vos systèmes de fichiers
(ou pire).Quand de tels problèmes se produisent, un avertissement
“heads up” est posté sur la liste de diffusion
appropriée, décrivant la nature du problème et
quels systèmes sont concernés. Un message “all
clear” est posté quand le problème est
résolu.Si vous tentez de suivre &os.stable; ou &os.current; et
que vous ne lisez pas la &a.stable; ou la &a.current;,
vous allez au devant d'ennuis.N'utilisez pas la commande
make worldDe nombreuses anciennes documentations préconisent
d'utiliser la commande make world. Cette
commande n'effectue pas un certain nombre d'étapes
importantes et ne devrait être utilisée que si
vous êtes sûr de ce que vous faites. Dans presque
tout les cas make world n'est pas une bonne
chose à faire, et la procédure décrite
dans la suite de ce document devrait être
utilisée à la place.La méthode générique de mise
à jour du systèmePour mettre à jour votre système, vous
devriez consulter /usr/src/UPDATING pour
toute opération préliminaire nécessaire
en fonction de la version de vos sources et ensuite
utiliser la procédure suivante:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowDans quelques rares cas, il est nécessaire de
lancer un mergemaster -p avant
l'étape buildworld. Ces cas
sont décrits dans le fichier
UPDATING. Généralement,
vous pouvez omettre cette opération si vous ne mettez
pas à jour d'une version majeure de &os; à une
autre.Une fois l'opération
installkernel terminée avec
succès,
vous devrez démarrer en mode mono-utilisateur (en
utilisant par exemple la commande boot -s
à l'invite du chargeur). Exécutez
ensuite:&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootLisez les explications supplémentairesLa séquence décrite ci-dessus n'est qu'un
court résumé pour vous aider à
démarrer. Vous devriez cependant lire les sections
suivantes afin de comprendre clairement chaque étape,
tout particulièrement si vous désirez utiliser
une configuration du noyau personnalisée.Lire /usr/src/UPDATINGAvant tout autre chose, lisez
/usr/src/UPDATING (ou le fichier
équivalent en fonction de l'endroit où se trouve vos
sources). Ce fichier devrait contenir les informations
importantes au sujet des problèmes que vous pourriez
rencontrer, ou indique l'ordre dans lequel vous devriez
exécuter certaines commandes. Si le fichier
UPDATING contredit quelque chose d'écrit
ici, UPDATING prime sur tout le
reste.La lecture du fichier UPDATING
n'est pas un substitut à l'abonnement à la liste
de diffusion correcte, comme décrit
précédemment. Ces deux prérequis sont
complémentaires, et non pas exclusifs.Contrôler /etc/make.confmake.confContrôlez les fichiers
/usr/share/examples/etc/make.conf
et
/etc/make.conf. Le premier contient
des paramètres par défaut – la plupart
étant placés en commentaires. Pour les utiliser quand
vous recompilez votre système à partir des sources,
rajoutés-les au fichier /etc/make.conf.
Gardez à l'esprit que tout ce que vous ajoutez au fichier
/etc/make.conf est utilisé chaque fois
que vous invoquez la commande make, il est
donc bon de s'assurer que les valeurs par défaut sont
appropriées à votre système.Un utilisateur typique voudra probablement copier
les lignes CFLAGS et
NO_PROFILE se trouvant dans
/usr/share/examples/etc/make.conf vers
/etc/make.conf et les décommenter.Examinez les autres définitions
(COPTFLAGS, NOPORTDOCS
et ainsi de suite) et décidez si elles vous conviennent.Mettre à jour les fichiers dans /etcLe répertoire /etc contient la
plupart des informations de configuration de votre système,
ainsi que les procédures de démarrage. Certaines de ces
procédures changent d'une version à l'autre de
FreeBSD.Certains fichiers de configuration sont également
utilisés en permanence par le système. En particulier
/etc/group.Il est arrivé que la phase d'installation make
installworld ait besoin que certains utilisateurs et groupes
existent. Il y a de fortes chances qu'ils n'aient pas
été définis avant la mise à jour.
C'est une source de problèmes. Dans certains cas
make buildworld contrôlera si ces
utilisateurs ou groupes existent.Un exemple de cela fut l'addition de l'utilisateur
smmsp. Le processus d'installation
échouait quand mtree tentait de créer
/var/spool/clientmqueue.La solution est d'exécuter
&man.mergemaster.8; dans le mode pré-“buildworld”
en ajoutant l'option . Cela effectuera la
comparaison uniquement des fichiers essentiels pour le succès
de la procédure buildworld ou
installworld. Si votre vieille
version de mergemaster ne supporte pas
l'option , utilisez la nouvelle version
présente dans l'arborescence des sources quand vous
l'exécutez pour la première fois:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pSi vous êtes particulièrement paranoïaque,
vous pouvez contrôler votre système afin de voir quels
fichiers appartiennent au groupe que vous renommez ou
effacez:&prompt.root; find / -group GID -printaffichera les fichiers appartenant au groupe
GID (qui peut être soit un nom de
groupe ou un identifiant numérique de groupe).Passer en mode mono-utilisateurmode mono-utilisateurIl vaut mieux recompiler le système en mode
mono-utilisateur. En dehors du fait que cela sera
légèrement plus rapide, la réinstallation
va modifier un grand nombre de fichiers systèmes
importants, tous les binaires de base du système, les
bibliothèques, les fichiers d'include et ainsi de suite.
Les modifier sur un système en fonctionnement (en
particulier s'il y a des utilisateurs connectés à
ce moment là), c'est aller au devant de
problèmes.mode multi-utilisateursUne autre méthode consiste à compiler le
système en mode multi-utilisateurs, et passer dans le mode
mono-utilisateur pour l'installation. Si vous désirez
utiliser cette méthode, conservez les étapes suivantes
pour le moment où la compilation sera terminée. Vous
pouvez reporter le passage en mode mono-utilisateur jusqu'à
l'exécution de
installkernel ou
installworld.En tant que super-utilisateur, vous pouvez exécuter la
commande:&prompt.root; shutdown nowsur un système en fonctionnement, pour passer en mode
mono-utilisateur.Ou bien, redémarrer le système, et à
l'invite de démarrage, sélectionnez l'option
single user. Le système démarrera alors
en mode mono-utilisateur. A l'invite de l'interpréteur de
commandes, exécutez alors:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aCela effectue une vérification des systèmes
de fichiers, remonte / en mode
lecture/écriture, et monte tous les autres systèmes
de fichiers UFS listés dans le fichier
/etc/fstab, puis active la
pagination.Si votre horloge CMOS est réglée sur l'heure locale
et non pas sur le fuseau GMT (cela est vrai si la sortie
de la commande date ne donne pas l'heure
et le fuseau correct), vous aurez également peut-être
besoin d'exécuter la commande suivante:&prompt.root; adjkerntz -iCela permettra de s'assurer que vos paramètres
de fuseaux horaires sont correctement configurés —
sans cela, vous risquez de faire face, plus tard, à des
problèmes.
Effacer /usr/objAu fur et à mesure que les différentes parties
du système sont recompilées, elles sont
placées dans des répertoires qui (par défaut) sont
sous /usr/obj. Les répertoires sont
agencés comme sous /usr/src.Vous pouvez accélérer le processus make
buildworld, et également vous éviter d'éventuels
problèmes de dépendances en effaçant ce
répertoire.Certains fichiers dans /usr/obj
peuvent avoir l'indicateur immuable positionné (consultez la
page de manuel &man.chflags.1; pour plus d'informations)
qui doit être retiré en premier.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Recompiler le système de baseEnregistrer la sortieC'est une bonne idée d'enregistrer la sortie de
&man.make.1; dans un fichier. Si quelque chose se passe
mal, vous aurez une trace des messages d'erreur. Même
si cela ne vous aide pas à diagnostiquer ce qui n'a pas
fonctionné, cela peut aider les autres si vous postez
votre problème sur une des listes de diffusion de
&os;.La méthode la plus aisée pour faire cela est
d'utiliser la commande &man.script.1;, avec en paramètre
le nom du fichier où enregistrer les résultats.
Vous devez faire cela immédiatement juste avant de
recompiler le système, et taper exit
une fois que c'est terminé.&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… compile, compile, compile …
&prompt.root; exit
Script done, …Si vous le faites, n'enregistrez pas
le résultat dans /tmp.
Ce répertoire peut être vidé au prochain
redémarrage du système. Un meilleur endroit de
sauvegarde est /var/tmp (comme dans l'exemple
précédent) ou dans le répertoire utilisateur
de root.Compiler le nouveau systèmeVous devez être dans le répertoire
/usr/src:&prompt.root; cd /usr/src(à moins, bien sûr, que votre code source ne
soit ailleurs, auquel cas vous devrez aller dans le
répertoire correspondant).makePour recompiler le système, on utilise la commande
&man.make.1;. Cette commande lit ses instructions dans
le fichier Makefile, qui décrit comment
devraient être reconstruits les programmes qui constituent
&os;, dans quel ordre, et ainsi de suite.Le format général de la ligne de commande que
vous taperez sera la suivante:&prompt.root; make -x -DVARIABLEcibleDans cet exemple,
est une
option que vous passez à &man.make.1;. Reportez-vous
à la page de manuel pour un exemple d'options que vous
pouvez passer.
transmet un variable au fichier
Makefile. Le comportement du
Makefile est défini par ces variables.
Ce sont les mêmes variables que l'on trouve dans
/etc/make.conf, et c'est un autre moyen
de les positionner.&prompt.root; make -DNO_PROFILE cibleest une autre manière de dire qu'il ne faut pas compiler
les bibliothèques profilées et correspond à
la ligne:NO_PROFILE= true # Avoid compiling profiled librariesdans /etc/make.conf.cible indique à &man.make.1;
ce que vous voulez faire. Chaque
Makefile définit un certain nombre de
“cibles”, et votre choix de cible détermine ce
qui se passe.Certaines cibles listées dans le fichier
Makefile, ne doivent pas être
employées. Ce sont des étapes intermédiaires
utilisées par le processus de recompilation pour
décomposer les étapes importantes de la recompilation
du système en sous-étapes.La plupart du temps, vous n'aurez pas besoin de passer
de paramètres à &man.make.1;, et votre commande
ressemblera à ceci:&prompt.root; make cibleOù cible sera une des
nombreuses options de compilation. La première cible
devrait toujours être
buildworld.Comme leurs noms l'indiquent,
buildworld reconstruit la nouvelle
arborescence dans /usr/obj, et
installworld, une autre cible, l'installe sur la
machine.Disposer d'options séparées est très utile pour deux raisons. Tout d'abord
cela vous permet de recompiler en toute sûreté en sachant
qu'aucun composant du système actuel ne sera affecté.
La compilation est “autonome”. En raison de
cela vous pouvez exécuter
buildworld sur une machine en mode
multi-utilisateurs sans redouter d'effets fâcheux. Il est
néanmoins recommandé de toujours exécuter
l'étape installworld en mode
mono-utilisateur.En second lieu, cela vous permet d'utiliser des
systèmes montés par NFS pour mettre à
jour plusieurs machines de votre réseau. Si vous avez
trois machines A, B et
C que vous voulez mettre à jour,
exécutez make buildworld et
make installworld sur A.
B et C doivent
ensuite monter par NFS /usr/src
et /usr/obj depuis A,
et vous pouvez alors exécuter
make installworld pour installer le
système recompilé sur B et
C.Bien que la cible world existe
toujours, vous êtes fortement encouragé
à ne pas l'utiliser.Exécutez:&prompt.root; make buildworldIl est possible de passer l'option
à &man.make.1; ce qui lui permettra
d'exécuter plusieurs processus simultanément.
C'est particulièrement utile sur une machine avec plusieurs
processeurs. Cependant, comme la compilation est plus
gourmande en E/S plutôt qu'en CPU, c'est également
utile sur des machines mono-processeur.Typiquement sur une machine mono-processeur, vous
exécuteriez:&prompt.root; make -j4 buildworld&man.make.1; pourra exécuter jusqu'à 4 processus
simultanément. Des constatations empiriques
postées sur les listes de diffusion montrent que c'est
en général ce qui apporte le plus de gain en
performances.Si vous avez une machine multi-processeurs et que vous
avez configuré un noyau SMP, essayez des valeurs entre 6 et
19 et voyez quel bénéfice vous en tirez.Duréecompilation du systèmeduréeDe nombreux facteurs influencent la durée de
compilation, mais les machines récentes devraient
mettrent seulement de une à deux heures
pour compiler l'arborescence &os.stable;,
sans modification ni raccourcis durant le processus.
Une arborescence &os.current; nécessitera un peu plus de
temps.Compiler et installer un nouveau noyaunoyaucompilationPour tirer pleinement parti de votre nouveau système,
vous devrez recompiler le noyau. C'est pratiquement
indispensable, parce que certaines structures mémoires
peuvent avoir changées, et des programmes comme &man.ps.1;
et &man.top.1; ne fonctionneront pas tant que le système
et le noyau n'utilisent pas les mêmes versions de code
source.La manière la plus simple et la plus sûre est de
compiler et installer un noyau basé sur le noyau
GENERIC. Alors que le noyau
GENERIC peut ne pas comporter les pilotes
de périphériques nécessaires pour votre
système, il devrait contenir tout ce qui est
nécessaire pour faire démarrer votre système
en mode mono-utilisateur. C'est une bonne façon de tester
le fonctionnement de votre nouveau système. Après
avoir démarré à partir du noyau
GENERIC et vérifié que
votre système fonctionne vous pouvez alors compiler un nouveau
noyau basé sur votre fichier de configuration normal du
noyau.Sur &os;, il est important
de recompiler le
système avant de compiler un nouveau
noyau.Si vous désirez compiler un noyau personnalisé,
et que vous avez déjà un fichier de
configuration, utilisez juste
KERNCONF=MONNOYAU
comme suit:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MONNOYAU
&prompt.root; make installkernel KERNCONF=MONNOYAUNotez que si vous avez augmenté la variable
kern.securelevel à une valeur
supérieure à 1 et que vous
avez positionné l'indicateur noschg
ou similaire sur votre noyau, il sera intéressant de passer
en mode mono-utilisateur pour utiliser
installkernel. Sinon vous devriez
être en mesure d'exécuter ces commandes à
partir du mode multi-utilisateur sans problèmes. Voir
la page de manuel de &man.init.8; pour plus de détails
à propos de kern.securelevel et la page
&man.chflags.1; pour des informations sur les différents
indicateurs de fichiers.Redémarrer en mode mono-utilisateurmode mono-utilisateurVous devriez redémarrer en mode mono-utilisateur pour
tester le fonctionnement du nouveau noyau. Pour cela suivez
les instructions de
.Installer les nouveaux binaires systèmeSi vous avez compilé une version de &os; assez
récente pour avoir utilisé
make buildworld alors vous devriez
utiliser maintenant installworld
pour installer les nouveaux binaires système.Lancez:&prompt.root; cd /usr/src
&prompt.root; make installworldSi vous spécifiez des variables sur la
ligne de commande de make buildworld,
vous devez utiliser les mêmes variables avec la commande
make installworld. Cela ne reste
pas forcément vrai pour d'autres options; par exemple,
ne doit jamais être utilisée
avec installworld.Par exemple, si vous exécutez:&prompt.root; make -DNO_PROFILE buildworldvous devrez ensuite installer les résultats avec:&prompt.root; make -DNO_PROFILE installworldsinon il essayera d'installer les bibliothèques
profilées qui n'ont pas été
recompilées à l'étape
make buildworld.Mettre à jour les fichiers non modifiés par
make installworldLa recompilation du système ne mettra pas à
jour certains répertoires (en particulier,
/etc, /var et
/usr) avec les fichiers nouveaux
ou modifiés.La manière la plus simple de mettre à jour
ces fichiers est d'utiliser &man.mergemaster.8;, bien
qu'il soit possible de le faire manuellement si vous le
désirez. Indépendamment de la manière
que vous choisissez, assurez-vous de faire une sauvegarde
du répertoire /etc au cas
où quelque chose se passerait mal.TomRhodesContribution de mergemastermergemasterL'utilitaire &man.mergemaster.8; est une procédure Bourne
qui vous aidera à déterminer les différences entre
vos fichiers de configuration dans le répertoire
/etc, et les fichiers de configuration
dans l'arborescence des sources
/usr/src/etc. C'est la solution
recommandée pour maintenir à jour les fichiers de
configuration du système avec ceux situés
dans l'arborescence des sources.Pour commencer, tapez simplement
mergemaster à l'invite, et observez-le
travailler. mergemaster commencera à
constituer une arborescence temporaire, à partir de
/, et la remplira avec divers fichiers
de configuration. Ces fichiers sont alors comparés avec
ceux actuellement installés sur votre système.
A ce point, les fichiers qui diffèrent seront
affichés dans le format &man.diff.1;, avec le signe
représentant les lignes modifiées
ou ajoutées, et le représentant
les lignes qui seront soit complètement supprimées,
soit remplacées avec une nouvelle ligne.
Voir la page de manuel &man.diff.1; pour plus d'informations
au sujet de la syntaxe &man.diff.1; et comment sont affichées
les différences.&man.mergemaster.8; vous affichera ensuite chaque fichier
présentant des différences, et vous aurez
à ce moment-là le choix de soit supprimer le
nouveau fichier (le fichier temporaire), soit d'installer
le fichier temporaire non modifié, soit de fusionner
le fichier temporaire et le fichier actuellement installé,
soit enfin de revoir les résultats de l'opération
&man.diff.1;.Choisir de supprimer le fichier temporaire indiquera à
&man.mergemaster.8; que nous désirons conserver notre
fichier actuel intacte, et effacera la nouvelle version.
Cette option n'est pas recommandée, à moins
que vous ne voyez aucune raison de modifier le fichier actuel.
Vous pouvez obtenir de l'aide à n'importe quel moment en
tapant ? à l'invite de &man.mergemaster.8;.
Si l'utilisateur choisit de passer un fichier, il sera
présenté à nouveau une fois que tous les
autres fichiers auront été traités.Choisir d'installer un fichier temporaire intact
remplacera le fichier actuel avec le nouveau. Pour la plupart
des fichiers non modifiées, c'est la meilleure option.Choisir de fusionner le fichier, vous affichera un éditeur
de texte, et le contenu des deux fichiers. Vous pouvez
maintenant les fusionner en les visionnant côte
à côte sur l'écran, et en sélectionnant
des parties des deux fichiers pour créer un fichier final.
Quand les fichiers sont comparés côte à
côte, la touche l sélectionnera le
contenu de gauche et la touche r
sélectionnera celui de droite.
Le résultat final sera un fichier constitué des deux
parties, qui peut alors être installé.
Cette option est habituellement utilisée pour les fichiers
où les des paramètres ont été
modifiés par l'utilisateur.Choisir de revoir les résultats de l'opération
&man.diff.1; vous affichera les différences entre fichiers
tout comme la fait &man.mergemaster.8; avant de vous demander
un choix.Après que &man.mergemaster.8; en ait terminé avec
les fichiers système, il vous proposera de nouvelles
opérations. &man.mergemaster.8; vous demandera si vous
désirez reconstruire le fichier des mots de passe
et terminera en vous proposant
de supprimer les fichiers temporaires
restants.Mise à jour manuelleSi vous désirez faire la mise à jour manuellement,
vous ne pouvez cependant pas vous contenter de copier
les fichiers de /usr/src/etc dans
/etc pour que cela fonctionne. Certains
de ces fichiers doivent d'abord être
“installés”.
En effet le répertoire /usr/src/etc
“n'est pas” une copie de ce que devrait contenir
votre répertoire /etc. De plus,
il a des fichiers qui doivent être dans
/etc et qui ne sont pas dans
/usr/src/etc.Si vous utilisez &man.mergemaster.8; (comme recommandé),
vous pouvez passer cette section et aller directement à
la section
suivante.La façon la plus simple de procéder est
d'installer les fichiers dans un nouveau répertoire, puis de
passer en revue les différences.Sauvegardez votre répertoire
/etc actuelBien qu'en principe rien ne sera modifié automatiquement
dans ce répertoire, prudence est mère de
sûreté. Copiez donc votre répertoire
/etc dans un endroit sûr. Quelque
chose du genre:&prompt.root; cp -Rp /etc /etc.oldconviendra; l'option fait une copie
récursive, préserve la date, les
autorisations des fichiers et ainsi de suite.Vous devez créer un ensemble de répertoires
provisoires pour y installer les fichiers du répertoire /etc
et autres. /var/tmp/root est un bon
choix, il y a un certain nombre de sous-répertoires
à créer également:&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionCela va créer l'arborescence nécessaire et y
installera les fichiers. Un grand nombre des
sous-répertoires créés dans
/var/tmp/root
sont vides et devront être supprimés.
La façon la plus simple de le faire est:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullCeci supprimera tous les répertoires vides (la sortie
d'erreur standard est redirigée vers
/dev/null pour empêcher les
avertissements à propos des répertoires non
vides)./var/tmp/root contient maintenant
tous les fichiers à installer à l'endroit requis sous
/. Vous devez maintenant examiner chacun
de ces fichiers pour déterminer en quoi ils diffèrent
de vos propres fichiers.Notez que certains des fichiers qui seront installés
dans /var/tmp/root commencent par un
“.”. Au moment où sont écrites ces
lignes, les seuls fichiers concernés sont les fichiers
d'initialisation des interpréteurs de commandes dans
/var/tmp/root/ et
/var/tmp/root/root/, mais il pourrait y
en avoir d'autres (cela dépend de quand vous lirez ces
lignes). Assurez-vous d'utiliser la commande ls
-a pour ne pas les oublier.La manière la plus simple de procéder est
d'utiliser la commande &man.diff.1; pour comparer les deux
fichiers:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsCela vous indiquera les différences entre votre fichier
/etc/shells et le nouveau fichier
/var/tmp/root//etc/shells. A partir de
là, décidez si vous aller reporter les modifications
que vous y avez apportée ou si vous allez simplement
recopier le nouveau fichier.Donnez au nouveau répertoire racine
(/var/tmp/root) un nom qui inclue une
date, pour pouvoir facilement comparer les différentes
versionsSi vous recompilez fréquemment votre système,
cela signifie que vous devez également souvent
mettre à jour le répertoire /etc,
ce qui peut rapidement devenir une corvée.Vous pouvez accélérer le processus en
conservant une copie du dernier ensemble de fichiers
modifiés que vous avez reportés dans
/etc. La procédure suivante
présente une façon de faire.Recompilez le système comme à
l'accoutumé. Au moment de mettre à jour
/etc et les autre répertoires,
donnez au répertoire cible un nom basé sur la
date du jour. Si vous faisiez cela le 14 février
1998, vous pourriez procéder comme suit:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionReporter les modifications depuis ce répertoire
comme décrit plus haut.Ne supprimez pas le
répertoire /var/tmp/root-19980214
quand vous aurez terminé.Quand vous récupérez la dernière
version des sources et la recompilerez, suivez l'étape
1. Vous aurez alors un nouveau répertoire, qui
pourrait s'appeler /var/tmp/root-19980221
(si vous faites une mise à jour chaque semaine).Vous pouvez maintenant voir les modifications
intervenues d'une semaine à l'autre en utilisant
&man.diff.1; pour afficher les différences entre tous
les fichiers deux répertoires:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Généralement, il y aura beaucoup moins de
différences qu'entre
/var/tmp/root-19980221/etc et
/etc. Comme il y a beaucoup
moins de différences, il est beaucoup plus facile
de les reporter dans le répertoire
/etc.Vous pouvez maintenant supprimer le plus ancien
des deux répertoires
/var/tmp/root-*:&prompt.root; rm -rf /var/tmp/root-19980214Répétez l'opération chaque fois que vous devez
reporter des modifications dans
/etc.Vous pouvez utiliser &man.date.1; pour automatiser la
génération des noms de répertoires:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`RedémarrerVous en avez terminé. Après avoir
vérifié que tout semble être en place, vous
pouvez alors redémarrez votre système. Un simple
&man.shutdown.8; devrait suffire:&prompt.root; shutdown -r nowC'est finiVous devriez maintenant avoir mis à jour avec
succès votre système &os;. Félicitations.Si les choses se sont légèrement mal
passées, il est facile de recompiler un élément
particulier du système. Par exemple, si vous avez
accidentellement effacé /etc/magic
lors de la mise à jour de /etc, la
commande &man.file.1; ne fonctionnerait plus. Dans ce cas,
la solution serait d'exécuter:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installQuestionsDois-je refaire le monde à chaque
évolution?Il n'y a pas de réponse toute faite à
cette question, tout dépend de la nature des
évolutions. Par exemple, si vous venez juste
d'exécuter CVSup, et que
les fichiers suivants on été mis à
jour:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkcela ne vaut probablement pas la peine de recompiler
tout le système. Vous pouvez tout simplement aller dans
les sous-répertoires appropriés,
exécuter make all install, et
c'est à peu près tout. Mais s'il y a des
évolutions importantes, par exemple sur
src/lib/libc/stdlib alors vous
devrez soit refaire le monde, ou recompiler au moins
toutes les parties du système qui sont liées
statiquement (de même que tout ce vous pourriez
avoir ajouté qui y serait lié statiquement).C'est à vous de voir. Vous préférerez
peut-être recompiler votre système tous les
quinze jours, et laisser les modifications s'empiler
pendant quinze jours. Ou bien vous préférerez
ne recompiler que ce qui a changé et vous faire
confiance pour tout ce qui en dépend.Et, bien sûr, cela dépend de la
fréquence avec laquelle vous voulez faire vos mises
à jour, et de si vous suivez la branche &os.stable;
ou &os.current;.Ma compilation échoue avec de nombreuses erreurs
“signal 11”signal 11 (ou tout
autre numéro de signal). Que s'est-il passé?Cela indique généralement un problème
matériel. (Re)compiler le système est un bon
moyen de mettre votre matériel sous pression, et
mettra souvent en évidence des défaillances
de la mémoire vive. Elles se manifestent normalement
d'elles-mêmes, la compilation échouant
lors de la réception de mystérieux signaux.Un bon indicateur de cet état de fait, est que
vous pouvez relancer la compilation et qu'elle échouera
en un endroit différent.Dans ce cas, vous ne pouvez guère faire autre chose
que d'intervertir les différents composants de votre
matériel pour déterminer lequel est en cause.Puis-je effacer /usr/obj après
avoir fini?Une réponse courte est oui./usr/obj contient tous les
fichiers objets générés à la
compilation. Normalement, une des premières
étapes de make buildworld est de supprimer ce
répertoire et de repartir à zéro.
Dans ce cas, conserver le répertoire
/usr/obj après avoir terminé ne
sert pas à grand chose, alors que vous
économiseriez pas mal d'espace disque (actuellement
environ 340 MO).Cependant, si vous savez ce que vous faites, vous
pouvez faire en sorte que make buildworld
saute cette étape. Cela rendra les compilations
ultérieures plus rapides, puisque la plupart des sources
n'auront pas besoin d'être recompilées.
Le revers de la médaille est que des problèmes
subtils de dépendance peuvent se manifester, provoquant
l'échec de votre compilation de manière
étrange. Cela génère fréquemment
du bruit sur les listes de diffusion de &os;, quand quelqu'un se
plaint que sa mise à jour a échoué, sans
réaliser que c'est parce qu'il a tenté de
brûler les étapes.Une recompilation interrompue peut-elle être
reprise?Tout dépend de jusqu'où vous êtes
aller avant de rencontrer un problème.En général (et ceci n'est
pas une règle absolue) make buildworld
crée de nouveaux exemplaires des outils indispensables
(comme &man.gcc.1; et &man.make.1;) et des bibliothèques
système. Ces outils et bibliothèques sont
ensuite installés. Puis ils sont utilisés pour
se reconstruire eux-mêmes, et installés de nouveau.
L'intégralité du système (y compris
maintenant les programmes utilisateurs classiques, comme
&man.ls.1; ou &man.grep.1;) est alors recompilé avec
les nouveaux fichiers système.Si vous êtes à cette dernière
étape, et que vous le savez (parce que vous avez
consulté les résultats que vous avez
enregistrés) alors vous pouvez (sans trop de risque)
faire:… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allCela ne détruira pas les résultats du
travail qu'à déjà effectué make
buildworld.Si vous voyez le message:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------dans les comptes-rendus de make buildworld
alors cette façon de procéder est probablement
bonne.Si vous ne voyez pas ce message, ou que vous doutez
de vous, alors prudence est mère de sûreté,
et il vaut mieux tout reprendre depuis le début.Comment puis-je accélérer la compilation
du système?Passez en mode mono-utilisateur.Mettez les répertoires
/usr/src et
/usr/obj sur des systèmes de
fichiers et des disques différents. Si possible,
installez ces disques sur des contrôleurs
différents.Encore mieux, mettez ces systèmes de fichiers
sur plusieurs disques utilisant le système
&man.ccd.4; (pilote de disques
concaténés).Ne compilez pas les bibliothèques profilées
(mettez “NO_PROFILE=true” dans le fichier
/etc/make.conf). Vous n'en
avez certainement pas besoin.Egalement dans /etc/make.conf,
positionnez CFLAGS à quelque
chose comme .
L'optimisation est bien plus
lente, et la différence d'optimisation entre
et est en
général négligeable.
demande au compilateur d'utiliser
des tuyaux à la place de fichiers temporaires, ce
qui économise des accès disque (mais
utilise plus de mémoire).Passez l'option
à &man.make.1; pour permettre l'exécution de
plusieurs processus en parallèle. Cela
améliore généralement les choses, que
vous ayez une machine mono- ou multi-processeurs.Le système de fichiers qui contient
/usr/src peut être monté
(ou remonté) avec l'option .
Cela empêche l'enregistrement des dates d'accès
aux fichiers par le système de fichiers. Vous
n'avez de toute façon probablement pas besoin de cette
information.&prompt.root; mount -u -o noatime /usr/srcCet exemple suppose que
/usr/src constitue à lui
seul un système de fichiers. Si ce n'est pas
le cas (s'il fait partie de
/usr par exemple) vous
devez alors indiquer le point de montage de ce
système de fichiers, et non
/usr/src.Le système de fichiers où se trouve
/usr/obj peut être
monté (ou remonté) avec l'option
. Les écritures sur le
disque se feront alors de façon asynchrone. En
d'autres termes, le programme reprend immédiatement
la main, et l'écriture des données sur le
disque se fait quelques secondes plus tard. Cela
permet le groupement des écritures sur le disque,
et le gain en performance peut être
spectaculaire.Gardez à l'esprit que cette option rend votre
système de fichiers plus fragile. Avec cette
option, les risques ne sont accrus qu'en cas de
coupure d'alimentation, le système de fichiers
soit irrécupérable quand la machine
redémarrera.S'il n'y a que /usr/obj
sur ce système de fichiers, ce n'est alors pas un
problème. Si vous avez d'autres données
importantes sur ce système de fichiers,
assurez-vous que vos sauvegardes soient à jour
avant d'activer cette option.&prompt.root; mount -u -o async /usr/objComme auparavant, si
/usr/obj ne constitue pas un
système de fichiers en soit, remplacez-le dans
l'exemple par le nom du point de montage
approprié.Que faire si quelque chose se passe mal?Soyez absolument sûr que votre environnement
ne contient pas des restes de compilation
précédentes. Cela est plutôt simple:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirEn effet, make cleandir
doit vraiment être exécutée
deux fois.Ensuite relancez l'ensemble du processus,
en commençant avec
make buildworld.Si vous avez toujours des problèmes,
envoyez l'erreur et le résultat de la commande
uname -a à la &a.questions;.
Tenez-vous prêt à répondre à d'autres
concernant votre configuration!MikeMeyerContribution de Suivre les mises à jour pour plusieurs machinesNFSinstallation de multiples machinesSi vous avez plusieurs machines dont vous voulez maintenir à
jour l'arborescence des sources, alors faire
télécharger et recompiler à chacune d'entre elles
les sources semble un gaspillage de ressources: espace disque, bande
passante réseau, et cycles CPU. C'est en effet bien le cas,
et la solution est d'avoir une machine qui fait la majeure
partie du travail, pendant que le reste des machines montent ce
travail par NFS. Cette section décrit une façon
de le faire.PréliminairesPremièrement, identifiez un ensemble de machines
qui va utiliser le même ensemble de binaires, que nous
appellerons un ensemble de compilation.
Chaque machine peut avoir un noyau personnalisé, mais
elles exécuteront les mêmes binaires utilisateur du
système de base. Dans cet ensemble de machine, choisissez
une machine qui sera la machine de
compilation. Cela sera la machine sur laquelle
le monde et le noyau seront compilés. Idéalement, cela
devrait être une machine rapide avec un CPU suffisamment
disponible pour exécuter la commande make
buildworld et make buildkernel. Vous voudrez également utiliser
une machine de test, qui testera
les mises à jour logicielles avant d'être utilisées
en production. Cela doit être une
machine que vous pouvez vous permettre d'avoir hors service
pour une longue période. Cela peut être la machine
de compilation, mais cela n'est pas obligatoire.Toutes les machines de cet ensemble de compilation
doivent monter /usr/obj et
/usr/src à partir de la même
machine, et du même point de montage. Idéalement, ces
derniers sont sur deux disques différents sur la machine de
compilation, mais peuvent également être
montés par NFS sur cette machine. Si vous avez plusieurs
ensembles de compilation, /usr/src
devrait être sur une machine de compilation, et monté
par NFS sur les autres.Finalement assurez-vous que
/etc/make.conf et
/etc/src.conf sur toutes les machines
de l'ensemble de compilation sont en accord avec la machine de
compilation. Cela signifie que la machine de compilation doit
compiler toutes les parties du système de base que toute
machine de l'ensemble de compilation va installer.
De plus, chaque machine de compilation devra avoir son nom de
noyau défini avec KERNCONF dans
/etc/make.conf, et la machine de
compilation devrait tous les lister dans
KERNCONF, en listant son noyau en premier.
La machine de compilation doit avoir les fichiers de
configuration des noyaux de chaque machine dans
/usr/src/sys/arch/conf
si elle va compiler leur noyau.Le système de baseMaintenant que tout est configuré, vous êtes
fin prêt pour tout compiler. Compilez le noyau et le monde
sur la machine de compilation comme décrit dans la , mais n'installez rien. La
compilation une fois terminée, allez sur la machine de
test, et installez le noyau que vous venez juste de compiler.
Si la machine monte /usr/src
et /usr/obj via NFS, quand vous
redémarrez en mode mono-utilisateur vous devrez activer le
réseau et monter ces répertoires. La méthode
la plus simple est de démarrer en mode multi-utilisateur,
puis exécutez shutdown now pour passer en
mode mono-utilisateur. Une fois à ce niveau, vous pouvez
installer le nouveau noyau et monde puis exécuter
mergemaster comme vous le feriez
habituellement. Une fois cela effectué, redémarrez
pour retourner en mode multi-utilisateur pour cette
machine.Après que vous soyez certain que tout fonctionne
correctement sur la machine de test, utilisez la même
procédure pour installer le nouvel ensemble logiciel sur
chacune des autres machines de l'ensemble de
compilation.Les logiciels portésLa même idée peut être utilisée
pour le catalogue des logiciels portés. La
première étape critique est de monter
/usr/ports depuis la même machine vers
toutes les machines de l'ensemble de compilation. Vous
pouvez alors configurer correctement
/etc/make.conf pour partager les
archives. Vous devrez faire pointer DISTDIR
sur un répertoire de partage commun dans lequel peut
écrire n'importe quel utilisateur utilisé pour
correspondance de l'utilisateur root par vos
montages NFS. Chaque machine devrait faire pointer
WRKDIRPREFIX sur une répertoire de
compilation local. Et enfin, si vous projetez de compiler et
distribuer des logiciels précompilés, vous
devriez fixer PACKAGES sur un répertoire
similaire à DISTDIR.
diff --git a/fr_FR.ISO8859-1/books/handbook/mail/chapter.xml b/fr_FR.ISO8859-1/books/handbook/mail/chapter.xml
index b922a4c770..0acce15f66 100644
--- a/fr_FR.ISO8859-1/books/handbook/mail/chapter.xml
+++ b/fr_FR.ISO8859-1/books/handbook/mail/chapter.xml
@@ -1,2657 +1,2656 @@
BillLloydContribution originale de JimMockRéécrit par Courrier électronique
&trans.a.fonvieille;
Synopsisemailcourrier électroniqueLe “courrier électronique”, plus connu sous le nom d'email,
est une des formes de communication les plus utilisées
aujourd'hui. Ce chapitre fournit une introduction sur comment
faire fonctionner un serveur de courrier électronique sous
FreeBSD, et comment envoyer et recevoir du courrier électronique sous &os;. Cependant, cela n'est pas un document de
référence, en fait de nombreux
éléments importants ont été omis.
Pour une couverture plus complète du sujet, le lecteur doit
se référer aux nombreux ouvrages excellents
listés dans l'.Après la lecture de ce chapitre, vous
connaîtrez:Quels composants logiciel sont impliqués dans
l'envoi et la réception du courrier
électronique.Où se trouvent sous FreeBSD les fichiers de
configuration de base de
sendmail.La différence entre boîtes aux lettres
distantes et boîtes aux lettres locale.Comment empêcher les personnes à l'origine
de courriers non sollicités (spam) d'utiliser votre
serveur de courrier comme relais.Comment installer et configurer un agent de transfert de
courrier alternatif sur votre système, en remplacement
de sendmail.Comment dépanner les problèmes
courants des serveurs de courrier
électronique.Comment utiliser le protocole SMTP avec UUCP.Comment utiliser le courrier électronique avec
une connexion temporaire.Comment configurer l'authentification SMTP pour une
sécurité accrue.Comment installer et utiliser un client de messagerie,
comme mutt pour envoyer et lire
du courrier électronique.Comme récupérer votre courrier
électronique à partir d'un serveur
POP ou IMAP
distant.Comment appliquer automatiquement des règles de
filtrage au courrier entrant.Avant de lire ce chapitre, vous devrez:Configurer correctement votre connexion réseau
().Configurer correctement les informations DNS
pour votre serveur de courrier ().Savoir comment installer des logiciels tiers
().Utilisation du courrier électroniquePOPIMAPDNSIl y a cinq éléments majeurs impliqués
dans un échange de courrier. Ce sont:
le programme utilisateur,
le “daemon” serveur de
courrier, le serveur DNS,
une boîte aux lettres distante ou locale, et
bien sûr le le serveur
de courrier lui-même .Le programme utilisateurCela inclut des programmes en ligne de commande comme
mutt, pine,
elm, et
mail, et des programmes graphiques
comme balsa,
xfmail pour juste en nommer
quelques-uns, ou quelque chose de plus
sophisticated comme un navigateur WWW. Ces
programmes transmettent simplement toutes les transactions
concernant le courrier électronique au serveur de courrier local, soit en
invoquant un des “daemons” serveurs
(Agents de transfert de courrier) disponibles, soit via
TCP.Le “daemon” serveur de courrierdaemons serveurs de courriersendmaildaemons serveurs de courrierpostfixdaemons serveurs de courrierqmaildaemons serveurs de courrierexim&os; est fourni par défaut avec
sendmail, mais supporte
également de nombreux autres “daemons”
serveurs de courrier, parmi lesquels:exim;postfix;qmail.Le serveur a généralement deux
fonctions—il est responsable de la réception du
courrier comme celle de son envoi. Il n'est cependant
pas responsable de la
récupération du courrier électronique en
utilisant des protocoles comme POP ou
IMAP pour lire votre courrier, il ne vous
permet pas non plus la connexion à des boîtes aux
lettres locales de type mbox ou maildir.
Vous avez besoin d'un “daemon”
supplémentaire pour cela.Les anciennes version de
sendmail ont de sérieux
problèmes de sécurité qui peuvent avoir
pour conséquence l'obtention d'un accès local
et/ou à distance à votre machine pour une
personne malveillante. Vérifiez que vous utilisez
une version à jour pour éviter de tels
problèmes. Vous avez cependant toujours la
possibilité d'installer un autre
MTA à partir du catalogue des logiciels portés de
&os;.Courrier électronique et DNSLe système de noms de domaines (DNS) et son
“daemon” named jouent un rôle
important dans la transmission du courrier électronique.
Afin de délivrer du courrier de votre site à un autre,
le serveur recherchera le site distant dans la base de données DNS
pour déterminer la machine qui recevra le courrier
électronique pour le destinataire. Ce processus
intervient également quand un courrier
électronique est envoyé à partir d'une
machine distante vers votre serveur de courrier.enregistrement MXLe DNS gère la correspondance
entre nom de machine et adresse IP, et le stockage des
informations spécifiques à la distribution du
courrier électronique, connues sous le nom
d'enregistrements MX. L'enregistrement MX (“Mail
eXchanger”) définit la machine, ou les machines,
qui recevra le courrier pour un domaine particulier. Si vous
n'avez pas d'enregistrement MX pour votre machine ou votre
domaine, le courrier sera directement envoyé à
votre machine à condition que vous ayez un
enregistrement A faisant correspondre à votre nom de
machine votre adresse IP.Vous pouvez obtenir les enregistrements MX pour n'importe
quel domaine en utilisant la commande &man.host.1; est
présentée ci-dessous:&prompt.user; host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgRéception de courriercourrier électroniqueréceptionLa réception du courrier pour votre domaine se fait par le
serveur de courrier. Il collectera le courrier qui est
envoyé à destination de votre domaine et le
stockera soit sous le format mbox (la
méthode par défaut de stockage du courrier
électronique) ou le format Maildir, en fonction de
votre configuration. Une fois le courrier stocké, il
peut être lu localement en utilisant des applications
comme &man.mail.1; ou mutt, ou lu
à distance et récupéré en
utilisant des protocoles tels que POP ou
IMAP. Cela signifie que si vous
désirez uniquement lire votre courrier
électroniquement en local, vous n'avez pas besoin
d'installer un serveur POP ou
IMAP.Accès aux boîtes aux lettres distantes en
utilisant POP et
IMAPPOPIMAPPour accéder à des boîtes aux
lettres distantes, vous devez avoir un accès à
un serveur POP ou
IMAP. Ces protocoles permettent aux
utilisateurs de se connecter aisément à leurs
boîtes aux lettres à partir de machines
distantes. Bien que POP et
IMAP permettent, tous les deux,
l'accès aux boîtes aux lettres pour les
utilisateurs, IMAP offre de nombreux
avantages, parmi lesquels:IMAP peut stocker les messages
sur un serveur distant et les
récupérer.IMAP supporte les mises à
jour concourantes.IMAP peut être
extrêmement utile pour les connexions lentes car il
permet aux utilisateurs de récupérer la
structure des messages sans les télécharger.
Il peut également effectuer des tâches comme
la recherche sur le serveur pour réduire les
transferts de données entre clients et
serveurs.Pour installer un serveur POP ou
IMAP, les étapes suivantes doivent
être suivies:Choisissez un serveur IMAP ou
POP correspondant à vos
besoins. Les serveurs POP et
IMAP suivants sont connus et sont de
bons exemples:qpopper;teapop;imap-uw;courier-imap;Installez le “daemon”
POP ou IMAP de votre
choix à partir du catalogue des logiciels
portés.Si cela est nécessaire, modifiez le fichier
/etc/inetd.conf pour charger le
serveur POP ou
IMAP.Il doit être noté que
POP et IMAP
transmettent les données, y compris les noms
d'utilisateurs et mot de passe d'authentification en clair.
Cela signifie que si vous désirez sécuriser la
transmission des données avec ces protocoles, vous
devriez considérer l'utilisation de de tunnels
&man.ssh.1;. L'utilisation de tels tunnels est
décrite dans la .Accès aux boîtes aux lettres
localesLes boîtes aux lettres peuvent être
accessibles localement en utilisant un client de messagerie
sur le serveur où se trouve la boîte. Cela
peut être fait en employant des applications telles
que mutt ou &man.mail.1;.Le serveur de courrierserveur de courrierLe serveur de courrier est le nom donné au
serveur qui est responsable de la transmission et la
réception du courrier pour votre machine, et
probablement votre réseau.ChristopherShumwayContribution de Configuration de sendmailsendmail&man.sendmail.8; est l'agent de transfert de courrier (Mail
Transfert Agent—MTA) par défaut sous FreeBSD. Le rôle
de sendmail est d'accepter le
courrier en provenance des agents de courrier utilisateur (Mail
User Agents—MUA) et de délivrer le courrier aux programmes de
gestion du courrier définis dans son fichier de configuration.
sendmail peut également accepter
les connexions réseau et délivrer le courrier dans des
boîtes aux lettres locales ou le transmettre à un autre
programme.sendmail utilise les fichiers de
configuration suivants:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertableFichierFonction/etc/mail/accessFichier de la base de données d'accès
de sendmail/etc/mail/aliasesAlias de boîte aux lettres/etc/mail/local-host-namesListe des machines pour lesquelles
sendmail accepte du
courrier/etc/mail/mailer.confConfiguration du programme de gestion du
courrier/etc/mail/mailertableTable de livraison du courrier/etc/mail/sendmail.cfFichier de configuration principal
de sendmail/etc/mail/virtusertableTable des domaines et utilisateurs virtuels/etc/mail/accessLa base de données d'accès définit
quelle(s) machine(s) ou adresses IP ont accès au serveur de
courrier local et quel type d'accès ils ont.
Les machines peuvent être listées avec ,
, ou simplement
transférées à la routine de gestion des erreurs
sendmail avec une erreur donnée.
Les machines qui sont listées avec , qui est le
comportement par défaut, sont autorisées à envoyer du
courrier à cette machine dès que la destination finale
du courrier est la machine locale. Les machines listées avec
se verront rejeter pour toute connexion
au serveur. Les machines présentes avec l'option
sont autorisées à envoyer du
courrier à n'importe quelle destination par
l'intermédiaire de ce serveur de courrier.Configuration de la base de données d'accès
de sendmailcyberspammer.com 550 We don't accept mail from spammers
FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYDans cet exemple nous avons cinq entrées.
Les émetteurs de courrier qui correspondent à la partie
gauche de la table sont affectés par l'action donnée
sur la partie droite de la table. Les deux premiers
exemples donnent un code d'erreur à la routine de gestion
d'erreur de sendmail.
Le message est affiché sur la machine distante quand un courrier
électronique correspond à la partie gauche de la table.
L'entrée suivante rejette le courrier en provenance
d'une machine précise de l'Internet,
another.source.of.spam. L'entrée suivante
accepte les connexions à partir de la machine
okay.cyberspammer.com, qui est plus précis
que le cyberspammer.com de la ligne
précédente. Les correspondances plus spécifiques
priment sur les moins précises. La dernière
entrée autorise le relais du courrier électronique en
provenance de machines avec une adresse IP qui commence par
128.32. Ces machines seront en mesure
d'envoyer du courrier destiné à d'autres
serveurs de courrier par l'intermédiaire de ce serveur de
courrier.Quand ce fichier est mis à jour, vous devez exécuter
la commande make dans
/etc/mail/ pour mettre à jour la base
de données./etc/mail/aliasesLa base de données d'alias contient une liste
de boîtes aux lettres virtuelles dont le contenu sera transmis
à d'autres utilisateurs, fichiers, programmes ou d'autres
alias. Voici quelques exemples qui peuvent être
utilisés dans /etc/mail/aliases:Exemple de base de données d'aliasroot: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"Le format du fichier est simple; le nom de la boîte
aux lettres à gauche et la cible sur la droite.
Le premier exemple transfère la boîte aux lettres
root vers la boîte aux lettres
localuser, qui est ensuite recherchée
dans la base de données d'alias. Si aucune correspondance n'est
trouvée alors le message est délivré à
l'utilisateur locale
localuser. L'exemple suivant montre une
liste de correspondance. Un courrier envoyé à la
boîte aux lettres ftp-bugs sera
délivré aux trois boites locales joe,
eric, et paul. Notez
qu'une boîte aux lettres distante comme user@exemple.com/procmail
pourra
être spécifiée. L'exemple suivant montre comment
transférer le courrier dans un fichier, dans notre cas
/dev/null. Le dernier exemple montre
l'envoi du courrier à un programme, dans le cas présent
le message est écrit sur l'entrée standard de
/usr/local/bin/procmail par
l'intermédiaire d'un tube &unix;.Quand ce fichier est mis à jour, vous devez
exécuter la commande make dans
/etc/mail/ pour mettre à jour
la base de données./etc/mail/local-host-namesC'est la liste des machines pour lesquelles &man.sendmail.8;
accepte du courrier comme s'il était destiné
à la machine locale.
Placez-y tous les domaines ou machines pour lesquels
sendmail doit recevoir du courrier.
Par exemple, si le serveur de courrier devait accepter du
courrier pour le domaine exemple.com et la machine
mail.exemple.com, sont
local-host-names ressemblera à quelque
chose comme ceci:exemple.com
mail.exemple.comQuand ce fichier est mis à jour, &man.sendmail.8; doit
être relancé pour lire les changements./etc/mail/sendmail.cfFichier principal de configuration de
sendmail,
sendmail.cf contrôle le comportement
général de sendmail,
y compris tout depuis la réécriture des adresses
de courrier jusqu'à l'envoi de message de rejet aux
serveurs de courrier distants. Naturellement, avec tant de
différentes activités, ce fichier de configuration
est relativement complexe et son étude détaillée
n'est pas le but de cette section. Heureusement, ce fichier a
rarement besoin d'être modifié pour les serveurs de courrier
standards.Le fichier de configuration principal de
sendmail peut être
créé à partir de macros &man.m4.1; qui
définissent les fonctions
et le comportement de sendmail.
Veuillez consulter
/usr/src/contrib/sendmail/cf/README pour
plus de détails.Quand des modifications à ce fichier sont apportées,
sendmail doit être
redémarré pour que les changements prennent effet./etc/mail/virtusertableLa table virtusertable fait
correspondre les adresses de courrier électronique pour des
domaines virtuels et les boîtes aux lettres avec des
boîtes aux lettres réelles. Ces boîtes aux lettres
peuvent être locales, distantes, des alias définis dans
/etc/mail/aliases ou des fichiers.Exemple de correspondance de domaine virtuel de
courrierroot@exemple.com root
postmaster@exemple.com postmaster@noc.exemple.net
@exemple.com joeDans l'exemple ci-dessus, nous avons une correspondance pour
un domaine exemple.com. Ce fichier est traité
jusqu'à trouver la première correspondance.
Le premier élément fait correspondre root@exemple.com
à la boîte aux lettres root locale. L'entrée
suivante fait correspondre postmaster@exemple.com à la
boîte aux lettres postmaster sur la machine noc.exemple.net.
Et enfin, si un courrier en provenance de exemple.com n'a pas
trouvé de correspondance, il correspondra à la
dernière ligne, qui régira tous les autres messages
adressés à
quelqu'un du domaine exemple.com.
La correspondance sera la boîte aux lettres locale
joe.AndrewBoothmanEcrit par GregoryNeil ShapiroInformation provenant de courriers électroniques
écrit par Changer votre agent de transfert de courriercourrier électroniquechanger d'agent de transfert de courrierComme mentionné précédemment,
FreeBSD est fournit avec sendmail
comme agent de transfert du courrier (MTA - Mail Transfert
Agent). Il est donc par défaut
en charge de votre courrier sortant et entrant.Cependant, pour une variété de raison,
certains administrateurs système désirent
changer le MTA de leur système. Ces raisons vont de la
simple envie d'essayer un autre agent au besoin d'une fonction
ou ensemble spécifique qui dépend d'un autre gestionnaire de
courrier. Heureusement, quelle qu'en soit la raison, FreeBSD
rend le changement aisé.Installer un nouveau MTAVous avez un vaste choix d'agent disponible. Un bon
point de départ est le catalogue des
logiciels portés de FreeBSD où vous pourrez
en trouver un grand nombre.
Bien évidemment vous êtes libres
d'utiliser n'importe quel agent de n'importe quelle origine,
dès que vous pouvez le faire fonctionner sous FreeBSD.Commencez par installer votre nouvel agent. Une fois ce
dernier installé, il vous donne une chance de décider s'il
remplit vraiment vos besoins, et vous donne l'opportunité
de configurer votre nouveau logiciel avant de remplacer
sendmail. Quand vous faites cela,
vous devez être sûr que l'installation du nouveau
logiciel ne tentera pas de remplacer des binaires du système
comme /usr/bin/sendmail. Sinon, votre
nouveau logiciel sera mis en service avant d'avoir pu
le configurer.Veuillez vous référer à la documentation de l'agent choisi
pour de l'information sur comment configurer le logiciel que
vous avez choisi.Désactiver sendmailLa procédure utilisée pour lancer
sendmail a changé de façon
significative entre la 4.5-RELEASE et la 4.6-RELEASE.
Par conséquent, la procédure utilisée pour
la désactiver est légèrement
différente.FreeBSD 4.5-STABLE d'avant le 2002/4/4 et plus ancienne
(y compris 4.5-RELEASE et précédentes)Ajoutez:sendmail_enable="NO"dans /etc/rc.conf. Cela
désactivera le service de courrier entrant de
sendmail mais si
/etc/mail/mailer.conf (voir plus bas)
n'est pas modifié, sendmail
sera toujours utilisé pour envoyer du courrier
électronique.FreeBSD 4.5-STABLE d'après le 2002/4/4
(y compris 4.6-RELEASE et suivantes)Afin de complètement désactiver
sendmail vous devez utilisersendmail_enable="NONE"dans /etc/rc.conf.Si vous désactivez le service d'envoi de courrier de
sendmail de cette manière, il
est important que vous le remplaciez par un système de
courrier alternatif fonctionnant parfaitement. Si vous
choisissez de ne pas le faire, des fonctions du système
comme &man.periodic.8; ne seront pas en mesure de délivrer
leur résultat par courrier électronique comme elles
s'attendent normalement à le faire. De nombreux
composants de votre système s'attendent à
avoir un système
compatible à sendmail en
fonctionnement. Si des applications continuent à utiliser
les binaires de sendmail pour
essayer d'envoyer du courrier électronique après la
désactivation, le courrier pourra aller dans une file
d'attente inactive, et pourra n'être jamais
livré.Si vous voulez uniquement désactiver le service de
réception de courrier de sendmail
vous devriez fixersendmail_enable="NO"dans /etc/rc.conf. Plus
d'information sur les options de démarrage de
sendmail est disponible à partir
de la page de manuel de &man.rc.sendmail.8;.Lancement de votre nouvel agent au démarrageVous pourrez avoir le choix entre deux méthodes pour
lancer votre nouvel agent au démarrage, encore une fois en
fonction de la version de FreeBSD dont vous disposez.FreeBSD 4.5-STABLE d'avant le 2002/4/11
(y compris 4.5-RELEASE et précédentes)Ajouter une procédure dans
/usr/local/etc/rc.d/ qui
se termine en .sh et qui est
exécutable par root. La
procédure devrait accepter les paramètres
start et stop.
Au moment du démarrage les procédures
système exécuteront la commande/usr/local/etc/rc.d/supermailer.sh startque vous pouvez également utiliser pour démarrer le
serveur. Au moment de l'arrêt du système, les
procédures système utiliseront l'option
stop en exécutant la commande/usr/local/etc/rc.d/supermailer.sh stopque vous pouvez également utiliser manuellement pour
arrêter le serveur quand le système est en
fonctionnement.FreeBSD 4.5-STABLE d'après le 2002/4/11
(y compris 4.6-RELEASE et suivantes)Avec les versions suivantes de FreeBSD, vous pouvez
utiliser la méthode ci-dessus ou fixermta_start_script="nomfichier"dans /etc/rc.conf, où
nomfichier est le nom
d'une procédure que vous voulez exécuter
au démarrage pour lancer votre agent.Remplacer sendmail comme
gestionnaire du courrier du système par
défautLe programme sendmail est tellement
omniprésent comme logiciel standard sur les
systèmes &unix; que certains programmes supposent qu'il est tout
simplement déjà installé et configuré.
Pour cette raison, de nombreux agents alternatifs fournissent
leur propre implémentation compatible avec l'interface en
ligne de commande de sendmail;
cela facilite leur utilisation comme remplaçant pour
sendmail.Donc, si vous utilisez un programme alternatif, vous
devrez vérifier que le logiciel essayant d'exécuter
les binaires standards de sendmail
comme /usr/bin/sendmail exécute
réellement l'agent que vous avez choisi à la place.
Heureusement, FreeBSD fournit un système appelé
&man.mailwrapper.8; qui remplit ce travail pour vous.Quand sendmail fonctionne tel
qu'il a été installé, vous
trouverez quelque chose comme ce qui suit dans
/etc/mail/mailer.conf:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailCela signifie que lorsque l'une des commandes courantes
(comme sendmail lui-même) est
lancée, le système invoque en fait une copie de
“mailwrapper” appelée
sendmail, qui lit
mailer.conf et
exécute /usr/libexec/sendmail/sendmail
à la place. Ce système rend aisé le changement
des binaires qui sont réellement exécutés
quand les fonctions de sendmail par
défaut sont invoquées.Donc si vous avez voulu que
/usr/local/supermailer/bin/sendmail-compat
soit lancé en place de sendmail,
vous pourrez modifier /etc/mail/mailer.conf
de cette façon:sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatPour en terminerUne fois que vous avez tout configuré de la façon
dont vous le désirez, vous devriez soit tuer les processus de
sendmail dont vous n'avez plus
besoin et lancer les processus appartenant à votre
nouveau logiciel, ou tout simplement redémarrer. Le
redémarrage vous donnera l'opportunité de vous assurer
que vous avez correctement configuré votre système
pour le lancement automatique de votre nouvel agent au
démarrage.Dépannagecourrier électroniquedépannagePourquoi faut-il que j'utilise le FQDN (“Fully
Qualified Domain Name” - nom complet de machine) pour
les machines de mon site?Vous vous rendrez probablement compte que la machine est
en fait dans un domaine différent; par exemple, si vous
êtes dans le domaine foo.bar.edu
et que vous voulez atteindre la machine mumble
du domaine bar.edu,
vous devrez utiliser son nom de machine complet,
mumble.bar.edu, au lieu de
juste mumble.C'était traditionnellement autorisé par les
résolveurs BINDBIND BSD.
Néanmoins, la version de BIND
qui est maintenant livrée avec FreeBSD ne sait pas
compléter les noms de machines abrégés autrement
qu'avec le nom de votre domaine. Donc le nom non
qualifié mumble doit correspondre
à mumble.foo.bar.edu,
sans quoi il sera recherché dans le domaine racine.Cela diffère du comportement précédent,
où la recherche se prolongeait à
mumble.bar.edu, puis
mumble.edu.
Consultez la RFC 1535 pour savoir pourquoi cela était
considéré comme une mauvaise pratique, voire
même un trou de sécurité.Comme solution, vous pouvez mettre la ligne:
search foo.bar.edu bar.edu
à la place de:
domain foo.bar.edu
dans votre fichier /etc/resolv.conf.
Cependant, assurez-vous que la recherche ne franchit pas la
“limite entre l'administration locale et
publique”, selon l'expression de la RFC 1535.sendmail affiche le message
mail loops back to myselfLa réponse donnée dans la FAQ de
sendmail est la suivante:J'obtiens les messages d'erreur suivant:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Comment puis-je résoudre ce problème?
Vous avez demandé que le courrier pour un domaine (e.g., domain.net)
soit transmis à une machine donnée (dans ce cas précis, relay.domain.net)
en utilisant un enregistrement MXMX record, mais la machine relais ne se
connaît pas elle-même comme domain.net. Ajoutez domain.net à
/etc/mail/local-host-names [connu sous le nom /etc/sendmail.cw dans les versionsantérieure à 8.10] (si vous utilisez FEATURE(use_cw_file))
ou ajoutez “Cw domain.net” à
/etc/mail/sendmail.cf.La FAQ de sendmail peut être trouvée
à l'adresse et
sa lecture est recommandée si vous voulez
“bidouiller” votre configuration du courrier
électronique.Comment puis-je faire tourner un serveur de courrier
électronique avec une connexion
téléphonique PPPPPPVous voulez connecter une machine FreeBSD du réseau
local à l'Internet. Cette machine servira de passerelle de
courrier électronique pour le réseau local.
La connexion PPP n'est pas dédiée.Il y a au moins deux façons de faire. L'une d'elle
est d'utiliser UUCPUUCP.L'autre méthode étant d'obtenir un serveur Internet
constamment connecté pour qu'il vous fournisse les services
MX pour votre domaine. Par exemple, si le domaine de votre
compagnie est exemple.com et votre
fournisseur d'accès a configuré
exemple.net pour fournir un MX secondaire
pour votre domaine:exemple.com. MX 10 exemple.com.
MX 20 exemple.net.Une seule machine devrait être
spécifiée comme destinataire final (ajoutez
Cw exemple.com au fichier
/etc/mail/sendmail.cf de
exemple.com).Quand le sendmail expéditeur tente
de vous délivrer du courrier, il essaiera de se connecter
à votre serveur (exemple.com)
via votre liaison par modem. Ce qui échouera très
probablement par dépassement de délai puisque
vous n'êtes pas en ligne. Le programme
sendmail enverra automatiquement
le courrier au site MX secondaireMX record, i.e. votre fournisseur
d'accès (exemple.net).
Le site MX secondaire essayera périodiquement de se
connecter à votre machine pour expédier le
courrier au site MX primaire (exemple.com).Vous pourrez vouloir utiliser quelque chose comme ceci
comme procédure de connexion:#!/bin/sh
# Mettez-moi dans /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyispSi vous avez l'intention de définir une
procédure de connexion particulière pour un
utilisateur, vous pourrez utiliser
sendmail -qRexemple.com à la place
de la procédure ci-dessus. Cela forcera le traitement
immédiat de tout le courrier dans votre file d'attente
pour exemple.com.On peut encore affiner la configuration comme
suit:Message emprunté à la &a.isp;.> Nous fournissons un MX secondaire à un
client. Le client se connecte
> à notre service automatiquement plusieurs fois par jour pour acheminer
> le courrier sur son MX primaire (nous n'appelons pas son site lorsque
> du courrier pour ses domaines arrive). Notre sendmail envoie le courrier de la
> file d'attente toutes les demi-heures. Pour l'instant, il doit rester
> une demi-heure en ligne pour être sûr que tout le courrier soit
> arrivé au MX primaire.
>
> Y-a-t-il une commande qui permette de dire à sendmail d'envoyer
> sur-le-champ tout le courrier? L'utilisateur n'a évidemment pas
> les droits super-utilisateur sur la machine.
Dans la section “privacy flags” (indicateurs de
confidentialité) de sendmail.cf, il y a la définition Opgoaway,restrictqrun
Supprimer restrictqrun permet à d'autres utilisateurs que le
super-utilisateur de lancer le traitement de la file d'attente. Vous
pouvez aussi redéfinir les MXs. Nous sommes le premier MX pour les
utilisateurs de ce type, et nous avons défini:
# Si nous sommes le meilleur MX pour une machine, essayer directement
# au lieu d'émettre des messages d'erreur de configuration locale.
OwTrue
De cette façon, un site distant vous enverra directement le courrier,
sans essayer de se connecter chez votre client. Vous le lui
transmettez ensuite. Cela ne marche qu'avec les “machines”,
votre client doit nommer son serveur de courrier
“client.com” aussi bien que
“machine.client.com” dans le DNS. Mettez seulement un
enregistrement A pour “client.com”.Pourquoi j'obtiens le message d'erreur
Relaying Denied à chaque
fois que j'envoie du courrier à partir d'autres
machines?Dans l'installation par défaut de FreeBSD,
sendmail est configuré pour
envoyer du courrier uniquement à partir de la machine
sur laquelle il tourne. Par exemple, si un serveur POP
est disponible, alors les utilisateurs pourront retirer leur
courrier depuis l'école, le travail, ou toute autre
machine distante mais ils ne seront toujours pas en mesure
d'envoyer du courrier électronique à partir de machines
extérieures. Généralement, quelques
instants après une tentative, un courrier
électronique sera envoyé par le
MAILER-DAEMON avec un message
5.7 Relaying Denied.Il y a plusieurs façons d'y remédier.
La solution la plus directe est de mettre l'adresse
de votre fournisseur d'accès dans un fichier de domaine
à relayer /etc/mail/relay-domains.
Une façon rapide de le faire serait:&prompt.root; echo "votre.fai.exemple.com" > /etc/mail/relay-domainsAprès avoir créé ou édité
ce fichier vous devez
redémarrer sendmail.
Cela fonctionne parfaitement si vous êtes
l'administrateur d'un serveur et vous ne désirez pas
envoyer de courrier localement, ou que vous désiriez
utiliser un système ou un client “clic-bouton”
sur une autre machine ou un autre FAI. C'est également
très utile si vous avez uniquement qu'un ou deux
comptes de courrier électronique configurés.
S'il y a un grand nombre d'adresses à ajouter, vous
pouvez tout simplement ouvrir ce fichier dans votre
éditeur de texte favori et ensuite ajouter les domaines,
un par ligne:votre.fai.exemple.com
autre.fai.exemple.net
utilisateurs-fai.exemple.org
www.exemple.orgDésormais tout courrier envoyé vers votre
système, par n'importe quelle machine de cette liste
(en supposant que l'utilisateur possède un compte sur
votre système), sera accepté. C'est un bon
moyen d'autoriser aux utilisateurs d'envoyer du courrier
électronique à distance depuis votre système
sans autoriser l'utilisation de votre système pour l'envoi de
courrier électronique non sollicité (SPAM).Sujets avancésLA fonction suivante couvre des sujets plus avancés
comme la configuration du courrier électronique pour
l'intégralité de votre domaine.Basic Configurationcourrier électroniqueconfigurationSans aucune configuration, vous devrez être en
mesure d'envoyer du courrier électronique à des machines
extérieures à partir du moment où vous avez
configuré /etc/resolv.conf ou que
vous avez votre propre serveur de noms. Si vous désirez
que le courrier pour votre machine soit délivré au
serveur de courrier (e.g., sendmail) sur
votre propre machine FreeBSD, il y a deux méthodes:Faites tourner votre propre serveur de noms et
possédez votre propre domaine. Par exemple FreeBSD.orgFaire délivrer le courrier directement sur votre
machine. Cela est possible en délivrant directement le
courrier à la machine sur lequel pointe le DNS pour le
courrier qui vous est destiné. Par exemple exemple.FreeBSD.org.SMTPIndépendamment de la méthode que vous choisissez, afin
d'avoir le courrier délivré directement
à votre machine, elle doit avoir une adresse IP statique
permanente (et non pas une adresse dynamique, comme avec la
plupart des connexions PPP par modem). Si vous êtes
derrière un coupe-feu, il doit autoriser le trafic SMTP en
votre direction. Si vous voulez recevoir directement le
courrier sur votre machine, vous devez être sûrs
de l'une de ces deux choses:
- enregistrement MX
- Assurez-vous que l'enregistrement MX (le nombre le
+ Assurez-vous que l'enregistrement MXenregistrement MX (le nombre le
plus bas) de votre DNS pointe sur l'adresse IP de votre
machine.Assurez-vous qu'il n'y a pas d'entrée MX pour votre
machine dans votre DNS.Une des deux conditions précédentes vous
permettra de recevoir directement le courrier pour votre
machine.Essayez:&prompt.root; hostname
exemple.FreeBSD.org
&prompt.root; host exemple.FreeBSD.org
exemple.FreeBSD.org has address 204.216.27.XXSi c'est la réponse que vous obtenez, le courrier
adressé à
votreindentifiant@exemple.FreeBSD.org
arrivera sans problème (en supposant que
sendmail fonctionne correctement
sur exemple.FreeBSD.org).Si au lieu de cela vous obtenez quelque chose de similaire
à ceci:&prompt.root; host exemple.FreeBSD.org
exemple.FreeBSD.org has address 204.216.27.XX
exemple.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.orgTout le courrier adressé à votre machine
(exemple.FreeBSD.org)
arrivera sur hub adressé au même
utilisateur au lieu d'être directement
envoyé à votre machine.L'information précédente est
gérée par votre serveur DNS. L'enregistrement du
DNS qui contient l'information de routage de courrier est
l'entrée MX (Mail
eXchange). S'il n'y pas d'enregistrement MX,
le courrier sera directement envoyé à la machine
en utilisant son adresse IP.Voici ce que fut à un moment donné
l'entrée MX pour freefall.FreeBSD.org:freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.comComme vous pouvez le voir, freefall
avait plusieurs entrées MX. L'entrée MX dont le
numéro est le plus bas est la machine qui reçoit
directement le courrier si elle est disponible; si elle n'est
pas accessible pour diverses raisons, les autres (parfois
appelées “MX de secours”) acceptent
temporairement les messages, et les transmettent à une
machine de numéro plus faible quand elle devient
disponible, et par la suite à la machine de numéro le
plus bas.Les sites MX alternatifs devraient avoir une connexion
Internet séparée de la votre afin d'être
les plus utiles. Votre fournisseur d'accès ou tout autre
site amical ne devrait pas avoir de problème pour vous
fournir ce service.Courrier pour votre domainePour configurer un serveur de courrier vous devez faire
en sorte que tout le courrier à destination des diverses
stations de travail lui soit envoyé. Concrètement,
vous voulez “revendiquer” tout courrier pour
n'importe quelle machine de votre domaine (dans ce cas
*.FreeBSD.org) et le détourner
vers votre serveur de courrier de sorte que vos utilisateurs
puissent recevoir leur courrier sur le serveur de courrier
principal.DNSPour rendre les choses plus aisées, un compte
utilisateur avec le même nom
d'utilisateur devrait exister sur les deux
machines. Utilisez &man.adduser.8; pour ce
faire.Le serveur de courrier que vous utiliserez sera
défini comme “mail exchanger” pour chaque
station de travail du réseau. Cela est fait dans votre
configuration de DNS de cette manière:exemple.FreeBSD.org A 204.216.27.XX ; Station de travail
MX 10 hub.FreeBSD.org ; Serveur de courrierCela redirigera le courrier pour votre station de travail
au serveur de courrier quelque soit la machine sur laquelle
pointe l'enregistrement A. Le courrier est envoyé sur la
machine MX.Vous ne pouvez le faire vous-même que si vous
gérez un serveur de noms. Si ce n'est pas le cas, ou que vous
ne pouvez avoir votre propre serveur DNS, parlez-en à
votre fournisseur d'accès ou à celui qui fournit
votre DNS.Si vous faites de l'hébergement virtuel du courrier
électronique, l'information suivante sera utile. Pour cet
exemple, nous supposerons que vous avez un client qui possède
son propre domaine, dans notre cas client1.org, et vous voulez
que tout le courrier pour client1.org arrive sur votre
serveur de courrier, mail.mamachine.com.
L'entrée dans votre DNS devrait ressembler à ceci:client1.org MX 10 mail.mamachine.comVous n'avez pas besoin d'un
enregistrement A pour client1.org si vous ne voulez
gérer que le courrier pour ce domaine.Soyez conscient que “pinger”
client1.org ne
fonctionnera pas à moins qu'un enregistrement A existe pour
cette machine.La dernière chose que vous devez faire est d'indiquer à
sendmail sur le serveur de courrier
quels sont les domaines et/ou machines pour lesquels il
devrait accepter du courrier. Il y a peu de façons
différentes de le faire. L'une des deux méthodes
suivantes devrait fonctionner:Ajoutez les machines à votre fichier
/etc/mail/local-host-names si vous
utilisez la fonction FEATURE(use_cw_file).
Si vous utilisez une version de
sendmail antérieure à
la version 8.10, le fichier sera
/etc/sendmail.cw.Ajoutez une ligne Cwyour.host.com
à votre fichier
/etc/sendmail.cf ou
/etc/mail/sendmail.cf si vous utilisez
sendmail 8.10 ou supérieur.SMTP avec UUCPLa configuration de sendmail
fournie avec &os; est conçue pour les sites directement
connectés à l'Internet. Les sites désirant
échanger leur courrier électronique par
l'intermédiaire d'UUCP doivent installer un autre fichier
de configuration pour
sendmail.Modifier manuellement le fichier
/etc/mail/sendmail.cf est un sujet
réservé aux spécialistes. Dans version 8
de sendmail la
génération des fichiers de configuration se fait
par l'intermédiaire du processeur &man.m4.1;, où
la configuration se fait à un haut niveau d'abstraction.
Les fichiers de configuration &man.m4.1; se trouvent dans le
répertoire /usr/src/usr.sbin/sendmail/cf.Si vous n'avez pas installé toutes les sources du
système, l'ensemble des fichiers de configuration de
sendmail a été
regroupé dans une archive séparée des
autres sources. En supposant que vous avez monté votre
CDROM &os; contenant les sources, faites:&prompt.root; cd /cdrom/src
&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmailCette extraction ne donne lieu qu'à une centaine de
kilo-octets. Le fichier README dans le
répertoire cf
pourra faire office d'une introduction à la configuration
&man.m4.1;.La meilleure façon d'ajouter le support UUCP est
d'utiliser la fonctionnalité
mailertable. Cela créé une
base de données que sendmail
utilise pour décider de la manière dont il va
router le courrier électronique.Tout d'abord, vous devez créer votre fichier
.mc. Le répertoire /usr/src/usr.sbin/sendmail/cf/cf
contient quelques exemples. En supposant que vous avez
appelé votre fichier foo.mc, tout ce
dont vous avez besoin de faire pour le convertir en un fichier
sendmail.cf valide est:&prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfUn fichier .mc classique devrait
ressembler à ceci:VERSIONID(`Votre numéro de version') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', votre.relai.uucp)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw alias.de.votre.nom.de.machine
Cw votrenomdenoeuduucp.UUCPLes lignes contenant les directives
accept_unresolvable_domains,
nocanonify, et
confDONT_PROBE_INTERFACES empêcheront
l'utilisation du DNS lors de l'envoi du courrier
électronique. La directive UUCP_RELAY
est nécessaire pour le support de l'UUCP. Mettez juste
un nom de machine Internet capable de gérer des adresses
d'un pseudo-domaine .UUCP; la plupart du temps, vous mettrez le
nom du serveur de messagerie de votre fournisseur
d'accès.Après avoir défini tout ceci, vous avez besoin
d'un fichier /etc/mail/mailertable. Si
vous n'avez qu'un seul lien avec l'extérieur qui est
utilisé pour votre courrier électronique, le
fichier suivant devrait suffire:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:your.uucp.relayUn exemple plus complexe ressemblerait à ceci:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:Les trois premières lignes gèrent les cas
spécifiques où les courriers électroniques
pour l'extérieur ne devraient pas être
envoyés au serveur par défaut, mais plutôt
à des serveurs UUCP voisins afin de
“raccourcir” le chemin à parcourir. La ligne
suivante gère le courrier électronique
destiné au domaine Ethernet local et qui peut être
distribué en utilisant le protocole SMTP. Et enfin, les
voisins UUCP sont mentionnés dans la notation de
pseudo-domaine UUCP, pour permettre à un courrier du type
voisin-uucp
!destinataire
de passer outre les règles par défaut. La
dernière ligne doit toujours être un point, ce qui
correspond à tout le reste, avec la distribution UUCP
vers un voisin UUCP qui sert de passerelle universelle de
courrier électronique vers le reste du monde. Tous les
noms de noeuds placés après le mot clé
uucp-dom: doivent être des noms valides
de voisins UUCP, que vous pouvez vérifier en utilisant la
commande uuname.Pour vous rappeler que ce fichier doit être converti
en un fichier de base de données DBM avant d'être
utilisable. La ligne de commande pour accomplir cette
conversion est rappelée dans les commentaires au
début du fichier mailertable. Vous
devez lancer cette commande à chaque fois que vous
modifiez votre fichier
mailertable.Pour finir: si vous n'êtes pas certain du bon
fonctionnement de certaines configurations de routage du
courrier électronique, rappelez-vous de l'option
de sendmail.
Cela lance sendmail dans le
mode test d'adresse; entrez simplement
3,0, suivi de l'adresse que vous
désirez tester. La dernière ligne vous indiquera
le type d'agent utilisé pour l'envoi, la machine de
destination à laquelle l'agent doit envoyer le message,
et l'adresse (peut-être traduite) à laquelle il
l'enverra. Pour quitter ce mode tapez CtrlD.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
>^DBillMoranContribution de Configuration pour l'envoi seulIl existe de nombreux cas où vous désirez
être capable d'uniquement envoyer du courrier
électronique par l'intermédiaire d'un relais.
Quelques exemples:Votre ordinateur est une machine de bureau, mais vous
voulez utilisez des programmes comme &man.send-pr.1;.
Pour cela vous devez utiliser le relais de courrier
électronique de votre FAI.L'ordinateur est un serveur qui ne gère pas le
courrier électronique localement, mais a besoin de
soumettre tout le courrier à un relais pour qu'il soit
transmis.N'importe quel MTA est capable d'assurer
cette fonction. Malheureusement, il peut être très
compliqué de configurer correctement un
MTA complet pour juste gérer le
courrier sortant. Des logiciels comme
sendmail et
postfix sont largement
surdimensionnés pour cette utilisation.De plus, si vous utilisez un accès Internet
classique, votre contrat peut vous interdire de faire tourner un
“serveur de courrier électronique”.La manière la plus simple pour répondre
à ce besoin est d'installer le logiciel porté
mail/ssmtp. Exécutez
les commandes suivantes en tant que
root:&prompt.root; cd /usr/ports/mail/ssmtp
&prompt.root; make install replace cleanUne fois installé, mail/ssmtp peut être
configuré avec un fichier de quatre lignes,
/usr/local/etc/ssmtp/ssmtp.conf:root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_Assurez-vous d'employer votre adresse électronique
réelle pour l'utilisateur root.
Utilisez le relais de courrier électronique sortant de
votre FAI à la place de mail.example.com (certains FAIs appellent
cela le “serveur de courrier sortant” ou le
“serveur SMTP”).Assurez-vous également d'avoir
désactivé sendmail en
fixant sendmail_enable="NONE" dans le fichier
/etc/rc.conf.mail/ssmtp dispose
d'autres options. Consultez le fichier de configuration
d'exemple dans le répertoire /usr/local/etc/ssmtp ou la page de
manuel de ssmtp pour quelques
exemples et plus d'informations.Configurer ssmtp de cette
manière permettra à toute application tournant sur
votre ordinateur et ayant besoin d'envoyer un courrier
électronique de fonctionner correctement, tout en
n'outrepassant pas la politique de votre FAI ou en ne permettant
pas l'utilisation de votre ordinateur comme base arrière
pour “spammers”.Utiliser le courrier électronique avec une connexion
temporaireSi vous disposez d'une adresse IP statique, vous ne devez
rien changer du paramétrage par défaut.
Définissez votre nom de machine pour qu'il corresponde
à celui qui vous a été assigné pour
l'Internet et sendmail s'occupera du
reste.Si votre adresse IP vous est attribuée dynamiquement
et que vous utilisez une connexion PPP par modem pour
accèder à l'Internet, vous disposez probablement
d'une boite aux lettres chez votre fournisseur d'accès.
Supposons que le domaine de votre fournisseur d'accès
soit example.net, que votre
nom d'utilisateur soit user, que vous
avez appelé votre machine bsd.home, et que votre fournisseur vous ait
demandé d'utiliser la machine relay.example.net comme serveur relai de
messagerie électronique.Pour pouvoir rapatrier votre courrier depuis votre boite aux
lettres, vous devez installer un agent de rapatriement.
L'utilitaire fetchmail est un bon
choix car il supporte la plupart des protocoles de messagerie.
Ce programme est disponible sous forme de paquetage ou à
partir du catalogue des logiciels portés (mail/fetchmail). La plupart du temps,
votre fournisseur d'accès fournit l'accès aux
boites aux lettre à l'aide du protocole POP. Si vous utilisez PPP
en mode utilisateur, vous pouvez automatiquement
récupérer votre courrier quand une connexion
Internet est établie avec l'entrée suivante dans
le fichier /etc/ppp/ppp.linkup:MYADDR:
!bg su user -c fetchmailSi vous utilisez sendmail (comme
montré ci-dessous) pour distribuer le courrier aux
comptes non-locaux, vous voudrez probablement que
sendmail s'occupe de transmettre les
messages en attente dès que votre connexion Internet est
établie. Pour cela, ajoutez la commande suivante
après la commande fetchmail dans le
fichier /etc/ppp/ppp.linkup:!bg su user -c "sendmail -q"En supposant que vous avez un compte
user sur bsd.home. Dans le répertoire de
l'utilisateur user sur bsd.home, créez un fichier
.fetchmailrc contenant:poll example.net protocol pop3 fetchall pass MySecretCe fichier ne devrait être lisible que par
l'utilisateur user car il contient le mot
de passe MySecret.Afin de pouvoir envoyer du courrier avec l'entête
from: correcte, vous devez configurer
sendmail pour utiliser l'adresse
user@example.net plutôt que
user@bsd.home. Vous pouvez également
dire à sendmail d'envoyer le
courrier via le serveur relay.example.net, permettant une
transmission du courrier plus rapide.Le fichier .mc suivant devrait
suffire:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnlRéférez-vous à la section
précédente pour des détails sur la
conversion de ce fichier .mc en un fichier
sendmail.cf. N'oubliez pas
également de redémarrer
sendmail après la mise
à jour du fichier
sendmail.cf.JamesGorhamEcrit par Authentification SMTPDisposer de l'authentification SMTP
sur votre serveur de courrier présente un certain
nombre d'avantages. L'authentification SMTP
peut ajouter une autre couche de sécurité à
sendmail, et a l'avantage
de donner aux utilisateurs mobiles la possibilité
d'utiliser le même serveur de courrier sans avoir
besoin de reconfigurer les paramètres de leur client
courrier à chaque déplacement.Installez security/cyrus-sasl à
partir du catalogue des logiciels portés. Vous
pouvez trouver ce logiciel porté dans
security/cyrus-sasl.
security/cyrus-sasl
dispose de nombreuses options de compilation possibles,
pour la méthode que nous allons utiliser ici,
assurez-vous de sélectionner l'option
.Après avoir installé
security/cyrus-sasl,
éditez
/usr/local/lib/sasl/Sendmail.conf
(ou créez-le s'il n'existe pas) et ajoutez la ligne
suivante:pwcheck_method: passwdCette méthode activera au niveau de
sendmail l'authentification par
l'intermédiaire de votre base de données
FreeBSD passwd. Cela nous épargne
le problème de la création d'un nouvel ensemble
de nom d'utilisateur et de mot de passe pour chaque
utilisateur ayant besoin de recourir à
l'authentification SMTP, et conserve le
même nom d'utilisateur et mot de passe pour le
courrier.Maintenant éditez /etc/make.conf
et ajoutez les lignes suivantes:SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsaslCes lignes passeront à
sendmail les bonnes options de
configuration au moment de la compilation pour lier
cyrus-sasl.
Assurez-vous que cyrus-sasl
a été installé avant de recompiler
sendmail.Recompilez sendmail en
lançant les commandes suivantes:&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir
&prompt.root; make obj
&prompt.root; make
&prompt.root; make installLa compilation de sendmail
ne devrait pas présenter de problèmes si le
répertoire /usr/src n'a pas subi
d'énormes changements et si les bibliothèques
partagés nécessaires sont disponibles.Une fois que sendmail a
été compilé et réinstallé,
éditez votre fichier /etc/mail/freebsd.mc
(ou tout autre fichier que vous utilisez comme fichier
.mc. De nombreux administrateurs
utilisent la sortie de &man.hostname.1; comme nom de fichier
.mc par unicité). Ajoutez-y les
lignes qui suivents:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnlCes options configurent les différentes méthodes
disponibles pour sendmail
pour l'authentification des utilisateurs. Si vous
désirez utiliser une méthode autre que
pwcheck, veuillez consulter
la documentation fournie.Enfin, exécutez &man.make.1; quand vous êtes
dans /etc/mail. Cela prendra votre
nouveau fichier .mc et créera un
fichier .cf appelé
freebsd.cf (ou selon tout autre nom que
vous avez utilisé pour votre fichier
.mc). Ensuite utilisez la commande
make install restart, qui copiera le
fichier en sendmail.cf, et
redémarrera proprement
sendmail. Pour plus
d'informations sur ce processus, vous devriez vous
réferrer au fichier
/etc/mail/Makefile.Si tout s'est bien passé, vous devriez être
en mesure d'entrer votre identifiant dans votre programme
de courrier et d'envoyer un message de test. Pour plus
d'investigation, fixez le de
sendmail à 13 et scrutez
/var/log/maillog à la recherche
d'une erreur.Vous pourrez rajouter les lignes suivantes au fichier
/etc/rc.conf afin de rendre ce service
disponible après chaque démarrage du
système:sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"Cela assurera l'initialisation de
SMTP_AUTH, l'authentification SMTP, au
démarrage du système.Pour plus d'informations, veuillez consulter la page de la
documentation de sendmail concernant
l'authentification SMTP.MarcSilverContribution de Clients de messagerieClient de messagerieUn client de messagerie (“Mail User
Agent”—MUA) est une application
qui est utilisée pour envoyer et recevoir du courrier
électronique. En outre, au fur et à mesure que le
système du courrier électronique
“évolue” et devient plus complexe, les
MUA deviennent de plus en plus puissants,
offrant aux utilisateurs plus de fonctionnalités et de
flexibilité. &os; offre le support pour de nombreux
clients de messagerie, ils peuvent tous être
aisément installés à partir du catalogue des logiciels portés de
&os;. Les utilisateurs pourront choisir entre des
clients de messagerie graphiques comme
evolution ou
balsa, des clients en mode console
tels que mutt,
pine ou mail, ou
encore les interfaces Web utilisées par certaines
organisations importantes.mail&man.mail.1; est le client de messagerie (“Mail User
Agent”—MUA) par défaut
de &os;. C'est un MUA en mode console qui
offre toutes les fonctionnalités de base
nécessaires pour envoyer et lire son courrier
électronique en mode texte, cependant il est
limité en ce qui concerne les possibilités de
pièces jointes et ne supporte que les boîtes aux
lettres locales.Bien que mail ne supporte pas
l'intéraction avec les serveurs POP
ou IMAP, ces boîtes aux lettres
peuvent être téléchargées vers un
fichier mbox local en utilisant une
application telle que fetchmail,
qui sera abordée plus tard dans ce chapitre ().Afin d'envoyer et de recevoir du courrier
électronique, invoquez simplement la commande
mail comme le montre l'exemple
suivant:&prompt.user; mailLe contenu de la boîte aux lettres de l'utilisateur
dans /var/mail est
automatiquement lu par l'utilitaire mail.
Si la boîte est vide, l'utilitaire rend la main avec un
message indiquant qu'aucun courrier électronique ne
peut être trouvé. Une fois que la boîte
aux lettres a été lue, l'interface de
l'application est lancée, et une liste de messages sera
affichée. Les messages sont automatiquement
numérotés, comme on peut le voir dans l'exemple
suivant:Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"Les messages peuvent désormais être lus en
utilisant la commande t de
mail, suivie du numéro du message
qui devra être affiché. Dans cet exemple, nous
lirons le premier courrier électronique:&prompt.user; t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.Comme nous pouvons le constater dans l'exemple ci-dessus,
l'appuie sur la touche t fera afficher le
message avec les entêtes complètes. Pour
afficher à nouveau la liste des messages, la touche
h doit être utilisée.Si le message nécessite une réponse, vous
pouvez utiliser mail pour cela, en entrant
soit la touche R, soit la touche
r. La touche R demande
à mail de ne répondre
qu'à l'expéditeur du message, alors que
r répond à l'expéditeur
mais également aux autres destinataires du message.
Vous pouvez ajouter à la suite de ces commandes le
numéro du courrier auquel vous désirez
répondre. Une fois cela effectué, la
réponse doit être tapée, et la fin du
message doit être indiquée par un
. sur une nouvelle ligne. Ci-dessous est
présenté un exemple:&prompt.user; R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOTAfin d'envoyer un nouveau courrier électronique, la
touche m doit être utilisée,
suivie de l'adresse électronique du destinataire.
Plusieurs destinataires peuvent également être
spécifiés en séparant chaque adresse par
une ,. Le sujet du message peut alors
être entré, suivi du corps du message. La fin
d'un message doit être indiquée en mettant un
. seul sur une nouvelle ligne.&prompt.user; mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOTBien qu'à partir de l'utilitaire
mail, la commande ? puisse
être utilisée à tout instant pour afficher
l'aide, la page de manuel &man.mail.1; devrait être
consultée pour plus d'aide sur
mail.Comme indiqué précédemment, la
commande &man.mail.1; à l'origine n'a pas
été conçue pour gérer les
pièces jointes, et par conséquent ne s'en sort
pas très bien à ce niveau. Les
MUAs plus récents comme
mutt gérent les
pièces jointes de manière plus intelligente.
Mais si vous souhaitez toujours utiliser
mail, le logiciel porté converters/mpack vous sera d'une
grande aide.muttmutt est un client de
messagerie léger mais très puissant, avec de
nombreuses fonctionnalités, parmi lesquelles:la possibilité de gérer les fils
(“threads”) de discussions;le support PGP pour la signature électronique
et le chiffrage de courriers électroniques;le support MIME;le support du format maildir;application hautement configurable et
personnalisable.Toutes ces caractéristiques font de
mutt un des clients de messagerie
les plus avancés. Consultez pour plus d'informations
sur mutt.La version stable de mutt peut
être installée en utilisant le logiciel
porté mail/mutt,
tandis que la version actuellement en développement
peut être installée par l'intermédiaire du
logiciel porté mail/mutt-devel. Une fois
installé, mutt peut
être lancé en tapant la commande suivante:&prompt.user; muttmutt lira automatiquement le
contenu de la boîte aux lettres de l'utilisateur dans
/var/mail et en affiche
le contenu le cas échéant. Si aucun message
n'est trouvé dans cette boîte, alors
mutt attendra une commande de
l'utilisateur. L'exemple ci-dessous montre
mutt affichant une liste de
messages:Afin de lire un message, sélectionnez-le en
utilisant les touches fléchées, et appuyez sur
Entrée. Un exemple montrant
mutt affichant le contenu d'un
message est donné ci-dessous:Comme avec la commande &man.mail.1;,
mutt permet aux utilisateurs de
répondre uniquement à l'expéditeur du
message comme également à l'ensemble de ses
destinataires. Pour répondre uniquement à
l'expéditeur du courrier électronique, utilisez
le raccourci clavier r. Pour faire une
réponse groupée, qui sera envoyée
à l'expéditeur comme à tous les
destinataires du message, utilisez la touche
g.mutt emploie &man.vi.1; comme
éditeur pour la création et la réponse
aux courriers électronique. Cela peut être
modifié par l'utilisateur en créant son propre
fichier .muttrc dans leur
répertoire personnel et en positionnant la variable
editor.Pour rédiger un nouveau message, appuyez sur la
touche m. Après avoir donné un
sujet valide, mutt lancera
&man.vi.1; et l'intégralité du message pourra
être écrite. Une fois le courrier
électronique rédigé, sauvegardez et
quittez vi et
mutt réapparaîtra
affichant un écran résumant le courrier devant
être envoyé. Pour envoyer le message, appuyez
sur y. Un exemple de résumé
peut être vu ci-dessous:mutt propose également
une aide complète, qui peut être consultée
à partir de la plupart des menus en appuyant sur la
touche ?. La ligne située en haut de
l'écran affiche également les raccourcis clavier
appropriés.pinepine est destiné aux
débutants, mais il dispose également de
fonctions avancées.Plusieurs vulnérabilités exploitables
à distance ont été découvertes
dans le logiciel pine par le
passé, autorisant à un agresseur distant
d'exécuter un programme arbitraire en tant
qu'utilisateur local du système, en envoyant un
courrier électronique particulier. Tous les
problèmes connus ont
été corrigés, mais le code source de
pine est écrit d'une
manière assez peu sécurisée et l'officier
de sécurité de &os; pense qu'il existe d'autres
failles qui ne sont pas encore découvertes. Vous
installez donc pine à vos
propres risques.La version actuelle de pine
peut être installée en utilisant le logiciel
porté mail/pine4.
Une fois installé, pine peut
être lancé en tapant la commande suivante:&prompt.user; pineLors du premier lancement de
pine, ce dernier affiche une page
de présentation avec une brève introduction,
ainsi qu'un message de la part de l'équipe de
développement de pine
demandant l'envoi d'un courrier électronique anonyme
pour leur permettre d'évaluer le nombre d'utilisateurs
de leur client de messagerie. Pour envoyer ce courrier
anonyme, appuyez sur Entrée, ou sinon
appuyez sur E pour quitter la
présentation sans envoyer de message anonyme. Un
exemple de page de présentation peut être vu
ci-dessous:Le menu principal est ensuite affiché, menu dans
lequel il est aisé de naviguer avec les touches
fléchées. Ce menu principal fournit les
raccourcis pour la rédaction de nouveaux messages, la
navigation dans les répertoires de messages, et
même la gestion des entrées du carnet d'adresses.
Sous le menu principal, les raccourcis clavier correspondants
pour effectuer les différentes tâches sont
donnés.Le répertoire ouvert par défaut par
pine est inbox. Pour afficher l'index des
messages, appuyez sur I, ou
sélectionnez l'option MESSAGE
INDEX comme montré ci-dessous:L'index des messages montre les messages dans le
répertoire courant, on peut se déplacer dans
l'index en utilisant les touches fléchées. Les
messages en surbrillance peuvent être lus en appuyant
sur la touche Enter.Dans la capture d'écran ci-dessous, un message
d'exemple est affiché par
pine. Les raccourcis clavier sont
affichés au bas de l'écran. Un exemple de
raccourci est la touche r, qui demande au
programme de répondre au message actuellement à
l'écran.La rédaction d'une réponse à un
courrier électronique avec
pine se fait en utilisant
l'éditeur pico, qui est
installé par défaut avec
pine. L'utilitaire
pico rend aisé les
déplacements dans le message et est plus indulgent avec
les novices que &man.vi.1; ou &man.mail.1;. Une fois la
réponse rédigée, le message peut
être envoyé en appuyant sur CtrlX.
pine vous demandera de confirmer
votre action.Le programme pine peut
être personnalisé en utilisant l'option
SETUP du menu principal. Consultez
pour
plus d'information.MarcSilverContribution de Utiliser fetchmailUtiliser fetchmailfetchmail est un client
IMAP et POP complet qui
offre aux utilisateurs le téléchargement
automatiquement de leur courrier électronique à
partir de serveurs IMAP et
POP distants et sa sauvegarde dans des
boîtes aux lettres locales; ainsi, le courrier
électronique pourra être consulté plus
facilement. fetchmail peut
être installé en utilisant le logiciel porté
mail/fetchmail, et offre
diverses fonctionnalités, dont:le support des protocoles POP3,
APOP, KPOP,
IMAP, ETRN et
ODMR;la capacité de faire suivre le courrier
électronique en utilisant SMTP, ce
qui autorise le filtrage, le transfert, et la gestion des
alias de fonctionner correctement;la possibilité de fonctionner en mode
“daemon” pour contrôler
périodiquement si il y a de nouveaux messages;la possibilité de récupérer le
courrier de plusieurs boîtes aux lettres et de le
transférer en fonction d'une configuration bien
précise aux différents utilisateurs
locaux.Bien qu'expliquer l'intégralité des fonctions
de fetchmail dépasse le cadre
de ce document, certaines fonctions de base seront
abordées. L'utilitaire
fetchmail nécessite un fichier
de configuration nommé .fetchmailrc,
afin de fonctionner correctement. Ce fichier comprend les
informations concernant les serveurs ainsi que les
accréditations d'accès. En raison du
caractère sensible du contenu de ce fichier, il est
recommandé de ne le rendre lisible que par l'utilisateur,
avec la commande suivante:&prompt.user; chmod 600 .fetchmailrcLe fichier .fetchmailrc suivant
sert d'exemple pour récupérer le courrier
électronique pour un seul utilisateur à partir
d'une boîte aux lettres utilisant le protocole
POP. Il demande à
fetchmail de se connecter à
example.com en utilisant le nom
d'utilisateur joesoap et le mot de passe
XXX. Dans cet exemple on suppose que
l'utilisateur joesoap est également
un utilisateur sur le système local.poll example.com protocol pop3 username "joesoap" password "XXX"L'exemple suivant présente la connexion à
plusieurs serveurs POP et
IMAP et la redirection vers différents
utilisateurs locaux quand c'est nécessaire:poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;L'utilitaire fetchmail peut
être exécuté en mode “daemon” en
le lançant avec le paramètre ,
suivi par l'intervalle de temps (en secondes) que
fetchmail doit respecter entre chaque
consultation des serveurs listés dans le fichier
.fetchmailrc. L'exemple suivant demandera
à fetchmail de
récupérer le courrier toutes les 60
secondes:&prompt.user; fetchmail -d 60Plus d'informations concernant
fetchmail peuvent être
trouvées sur .MarcSilverContribution de Utiliser procmailUtiliser procmailL'utilitaire procmail est une
application extrêmement puissante utilisée pour
filtrer le courrier électronique entrant. Il permet aux
utilisateurs de définir des “règles”
qui seront utilisées sur le courrier entrant pour
effectuer des opérations particulières ou pour
transférer le courrier vers d'autres boîtes aux
lettres et/ou adresses électroniques.
procmail peut être
installé en utilisant le logiciel porté mail/procmail. Une fois
installé, il peut être intégré dans
la plupart des MTAs, consultez la
documentation de votre MTA pour plus
d'information. Alternativement,
procmail peut être
intégré en ajoutant la ligne suivante à un
fichier .forward dans le répertoire
personnel de l'utilisateur employant les fonctionnalités
de procmail:"|exec /usr/local/bin/procmail || exit 75"La suite de cette section présentera quelques
règles de base pour procmail,
avec une brève description de ce qu'elles font. Ces
règles, ainsi que d'autres, doivent être
ajoutées dans le fichier
.procmailrc, qui doit résider dans
le répertoire personnel de l'utilisateur.La majorité de ces règles peut
également être trouvée dans la page de
manuel de &man.procmailex.5;.Transférer tout courrier en provenance de
user@example.com vers l'adresse externe
goodmail@example2.com::0
* ^From.*user@example.com
! goodmail@example2.comTransférer tous les courriers d'une taille
inférieure à 1000 octets vers l'adresse externe
goodmail@example2.com::0
* < 1000
! goodmail@example2.comMettre tout le courrier à destination de
alternate@example.com dans une boîte
aux lettres appelée
alternate::0
* ^TOalternate@example.com
alternateEnvoyer tous les courriers avec pour sujet
“Spam” vers /dev/null::0
^Subject:.*Spam
/dev/nullUne recette utile pour trier les courriers en provenance des
listes de diffusion &os;.org
et placer chaque liste dans sa propre boîte aux
lettres::0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}