Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
This commit is contained in:
parent
0cff342f42
commit
989d921f5d
14375 changed files with 1277937 additions and 3448703 deletions
51
Makefile
51
Makefile
|
|
@ -1,51 +0,0 @@
|
|||
# The user can override the default list of languages to build and install
|
||||
# with the DOC_LANG variable.
|
||||
#
|
||||
.if defined(ENGLISH_ONLY) && !empty(ENGLISH_ONLY)
|
||||
DOC_LANG= en_US.ISO8859-1
|
||||
.endif
|
||||
|
||||
.if defined(DOC_LANG) && !empty(DOC_LANG)
|
||||
SUBDIR = ${DOC_LANG}
|
||||
.else
|
||||
SUBDIR = en_US.ISO8859-1
|
||||
SUBDIR+= bn_BD.UTF-8
|
||||
SUBDIR+= da_DK.ISO8859-1
|
||||
SUBDIR+= de_DE.ISO8859-1
|
||||
SUBDIR+= el_GR.ISO8859-7
|
||||
SUBDIR+= es_ES.ISO8859-1
|
||||
SUBDIR+= fr_FR.ISO8859-1
|
||||
SUBDIR+= hu_HU.ISO8859-2
|
||||
SUBDIR+= it_IT.ISO8859-15
|
||||
SUBDIR+= ja_JP.eucJP
|
||||
SUBDIR+= ko_KR.UTF-8
|
||||
SUBDIR+= mn_MN.UTF-8
|
||||
SUBDIR+= nl_NL.ISO8859-1
|
||||
SUBDIR+= pl_PL.ISO8859-2
|
||||
SUBDIR+= pt_BR.ISO8859-1
|
||||
SUBDIR+= ru_RU.KOI8-R
|
||||
SUBDIR+= tr_TR.ISO8859-9
|
||||
SUBDIR+= zh_CN.UTF-8
|
||||
SUBDIR+= zh_TW.UTF-8
|
||||
.endif
|
||||
|
||||
SUBDIR+= share
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}
|
||||
|
||||
GIT?= /usr/local/bin/git
|
||||
|
||||
update:
|
||||
.if !exists(${GIT})
|
||||
@${ECHODIR} "--------------------------------------------------------------"
|
||||
@${ECHODIR} ">>> ${GIT} is required to update ${.CURDIR}"
|
||||
@${ECHODIR} "--------------------------------------------------------------"
|
||||
@${EXIT}
|
||||
.else
|
||||
@${ECHODIR} "--------------------------------------------------------------"
|
||||
@${ECHODIR} ">>> Updating ${.CURDIR} from git repository"
|
||||
@${ECHODIR} "--------------------------------------------------------------"
|
||||
cd ${.CURDIR}; ${GIT} pull --ff-only
|
||||
.endif
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
10
README
10
README
|
|
@ -1,10 +0,0 @@
|
|||
$FreeBSD$
|
||||
|
||||
If you plan on building a local copy of the FreeBSD documentation, or using
|
||||
our toolchain in your own projects, please read the Documentation Primer at:
|
||||
|
||||
https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/fdp-primer/
|
||||
|
||||
for information about the tools and formatting languages we use.
|
||||
Chapter 1 has a Quick Start section, and Chapter 2 covers the software
|
||||
and related items in more detail.
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
SUBDIR= articles
|
||||
|
||||
COMPAT_SYMLINK = bn
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
SUBDIR = explaining-bsd
|
||||
#SUBDIR+= new-users
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
DESTDIR?= ${DOCDIR}/bn_BD.UTF-8/articles/${.CURDIR:T}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
MAINTAINER= abulfazl@juniv.edu
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
# XML content
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,15 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
MAINTAINER= abulfazl@juniv.edu
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "$(DOC_PREFIX)/share/mk/doc.project.mk"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
||||
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
||||
|
||||
<!-- $FreeBSD$ -->
|
||||
|
||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
|
||||
<rewriteSystem systemIdStartString="http://www.FreeBSD.org/XML/lang/"
|
||||
rewritePrefix="../../"/>
|
||||
<rewriteURI uriStartString="http://www.FreeBSD.org/XML/lang/"
|
||||
rewritePrefix="../../"/>
|
||||
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-common.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-epub.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-xhtml.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
|
||||
<public
|
||||
publicId="-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//EN"
|
||||
uri="entities.ent" />
|
||||
</catalog>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version='1.0'?>
|
||||
|
||||
<!-- $FreeBSD$ -->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version='1.0'>
|
||||
|
||||
<xsl:param name="xetex.font">
|
||||
<xsl:text>\setmainfont{Lohit Bengali}
|
||||
</xsl:text>
|
||||
<xsl:text>\setsansfont{Lohit Bengali}
|
||||
</xsl:text>
|
||||
<xsl:text>\setmonofont{DejaVu Sans Mono}
|
||||
</xsl:text>
|
||||
</xsl:param>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
<?xml version='1.0'?>
|
||||
|
||||
<!-- $FreeBSD$ -->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version='1.0'
|
||||
xmlns="http://www.w3.org/TR/xhtml1/transitional"
|
||||
xmlns:str="http://exslt.org/strings"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
xmlns:db="http://docbook.org/ns/docbook"
|
||||
exclude-result-prefixes="db"
|
||||
extension-element-prefixes="str">
|
||||
<!--
|
||||
BENGALI-SPECIFIC PARAMETERS
|
||||
-->
|
||||
|
||||
<!-- Base fonts -->
|
||||
<xsl:param name="body.font.family">Lohit Bengali</xsl:param>
|
||||
<xsl:param name="sans.font.family">Lohit Bengali, Andika</xsl:param>
|
||||
<xsl:param name="title.font.family">Lohit Bengali</xsl:param>
|
||||
<xsl:param name="monospace.font.family">DejaVu Sans Mono</xsl:param>
|
||||
|
||||
<xsl:attribute-set name="intermixed.english.attributes">
|
||||
<xsl:attribute name="font-family">Gentium Plus</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<xsl:template match="*" mode="intermixed.english">
|
||||
<xsl:apply-templates select="."/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="text()" mode="intermixed.english">
|
||||
<xsl:for-each select="str:split(., ' ')">
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/(', substring(., 1, 1))">
|
||||
<fo:inline xsl:use-attribute-sets="intermixed.english.attributes">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:text> </xsl:text>
|
||||
</fo:inline>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="db:para">
|
||||
<xsl:variable name="keep.together">
|
||||
<xsl:call-template name="pi.dbfo_keep-together"/>
|
||||
</xsl:variable>
|
||||
<fo:block xsl:use-attribute-sets="para.properties">
|
||||
<xsl:if test="$keep.together != ''">
|
||||
<xsl:attribute name="keep-together.within-column"><xsl:value-of
|
||||
select="$keep.together"/></xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="anchor"/>
|
||||
<xsl:apply-templates mode="intermixed.english"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="db:simpara">
|
||||
<xsl:variable name="keep.together">
|
||||
<xsl:call-template name="pi.dbfo_keep-together"/>
|
||||
</xsl:variable>
|
||||
<fo:block xsl:use-attribute-sets="normal.para.spacing">
|
||||
<xsl:if test="$keep.together != ''">
|
||||
<xsl:attribute name="keep-together.within-column"><xsl:value-of
|
||||
select="$keep.together"/></xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="anchor"/>
|
||||
<xsl:apply-templates mode="intermixed.english"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
SUBDIR = articles
|
||||
|
||||
COMPAT_SYMLINK = da
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../..
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
SUBDIR+= ipsec-must
|
||||
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
DESTDIR?= ${DOCDIR}/da_DK.ISO8859-1/articles/${.CURDIR:T}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Article: Uafhængig Verifikation af IPsec Funktionalitet i FreeBSD
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,346 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Danish Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.13
|
||||
-->
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="da">
|
||||
<info><title>Uafhængig Verifikation af IPsec Funktionalitet i
|
||||
&os;</title>
|
||||
|
||||
|
||||
<author><personname><firstname>David</firstname><surname>Honig</surname></personname><affiliation>
|
||||
<address><email>honig@sprynet.com</email></address>
|
||||
</affiliation></author>
|
||||
|
||||
<pubdate>3 Maj 1999</pubdate>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.opengroup;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
&trans.da.jespersen;
|
||||
|
||||
<para>Du installerede IPsec og det ser ud til at virke. Men
|
||||
hvordan ved du det? Jeg beskriver en metode til
|
||||
eksperimentalt at verificere at IPsec virker.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="problem">
|
||||
<title>Problemet</title>
|
||||
|
||||
<para>Lad os antage, at du har <link linkend="ipsec-install">
|
||||
installeret <emphasis>IPsec</emphasis></link>. Hvordan ved du
|
||||
at det <link linkend="caveat">virker</link>?
|
||||
Selvfølgelig virker din forbindelse ikke hvis den er
|
||||
miskonfigureret, og den vil virke når du endelig laver det
|
||||
rigtigt. &man.netstat.1; lister den. Men kan du verificere det
|
||||
uafhængigt?</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="solution">
|
||||
<title>Løsningen</title>
|
||||
|
||||
<para>Først, noget krypto-relevant teoretisk
|
||||
information:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>krypterede data er uniformt distribueret, som f.eks. har
|
||||
maksimal entropi pr. symbol;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>rå, ukomprimerede data er typisk redundant,
|
||||
f.eks., har sub-maksimal entropi.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Hvis du kunne måle entropien af dataene til og fra dit
|
||||
netværks interface. Så kunne du se forskellen
|
||||
mellem ukrypterede og krypterede data. Det ville være
|
||||
tilfældet selvom nogle af dataene i <quote>krypteret
|
||||
mode</quote> ikke var krypterede, som f.eks. den yderste IP
|
||||
header skal være, hvis pakken skal kunne routes.</para>
|
||||
|
||||
<sect2 xml:id="MUST">
|
||||
<title>MUST</title>
|
||||
|
||||
<para>Ueli Maurers <quote>Universal Statistical Test for Random
|
||||
Bit Generators</quote> (<link xlink:href="http://www.geocities.com/SiliconValley/Code/4704/universal.pdf">
|
||||
<acronym>MUST</acronym></link>) måler hurtigt entropien
|
||||
af en stikprøve. Den bruger en kompressionsagtig
|
||||
algoritme. <link linkend="code">Forneden angives
|
||||
kildekoden</link> til en variant der måler successive
|
||||
(~kvart megabyte) store bidder af en fil.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="tcpdump">
|
||||
<title>Tcpdump</title>
|
||||
|
||||
<para>Vi har også brug for en måde at opsamle de
|
||||
rå netværksdata. Et program kaldet
|
||||
&man.tcpdump.1; lader dig gøre dette, hvis du har slået
|
||||
<emphasis>Berkeley Packet Filter</emphasis> interfacet til i
|
||||
din <link linkend="kernel">kerne konfig fil</link>.</para>
|
||||
|
||||
<para>Kommandoen</para>
|
||||
|
||||
<screen><userinput>tcpdump -c 4000 -s 10000 -w dumpfile.bin</userinput></screen>
|
||||
|
||||
<para>vil opfange 4000 rå pakker til
|
||||
<replaceable>dumpfile.bin</replaceable>. Op til 10.000 bytes
|
||||
per pakke bliver opfanget i dette eksempel.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="experiment">
|
||||
<title>Eksperimentet</title>
|
||||
|
||||
<para>Her er eksperimentet:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Åbn et vindue til en IPsec vært og et andet
|
||||
vindue til en usikker vært.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Start nu med at <link linkend="tcpdump">opfange
|
||||
pakker</link>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>I det <quote>sikre</quote> vindue, køres &unix;
|
||||
kommandoen &man.yes.1;, hvilket vil streame
|
||||
<literal>y</literal> karakteren. Stop dette efter et stykke
|
||||
tid. Skift til det usikre vindue, og gentag. Stop igen efter
|
||||
et stykke tid.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kør nu <link linkend="code">MUST</link> på de
|
||||
opfangede pakker. Du skulle se noget lignende det
|
||||
følgende. Det vigtige at notere sig er, at den sikre
|
||||
forbindelse har 93% (6,7) af den ventede værdi (7.18),
|
||||
og den <quote>normale</quote> forbindelse har 29% (2.1) af den
|
||||
ventede værdi.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>tcpdump -c 4000 -s 10000 -w ipsecdemo.bin</userinput>
|
||||
&prompt.user; <userinput>uliscan ipsecdemo.bin</userinput>
|
||||
|
||||
Uliscan 21 Dec 98
|
||||
L=8 256 258560
|
||||
Measuring file ipsecdemo.bin
|
||||
Init done
|
||||
Expected value for L=8 is 7.1836656
|
||||
6.9396 --------------------------------------------------------
|
||||
6.6177 -----------------------------------------------------
|
||||
6.4100 ---------------------------------------------------
|
||||
2.1101 -----------------
|
||||
2.0838 -----------------
|
||||
2.0983 -----------------</screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="caveat">
|
||||
<title>Undtagelse</title>
|
||||
|
||||
<para>Dette eksperiment viser at, IPsec <emphasis>kan</emphasis>
|
||||
se ud til at distribuere payload data
|
||||
<emphasis>uniformt</emphasis>, som kryptering skal. Men det
|
||||
eksperiment der er beskrevet her <emphasis>kan ikke</emphasis>
|
||||
detektere mange mulige fejl i et system (ingen af hvilke jeg har
|
||||
nogle beviser for). Disse inkluderer dårlig nøgle
|
||||
generering eller udveksling, data eller nøgler der kan
|
||||
ses af andre, brug af svage algoritmer, kernel undergravning,
|
||||
osv. Studér kildekoden; kend kildekoden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="IPsec">
|
||||
<title>IPsec---Definition</title>
|
||||
|
||||
<para>Internet Protokol sikkerheds udvidelser til IPv4;
|
||||
krævet for IPv6. En protokol til at forhandle kryptering
|
||||
og autentifikation på IP (vært-til-vært)
|
||||
niveau. SSL sikrer kun en applikationssocket;
|
||||
<application>SSH</application> sikrer kun et login;
|
||||
<application>PGP</application> sikrer kun en specifik fil eller
|
||||
besked. IPsec krypterer alting mellem to værter.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="ipsec-install">
|
||||
<title>Installering af IPsec</title>
|
||||
|
||||
<para>De fleste af de moderne versioner af &os; har IPsec
|
||||
support i deres base kildekode. Så du er sikkert
|
||||
nødt til at inkludere <option>IPSEC</option> optionen i
|
||||
din kernel konfig og, efter genbygning og reinstallation af
|
||||
kernel, konfigurere IPsec forbindelser ved hjælp af
|
||||
&man.setkey.8; kommandoen.</para>
|
||||
|
||||
<para>En udførlig guide om at køre IPsec på
|
||||
&os; er tilrådighed i <link xlink:href="../../books/handbook/ipsec.html">FreeBSD
|
||||
Håndbogen</link>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="kernel">
|
||||
<title>src/sys/i386/conf/KERNELNAME</title>
|
||||
|
||||
<para>Dette skal være til stede i kernel konfig filen for at
|
||||
være i stand til at opfange netværksdata med
|
||||
&man.tcpdump.1;. Vær sikker på at køre
|
||||
&man.config.8; efter at tilføje dette, og genbygge og
|
||||
reinstallere.</para>
|
||||
|
||||
<programlisting>device bpf</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="code">
|
||||
<title>Maurers universelle statistiske test (for blok
|
||||
størrelse=8 bits)</title>
|
||||
|
||||
<para>Du kan finde samme kode på <link xlink:href="http://www.geocities.com/SiliconValley/Code/4704/uliscanc.txt">
|
||||
dette link</link>.</para>
|
||||
|
||||
<programlisting>/*
|
||||
ULISCAN.c ---blocksize of 8
|
||||
|
||||
1 Oct 98
|
||||
1 Dec 98
|
||||
21 Dec 98 uliscan.c derived from ueli8.c
|
||||
|
||||
This version has // comments removed for Sun cc
|
||||
|
||||
This implements Ueli M Maurer's "Universal Statistical Test for Random
|
||||
Bit Generators" using L=8
|
||||
|
||||
Accepts a filename on the command line; writes its results, with other
|
||||
info, to stdout.
|
||||
|
||||
Handles input file exhaustion gracefully.
|
||||
|
||||
Ref: J. Cryptology v 5 no 2, 1992 pp 89-105
|
||||
also on the web somewhere, which is where I found it.
|
||||
|
||||
-David Honig
|
||||
honig@sprynet.com
|
||||
|
||||
Usage:
|
||||
ULISCAN filename
|
||||
outputs to stdout
|
||||
*/
|
||||
|
||||
#define L 8
|
||||
#define V (1<<L)
|
||||
#define Q (10*V)
|
||||
#define K (100 *Q)
|
||||
#define MAXSAMP (Q + K)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
int main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
FILE *fptr;
|
||||
int i,j;
|
||||
int b, c;
|
||||
int table[V];
|
||||
double sum = 0.0;
|
||||
int iproduct = 1;
|
||||
int run;
|
||||
|
||||
extern double log(/* double x */);
|
||||
|
||||
printf("Uliscan 21 Dec 98 \nL=%d %d %d \n", L, V, MAXSAMP);
|
||||
|
||||
if (argc < 2) {
|
||||
printf("Usage: Uliscan filename\n");
|
||||
exit(-1);
|
||||
} else {
|
||||
printf("Measuring file %s\n", argv[1]);
|
||||
}
|
||||
|
||||
fptr = fopen(argv[1],"rb");
|
||||
|
||||
if (fptr == NULL) {
|
||||
printf("Can't find %s\n", argv[1]);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
for (i = 0; i < V; i++) {
|
||||
table[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < Q; i++) {
|
||||
b = fgetc(fptr);
|
||||
table[b] = i;
|
||||
}
|
||||
|
||||
printf("Init done\n");
|
||||
|
||||
printf("Expected value for L=8 is 7.1836656\n");
|
||||
|
||||
run = 1;
|
||||
|
||||
while (run) {
|
||||
sum = 0.0;
|
||||
iproduct = 1;
|
||||
|
||||
if (run)
|
||||
for (i = Q; run && i < Q + K; i++) {
|
||||
j = i;
|
||||
b = fgetc(fptr);
|
||||
|
||||
if (b < 0)
|
||||
run = 0;
|
||||
|
||||
if (run) {
|
||||
if (table[b] > j)
|
||||
j += K;
|
||||
|
||||
sum += log((double)(j-table[b]));
|
||||
|
||||
table[b] = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (!run)
|
||||
printf("Premature end of file; read %d blocks.\n", i - Q);
|
||||
|
||||
sum = (sum/((double)(i - Q))) / log(2.0);
|
||||
printf("%4.4f ", sum);
|
||||
|
||||
for (i = 0; i < (int)(sum*8.0 + 0.50); i++)
|
||||
printf("-");
|
||||
|
||||
printf("\n");
|
||||
|
||||
/* refill initial table */
|
||||
if (0) {
|
||||
for (i = 0; i < Q; i++) {
|
||||
b = fgetc(fptr);
|
||||
if (b < 0) {
|
||||
run = 0;
|
||||
} else {
|
||||
table[b] = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}</programlisting>
|
||||
</sect1>
|
||||
</article>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
.if exists(Makefile.conf)
|
||||
.include "Makefile.conf"
|
||||
.endif
|
||||
.if exists(../Makefile.inc)
|
||||
.include "../Makefile.inc"
|
||||
.endif
|
||||
|
||||
# Subdirectories
|
||||
# XML
|
||||
.if !defined(WEB_ONLY) || empty(WEB_ONLY)
|
||||
SUBDIR= doc
|
||||
.endif
|
||||
|
||||
WEBDIR?= data/da
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/web.site.mk"
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
WEBBASE?= /data/da
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Build the FreeBSD documentation *outside* of the doc/ tree, and install it
|
||||
# in to the right place as necessary.
|
||||
#
|
||||
|
||||
.if exists(../Makefile.conf)
|
||||
.include "../Makefile.conf"
|
||||
.endif
|
||||
.if exists(../Makefile.inc)
|
||||
.include "../Makefile.inc"
|
||||
.endif
|
||||
|
||||
_DOC_FORMATS?= html-split html
|
||||
|
||||
all: all-all
|
||||
|
||||
|
||||
all-all:
|
||||
${MAKE} -C ${DOC_PREFIX}/${LANGCODE} FORMATS="${_DOC_FORMATS}" all
|
||||
|
||||
all-pgpkeyring:
|
||||
${MAKE} -C ${DOC_PREFIX}/share/pgpkeys pgpkeyring.txt
|
||||
|
||||
clean:
|
||||
${MAKE} -C ${DOC_PREFIX}/${LANGCODE} FORMATS="${_DOC_FORMATS}" DOCDIR=${DESTDIR}/data/doc clean
|
||||
|
||||
# here are dragons
|
||||
install:
|
||||
unset DESTDIR || true; \
|
||||
${MAKE} -C ${DOC_PREFIX}/${LANGCODE} FORMATS="${_DOC_FORMATS}" DOCDIR=${DESTDIR}/data/doc install
|
||||
${CP} ${DOC_PREFIX}/share/pgpkeys/pgpkeyring.txt ${DESTDIR}/data/doc/pgpkeyring.txt
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/web.site.mk"
|
||||
.if ${LANGCODE} == en_US.ISO8859-1
|
||||
all: all-pgpkeyring
|
||||
.endif
|
||||
|
||||
|
||||
# XXX
|
||||
obj: _OBJUSE
|
||||
|
||||
_OBJUSE: .USE
|
||||
@unset DESTDIR || true; \
|
||||
cd ${DOC_PREFIX}/${LANGCODE}; \
|
||||
${MAKE} ${.TARGET}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
||||
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
||||
|
||||
<!-- $FreeBSD$ -->
|
||||
|
||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
|
||||
<rewriteSystem systemIdStartString="http://www.FreeBSD.org/XML/lang/"
|
||||
rewritePrefix="../../"/>
|
||||
<rewriteURI uriStartString="http://www.FreeBSD.org/XML/lang/"
|
||||
rewritePrefix="../../"/>
|
||||
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-common.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-epub.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-fo.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
<system
|
||||
systemId="http://www.FreeBSD.org/XML/lang/share/xml/freebsd-dblatex.xsl"
|
||||
uri="http://www.FreeBSD.org/XML/share/xml/empty.xsl" />
|
||||
|
||||
<public publicId="-//FreeBSD//ENTITIES FreeBSD Language Specific Entities//EN"
|
||||
uri="l10n.ent" />
|
||||
<public publicId="-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//EN"
|
||||
uri="entities.ent"/>
|
||||
<public publicId="-//FreeBSD//ENTITIES DocBook Translator Entities//DK"
|
||||
uri="translators.ent" />
|
||||
</catalog>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Danish Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<para xmlns="http://docbook.org/ns/docbook">DENNE DOKUMENTATION ER FORSYNET AF FREEBSD DOKUMENTATIONS
|
||||
PROJEKTET "SOM DET ER" OG UDEN NOGLE UDTRYKTE ELLER ANTYDEDE
|
||||
GARANTIER, INKLUDERENDE MEN IKKE BEGRÆNSET TIL: ANTYDEDE GARANTIER
|
||||
FOR SALGBARHED OG EGNETHED FOR ET SPECIFIKT FORMÅL. UNDER INGEN
|
||||
OMSTÆNDIGHEDER SKAL FREEBSD DOKUMENTATIONS PROJEKTET VÆRE
|
||||
HÆFTENDE, FOR NOGLE DIREKTE, INDIREKTE, TILFÆLDIGE,
|
||||
SPECIELLE, EKSEMPLARISKE, ELLER FØLGENDE SKADER (INKLUDERENDE,
|
||||
MEN IKKE BEGRÆNSET TIL:
|
||||
FREMSKAFFELSE AF ERSTATNINGS VARER ELLER SERVICEYELSER; TAB AF
|
||||
BRUGBARHED, DATA, ELLER UDBYTTE; ELLER AFBRYDELSE AF FORRETNING)
|
||||
HVORDAN END DEN ER OPSTÅET OG UNDER EN HVILKEN SOM HELST TEORI
|
||||
OM ANSVARLIGHED, HVAD ENTEN DET ER I KONTRAKT, STRIKS ANSVARLIGHED
|
||||
ELLER TORT (INKLUDERENDE FORSØMMELIGHED ELLER PÅ ANDEN VIS)
|
||||
OPSTÅENDE PÅ NOGEN MÅDE UD AF BRUGEN AF DENNE
|
||||
DOKUMENTATION, SELV HVIS GJORT OPMÆRKSOM PÅ MULIGHEDEN FOR
|
||||
SÅDAN SKADE.</para>
|
||||
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $FreeBSD$ -->
|
||||
|
||||
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN"
|
||||
"nonexistent">
|
||||
%freebsd;
|
||||
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DK"
|
||||
"translators.ent">
|
||||
%translators;
|
||||
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DK"
|
||||
"mailing-lists.ent">
|
||||
%mailing-lists;
|
||||
<!ENTITY % newsgroups PUBLIC "-//FreeBSD//ENTITIES DocBook Newsgroup Entities//DK"
|
||||
"newsgroups.ent">
|
||||
%newsgroups;
|
||||
<!ENTITY % teams PUBLIC "-//FreeBSD//ENTITIES DocBook Team Entities//DK"
|
||||
"teams.ent">
|
||||
%teams;
|
||||
<!ENTITY % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN"
|
||||
"nonexistent">
|
||||
%trademarks;
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version='1.0' encoding='iso-8859-1'?>
|
||||
|
||||
<!-- $FreeBSD$ -->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version='1.0'
|
||||
xmlns="http://www.w3.org/TR/xhtml1/transitional"
|
||||
exclude-result-prefixes="#default">
|
||||
|
||||
<xsl:template name="user.footer.navigation">
|
||||
<p align="center"><small>Dette og andre dokumenter kan downloades fra
|
||||
<a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/</a></small></p>
|
||||
|
||||
<p align="center"><small>For spørgsmål om FreeBSD, læs
|
||||
<a href="http://www.FreeBSD.org/docs.html">documentationen</a> før du kontakter
|
||||
<<a href="mailto:questions@FreeBSD.org">questions@FreeBSD.org</a>>.<br/>
|
||||
For spørgsmål angående denne dokumentation, e-mail
|
||||
<<a href="mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>>.</small></p>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<!-- -*- sgml -*-
|
||||
DocBook Language Specific Entities for Localization (da).
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<!-- docformat navi -->
|
||||
<!ENTITY docnavi.single-html "Samlet">
|
||||
<!ENTITY docnavi.split-html "Opdelt">
|
||||
|
|
@ -1,206 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
Navne på FreeBSD mailing lister og relateret software.
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<!ENTITY a.advocacy "FreeBSD fremmelses mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-advocacy@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.afs "FreeBSD AFS porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-afs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.aic7xxx "FreeBSD Adaptec AIC7xxx diskussions mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-aic7xxx@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.alpha "FreeBSD Alpha porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-alpha@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.announce "FreeBSD annoncerings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-announce@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.arch "FreeBSD arkitektur og design mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-arch@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.arm "FreeBSD ARM porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-arm@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.atm "FreeBSD ATM netværks mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-atm@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.audit "FreeBSD kildekode auditerings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-audit@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.binup "FreeBSD binær opdaterings system mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-binup@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.bugbusters "FreeBSD bugbusters mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-bugbusters@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.bugs "FreeBSD problem rapports mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-bugs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.chat "FreeBSD snak mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-chat@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.cluster "FreeBSD clustering mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-cluster@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.committers "FreeBSD committer mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>cvs-committers@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.config "FreeBSD installation og konfigurations værktøjs mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-config@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.core "FreeBSD core team
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-core@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.current "FreeBSD-CURRENT mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-current@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.cvsall "FreeBSD CVS commit beskeds mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>cvs-all@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.database "FreeBSD baserede Databaser mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-database@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.developers "FreeBSD developers mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-developers@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.doc "FreeBSD dokumentations projekt mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-doc@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.emulation "FreeBSD-emulation mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-emulation@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.firewire "FreeBSD FireWire (IEEE 1394) diskussions mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-firewire@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.fs "FreeBSD filsystem projekt mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-fs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.gnome "FreeBSD GNOME og GNOME programmer mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-gnome@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.hackers "FreeBSD teknisk diskussions mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-hackers@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.hardware "FreeBSD hardware og udstyrs mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-hardware@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.hubs "FreeBSD mirror sites mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-hubs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.i18n "FreeBSD internationaliserings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-i18n@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.ia64 "FreeBSD IA64 porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-ia64@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.install "FreeBSD installation udviklings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-install@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.ipfw "FreeBSD IPFW kode mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-ipfw@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.isdn "FreeBSD ISDN mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-isdn@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.isp "FreeBSD Internet service provider's mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-isp@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.java "FreeBSD Java sprog mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-java@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.jobs "FreeBSD relateret beskæftigelse mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-jobs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.lfs "FreeBSD LFS porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-lfs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.libh "FreeBSD libh installation og pakke system mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-libh@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.mips "FreeBSD MIPS porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-mips@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.mobile "FreeBSD laptop computer mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-mobile@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.mozilla "FreeBSD port af Mozilla browseren mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-mozilla@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.multimedia "FreeBSD multimedia mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-multimedia@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.net "FreeBSD netværks mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-net@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.newbies "FreeBSD nye brugere mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-newbies@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.newbus "Ny Bus Arkitektur mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>new-bus-arch@bostonradio.org</email>">
|
||||
|
||||
<!ENTITY a.platforms "FreeBSD non-Intel platforms porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-platforms@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.policy "FreeBSD core team politisk beslutnings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-policy@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.ports "FreeBSD ports mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-ports@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.ppc "FreeBSD PowerPC portering mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-ppc@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.qa "FreeBSD Kvalitets assurance mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-qa@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.questions "FreeBSD generelle spørgsmåls mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-questions@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.realtime "FreeBSD realtime extensions mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-realtime@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.scsi "FreeBSD SCSI subsystem mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-scsi@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.security "FreeBSD sikkerheds mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-security@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.security-notifications "FreeBSD sikkerheds notifikationer mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-security-notifications@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.small "FreeBSD-small mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-small@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.smp "FreeBSD symmetrisk multiprocessing mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-smp@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.sparc "FreeBSD SPARC porterings mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-sparc@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.stable "FreeBSD-STABLE mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-stable@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.standards "FreeBSD C99 og POSIX compliance mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-standards@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.test "FreeBSD test mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-test@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.tokenring "FreeBSD tokenring mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-tokenring@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.usergroups "FreeBSD bruger gruppe koordinations mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-user-groups@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.vendors "FreeBSD leverandør pre-release koordinations mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-vendors@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.www "FreeBSD Webmaster mailing liste
|
||||
<email xmlns='http://docbook.org/ns/docbook'>freebsd-www@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.majordomo "<email xmlns='http://docbook.org/ns/docbook'>majordomo@FreeBSD.org</email>">
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
Navne på FreeBSD nyhedsgrupper
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<!ENTITY ng.misc "
|
||||
<link xlink:href='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</link>
|
||||
nyhedsgruppen">
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
Navne og email adresser på de teams af folk der arbejder
|
||||
på specifikke opgaver. Normalt er de bare mail aliaser der
|
||||
er sat op på hub.FreeBSD.org
|
||||
|
||||
Brug disse entiteter når du refererer de korrekte teams.
|
||||
|
||||
Vær venlig at holde denne liste i alfabetisk orden efter
|
||||
entitets navne.
|
||||
|
||||
VIGTIGT: Hvis du sletter navne fra denne fil *skal* du sikre dig at
|
||||
alle referencer til dem er fjernet fra håndbogens
|
||||
oversættelser. Hvis de ikke er fjernet *vil* du
|
||||
ædelægge bygningen for de andre sprog, og vi
|
||||
vil drille dig i fuld offentlighed.
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<!ENTITY a.core-secretary "Core Team Sekretær <email xmlns='http://docbook.org/ns/docbook'>core-secretary@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.cvs "CVS Repository Meisters <email xmlns='http://docbook.org/ns/docbook'>cvs@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.faq "FAQ Vedligeholder <email xmlns='http://docbook.org/ns/docbook'>faq@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.portmgr "Ports Management Team <email xmlns='http://docbook.org/ns/docbook'>portmgr@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.re "Release Engineering Team <email xmlns='http://docbook.org/ns/docbook'>re@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.donations "Donations forbindelses kontor <email xmlns='http://docbook.org/ns/docbook'>donations@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.security-officer "Sikkerheds officers Team <email xmlns='http://docbook.org/ns/docbook'>security-officer@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.www "FreeBSD Webmaster mailing liste <email xmlns='http://docbook.org/ns/docbook'>www@FreeBSD.org</email>">
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Dannish Documentation Project
|
||||
|
||||
Navne og email adresser på medlemmerne af det danske oversættelses team.
|
||||
$FreeBSD$
|
||||
|
||||
-->
|
||||
|
||||
<!ENTITY a.da.jespersen "Laust S. Jespersen
|
||||
<email xmlns='http://docbook.org/ns/docbook'>Laust@doc.freebsd.dk</email>">
|
||||
|
||||
<!-- Oversættelser -->
|
||||
|
||||
<!ENTITY trans.da.jespersen
|
||||
"<para xmlns='http://docbook.org/ns/docbook'><emphasis>Dansk version af &a.da.jespersen;.</emphasis></para>">
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/Makefile,v 1.2 2004/11/28 21:13:46 jkois Exp $
|
||||
# basiert auf: 1.7
|
||||
|
||||
COMPAT_SYMLINK = de
|
||||
|
||||
SUBDIR = articles
|
||||
SUBDIR+= books
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../..
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# basiert auf: 1.42
|
||||
|
||||
SUBDIR = contributing
|
||||
SUBDIR+= explaining-bsd
|
||||
SUBDIR+= freebsd-update-server
|
||||
SUBDIR+= leap-seconds
|
||||
SUBDIR+= linux-users
|
||||
SUBDIR+= nanobsd
|
||||
SUBDIR+= new-users
|
||||
SUBDIR+= port-mentor-guidelines
|
||||
SUBDIR+= solid-state
|
||||
|
||||
# ROOT_SYMLINKS+= new-users
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/articles/Makefile.inc,v 1.1 2004/11/28 21:13:46 jkois Exp $
|
||||
# basiert auf: 1.4
|
||||
#
|
||||
|
||||
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/articles/${.CURDIR:T}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/articles/contributing/Makefile,v 1.2 2005/01/06 20:22:43 mheinen Exp $
|
||||
# basiert auf: 1.6
|
||||
#
|
||||
# Article: FreeBSD unterstuetzen
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html html-split
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,606 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/articles/contributing/article.xml,v 1.12 2012/03/25 14:15:57 bcr Exp $
|
||||
basiert auf: 1.512
|
||||
-->
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>&os; unterstützen</title>
|
||||
|
||||
|
||||
<abstract>
|
||||
<para>Dieser Artikel beschreibt, wie Einzelpersonen oder
|
||||
Unternehmen das &os;-Projekt unterstützen
|
||||
können.</para>
|
||||
|
||||
<para><emphasis>Übersetzt von Johann Kois</emphasis>.</para>
|
||||
|
||||
</abstract>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.ieee;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
</info>
|
||||
|
||||
<indexterm><primary>Unterstützung</primary></indexterm>
|
||||
|
||||
<para>Sie wollen &os; unterstützen? Das ist großartig!
|
||||
&os; ist auf die Unterstützung seiner Anwender
|
||||
<emphasis>angewiesen</emphasis>, um zu überleben. Ihre
|
||||
Beiträge werden nicht nur begrüßt, sie sind
|
||||
für die Weiterentwicklung von &os; von elementarer
|
||||
Bedeutung.</para>
|
||||
|
||||
<para>Im Gegensatz zu dem, was einige Leute Ihnen einreden wollen,
|
||||
müssen Sie kein Spitzenprogrammierer oder persönlicher
|
||||
Freund eines Mitglieds des FreeBSD-Core-Teams sein, damit Ihre
|
||||
Beiträge akzeptiert werden. Ein große und wachsende
|
||||
Anzahl von internationalen Unterstützern verschiedenen
|
||||
Alters und mit verschiedenen technischen Fähigkeiten
|
||||
entwickelt FreeBSD weiter. Es gibt immer mehr zu tun, als
|
||||
von den beteiligten Personen bewältigt werden kann, daher
|
||||
freuen wir uns über jede Hilfe.</para>
|
||||
|
||||
<para>Das FreeBSD-Projekt ist für ein komplettes Betriebssytem
|
||||
verantwortlich, nicht nur für einen Kernel oder ein paar
|
||||
verstreute Werkzeuge. Daher umfasst unsere
|
||||
<filename>TODO</filename>-Liste viele verschiedene
|
||||
Aufgabenbereiche: Angefangen von der Dokumentation, über Betatests
|
||||
und Präsentationen bis zu Systeminstallationen und speziellen
|
||||
Weiterentwicklungen des Kernels. Da Fähigkeiten in den
|
||||
verschiedensten Bereichen benötigt werden, kann fast jeder
|
||||
etwas zu diesem Projekt beitragen.</para>
|
||||
|
||||
<para>Personen, die im kommerziellen Umfeld mit FreeBSD zu tun
|
||||
haben, sind ebenfalls aufgefordert, sich bei uns zu melden.
|
||||
Brauchen Sie eine spezielle Erweiterung, damit Ihr Produkt
|
||||
funktioniert? Wir kommen Ihren Wünschen gerne entgegen,
|
||||
vorausgesetzt, sie sind nicht zu speziell. Arbeiten Sie an einem
|
||||
Mehrwertprodukt? Dann informieren Sie uns bitte! Wir könnten in
|
||||
der Lage sein, an einem Teil davon mitzuarbeiten. Die Welt der
|
||||
freien Software fordert viele bestehenden Annahmen über die
|
||||
Entwicklung, den Verkauf und die Wartung von Software heraus, und
|
||||
wir bitten Sie, ernsthaft darüber nachzudenken.</para>
|
||||
|
||||
<sect1 xml:id="contrib-what">
|
||||
<title>Was wird gebraucht?</title>
|
||||
|
||||
<para>Die folgende Liste von Aufgaben und Unterprojekten
|
||||
repräsentiert eine Zusammenfassung von
|
||||
verschiedenen <filename>TODO</filename>-Listen und
|
||||
Benutzerwünschen.</para>
|
||||
|
||||
<sect2 xml:id="non-programmer-tasks">
|
||||
<title>Aufgaben für Nicht-Programmierer</title>
|
||||
|
||||
<para>Viele Menschen, die an FreeBSD beteiligt sind, sind keine
|
||||
Programmierer. Es sind Leute, die an der Dokumentation
|
||||
arbeiten, Internetseiten erstellen oder einfach Hilfe
|
||||
anbieten. Alles, was diese Leute mitbringen müssen, sind Zeit
|
||||
und die Bereitschaft, etwas zu lernen.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Lesen Sie die häufig gestellten Fragen (FAQ) und
|
||||
das Handbuch gelegentlich. Wenn etwas schlecht erklärt
|
||||
wird, veraltet oder einfach falsch ist, teilen Sie es uns
|
||||
mit. Oder noch besser, korrigieren Sie es (SGML ist nicht
|
||||
schwer zu erlernen, wir akzeptieren aber auch Vorschläge
|
||||
im ASCII-Format.).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Helfen Sie dabei, die Dokumentation in Ihre
|
||||
Muttersprache zu übersetzen. Wenn an der Übersetzung in
|
||||
Ihre Sprache bereits gearbeitet wird, helfen Sie, indem
|
||||
Sie weitere Dokumente übersetzen, oder sorgen Sie dafür,
|
||||
dass die Übersetzungen aktuell sind. Lesen Sie zuerst
|
||||
die <link xlink:href="&url.books.fdp-primer;/translations.html">
|
||||
Übersetzungs-FAQ</link> der Fibel für neue
|
||||
Mitarbeiter des FreeBSD-Dokumentations-Projekts. Sie
|
||||
verpflichten sich dabei nicht dazu, jede einzelne Seite zu
|
||||
übersetzen — als Freiwilliger übersetzen
|
||||
Sie genau so viel, wie Sie wollen. Wenn jemand mit der
|
||||
Übersetzung beginnt, beteiligen sich fast immer auch
|
||||
andere Personen daran. Wenn Sie nur Zeit und
|
||||
Energie für einen Teil der Dokumentation haben, dann
|
||||
übersetzen Sie bitte die Installationsanleitung.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Lesen Sie &a.questions; sowie die &ng.misc;
|
||||
gelegentlich (oder sogar regelmäßig). Es kann
|
||||
sehr befriedigend sein, wenn Sie Ihr Wissen teilen und
|
||||
anderen Leuten dabei helfen können, deren Probleme zu
|
||||
lösen; vielleicht lernen Sie sogar noch etwas Neues!
|
||||
Diese Foren können auch eine Quelle für Ideen
|
||||
sein, an denen man arbeiten könnte.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="ongoing-programmer-tasks">
|
||||
<title>Aufgaben für Programmierer</title>
|
||||
|
||||
<para>Die meisten der hier aufgeführten Aufgaben erfordern
|
||||
entweder einen bedeutenden Zeitaufwand oder eine sehr gute
|
||||
Kenntnis des FreeBSD-Kernels, oder beides. Es gibt jedoch
|
||||
genug Aufgaben, die auch für
|
||||
<quote>Wochenendprogrammierer</quote> geeignet sind.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Wenn Sie FreeBSD-CURRENT installiert haben und über
|
||||
eine schnelle Internetanbindung verfügen, können
|
||||
Sie von <systemitem class="fqdomainname">current.FreeBSD.org</systemitem>
|
||||
ein täglich neu erzeugtes Release herunterladen —
|
||||
versuchen Sie dann hin und wieder, das neueste Release zu
|
||||
installieren und melden Sie dabei eventuell auftretende
|
||||
Fehler.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Lesen Sie &a.bugs;. Es könnte ein Problem geben,
|
||||
an dem Sie konstruktiv mitarbeiten könnten, oder
|
||||
für das es Patches gibt, die Sie testen könnten.
|
||||
Oder Sie könnten sogar versuchen, eines dieser Probleme
|
||||
selbst zu beheben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wenn Sie von Fehlerbehebungen wissen, die zwar
|
||||
erfolgreich auf -CURRENT angewendet wurden, die aber nach
|
||||
einem bestimmten Zeitraum nicht in -STABLE eingebracht
|
||||
wurden (normalerweise innerhalb einiger Wochen), erinnern
|
||||
Sie den Committer höflich daran.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Verschieben Sie beigetragene Software im Quellcodebaum
|
||||
nach <filename>src/contrib</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Stellen Sie sicher, dass der Code in
|
||||
<filename>src/contrib</filename> aktuell
|
||||
ist.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bauen Sie den Quellcodebaum (oder einen Teil des
|
||||
Baumes) mit aktivierten Compilerwarnungen und beheben
|
||||
Sie auftretende Fehlermeldungen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Beheben Sie Fehlermeldungen bei der Installation
|
||||
von Ports, die auf unsauberen Code hinweisen (etwa die
|
||||
Verwendung von <function>gets()</function> oder die
|
||||
Einbindung von <filename>malloc.h</filename>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wenn Sie einen Port beigetragen und dabei irgendwelche
|
||||
&os;-spezifischen Änderungen getätigt haben, senden Sie
|
||||
Ihre Patches an die ursprünglichen Autoren (das wird ihr
|
||||
Leben einfacher machen, wenn die nächste Version des Ports
|
||||
erscheint).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Besorgen Sie sich Kopien von wichtigen Standards wie
|
||||
&posix;. Als Ausgangspunkt für Ihre Suche können
|
||||
Sie die Seite des <link xlink:href="&url.base;/projects/c99/index.html">FreeBSD
|
||||
C99 & POSIX Standards Conformance Project</link>
|
||||
verwenden. Vergleichen Sie das Verhalten von FreeBSD mit
|
||||
dem von dem jeweiligen Standard geforderten Verhalten.
|
||||
Verhält sich FreeBSD in einem Bereich unterschiedlich,
|
||||
sollten Sie einen Problembericht (PR) einsenden. Wenn Sie
|
||||
dazu in der Lage sind, können Sie sich auch eine Lösung
|
||||
des Problems überlegen und Ihrem PR einen Patch
|
||||
anfügen. Wenn Sie der Meinung sind, dass der Standard
|
||||
nicht korrekt ist, können Sie auch das jeweilige
|
||||
Standardgremium um weitere Informationen bitten.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Schlagen Sie weitere Aufgaben für diese Liste
|
||||
vor!</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Die PR-Datenbank durchsehen</title>
|
||||
|
||||
<indexterm><primary>problem reports database</primary></indexterm>
|
||||
|
||||
<para>Die <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD
|
||||
PR-Datenbank</link> enthält alle derzeit offenen
|
||||
Problemberichte und Verbesserungswüsche, die von
|
||||
Anwendern eingereicht wurden. Die PR-Datenbank enthält
|
||||
sowohl Aufgaben für Programmierer als auch für
|
||||
Nichtprogrammierer. Gehen Sie die Liste der offenen PRs
|
||||
durch, um festzustellen, ob Sie ein Problem interessiert. Bei
|
||||
manchen Berichten geht es nur darum, zu überprüfen, ob der
|
||||
bereitgestellte Patch korrekt funktioniert. Andere
|
||||
Problemberichte sind hingegen komplexer, oder beinhalten
|
||||
überhaupt keinen Lösungsvorschlag.</para>
|
||||
|
||||
<para>Beginnen Sie mit den PRs, die niemandem zugewiesen sind.
|
||||
Ist ein PR, für den Sie eine Lösung hätten,
|
||||
bereits jemandem zugewiesen, nehmen Sie mit dem dafür
|
||||
Zuständigen Kontakt auf und fragen Sie ihn, ob Sie an
|
||||
der Lösung mitarbeiten können — es könnte
|
||||
etwa bereits ein Patch existieren, der nur noch getestet
|
||||
werden muss, oder Sie könnten weitere Ideen mit ihm
|
||||
diskutieren.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Wählen Sie einen der Einträge auf der
|
||||
<quote>Ideen</quote>-Seite aus</title>
|
||||
|
||||
<para>Die <link xlink:href="&url.base;/projects/ideas/">Liste
|
||||
von Projekten und Ideen</link> für &os; ist auch
|
||||
für Freiwillige interessant, die etwas zum &os; Projekt
|
||||
beitragen möchten. Diese Liste wird regelmäßig
|
||||
aktualisiert und enthält Einträge für Programmierer
|
||||
und Nicht-Programmierer sowie Informationen zu jedem
|
||||
Projekt.</para> </sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="contrib-how">
|
||||
<title>Was Sie tun können</title>
|
||||
|
||||
<para>Mögliche Beiträge lassen sich in fünf
|
||||
Kategorien einteilen:</para>
|
||||
|
||||
<sect2 xml:id="contrib-general">
|
||||
<title>Fehlerberichte und allgemeine Vorschläge</title>
|
||||
|
||||
<para>Eine Idee oder ein Vorschlag von
|
||||
<emphasis>allgemeinem</emphasis> technischen Interesse sollte
|
||||
an &a.hackers; geschickt werden. Personen, die an solchen
|
||||
Fragen interessiert sind (und kein Problem mit einem
|
||||
<emphasis>hohen</emphasis> Mailaufkommen haben!) können
|
||||
die Mailingliste &a.hackers; auch abonnieren. Informationen
|
||||
zu dieser und anderen Mailinglisten finden Sie im <link xlink:href="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">
|
||||
FreeBSD Handbuch</link>.</para>
|
||||
|
||||
<para>Wenn Sie einen Fehler gefunden oder eine Verbesserung
|
||||
entwickelt haben, vergessen Sie nicht, einen Bericht über
|
||||
&man.send-pr.1; oder dessen <link xlink:href="&url.base;/de/send-pr.html">Internetschnittstelle</link>
|
||||
zu erstellen. Versuchen Sie bitte, jedes Feld auszufüllen.
|
||||
Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt
|
||||
in den Bericht einbauen. Kann der Patch direkt auf den
|
||||
Quellcodebaum angewendet werden, fügen Sie
|
||||
<literal>[PATCH]</literal> im Synopsis-Feld ein. Wenn Sie
|
||||
einen Patch einfügen, verwenden Sie bitte <emphasis>kein
|
||||
copy-and-paste</emphasis>, weil dadurch Tabulatoren in
|
||||
Leerzeichen umgewandelt werden, was den Patch unbrauchbar
|
||||
macht. Sind die Patches viel größer als 20 KB, sollten
|
||||
Sie sie komprimieren (z.B. mit &man.gzip.1; oder
|
||||
&man.bzip2.1;) und &man.uuencode.1; verwenden, um diese in
|
||||
ihren Problembericht einzufügen.</para>
|
||||
|
||||
<para>Nachdem Sie einen Bericht versandt haben, erhalten Sie
|
||||
eine E-Mail, die eine Bestätigung sowie eine
|
||||
Identifikationsnummer enthält. Geben Sie diese Nummer im
|
||||
Betreff der Nachricht an (<literal>"Re:
|
||||
kern/3377"</literal>), wenn Sie neue Informationen zu diesem
|
||||
Problem an &a.bugfollowup; senden. Zusätzliche Informationen
|
||||
zu Problemberichten sollten immer auf diese Art und Weise
|
||||
verschickt werden.</para>
|
||||
|
||||
<para>Sollten Sie innerhalb einer Woche keine Bestätigung
|
||||
erhalten, oder &man.send-pr.1; nicht verwenden können,
|
||||
können Sie über &a.bugs; jemanden bitten, dies
|
||||
für Sie zu erledigen.</para>
|
||||
|
||||
<para>Weitere Informationen zum Verfassen von guten
|
||||
Problemberichten finden Sie im entsprechenden <link xlink:href="&url.articles.problem-reports.en;/article.html">
|
||||
Artikel</link>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Änderungen der Dokumentation</title>
|
||||
|
||||
<indexterm><primary>documentation submissions</primary></indexterm>
|
||||
|
||||
<para>Änderungen der Dokumentation werden vom &a.doc;
|
||||
überwacht. Lesen Sie bitte die <link xlink:href="&url.books.fdp-primer;/index.html">Fibel für neue
|
||||
Mitarbeiter des FreeBSD-Dokumentationsprojekts</link> für
|
||||
weitere Informationen. Korrekturen und Ergänzungen
|
||||
(selbst kleine Änderungen sind willkommen!) werden mit
|
||||
&man.send-pr.1; übermittelt. Lesen Sie dazu den Abschnitt
|
||||
<link linkend="contrib-general">Fehlerberichte und allgemeine
|
||||
Vorschläge</link>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Änderungen am vorhandenen Quellcode</title>
|
||||
|
||||
<indexterm><primary>FreeBSD-CURRENT</primary></indexterm>
|
||||
|
||||
<para>Änderungen des existierenden Quellcodes sind etwas
|
||||
komplizierter. Entscheidend ist hier, wie
|
||||
vertraut Sie mit dem aktuellen Entwicklungsstand von
|
||||
FreeBSD sind. Es existiert eine spezielle, ständig
|
||||
aktualisierte Version von FreeBSD, die als
|
||||
<quote>FreeBSD-CURRENT</quote> bekannt ist. Diese ist auf
|
||||
verschiedenen Wegen erhältlich und stellt den
|
||||
aktuellen Stand der Entwicklung dar. Lesen Sie den Abschnitt
|
||||
<link xlink:href="&url.books.handbook;/current-stable.html">
|
||||
FreeBSD-CURRENT vs. FreeBSD-STABLE</link> des Handbuchs
|
||||
für weitere Informationen zur Installation und Verwendung
|
||||
von FreeBSD-CURRENT.</para>
|
||||
|
||||
<para>Arbeiten Sie mit älteren Quellcodeversionen, kann
|
||||
dies leider bedeuten, das Ihre Änderungen obsolet sind,
|
||||
oder sich nicht mehr in FreeBSD reintegrieren lassen. Dieses
|
||||
Risiko lässt sich verringern, wenn Sie die Mailinglisten
|
||||
&a.announce; und &a.current; abonnieren, auf denen aktuelle
|
||||
Systemänderungen diskutiert werden.</para>
|
||||
|
||||
<para>Wenn Ihre Änderungen auf ausreichend aktuellen Quellen
|
||||
beruhen, erstellen Sie als Nächstes einen Differenzensatz,
|
||||
den Sie an die FreeBSD-Entwickler schicken. Eine solche
|
||||
Differenz erstellen Sie mit &man.diff.1;.</para>
|
||||
|
||||
<para>Das bevorzugte &man.diff.1;-Format für das Versenden
|
||||
von Patches ist das sogenannte <foreignphrase>unified
|
||||
output</foreignphrase>-Format, das Sie mit
|
||||
<command>diff -u</command> erstellen. Für
|
||||
größere Änderungen kann allerdings das
|
||||
<foreignphrase>context output</foreignphrase>-Format
|
||||
(erzeugt mit <command>diff -c</command>) die bessere Wahl
|
||||
sein.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>diff</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Dazu ein Beispiel:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
|
||||
|
||||
<para>oder</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
|
||||
|
||||
<para>würde einen solchen Satz von Differenzen für die
|
||||
angegebene Verzeichnishierarchie erzeugen.</para>
|
||||
|
||||
<para>Genauso hätte</para>
|
||||
<screen>&prompt.user; <userinput>diff -u oldfile newfile</userinput></screen>
|
||||
|
||||
<para>oder</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -u -r olddir newdir</userinput></screen>
|
||||
|
||||
<para>den gleichen Effekt, allerdings erfolgt die Ausgabe
|
||||
im <foreignphrase>unified diff</foreignphrase>-Format.</para>
|
||||
|
||||
<para>Lesen Sie dazu auch &man.diff.1;.</para>
|
||||
|
||||
<para>Nachdem Sie den Differenzensatz erstellt und mit
|
||||
&man.patch.1; getestet haben, sollten Sie ihn an das
|
||||
FreeBSD-Projekt senden. Verwenden Sie dazu &man.send-pr.1;
|
||||
(wie im Abschnitt <link linkend="contrib-general">Fehlerberichte und allgemeine
|
||||
Vorschläge</link> beschrieben). Senden Sie die
|
||||
Differenzen <emphasis>nicht nur</emphasis> an &a.hackers;, da
|
||||
diese sonst verloren gehen. Wir freuen uns über Ihren
|
||||
Beitrag (schließlich ist FreeBSD ein Freiwilligenprojekt);
|
||||
wir sind aber manchmal nicht in der Lage, das Problem sofort
|
||||
anzugehen. Es verbleibt aber in der PR-Datenbank, bis wir
|
||||
dafür Zeit finden. Verwenden Sie den Begriff
|
||||
<literal>[PATCH]</literal> im Synopsis-Feld des
|
||||
Berichts.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>uuencode</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Sie können auch ein <command>tar</command>-Archiv
|
||||
erzeugen (was vor allem dann sinnvoll ist, wenn Sie Dateien
|
||||
hinzugefügt, gelöscht oder umbenannt haben) und
|
||||
&man.uuencode.1; auf das Archiv anwenden. Mit &man.shar.1;
|
||||
erzeugte Archive sind ebenfalls willkommen.</para>
|
||||
|
||||
<para>Wenn Ihre Änderungen potentielle Probleme aufweisen,
|
||||
wie Unklarheiten im Hinblick auf das Copyright, oder Sie
|
||||
einfach eine genaue Überprüfung Ihrer Änderungen
|
||||
möchten, sollten Sie die Änderungen an das &a.core;
|
||||
schicken, statt sie mit &man.send-pr.1; zu versenden. Die
|
||||
Mailingliste &a.core; erreicht nur eine kleine Gruppe von
|
||||
Leuten, die sich um die tägliche Arbeit an &os;
|
||||
kümmern. Beachten Sie aber, dass diese Gruppe
|
||||
<emphasis>sehr beschäftigt</emphasis> ist. Daher sollten
|
||||
Sie nur dann eine E-Mail an sie schicken, wenn es absolut
|
||||
notwendig ist.</para>
|
||||
|
||||
<para>&man.intro.9; und &man.style.9; beschreiben den zu
|
||||
verwendenden Programmierstil. Bevor Sie also Code
|
||||
versenden, sollten Sie diese Informationen gelesen
|
||||
haben.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Neuer Code oder große Mehrwertpakete</title>
|
||||
|
||||
<para>Handelt es sich um einen bedeutenden Beitrag oder um
|
||||
das Hinzufügen von neuen wichtigen Fähigkeiten zu
|
||||
FreeBSD, ist es fast immer notwendig, die Änderungen
|
||||
als <foreignphrase>uuencoded tar</foreignphrase>-Dateien
|
||||
zu versenden, oder diese auf einer Internetseite oder einem
|
||||
FTP-Server bereitzustellen. Haben Sie keinen eigenen
|
||||
Speicherplatz im Internet, sollten Sie auf einer
|
||||
entsprechenden Mailinglisten nachfragen, ob jemand diese
|
||||
Aufgabe für Sie übernehmen kann.</para>
|
||||
|
||||
<para>Arbeitet man mit großen Codebeständen,
|
||||
kommt man unweigerlich mit den unterschiedlichen Lizenzen
|
||||
in Berührung. Code, der in FreeBSD enthalten ist,
|
||||
kann unter den folgenden Lizenzen stehen:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<indexterm><primary>BSD-Lizenz</primary></indexterm>
|
||||
|
||||
<para>Der BSD-Lizenz. Diese Lizenz wird von uns bevorzugt,
|
||||
weil sie an <quote>keine Bedingungen</quote> geknüpft
|
||||
ist und daher für kommerzielle Unternehmen sehr
|
||||
attraktiv ist. Das FreeBSD-Projekt unterstützt diese
|
||||
kommerzielle Verwendung, die manchmal sogar in eine
|
||||
Förderung des FreeBSD-Projekts mündet.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<indexterm><primary>GPL</primary><see>GNU General Public License</see></indexterm>
|
||||
|
||||
<indexterm><primary>GNU General Public License</primary></indexterm>
|
||||
|
||||
<para>Der GNU General Public License, oder
|
||||
<quote>GPL</quote>. Diese Lizenz ist nicht ganz so
|
||||
beliebt bei uns, da sie die kommerzielle Nutzung des
|
||||
Quellcodes einschränkt. In Anbetracht der schieren Menge
|
||||
an GPL-Quellcode, den wir derzeit benötigen (wie Compiler,
|
||||
Assembler oder Textformatierer) wären wir aber schlecht
|
||||
beraten, Beiträge, die unter dieser Lizenz stehen,
|
||||
abzulehnen. Code, der unter der GPL steht, befindet sich
|
||||
in einem gesonderten Bereich des Quellcodebaums, und zwar
|
||||
unter <filename>/sys/gnu</filename> oder
|
||||
<filename>/usr/src/gnu</filename>, und
|
||||
ist daher für jeden, für den die GPL ein Problem
|
||||
darstellt, sofort erkennbar.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Beiträge, die unter einer dieser Lizenzen stehen,
|
||||
müssen sorgfältig geprüft werden, bevor ihre
|
||||
Aufnahme in FreeBSD in Betracht gezogen wird. Beiträge,
|
||||
für die besonders restriktive Lizenzen gelten, werden
|
||||
generell abgelehnt, obwohl die Autoren ermutigt werden,
|
||||
ihre Veränderungen über ihre eigenen Kanäle
|
||||
verfügbar zu machen.</para>
|
||||
|
||||
<para>Um Ihre Arbeit unter die <quote>BSD-Lizenz</quote> zu
|
||||
stellen, fügen Sie den folgenden Text am Beginn jeder
|
||||
von Ihnen erstellten Quellcodedatei ein, wobei Sie den Text
|
||||
zwischen den <literal>%%</literal>-Zeichen durch die
|
||||
entsprechenden Informationen ersetzt:</para>
|
||||
|
||||
<programlisting>Copyright (c) %%Jahr der Veröffentlichung%%
|
||||
%%Ihr Name%%, %%Ihr Land%% %%Ihre Postleitzahl%%.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer as
|
||||
the first lines of this file unmodified.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY %%Ihr Name%% ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL %%Ihr Name%% BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$Id$</programlisting>
|
||||
|
||||
<para>Eine Kopie dieses Textes finden Sie unter
|
||||
<filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Geld, Hardware oder Internetzugang</title>
|
||||
|
||||
<para>Wir freuen uns immer, wenn jemand das FreeBSD-Projekt
|
||||
durch Spenden unterstützen will. Auch kleine Spenden
|
||||
können eine große Wirkung haben. Hardwarespenden
|
||||
sind ebenfalls sehr wichtig, um die Liste der von FreeBSD
|
||||
unterstützten Hardware erweitern zu können, da
|
||||
uns die Mittel zum Erwerb dieser Hardware fehlen.</para>
|
||||
|
||||
<sect3 xml:id="donations">
|
||||
<title>Geldspenden</title>
|
||||
|
||||
<para>Die FreeBSD Foundation ist eine gemeinnützige
|
||||
Gesellschaft, die zur Unterstützung des FreeBSD-Projekts
|
||||
geschaffen wurde. Sie ist nach dem Paragraphen 501(c)3
|
||||
sowohl von der amerikanischen Einkommenssteuer als auch von
|
||||
der des Staates Colorado befreit. Spenden an solche
|
||||
steuerbefreiten Gesellschaften können unter gewissen
|
||||
Umständen steuermindernd geltend gemacht werden.</para>
|
||||
|
||||
<para>Sie können Spenden in Scheckform an folgende Adresse
|
||||
senden:
|
||||
<address>
|
||||
The FreeBSD Foundation
|
||||
<street>7321 Brockway Dr.</street>
|
||||
<city>Boulder</city>, <state>CO</state> <postcode>80303</postcode>
|
||||
<country>USA</country>
|
||||
</address>
|
||||
</para>
|
||||
|
||||
<para>Die FreeBSD Foundation ist nun auch in der Lage, Spenden
|
||||
durch das PayPal-System entgegenzunehmen. Solche Spenden
|
||||
können über die <link xlink:href="http://www.freebsdfoundation.org">Homepage</link> der
|
||||
Foundation erfolgen.</para>
|
||||
|
||||
<para>Für weitere Informationen zur FreeBSD Foundation
|
||||
sollten Sie den Artikel <link xlink:href="http://people.FreeBSD.org/~jdp/foundation/announcement.html">
|
||||
The FreeBSD Foundation -- an Introduction</link> lesen.
|
||||
Sie erreichen die FreeBSD Foundation über die E-Mail-Adresse
|
||||
<email>bod@FreeBSDFoundation.org</email>.</para> </sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Hardwarespenden</title>
|
||||
|
||||
<indexterm><primary>donations</primary></indexterm>
|
||||
|
||||
<para>Das FreeBSD-Projekt freut sich, wenn jemand benötigte
|
||||
Hardware spenden will. Sind Sie daran interessiert, setzen
|
||||
Sie sich bitte mit dem <link xlink:href="&url.base;/donations/">Donations Liaison
|
||||
Office</link> in Verbindung.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Internetzugang zur Verfügung stellen</title>
|
||||
|
||||
<para>Wir sind ständig auf der Suche nach neuen FTP-,
|
||||
WWW- oder <command>cvsup</command>-Spiegeln. Wenn Sie einen
|
||||
solchen Spiegel einrichten wollen, lesen Sie bitte den
|
||||
Artikel <link xlink:href="&url.articles.hubs.en;/index.html">Mirroring
|
||||
FreeBSD</link>, der weitere Informationen enthält.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<index/>
|
||||
</article>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/articles/explaining-bsd/Makefile,v 1.2 2005/01/06 20:22:43 mheinen Exp $
|
||||
# basiert auf: 1.6
|
||||
#
|
||||
# Article: Hintergrundwissen zu BSD
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html html-split
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,682 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<!-- The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/articles/explaining-bsd/article.xml,v 1.16 2012/03/25 14:11:01 bcr Exp $
|
||||
basiert auf: 1.28
|
||||
-->
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>Hintergrundwissen zu BSD</title>
|
||||
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
|
||||
<address><email>grog@FreeBSD.org</email></address>
|
||||
</affiliation></author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.amd;
|
||||
&tm-attrib.apple;
|
||||
&tm-attrib.intel;
|
||||
&tm-attrib.linux;
|
||||
&tm-attrib.opengroup;
|
||||
&tm-attrib.sparc;
|
||||
&tm-attrib.sun;
|
||||
&tm-attrib.unix;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>In der Open Source-Welt steht das Wort
|
||||
<quote>Linux</quote> oft synonym für
|
||||
<quote>Betriebssystem</quote>, obwohl es nicht das einzige
|
||||
frei verfügbare Betriebssystem ist. Laut <link xlink:href="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
|
||||
Operating System Counter</link> liefen im April 1999
|
||||
weltweit 31,3 Prozent der vernetzten Rechner unter Linux,
|
||||
14,6 Prozent liefen hingegen unter BSD &unix;.
|
||||
Einige der weltweit größten Internetdienstleister, darunter
|
||||
<link xlink:href="http://www.yahoo.com/">Yahoo!</link>, verwenden
|
||||
BSD. Der im Jahre 1999 weltgrößte FTP-Server <link xlink:href="ftp://ftp.cdrom.com/">ftp.cdrom.com</link> (inzwischen
|
||||
abgeschaltet) verwendete BSD, um täglich 1,4 Terabyte an
|
||||
Daten zu übertragen. Hier geht es offensichtlich nicht um
|
||||
einen Nischenmarkt, BSD ist vielmehr ein gut gehütetes
|
||||
Geheimnis.</para>
|
||||
|
||||
<para>Worin besteht nun dieses Geheimnis? Warum ist BSD nicht
|
||||
bekannter? Dieser Artikel versucht, diese und andere Fragen
|
||||
zu beantworten.</para>
|
||||
|
||||
<para>Unterschiede zwischen BSD und Linux werden in diesem
|
||||
Artikel <emphasis>kursiv</emphasis> dargestellt.</para>
|
||||
|
||||
<para><emphasis>Übersetzt von Fabio Tosques</emphasis>.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="what-is-bsd">
|
||||
<title>Was ist BSD?</title>
|
||||
|
||||
<para>BSD steht für <quote>Berkeley Software
|
||||
Distribution</quote>, also für die Verbreitung des Quellcodes
|
||||
der University of California, Berkeley, und war ursprünglich
|
||||
als Erweiterung für ein von AT&T's Research
|
||||
entwickeltes &unix; Betriebssystem gedacht. Verschiedene
|
||||
Open Source-Projekte beruhen auf dieser, als 4.4BSD-Lite
|
||||
bekannten Quellcodeausgabe. In dieser Ausgabe sind auch
|
||||
Softwarepakete anderer Open Source-Projekte, insbesondere jene
|
||||
des GNU-Projekts, enthalten. Das komplette Betriebssystem
|
||||
umfasst:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Den BSD-Kernel, der sich um Prozessscheduling,
|
||||
Speichermanagement, die Unterstützung mehrerer
|
||||
Prozessoren
|
||||
(<foreignphrase>symmetric multi-processing</foreignphrase>,
|
||||
SMP), Gerätetreiber und anderes mehr
|
||||
kümmert.</para>
|
||||
|
||||
<para><emphasis>Im Gegensatz zum Linux-Kernel gibt es
|
||||
verschiedene BSD-Kernel mit unterschiedlichen
|
||||
Fähigkeiten</emphasis>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die C-Bibliothek, die grundlegende API des
|
||||
Systems.</para>
|
||||
|
||||
<para><emphasis>Die C-Bibliothek von BSD basiert auf
|
||||
Berkeley-Code und nicht auf Code des
|
||||
GNU-Projekts</emphasis>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Nützliche Programme wie Shells, Programme für
|
||||
Dateioperationen, Compiler und Linker.</para>
|
||||
|
||||
<para><emphasis>Einige Programme stammen aus dem GNU-Projekt,
|
||||
andere hingegen nicht</emphasis>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Das X Window-System für die grafische
|
||||
Benutzeroberfläche.</para>
|
||||
|
||||
<para>Bei den meisten BSD-Versionen wird das
|
||||
X Window-System eingesetzt und zwar die Version des
|
||||
<link xlink:href="http://www.X.org/">X.org</link>-Projekts.
|
||||
&os; erlaubt es dem Benutzer, aus einer grossen Anzahl an
|
||||
Desktop-Umgebungen zu wählen, wie beispielsweise
|
||||
<application>Gnome</application>,
|
||||
<application>KDE</application> oder
|
||||
<application>Xfce</application>. Ebenso gibt es
|
||||
leichtgewichtige Window-Manager wie
|
||||
<application>Openbox</application>,
|
||||
<application>Fluxbox</application> oder
|
||||
<application>Awesome</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Viele weitere Programme und Werkzeuge.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="what-a-real-unix">
|
||||
<title>Ein echtes &unix;?</title>
|
||||
|
||||
<para>BSD-Betriebssysteme sind keine Nachbauten, sondern
|
||||
Weiterentwicklungen des &unix; Betriebssystems von
|
||||
AT&T's Research, das als Vorfahre des modernen
|
||||
&unix; System V gilt. Überrascht Sie diese Aussage? Wie kann
|
||||
das sein, wenn AT&T seine Quellen nie als Open Source
|
||||
veröffentlicht hat?</para>
|
||||
|
||||
<para>Es stimmt, dass AT&T &unix; kein Open Source ist. Im
|
||||
Sinne des Copyright ist BSD daher eindeutig
|
||||
<emphasis>kein</emphasis> &unix;. Andererseits fügte
|
||||
AT&T aber Quellcode von anderen Projekten in den eigenen
|
||||
Code ein, insbesondere jenen der Computer Sciences Research
|
||||
Group (CSRG) der University of California in Berkeley, CA. Im
|
||||
Jahr 1976 begann die CSRG damit, Bänder ihrer Software zu
|
||||
vertreiben, die sie <emphasis>Berkeley Software
|
||||
Distribution</emphasis> oder <emphasis>BSD</emphasis>
|
||||
nannten.</para>
|
||||
|
||||
<para>Anfangs wurden vor allem Anwendungen veröffentlicht.
|
||||
Das änderte sich schlagartig, als die CSRG von der Advanced
|
||||
Research Projects Agency (DARPA) den Auftrag bekam, deren
|
||||
Kommunikationsprotokolle (ARPANET) zu überarbeiten. Die
|
||||
neuen Protokolle wurden als <emphasis>Internet
|
||||
Protocols</emphasis> bezeichnet, und wurden später als
|
||||
<emphasis>TCP/IP</emphasis> weltbekannt. Die erste
|
||||
Implementierung dieser Protokolle erfolgte 1982 als Teil von
|
||||
4.2BSD.</para>
|
||||
|
||||
<para>Im Laufe der 80er Jahre entstanden einige neue Firmen, die
|
||||
Workstations vertrieben. Viele zogen es vor, &unix; zu
|
||||
lizenzieren und kein eigenes Betriebssystem zu entwickeln.
|
||||
Sun Microsystems lizenzierte &unix;, implementierte eine
|
||||
Version von 4.2BSD und bezeichnete das fertige Produkt als
|
||||
&sunos;. Als es AT&T gestattet wurde, &unix; kommerziell zu
|
||||
vertreiben, verkaufte AT&T eine abgespeckte Version namens
|
||||
System III, der schnell System V folgte. Im
|
||||
System V-Basissystem waren keine Netzwerkfunktionen
|
||||
enthalten, daher wurden alle Implementierungen zusätzlich
|
||||
mit Software des BSD-Projekts, darunter TCP/IP sowie diverse
|
||||
nützliche Programme wie <emphasis>csh</emphasis> oder
|
||||
<emphasis>vi</emphasis>. Diese Erweiterungen wurden unter der
|
||||
Bezeichnung <emphasis>Berkeley Extensions</emphasis>
|
||||
zusammengefasst.</para>
|
||||
|
||||
<para>Da die BSD-Bänder AT&T-Quellcode enthielten, war
|
||||
eine &unix; Lizenz erforderlich. Als im Jahre 1990 die
|
||||
Förderung der CSRG auslief, beschlossen einige Mitglieder
|
||||
der Gruppe, den quelloffenen BSD-Code ohne den
|
||||
proprietären AT&T-Code zu veröffentlichen. Das
|
||||
Ergebnis dieser Bemühungen war
|
||||
<emphasis>Networking Tape 2</emphasis>, besser bekannt als
|
||||
<emphasis>Net/2</emphasis>. Net/2 war aber kein komplettes
|
||||
Betriebssystem, da gut 20 Prozent des Kernelcodes fehlten.
|
||||
William F. Jolitz, ein Mitglied der CSRG, schrieb den fehlenden
|
||||
Code und veröffentlichte diesen Anfang 1992 als
|
||||
<emphasis>386BSD</emphasis>. Zur gleichen Zeit gründete
|
||||
eine andere Gruppe ehemaliger CSRG-Mitglieder das kommerzielle
|
||||
Unternehmen <link xlink:href="http://www.bsdi.com/">Berkeley Software
|
||||
Design Inc.</link> und veröffentlichte eine Betaversion des
|
||||
Betriebssystems unter dem Namen <link xlink:href="http://www.bsdi.com">BSD/386</link>, die auf den gleichen
|
||||
Quellen basierte. Später wurde dieses Betriebssystem in
|
||||
BSD/OS umbenannt.</para>
|
||||
|
||||
<para>386BSD war niemals wirklich stabil. Daher spalteten sich
|
||||
1993 zwei neue Projekte ab: <link xlink:href="http://www.NetBSD.org/">NetBSD</link> sowie <link xlink:href="&url.base;/index.html">FreeBSD</link>. Beide Projekte
|
||||
entstanden, weil sich 386BSD zu langsam weiterentwickelte.
|
||||
Die erste NetBSD-Version entstand Anfang 1993, die erste
|
||||
FreeBSD-Version Ende 1993. Zu dieser Zeit hatte sich der
|
||||
Quellcode aber derart verändert, dass es schwer war,
|
||||
ihn wieder zu verschmelzen. Zudem hatten die beiden Projekte
|
||||
unterschiedliche Ziele, die dieser Artikel noch beschreiben
|
||||
wird. 1996 spaltete sich ein weiteres Projekt von NetBSD ab:
|
||||
<link xlink:href="http://www.OpenBSD.org">OpenBSD</link>. 2003
|
||||
spaltete sich schließlich
|
||||
<link xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link>
|
||||
von FreeBSD ab.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="why-is-bsd-not-better-known">
|
||||
<title>Warum ist BSD nicht bekannter?</title>
|
||||
|
||||
<para>BSD ist aus vielen Gründen relativ unbekannt:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>BSD-Entwickler sind eher an der Verbesserung des Codes
|
||||
interessiert als an der Vermarktung desselben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die Popularität von Linux beruht auch auf externen
|
||||
Faktoren wie der Presse, sowie auf Firmen, die gegründet
|
||||
wurden, um Linux zu vertreiben. Bis heute fehlen den freien
|
||||
BSD-Systemen solche Förderer.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD-Entwickler sind vielleicht erfahrener als
|
||||
Linux-Entwickler, und haben deshalb weniger Interesse daran,
|
||||
die Benutzung des Systems einfacher zu gestalten.
|
||||
Einsteiger sind bei Linux wahrscheinlich besser
|
||||
aufgehoben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>1992 verklagte AT&T <link xlink:href="http://www.bsdi.com/">BSDI</link>, den Verkäufer
|
||||
von BSD/386, mit der Behauptung, der Quellcode enthalte
|
||||
urheberrechtlich geschützten AT&T Code. Zwar kam es
|
||||
1994 zu einer außergerichtlichen Einigung, die Leute
|
||||
waren aber erst einmal verunsichert. Noch im März 2000
|
||||
behauptete ein im Web publizierter Artikel, das Verfahren
|
||||
sei erst <quote>kürzlich</quote> eingestellt worden.</para>
|
||||
|
||||
<para>Bezüglich der Bezeichnung schaffte der
|
||||
Gerichtsprozess jedoch Klarheit: In den 80er Jahren war
|
||||
BSD unter dem Namen <quote>BSD &unix;</quote> bekannt.
|
||||
Durch die Entfernung der letzten Zeilen des AT&T-Codes
|
||||
verlor BSD das Recht, sich &unix; zu nennen. Deshalb finden
|
||||
Sie in der Literatur sowohl Verweise auf
|
||||
<quote>4.3BSD &unix;</quote> als auch auf
|
||||
<quote>4.4BSD</quote>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Nach wie vor existiert das Vorurteil, die einzelnen
|
||||
BSD Projekte seien gespalten und zerstritten. Das <link xlink:href="http://interactive.wsj.com/bin/login?Tag=/&URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&">
|
||||
Wall Street Journal</link> sprach gar von einer
|
||||
<quote>Balkanisierung</quote> des BSD-Projekts. Wie der
|
||||
Prozess, basiert auch dieses Vorurteil hauptsächlich
|
||||
auf alten Geschichten.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="comparing-bsd-and-linux">
|
||||
<title>Ein Vergleich zwischen BSD und Linux</title>
|
||||
|
||||
<para>Wo sind nun die Unterschiede zwischen, sagen wir Debian
|
||||
GNU/Linux und FreeBSD? Für die meisten Benutzer sind die
|
||||
Unterschiede nicht groß: Beide sind &unix; ähnliche
|
||||
Betriebssysteme. Beide sind nichtkommerzielle Projekte (was
|
||||
für eine Vielzahl anderer Linux-Distributionen nicht gilt).
|
||||
Der folgende Abschnitt betrachtet BSD näher und vergleicht es
|
||||
mit Linux. Die meisten Erläuterungen beziehen sich auf
|
||||
FreeBSD, da es sich dabei um das am häufigsten installierte
|
||||
BSD-System handelt. Die Unterschiede zu NetBSD, OpenBSD und
|
||||
DragonFlyBSD sind aber gering.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Wem gehört BSD?</title>
|
||||
|
||||
<para>BSD gehört weder einer einzelnen Person, noch
|
||||
gehört es einem Unternehmen. Entwickelt und zur
|
||||
Verfügung gestellt wird es von einer technisch
|
||||
interessierten und engagierten Gemeinschaft, die über
|
||||
die ganze Welt verteilt ist. Einige BSD-Komponenten sind
|
||||
eigenständige Open Source-Projekte mit eigenen Rechten,
|
||||
die getrennt verwaltet und gewartet werden.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Wie erfolgt die Weiterentwicklung von BSD?</title>
|
||||
|
||||
<para>BSD-Kernel werden nach dem Open Source-Modell
|
||||
weiterentwickelt. Jedes Projekt unterhält einen
|
||||
öffentlich zugänglichen
|
||||
<emphasis>Quellcode-Baum</emphasis>, der mit dem <link xlink:href="http://www.cvshome.org/">Concurrent Versions
|
||||
System</link> (CVS) verwaltet wird, und alle Quellen des
|
||||
Projekts, die Dokumentation und andere notwendige Dateien
|
||||
enthält. CVS erlaubt es Anwendern, jede gewünschte Version
|
||||
des Systems <quote>auszuchecken</quote> (mit anderen Worten,
|
||||
eine Kopie des System zu erhalten).</para>
|
||||
|
||||
<para>Eine Vielzahl von Entwicklern trägt weltweit zur
|
||||
Verbesserung von BSD bei. Dabei werden drei Typen
|
||||
unterschieden:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Ein <firstterm>Contributor</firstterm> schreibt Code
|
||||
oder Dokumentationen. Ihm ist es nicht gestattet, seinen
|
||||
Beitrag direkt in den Quellbaum einfließen zu lassen.
|
||||
Bevor dieser Code in das System eingebracht wird, muss er
|
||||
von einem registrierten Entwickler, dem
|
||||
<emphasis>Committer</emphasis> geprüft werden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><firstterm>Committer</firstterm> können Code in
|
||||
den Quellbaum einbringen, das heißt sie besitzen
|
||||
Schreibrechte für den Quellcode-Baum. Um ein
|
||||
Committer zu werden, muss man zuerst seine Fähigkeiten
|
||||
im gewünschten Gebiet unter Beweis stellen.</para>
|
||||
|
||||
<para>Es liegt im Ermessen des Committers, ob er die
|
||||
Allgemeinheit befragt, bevor er Änderungen am Quellbaum
|
||||
vornimmt. In der Regel wird ein erfahrener Committer
|
||||
korrekte Änderungen einfügen, ohne sich mit anderen
|
||||
abzustimmen. Ein Committer des Documentation Projects
|
||||
könnte etwa typografische oder grammatikalische
|
||||
Korrekturen ohne lange Diskussion durchführen. Auf der
|
||||
anderen Seite sollten Änderungen mit weitreichenden
|
||||
Konsequenzen vor dem Commit zur Begutachtung
|
||||
bereitgestellt werden. Im Extremfall kann ein Mitglied
|
||||
des Core Teams, das als Principal Architect fungiert,
|
||||
sogar die Entfernung der Änderung aus dem Quellcodebaum
|
||||
veranlassen. Dieser Vorgang wird als <firstterm>backing
|
||||
out</firstterm> bezeichnet. Alle Committer werden durch
|
||||
eine E-Mail über die erfolgte Änderung informiert. Es ist
|
||||
daher nicht möglich, heimlich eine Änderung
|
||||
durchzuführen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Das <firstterm>Core Team</firstterm>. Sowohl FreeBSD
|
||||
als auch NetBSD besitzen ein Core Team zur Betreuung des
|
||||
jeweiligen Projekts. Da die Core Teams erst im
|
||||
Projektverlauf entstanden, ist ihre Rolle nicht genau
|
||||
definiert. Um ein Mitglied des Core Teams zu sein, muss
|
||||
man kein Entwickler sein, obwohl dies die Regel ist. Die
|
||||
Regeln der Core Teams unterscheiden sich von Projekt zu
|
||||
Projekt, generell gilt aber, das dessen Mitglieder mehr
|
||||
Einfluss auf die Richtung des Projekts haben als
|
||||
Nichtmitglieder.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Diese Konstellation unterscheidet sich von Linux in
|
||||
einigen Punkten:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Es sind stets mehrere Personen für das System
|
||||
verantwortlich. In der Praxis ist dieser Unterschied aber
|
||||
nicht gravierend, da zum einen der Principal Architect
|
||||
verlangen kann, dass Änderungen zurückgenommen
|
||||
werden, und zum anderen auch beim Linux-Projekt mehrere
|
||||
Personen das Recht haben, Änderungen
|
||||
vorzunehmen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Es <emphasis>existiert</emphasis> ein zentraler
|
||||
Aufbewahrungsort (Repository), in dem die kompletten
|
||||
Betriebssystemquellen zu finden sind, einschließlich
|
||||
aller älteren Versionen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD-Projekte pflegen das komplette
|
||||
<quote>Betriebssystem</quote>, nicht nur den Kernel.
|
||||
Dieser Unterschied ist aber marginal, da weder BSD noch
|
||||
Linux ohne Anwendungsprogramme sinnvoll einsetzbar sind.
|
||||
Die unter BSD eingesetzten Applikationen sind oft
|
||||
identisch mit denen von Linux.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Da beim BSD-Projekt nur ein CVS-Quellbaum gepflegt
|
||||
werden muss, ist die Entwicklung übersichtlicher, und es
|
||||
ist möglich, auf jede beliebige Version einer Datei
|
||||
zuzugreifen. CVS ermöglicht auch inkrementelle Updates:
|
||||
Das FreeBSD-Repository wird beispielsweise etwa 100 Mal
|
||||
pro Tag verändert. Viele dieser Änderungen betreffen
|
||||
aber nur einen relativen kleinen Bereich von FreeBSD.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>BSD-Versionen</title>
|
||||
|
||||
<para>FreeBSD, NetBSD und OpenBSD stellen drei verschiedene
|
||||
<quote>Ausgaben</quote> (Releases) zur Verfügung. Analog
|
||||
zu Linux erhalten diese Ausgaben eine Nummer, etwa 1.4.1 oder
|
||||
3.5. Die Versionsnummer erhält zusätzlich ein Suffix,
|
||||
das den Verwendungszweck bezeichnet:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Die Entwicklerversion hat das Suffix
|
||||
<firstterm>CURRENT</firstterm>. FreeBSD weist diesem
|
||||
Suffix eine Nummer zu, z.B. FreeBSD 5.0-CURRENT. NetBSD
|
||||
verwendet ein etwas anderes Bezeichnungsschema und hängt
|
||||
als Suffix nur einen Buchstaben an die Versionsnummer an,
|
||||
der Änderungen an den internen Schnittstellen anzeigt,
|
||||
z.B. NetBSD 1.4.3G. OpenBSD weist der Entwicklerversion
|
||||
keine Nummer zu, sie heißt also einfach
|
||||
<quote>OpenBSD-current</quote>. Neue Entwicklungen werden
|
||||
zuerst in diesen Zweig eingefügt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>In regelmäßigen Intervallen, durchschnittlich
|
||||
zwei- bis viermal im Jahr, wird eine so genannte
|
||||
<firstterm>RELEASE</firstterm>-Version des Systems
|
||||
veröffentlicht, die dann beispielsweise als
|
||||
OpenBSD 2.6-RELEASE oder NetBSD 1.4-RELEASE
|
||||
bezeichnet wird. Diese sind sowohl auf CD-ROM
|
||||
als auch als freier Download von den FTP-Servern der
|
||||
Projekte erhältlich. Diese RELEASE-Versionen sind für
|
||||
Endbenutzer gedacht. NetBSD verwendet sogar eine dritte
|
||||
Ziffer, um gepatchte Releases zu kennzeichnen (etwa NetBSD
|
||||
1.4.2).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sobald Fehler in einer RELEASE-Version gefunden
|
||||
werden, werden diese beseitigt und in den CVS-Baum
|
||||
eingefügt. Beim FreeBSD-Projekt wird die daraus
|
||||
resultierende Version als <firstterm>STABLE</firstterm>
|
||||
bezeichnet, während sie bei NetBSD und OpenBSD weiterhin
|
||||
RELEASE heißt. Kleinere Änderungen, die sich nach einer
|
||||
Testphase im CURRENT-Zweig als stabil erweisen, können
|
||||
ebenfalls in die STABLE-Version einfließen.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para><emphasis>Bei Linux werden hingegen zwei getrennte
|
||||
Code-Bäume gepflegt: Eine stabile Version und eine
|
||||
Entwicklerversion. Stabile Versionen haben an der zweiten
|
||||
Stelle eine gerade Ziffer (2.0, 2.2 oder 2.4).
|
||||
Entwicklerversionen haben an der zweiten Stelle eine ungerade
|
||||
Ziffer (2.1, 2.3 oder 2.5). In jedem Fall folgt der
|
||||
zweiten Ziffer noch eine dritte, welche die Version genauer
|
||||
bezeichnet. Zusätzlich fügt jeder Verkäufer
|
||||
einer Linux-Distribution selbst Programme und Werkzeuge hinzu.
|
||||
Daher ist auch der Name der Distribution nicht unwichtig, da
|
||||
dieser ebenfalls eine Versionsnummer enthält. So kann die
|
||||
vollständige Beschreibung beispielsweise so aussehen:
|
||||
<quote>TurboLinux 6.0 mit
|
||||
Kernel 2.2.14</quote></emphasis></para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Welche BSD-Versionen gibt es überhaupt?</title>
|
||||
|
||||
<para>Im Gegensatz zu den zahlreichen Linux-Distributionen gibt
|
||||
es nur vier große frei verfügbare BSDs. Jedes BSD-Projekt
|
||||
unterhält seinen eigenen Quellcode-Baum und seinen eigenen
|
||||
Kernel. In der Praxis scheinen die Unterschiede im Code der
|
||||
Anwenderprogramme aber geringer zu sein als bei Linux.</para>
|
||||
|
||||
<para>Es ist nicht einfach, die Ziele der einzelnen BSD-Projekte
|
||||
genau zu trennen, da die Unterschiede eher subtiler Natur
|
||||
sind:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>FreeBSD will eine hohe Leistung erreichen, für
|
||||
den Benutzer einfach in der Bedienung sein, und wird von
|
||||
Internetanbietern bevorzugt eingesetzt. Es läuft
|
||||
auf einer Vielzahl von Plattformen, darunter
|
||||
&i386;-Systeme (<quote>PCs</quote>), Systeme mit einem
|
||||
AMD 64-Bit-Prozessor, &ultrasparc;-Systeme,
|
||||
Compaq Alpha-Systeme, sowie Systeme, die der
|
||||
Spezifikation NEC PC-98 entsprechen. Das
|
||||
FreeBSD-Projekt hat die mit Abstand größte
|
||||
Anwenderzahl unter den frei verfügbaren
|
||||
BSD-Systemen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bei NetBSD ist Portabilität das oberste Ziel:
|
||||
<quote>Natürlich läuft NetBSD darauf</quote>.
|
||||
NetBSD kann auf vielen verschiedenen Systemen, von
|
||||
Palmtops bis hin zu großen Servern, installiert werden,
|
||||
und wurde sogar schon im Raumfahrtprogramm der NASA
|
||||
eingesetzt. Besonders für alte Nicht-&intel;-Plattformen
|
||||
ist NetBSD die erste Wahl.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bei OpenBSD stehen die Sicherheit und sauberer Code im
|
||||
Vordergrund. OpenBSD verbindet bei der Weiterentwicklung
|
||||
des Systems Open Source-Konzepte mit rigorosen
|
||||
<foreignphrase>code reviews</foreignphrase>. Dadurch
|
||||
entsteht ein sehr sicheres System, das OpenBSD für
|
||||
sicherheitsbewusste Unternehmen, Banken, Börsen
|
||||
und die US-Regierung zu ersten Wahl macht. Auch OpenBSD
|
||||
läuft, ähnlich wie NetBSD, auf vielen
|
||||
verschiedenen Plattformen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Das Ziel von DragonFlyBSD ist eine hohe Leistung und
|
||||
Skalierbarkeit auf allen Systemen, vom Einzelplatzrechner
|
||||
bis hin zu riesigen Cluster-Systemen. DragonFlyBSD
|
||||
verfolgt dabei langfristig verschiedene technische Ziele,
|
||||
der Schwerpunkt der Entwicklung liegt aber auf der
|
||||
Bereitstellung einer SMP-fähigen Infrastruktur, die leicht
|
||||
zu verstehen, zu warten und weiterzuentwickeln ist.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Es gibt noch zwei weitere BSD &unix; Systeme, die aber
|
||||
nicht Open Source sind: BSD/OS sowie Apples
|
||||
&macos; X:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>BSD/OS war das älteste, von 4.4BSD abstammende
|
||||
Betriebssystem. Es war zwar nicht Open Source,
|
||||
Quellcode-Lizenzen konnten aber relativ günstig
|
||||
erworben werden. Es wies viele Gemeinsamkeiten mit
|
||||
FreeBSD auf. Zwei Jahre, nachdem BSDi von Wind River
|
||||
Systems übernommen worden war, wurde die Entwicklung von
|
||||
BSD/OS als eigenständiges Produkt eingestellt. Zwar wird
|
||||
BSD/OS von Wind River noch unterstützt, eine aktive
|
||||
Weiterentwicklung erfolgt allerdings nur noch für das
|
||||
Embedded-Betriebssystem VxWorks.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Bei <link xlink:href="http://www.apple.com/macosx/server/">
|
||||
&macos; X</link> handelt es sich um die neueste
|
||||
Version des Betriebssystems der &mac;-Linie von &apple;.
|
||||
<link xlink:href="http://developer.apple.com/darwin/">Darwin</link>,
|
||||
der BSD-Kern des Betriebssystems ist als voll
|
||||
funktionsfähiges Open Source-Betriebssystem für
|
||||
x86- sowie PPC-Computer erhältlich. Die grafische
|
||||
Oberfläche Aqua/Quartz und andere proprietäre
|
||||
Anwendungen von &macos; X sind aber weiterhin
|
||||
closed-source Software. Einige Darwin-Entwickler sind
|
||||
auch FreeBSD-Committer, was auch für den umgekehrten
|
||||
Fall gilt.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Worin unterscheidet sich die BSD-Lizenz von der GNU
|
||||
Public License?</title>
|
||||
|
||||
<para>Linux steht unter der <link xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU General Public
|
||||
License</link> (GPL), die entworfen wurde, um closed-source
|
||||
Software zu verhindern. Jede Software, die von einer Software
|
||||
abgeleitet wurde, die unter der GPL steht, muss wieder unter
|
||||
der GPL veröffentlicht werden. Auf Verlangen ist auch
|
||||
der Quellcode zur Verfügung zu stellen. Die <link xlink:href="http://www.opensource.org/licenses/bsd-license.html">
|
||||
BSD-Lizenz</link> ist dagegen weniger restriktiv: Der
|
||||
Quellcode muss nicht zur Verfügung gestellt werden, es
|
||||
können also auch Binärdateien verbreitet werden.
|
||||
Dieser Umstand ist besonders für Anwendungen im
|
||||
Embedded-Bereich interessant.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Was sollte ich sonst noch wissen?</title>
|
||||
|
||||
<para>Da für BSD weniger Anwendungsprogramme verfügbar
|
||||
waren als für Linux, wurde ein Softwarepaket entwickelt, das
|
||||
die Ausführung von Linuxprogrammen unter BSD
|
||||
ermöglicht. Dieses Paket enthält zwei Dinge:
|
||||
Kernelmodifikationen zur korrekten Ausführung von
|
||||
Linux-Systemaufrufen sowie Linuxkompatibilitätsdateien,
|
||||
beispielsweise die C-Bibliothek von Linux. Unterschiede in
|
||||
der Ausführungsgeschwindigkeit von Linuxanwendungen auf einem
|
||||
Linuxrechner und einem vergleichbaren mit BSD ausgestatteten
|
||||
Rechner sind in der Praxis so gut wie nicht
|
||||
feststellbar.</para>
|
||||
|
||||
<para>Die <quote>Alles-aus-einer-Hand</quote>-Natur von BSD
|
||||
hat den Vorteil, dass Upgrades im Vergleich zu Linux häufig
|
||||
leichter durchzuführen sind. BSD aktualisiert
|
||||
Bibliotheken, indem es Kompatibilitätsmodule für
|
||||
ältere Versionen der Bibliotheken bereitstellt. Daher ist
|
||||
es möglich, auch mehrere Jahre alte Binärdateien ohne
|
||||
Probleme auszuführen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Was soll ich nun benutzen, BSD oder Linux?</title>
|
||||
|
||||
<para>Was heißt das nun alles für die Praxis? Wer
|
||||
sollte BSD, wer Linux benutzen?</para>
|
||||
|
||||
<para>Diese Frage ist nicht einfach zu beantworten. Trotzdem
|
||||
folgen nun einige Empfehlungen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><quote>Wenn es nicht kaputt ist, fass' es nicht
|
||||
an!</quote>: Wenn Sie schon ein frei verfügbares
|
||||
Betriebssystem verwenden und damit glücklich sind,
|
||||
gibt es eigentlich keinen vernünftigen Grund für
|
||||
einen Wechsel.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD-Systeme, inbesondere FreeBSD, können eine
|
||||
weitaus bessere Leistung als Linux-Systeme aufweisen.
|
||||
Diese Aussage ist aber nicht allgemein gültig. In den
|
||||
meisten Fällen sind die Leistungsunterschiede aber gering
|
||||
oder gar nicht festzustellen. In bestimmten Fällen kann
|
||||
auch Linux eine bessere Leistung aufweisen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>In der Regel haben BSD-Systeme den Ruf,
|
||||
zuverlässiger zu sein. Diese Aussage beruht auf der
|
||||
reiferen Codebasis.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die BSD-Projekte haben den Ruf, über qualitativ
|
||||
und quantitativ bessere Dokumentation zu verfügen.
|
||||
Die verschiedenen Dokumentationsprojekte haben das Ziel,
|
||||
eine ständig aktualisierte und in zahlreiche Sprachen
|
||||
übersetzte Dokumentation zu erstellen, die alle
|
||||
Aspekte des System umfasst.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die BSD-Lizenz kann attraktiver sein als
|
||||
die GPL.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD-Systeme können die meisten Linuxprogramme
|
||||
ausführen, während Linux keine BSD-Programme
|
||||
ausführen kann. Viele BSD-Systeme können sogar
|
||||
Programme von anderen &unix; ähnlichen Systemen
|
||||
ausführen. Daraus könnte man ableiten, dass die
|
||||
Migration auf ein BSD-System einfacher ist, als es bei
|
||||
Linux der Fall wäre.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Wo gibt es Support, Serviceleistungen und Schulungen
|
||||
für BSD?</title>
|
||||
|
||||
<para>BSDi / <link xlink:href="http://www.freebsdmall.com">FreeBSD
|
||||
Mall, Inc.</link> bieten seit fast 10 Jahren
|
||||
Support-Verträge für FreeBSD an.</para>
|
||||
|
||||
<para>Darüber hinaus finden sich auf den folgenden Seiten der
|
||||
einzelnen Projekte Firmen, die Supportleistungen anbieten:
|
||||
<link xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>,
|
||||
<link xlink:href="http://www.netbsd.org/gallery/consultants.html">NetBSD</link>,
|
||||
und <link xlink:href="http://www.openbsd.org/support.html">OpenBSD</link>.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# $FreeBSD$
|
||||
#
|
||||
# Article: FreeBSD Update Server
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
WITH_ARTICLE_TOC?=YES
|
||||
|
||||
EXTRAS= init.txt
|
||||
EXTRAS+= diff.txt
|
||||
|
||||
SRCS= article.xml
|
||||
SRCS+= ${EXTRAS}
|
||||
|
||||
IMAGES_LIB= callouts/1.png
|
||||
IMAGES_LIB+= callouts/2.png
|
||||
IMAGES_LIB+= callouts/3.png
|
||||
IMAGES_LIB+= callouts/4.png
|
||||
IMAGES_LIB+= callouts/5.png
|
||||
|
||||
afterinstall:
|
||||
.for entry in ${EXTRAS}
|
||||
${INSTALL_DOCS} ${.CURDIR}/${entry} ${DESTDIR}
|
||||
.endfor
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,838 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
||||
<!ENTITY fbus.ap "<application xmlns='http://docbook.org/ns/docbook'>FreeBSD Update Server</application>">
|
||||
]>
|
||||
<!-- The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
basiert auf: r51348
|
||||
-->
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>Einen eigenen &os; Update Server bauen</title>
|
||||
|
||||
|
||||
<author><personname><firstname>Jason</firstname><surname>Helfman</surname></personname><affiliation>
|
||||
<address>&a.jgh.email;</address>
|
||||
</affiliation></author>
|
||||
|
||||
<copyright>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<year>2011</year>
|
||||
<year>2013</year>
|
||||
<holder role="mailto:jgh@FreeBSD.org">Jason Helfman</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.general;
|
||||
&tm-attrib.intel;
|
||||
&tm-attrib.amd;
|
||||
</legalnotice>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>Dieser Artikel beschreibt den Bau eines internen &fbus.ap;.
|
||||
Die <link xlink:href="https://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/">freebsd-update-server</link>
|
||||
Software wurde von &a.cperciva.email;, emeritierter Security Officer
|
||||
von &os;, geschrieben. Benutzer, die es als vorteilhaft ansehen
|
||||
ihre Systeme über einen offiziellen Update-Server zu
|
||||
aktualisieren, können mit Hilfe eines selbst erstellten
|
||||
&fbus.ap; die Funktionalität über manuell optimierte &os;
|
||||
Releases oder über Bereitstellung eines lokalen Mirror, welcher
|
||||
schnellere Updates ermöglicht, erweitern.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<para><emphasis>Übersetzt von &a.bhd.email;</emphasis>.</para>
|
||||
|
||||
<sect1 xml:id="acknowledgments">
|
||||
<title>Danksagung</title>
|
||||
<para>Dieser Artikel wurde anschließend im <link xlink:href="http://bsdmag.org/magazine/1021-bsd-as-a-desktop">BSD
|
||||
Magazine</link> gedruckt.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="introduction">
|
||||
<title>Einführung</title>
|
||||
|
||||
<para>Erfahrene Benutzer oder Administratoren sind häufig für
|
||||
etliche Maschinen oder Umgebungen verantwortlich. Sie verstehen
|
||||
die schwierigen Anforderungen und Herausforderungen der
|
||||
Aufrechterhaltung einer solchen Infrastruktur. Ein &fbus.ap;
|
||||
macht es einfacher, Sicherheits- und Software-Korrekturen für
|
||||
ausgewählte Test-Maschinen bereitzustellen, bevor diese dann auf
|
||||
den Produktionssystemen ausgerollt werden. Es bedeutet auch,
|
||||
dass eine Reihe von Systemen über das lokale Netzwerk, anstatt
|
||||
über eine langsame Internet-Verbindung, aktualisiert werden
|
||||
können. Dieser Artikel beschreibt die Vorgehensweise zum
|
||||
Erstellen eines eigenen &fbus.ap;.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="prerequisites">
|
||||
<title>Voraussetzungen</title>
|
||||
|
||||
<para>Für den Bau eines internen &fbus.ap; sollten einige
|
||||
Anforderungen erfüllt werden.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Ein laufendes &os; System.</para>
|
||||
|
||||
<note>
|
||||
<para>Als Minimum, muss das zu verteilende Ziel-Release auf
|
||||
einer gleichen, oder höheren &os; Version gebaut
|
||||
werden.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ein Benutzerkonto mit mindestens 4 GB freiem
|
||||
Speicherplatz. Dies erlaubt die Erstellung der Updates für
|
||||
7.1 und 7.2. Der genaue Platzbedarf kann sich aber von
|
||||
Version zu Version ändern.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ein &man.ssh.1; Konto auf einem entfernten System, um
|
||||
die später zu verteilenden Updates hochzuladen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Einen Webserver, wie <link xlink:href="&url.books.handbook;/network-apache.html">Apache</link>,
|
||||
wobei über die Hälfte des Platzes für den Bau benötigt wird.
|
||||
Als Beispiel benötigt der Bau von 7.1 und 7.2 insgesamt
|
||||
4 GB. Der Speicherplatz, den der Webserver für die
|
||||
Verteilung dieser Updates benötigt, würde 2.6 GB
|
||||
betragen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Grundlegende Kenntnisse im Shell Skripting
|
||||
mit der Bourne Shell, &man.sh.1;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="Configuration">
|
||||
<title>Konfiguration: Installation & Setup</title>
|
||||
|
||||
<para>Laden Sie die <link xlink:href="https://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/">
|
||||
freebsd-update-server</link> Software durch die Installation
|
||||
von <package>devel/subversion</package> sowie
|
||||
<package>security/ca_root_nss</package>, und
|
||||
starten Sie:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn co https://svn.freebsd.org/base/user/cperciva/freebsd-update-build freebsd-update-server</userinput></screen>
|
||||
|
||||
<para>Passen Sie <filename>scripts/build.conf</filename> an Ihre
|
||||
Bedürfnisse an. Diese Datei wird bei jedem Bau mit
|
||||
einbezogen.</para>
|
||||
|
||||
<para>Hier ist die Standardeinstellung für
|
||||
<filename>build.conf</filename>, welche Sie für Ihre Umgebung
|
||||
anpassen sollten.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
|
||||
# Main configuration file for FreeBSD Update builds. The
|
||||
# release-specific configuration data is lower down in
|
||||
# the scripts tree.
|
||||
|
||||
# Location from which to fetch releases
|
||||
export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases<co xml:id="ftp-id"/>
|
||||
|
||||
# Host platform
|
||||
export HOSTPLATFORM=`uname -m`
|
||||
|
||||
# Host name to use inside jails
|
||||
export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net<co xml:id="buildhost-id"/>
|
||||
|
||||
# Location of SSH key
|
||||
export SSHKEY=/root/.ssh/id_dsa<co xml:id="sshkey-id"/>
|
||||
|
||||
# SSH account into which files are uploaded
|
||||
MASTERACCT=builder@wadham.daemonology.net<co xml:id="mstacct-id"/>
|
||||
|
||||
# Directory into which files are uploaded
|
||||
MASTERDIR=update-master.freebsd.org<co xml:id="mstdir-id"/></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Parameter, die zu berücksichtigen sind:</para>
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="ftp-id">
|
||||
<para>Dies ist der Ort, von dem die ISO Abbilder (über die
|
||||
<function>fetchiso()</function> in
|
||||
<filename>scripts/build.subr</filename>) heruntergeladen
|
||||
werden. Der Ort ist nicht auf FTP URIs beschränkt. Jedes
|
||||
URI-Schema, welches von &man.fetch.1; unterstützt wird,
|
||||
sollte hier gut funktionieren.</para>
|
||||
|
||||
<para>Anpassungen am <function>fetchiso()</function> Code
|
||||
können Sie vornehmen, indem Sie das Standardskript
|
||||
<filename>build.subr</filename> in den Release- und
|
||||
Architektur-spezifischen Bereich in
|
||||
<filename>scripts/RELEASE/ARCHITECTURE/build.subr</filename>
|
||||
kopieren und dort lokale Änderungen vornehmen.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="buildhost-id">
|
||||
<para>Der Name des Build-Hosts. Auf aktualisierten Systemen
|
||||
können Sie diese Information wie folgt ausgeben:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>uname -v</userinput></screen>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="sshkey-id">
|
||||
<para>Der <application>SSH</application> Schlüssel für das
|
||||
Hochladen der Dateien auf den Update Server. Ein
|
||||
Schlüsselpaar kann durch die Eingabe von
|
||||
<command>ssh-keygen -t dsa</command> erstellt werden.
|
||||
Dieser Parameter ist jedoch optional; Standard Password
|
||||
Authentifizierung wird als Fallback-Methode benutzt wenn
|
||||
<literal>SSHKEY</literal> nicht definiert ist.</para>
|
||||
|
||||
<para>Die &man.ssh-keygen.1; Manualpage enthält detaillierte
|
||||
Informationen zu <application>SSH</application> und die
|
||||
entsprechenden Schritte zur Erstellung und Verwendung von
|
||||
Schlüsseln.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="mstacct-id">
|
||||
<para>Benutzerkonto zum Hochladen von Dateien auf den
|
||||
Update-Server.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="mstdir-id">
|
||||
<para>Verzeichnis auf dem Update-Server, in welches die
|
||||
Dateien hochgeladen werden.</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
|
||||
<para>Die Standard <filename>build.conf</filename>, die mit den
|
||||
<application>freebsd-update-server</application> Quellen
|
||||
ausgeliefert wird ist geeignet um &arch.i386; Releases von &os;
|
||||
zu bauen. Als Beispiel für den Aufbau eines Update-Servers für
|
||||
andere Architekturen beschreiben die folgenden Schritte die
|
||||
Konfiguration für &arch.amd64;:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Erstellen Sie eine Bau-Umgebung für &arch.amd64;:</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.user; <userinput>mkdir -p /usr/local/freebsd-update-server/scripts/7.2-RELEASE/amd64</userinput></screen>
|
||||
</informalexample>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Installieren Sie eine <filename>build.conf</filename> in
|
||||
das neu erstellte Verzeichnis. Die Konfigurationsoptionen
|
||||
für &os; 7.2-RELEASE auf &arch.amd64; sollten ähnlich wie
|
||||
die folgenden sein:</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting># SHA256 hash of RELEASE disc1.iso image.
|
||||
export RELH=1ea1f6f652d7c5f5eab7ef9f8edbed50cb664b08ed761850f95f48e86cc71ef5<co xml:id="sha256-id"/>
|
||||
|
||||
# Components of the world, source, and kernels
|
||||
export WORLDPARTS="base catpages dict doc games info manpages proflibs lib32"
|
||||
export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5 \
|
||||
lib libexec release rescue sbin secure share sys tools \
|
||||
ubin usbin cddl"
|
||||
export KERNELPARTS="generic"
|
||||
|
||||
# EOL date
|
||||
export EOL=1275289200<co xml:id="eol-id"/></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="sha256-id">
|
||||
<para>Der &man.sha256.1; Fingerabdruck für die gewünschte
|
||||
Version wird innerhalb der jeweiligen <link xlink:href="&url.base;/releases/">Release-Ankündigung</link>
|
||||
veröffentlicht.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="eol-id">
|
||||
<para>Um die "End of Life" Nummer für die
|
||||
<filename>build.conf</filename>zu generieren, beziehen Sie
|
||||
sich bitte auf "Estimated EOL" auf der <link xlink:href="&url.base;/security/security.html">&os; Security
|
||||
Webseite</link>. Der Wert für <literal>EOL</literal>
|
||||
kann aus dem Datum, das auf der Webseite veröffentlicht
|
||||
ist, abgeleitet werden. Benutzen Sie dafür das Werkzeug
|
||||
&man.date.1;. Dazu ein Beispiel:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>date -j -f '%Y%m%d-%H%M%S' '20090401-000000' '+%s'</userinput></screen>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="build">
|
||||
<title>Den Update Code bauen</title>
|
||||
|
||||
<para>Der erste Schritt ist das Ausführen von
|
||||
<filename>scripts/make.sh</filename>. Dieses Skript baut einige
|
||||
Binärdateien, erstellt Verzeichnisse und einen RSA
|
||||
Signaturschlüssel für die Genehmigung des Bau. In diesem
|
||||
Schritt müssen Sie auch eine Passphrase für die Erstellung des
|
||||
Signaturschlüssels angeben.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh scripts/make.sh</userinput>
|
||||
cc -O2 -fno-strict-aliasing -pipe findstamps.c -o findstamps
|
||||
findstamps.c: In function 'usage':
|
||||
findstamps.c:45: warning: incompatible implicit declaration of built-in function 'exit'
|
||||
cc -O2 -fno-strict-aliasing -pipe unstamp.c -o unstamp
|
||||
install findstamps ../bin
|
||||
install unstamp ../bin
|
||||
rm -f findstamps unstamp
|
||||
Generating RSA private key, 4096 bit long modulus
|
||||
................................................................................++
|
||||
...................++
|
||||
e is 65537 (0x10001)
|
||||
|
||||
Public key fingerprint:
|
||||
27ef53e48dc869eea6c3136091cc6ab8589f967559824779e855d58a2294de9e
|
||||
|
||||
Encrypting signing key for root
|
||||
enter aes-256-cbc encryption password:
|
||||
Verifying - enter aes-256-cbc encryption password:</screen>
|
||||
|
||||
<note>
|
||||
<para>Notieren Sie sich den Fingerabdruck des erzeugten
|
||||
Schlüssels. Dieser Wert wird in
|
||||
<filename>/etc/freebsd-update.conf</filename> für die binären
|
||||
Updates benötigt.</para>
|
||||
</note>
|
||||
|
||||
<para>An dieser Stelle sind wir bereit, den Bauprozess zu starten.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>cd /usr/local/freebsd-update-server</userinput>
|
||||
&prompt.root; <userinput>sh scripts/init.sh <replaceable>amd64 7.2-RELEASE</replaceable></userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<para>Hier folgt ein Beispiel für einen
|
||||
<emphasis>ersten</emphasis> Bauprozess.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh scripts/init.sh amd64 7.2-RELEASE</userinput>
|
||||
Mon Aug 24 16:04:36 PDT 2009 Starting fetch for FreeBSD/amd64 7.2-RELEASE
|
||||
/usr/local/freebsd-update-server/work/7.2-RELE100% of 588 MB 359 kBps 00m00s
|
||||
Mon Aug 24 16:32:38 PDT 2009 Verifying disc1 hash for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:32:44 PDT 2009 Extracting components for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:34:05 PDT 2009 Constructing world+src image for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:35:57 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 23:36:24 UTC 2009 Building world for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:31:29 UTC 2009 Distributing world for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:32:36 UTC 2009 Building and distributing kernels for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:44:44 UTC 2009 Constructing world components for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:44:56 UTC 2009 Distributing source for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:46:18 PDT 2009 Moving components into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:46:33 PDT 2009 Identifying extra documentation for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:47:13 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:47:18 PDT 2009 Indexing release for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:50:44 PDT 2009 Indexing world0 for FreeBSD/amd64 7.2-RELEASE
|
||||
|
||||
Files built but not released:
|
||||
Files released but not built:
|
||||
Files which differ by more than contents:
|
||||
Files which differ between release and build:
|
||||
kernel|generic|/GENERIC/hptrr.ko
|
||||
kernel|generic|/GENERIC/kernel
|
||||
src|sys|/sys/conf/newvers.sh
|
||||
world|base|/boot/loader
|
||||
world|base|/boot/pxeboot
|
||||
world|base|/etc/mail/freebsd.cf
|
||||
world|base|/etc/mail/freebsd.submit.cf
|
||||
world|base|/etc/mail/sendmail.cf
|
||||
world|base|/etc/mail/submit.cf
|
||||
world|base|/lib/libcrypto.so.5
|
||||
world|base|/usr/bin/ntpq
|
||||
world|base|/usr/lib/libalias.a
|
||||
world|base|/usr/lib/libalias_cuseeme.a
|
||||
world|base|/usr/lib/libalias_dummy.a
|
||||
world|base|/usr/lib/libalias_ftp.a
|
||||
...</screen>
|
||||
|
||||
<para>Anschließend wird das Basissystem mit den dazugehörigen
|
||||
Patches erneut gebaut. Eine detaillierte Erklärung dazu finden
|
||||
Sie in <filename>scripts/build.subr</filename>.</para>
|
||||
|
||||
<warning>
|
||||
<para>Während der zweiten Bauphase wird der Network Time
|
||||
Protocol Dienst, &man.ntpd.8;, ausgeschaltet. Per
|
||||
&a.cperciva.email;, emeritierter Security Officer von &os;, "Der
|
||||
<link xlink:href="https://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/">freebsd-update-server</link>
|
||||
Code muss Zeitstempel, welche in Dateien gespeichert sind,
|
||||
identifizieren, sodass festgestellt werden kann, welche
|
||||
Dateien aktualisiert werden müssen. Dies geschieht, indem
|
||||
zwei Builds erstellt werden die 400 Tage auseinander liegen
|
||||
und anschließend die Ergebnisse verglichen werden."</para>
|
||||
</warning>
|
||||
|
||||
<screen>Mon Aug 24 17:54:07 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 00:54:34 UTC 2010 Building world for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 01:49:42 UTC 2010 Distributing world for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 01:50:50 UTC 2010 Building and distributing kernels for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 02:02:56 UTC 2010 Constructing world components for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 02:03:08 UTC 2010 Distributing source for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Sep 28 19:04:31 PDT 2010 Moving components into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:04:46 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:04:51 PDT 2009 Indexing world1 for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:08:04 PDT 2009 Locating build stamps for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:10:19 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:10:19 PDT 2009 Preparing to copy files into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:10:20 PDT 2009 Copying data files into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 12:16:57 PDT 2009 Copying metadata files into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 12:16:59 PDT 2009 Constructing metadata index and tag for FreeBSD/amd64 7.2-RELEASE
|
||||
|
||||
Files found which include build stamps:
|
||||
kernel|generic|/GENERIC/hptrr.ko
|
||||
kernel|generic|/GENERIC/kernel
|
||||
world|base|/boot/loader
|
||||
world|base|/boot/pxeboot
|
||||
world|base|/etc/mail/freebsd.cf
|
||||
world|base|/etc/mail/freebsd.submit.cf
|
||||
world|base|/etc/mail/sendmail.cf
|
||||
world|base|/etc/mail/submit.cf
|
||||
world|base|/lib/libcrypto.so.5
|
||||
world|base|/usr/bin/ntpq
|
||||
world|base|/usr/include/osreldate.h
|
||||
world|base|/usr/lib/libalias.a
|
||||
world|base|/usr/lib/libalias_cuseeme.a
|
||||
world|base|/usr/lib/libalias_dummy.a
|
||||
world|base|/usr/lib/libalias_ftp.a
|
||||
...</screen>
|
||||
|
||||
<para>Schlussendlich wird der Bauprozess fertiggestellt.</para>
|
||||
|
||||
<screen>Values of build stamps, excluding library archive headers:
|
||||
v1.2 (Aug 25 2009 00:40:36)
|
||||
v1.2 (Aug 25 2009 00:38:22)
|
||||
@(#)FreeBSD 7.2-RELEASE #0: Tue Aug 25 00:38:29 UTC 2009
|
||||
FreeBSD 7.2-RELEASE #0: Tue Aug 25 00:38:29 UTC 2009
|
||||
root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC
|
||||
7.2-RELEASE
|
||||
Mon Aug 24 23:55:25 UTC 2009
|
||||
Mon Aug 24 23:55:25 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
Mon Aug 24 23:46:47 UTC 2009
|
||||
ntpq 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)
|
||||
* Copyright (c) 1992-2009 The FreeBSD Project.
|
||||
Mon Aug 24 23:46:47 UTC 2009
|
||||
Mon Aug 24 23:55:40 UTC 2009
|
||||
Aug 25 2009
|
||||
ntpd 4.2.4p5-a Mon Aug 24 23:55:52 UTC 2009 (1)
|
||||
ntpdate 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)
|
||||
ntpdc 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)
|
||||
Tue Aug 25 00:21:21 UTC 2009
|
||||
Tue Aug 25 00:21:21 UTC 2009
|
||||
Tue Aug 25 00:21:21 UTC 2009
|
||||
Mon Aug 24 23:46:47 UTC 2009
|
||||
|
||||
FreeBSD/amd64 7.2-RELEASE initialization build complete. Please
|
||||
review the list of build stamps printed above to confirm that
|
||||
they look sensible, then run
|
||||
# sh -e approve.sh amd64 7.2-RELEASE
|
||||
to sign the release.</screen>
|
||||
|
||||
<para>Genehmigen Sie den Bau, wenn alles korrekt ist. Weitere
|
||||
Informationen zur korrekten Bestimmung finden Sie in der
|
||||
Quelldatei namens <filename>USAGE</filename>. Führen Sie, wie
|
||||
angegeben <filename>scripts/approve.sh</filename> aus. Dieser
|
||||
Schritt unterschreibt das Release und verschiebt die Komponenten
|
||||
an einen Sammelpunkt, wo sie für den Upload verwendet werden
|
||||
können.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>cd /usr/local/freebsd-update-server</userinput>
|
||||
&prompt.root; <userinput>sh scripts/mountkey.sh</userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh -e scripts/approve.sh amd64 7.2-RELEASE</userinput>
|
||||
Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Aug 26 12:50:06 PDT 2009 Copying files to patch source directories for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Aug 26 12:50:06 PDT 2009 Copying files to upload staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Aug 26 12:50:07 PDT 2009 Updating databases for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE</screen>
|
||||
|
||||
<para>Nachdem der Genehmigungsprozess abgeschlossen ist, kann der
|
||||
Upload gestartet werden.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>cd /usr/local/freebsd-update-server</userinput>
|
||||
&prompt.root; <userinput>sh scripts/upload.sh <replaceable>amd64 7.2-RELEASE</replaceable></userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<note>
|
||||
<para>Wenn der Update-Code erneut hochgeladen werden muss, kann
|
||||
dies durch die Änderung des öffentlichen
|
||||
Distributionsverzeichnisses für das Ziel-Release und der
|
||||
Aktualisierung der Attribute für die
|
||||
<emphasis>hochgeladene</emphasis> Datei geschehen.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>cd /usr/local/freebsd-update-server/pub/<replaceable>7.2-RELEASE/amd64</replaceable></userinput>
|
||||
&prompt.root; <userinput>touch -t <replaceable>200801010101.01</replaceable> uploaded</userinput></screen>
|
||||
</informalexample>
|
||||
</note>
|
||||
|
||||
<!-- If freebsd-update works with other http servers too, we should
|
||||
avoid making the instructions Apache-specific here. -->
|
||||
|
||||
<!-- there are specific web instructions in the uploaded code that pertain to Apache. I believe it is worded fine here, now, and if others choose to use another web server, that is their choice to figure out -->
|
||||
<para>Um die Updates zu verteilen, müssen die hochgeladenen
|
||||
Dateien im Document Root des Webservers liegen. Die genaue
|
||||
Konfiguration hängt von dem verwendeten Webserver ab. Für den
|
||||
<application>Apache</application> Webserver, beziehen Sie sich
|
||||
bitte auf das Kapitel <link xlink:href="&url.books.handbook;/network-apache.html">Konfiguration
|
||||
des Apache Servers</link> im Handbuch.</para>
|
||||
|
||||
<!-- This note seems either out of place. I find it hard to read and it
|
||||
is a bit difficult to understand why it is related to the rest of
|
||||
this section. It looks like something that would fit nicely in an
|
||||
introductory section about the way a freebsd-update server works. -->
|
||||
<!-- Agreed, it does not suite very well here. But it is now included
|
||||
above. I think it can be removed now. gabor -->
|
||||
<!-- Taken out until we decide what to do with it -->
|
||||
|
||||
<!-- Agreed. However, I believe the placement of this works fine as it is.
|
||||
<note>
|
||||
<para>Updates for the current release of the &os; system you are
|
||||
updating, and what you want to upgrade <emphasis>to</emphasis> need
|
||||
to be built in order for &os; Update Server to work properly. This
|
||||
is necessary for merging of files between releases. For example, if
|
||||
you are updating a system from &os; 7.1 to &os; 7.2, you will need
|
||||
to have update code built for &os; 7.1-RELEASE and
|
||||
&os; 7.2-RELEASE.</para>
|
||||
</note> -->
|
||||
|
||||
<!-- What is a 'KeyPrint'? -->
|
||||
<para>Aktualisieren Sie <literal>KeyPrint</literal> und
|
||||
<literal>ServerName</literal> in der
|
||||
<filename>/etc/freebsd-update.conf</filename> des Clients und
|
||||
führen Sie das Update, wie im Kapitel <link xlink:href="&url.books.handbook;/updating-upgrading-freebsdupdate.html">&os;
|
||||
Update</link> des Handbuchs beschrieben, aus.</para>
|
||||
<!-- One sentence, two instances of 'in'. We can probably reword this
|
||||
part to avoid repetition. -->
|
||||
<!-- What about "place client's new keyprint and servername values to
|
||||
freebsd-update.conf, ..."? gabor -->
|
||||
|
||||
<!-- Sorry folks, but I disagree here. I believe it is worded fine. If anything, drop everything after "perform" and change "updates" to "FreeBSD Updates" and link that to the handbook -->
|
||||
|
||||
<important>
|
||||
<para>Damit &fbus.ap; ordnungsgemäß funktioniert, muss sowohl
|
||||
das <emphasis>current</emphasis> Release als auch das Release
|
||||
<emphasis>auf welches Sie aktualisieren wollen</emphasis> neu
|
||||
gebaut werden. Dies ist notwendig, um die Unterschiede von
|
||||
Dateien zwischen den beiden Releases bestimmen zu können. Zum
|
||||
Beispiel beim Upgrade eines &os; Systems von 7.1-RELEASE auf
|
||||
7.2-RELEASE, müssen für beide Versionen Updates gebaut und auf
|
||||
den Webserver hochgeladen werden.</para>
|
||||
</important>
|
||||
|
||||
<para>Als Referenz wird der gesamte Verlauf von <link xlink:href="init.txt"><filename>init.sh</filename></link>
|
||||
beigefügt.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="patch">
|
||||
<title>Eine Fehlerkorrektur erstellen</title>
|
||||
|
||||
<para>Jedes Mal, wenn ein <link xlink:href="&url.base;/security/advisories.html">Sicherheits-Hinweis</link>
|
||||
oder ein <link xlink:href="&url.base;/security/notices.html">Fehler-Hinweis</link>
|
||||
angekündigt wird, kann eine Fehlerkorrektur gebaut
|
||||
werden.</para>
|
||||
|
||||
<para>Für dieses Beispiel wird 7.1-RELEASE benutzt.</para>
|
||||
|
||||
<para>Für den Bau eines anderen Release werden ein paar Annahmen
|
||||
getroffen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Richten Sie die korrekte Verzeichnisstruktur für den
|
||||
ersten Bau ein.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Führen Sie einen ersten Bau für 7.1-RELEASE aus.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Erstellen Sie das Korrekturverzeichnis des jeweiligen
|
||||
Releases unter <filename>/usr/local/freebsd-update-server/patches/</filename>.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.user; <userinput>mkdir -p /usr/local/freebsd-update-server/patches/7.1-RELEASE/</userinput>
|
||||
&prompt.user; <userinput>cd /usr/local/freebsd-update-server/patches/7.1-RELEASE</userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<para>Als Beispiel nehmen Sie die Korrektur für &man.named.8;.
|
||||
Lesen Sie den Hinweis und laden Sie die erforderliche Datei von
|
||||
<link xlink:href="&url.base;/security/advisories.html">&os;
|
||||
Sicherheits-Hinweise</link> herunter. Weitere Informationen
|
||||
zur Interpretation der Sicherheitshinweise finden Sie im <link xlink:href="&url.books.handbook;/security-advisories.html">&os;
|
||||
Handbuch</link>.</para>
|
||||
|
||||
<para>In der <link xlink:href="https://security.freebsd.org/advisories/FreeBSD-SA-09:12.bind.asc">Sicherheits
|
||||
Anweisung</link>, nennt sich dieser Hinweis
|
||||
<literal>SA-09:12.bind</literal>. Nach dem Herunterladen der
|
||||
Datei, ist es erforderlich, die Datei auf einen geeigneten
|
||||
Patch-Level umzubenennen. Es steht Ihnen frei den Namen frei zu
|
||||
wählen, es wird jedoch nahegelegt, diesen im Einklang mit dem
|
||||
offiziellen &os; Patch-Level zu halten. Für diesen Bau folgen
|
||||
wir der derzeit gängigen Praxis von &os; und benennen sie
|
||||
<literal>p7</literal>. Benennen Sie die Datei um:</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.user; <userinput>cd /usr/local/freebsd-update-server/patches/7.1-RELEASE/; mv bind.patch 7-SA-09:12.bind </userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<note>
|
||||
<para>Wenn ein Patch-Level gebaut wird, wird davon ausgegangen,
|
||||
dass die bisherigen Korrekturen bereits vorhanden sind. Wenn
|
||||
der Bau läuft, werden alle Korrekturen aus dem
|
||||
Patchverzeichnis mit gebaut.</para>
|
||||
|
||||
<para>Es können auch selbsterstellte Korrekturen zum Bau
|
||||
hinzugefügt werden. Benutzen Sie die Zahl Null, oder jede
|
||||
andere Zahl.</para>
|
||||
</note>
|
||||
|
||||
<warning>
|
||||
<para>Es liegt in der Verantwortung des Administrators des
|
||||
&fbus.ap; geeignete Maßnahmen zu treffen, um die Authentizität
|
||||
jeder Fehlerkorrektur zu überprüfen.</para>
|
||||
</warning>
|
||||
|
||||
<para>An dieser Stelle sind wir bereit, einen
|
||||
<emphasis>Diff</emphasis> zu bauen. Die Software prüft
|
||||
zunächst, ob <filename>scripts/init.sh</filename> für das
|
||||
jeweilige Release gelaufen ist, bevor mit dem Bau des Diff
|
||||
begonnen wird.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>cd /usr/local/freebsd-update-server</userinput>
|
||||
&prompt.root; <userinput>sh scripts/diff.sh <replaceable>amd64 7.1-RELEASE</replaceable> 7</userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<para>Es folgt ein Beispiel für einen <emphasis>Diff</emphasis>
|
||||
Bauprozess.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh -e scripts/diff.sh amd64 7.1-RELEASE 7</userinput>
|
||||
Wed Aug 26 10:09:59 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 17:10:25 UTC 2009 Building world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:05:11 UTC 2009 Distributing world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:06:16 UTC 2009 Building and distributing kernels for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:17:50 UTC 2009 Constructing world components for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:18:02 UTC 2009 Distributing source for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:19:23 PDT 2009 Moving components into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:19:37 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:19:42 PDT 2009 Indexing world0 for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:23:02 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 18:23:29 UTC 2010 Building world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:18:15 UTC 2010 Distributing world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:19:18 UTC 2010 Building and distributing kernels for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:30:52 UTC 2010 Constructing world components for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:31:03 UTC 2010 Distributing source for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 12:32:25 PDT 2010 Moving components into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:32:39 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:32:43 PDT 2009 Indexing world1 for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:35:54 PDT 2009 Locating build stamps for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:36:58 PDT 2009 Reverting changes due to build stamps for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:37:14 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:37:14 PDT 2009 Preparing to copy files into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:37:15 PDT 2009 Copying data files into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:43:23 PDT 2009 Copying metadata files into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:43:25 PDT 2009 Constructing metadata index and tag for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
...
|
||||
Files found which include build stamps:
|
||||
kernel|generic|/GENERIC/hptrr.ko
|
||||
kernel|generic|/GENERIC/kernel
|
||||
world|base|/boot/loader
|
||||
world|base|/boot/pxeboot
|
||||
world|base|/etc/mail/freebsd.cf
|
||||
world|base|/etc/mail/freebsd.submit.cf
|
||||
world|base|/etc/mail/sendmail.cf
|
||||
world|base|/etc/mail/submit.cf
|
||||
world|base|/lib/libcrypto.so.5
|
||||
world|base|/usr/bin/ntpq
|
||||
world|base|/usr/include/osreldate.h
|
||||
world|base|/usr/lib/libalias.a
|
||||
world|base|/usr/lib/libalias_cuseeme.a
|
||||
world|base|/usr/lib/libalias_dummy.a
|
||||
world|base|/usr/lib/libalias_ftp.a
|
||||
...
|
||||
Values of build stamps, excluding library archive headers:
|
||||
v1.2 (Aug 26 2009 18:13:46)
|
||||
v1.2 (Aug 26 2009 18:11:44)
|
||||
@(#)FreeBSD 7.1-RELEASE-p7 #0: Wed Aug 26 18:11:50 UTC 2009
|
||||
FreeBSD 7.1-RELEASE-p7 #0: Wed Aug 26 18:11:50 UTC 2009
|
||||
root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC
|
||||
7.1-RELEASE-p7
|
||||
Wed Aug 26 17:29:15 UTC 2009
|
||||
Wed Aug 26 17:29:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
Wed Aug 26 17:20:39 UTC 2009
|
||||
ntpq 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)
|
||||
* Copyright (c) 1992-2009 The FreeBSD Project.
|
||||
Wed Aug 26 17:20:39 UTC 2009
|
||||
Wed Aug 26 17:29:30 UTC 2009
|
||||
Aug 26 2009
|
||||
ntpd 4.2.4p5-a Wed Aug 26 17:29:41 UTC 2009 (1)
|
||||
ntpdate 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)
|
||||
ntpdc 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)
|
||||
Wed Aug 26 17:55:02 UTC 2009
|
||||
Wed Aug 26 17:55:02 UTC 2009
|
||||
Wed Aug 26 17:55:02 UTC 2009
|
||||
Wed Aug 26 17:20:39 UTC 2009
|
||||
...</screen>
|
||||
|
||||
<para>Die Updates werden angezeigt und warten auf
|
||||
Genehmigung.</para>
|
||||
|
||||
<screen>New updates:
|
||||
kernel|generic|/GENERIC/kernel.symbols|f|0|0|0555|0|7c8dc176763f96ced0a57fc04e7c1b8d793f27e006dd13e0b499e1474ac47e10|
|
||||
kernel|generic|/GENERIC/kernel|f|0|0|0555|0|33197e8cf15bbbac263d17f39c153c9d489348c2c534f7ca1120a1183dec67b1|
|
||||
kernel|generic|/|d|0|0|0755|0||
|
||||
src|base|/|d|0|0|0755|0||
|
||||
src|bin|/|d|0|0|0755|0||
|
||||
src|cddl|/|d|0|0|0755|0||
|
||||
src|contrib|/contrib/bind9/bin/named/update.c|f|0|10000|0644|0|4d434abf0983df9bc47435670d307fa882ef4b348ed8ca90928d250f42ea0757|
|
||||
src|contrib|/contrib/bind9/lib/dns/openssldsa_link.c|f|0|10000|0644|0|c6805c39f3da2a06dd3f163f26c314a4692d4cd9a2d929c0acc88d736324f550|
|
||||
src|contrib|/contrib/bind9/lib/dns/opensslrsa_link.c|f|0|10000|0644|0|fa0f7417ee9da42cc8d0fd96ad24e7a34125e05b5ae075bd6e3238f1c022a712|
|
||||
...
|
||||
FreeBSD/amd64 7.1-RELEASE update build complete. Please review
|
||||
the list of build stamps printed above and the list of updated
|
||||
files to confirm that they look sensible, then run
|
||||
# sh -e approve.sh amd64 7.1-RELEASE
|
||||
to sign the build.</screen>
|
||||
|
||||
<para>Folgen Sie dem zuvor erwähnten Verfahren für die Genehmigung
|
||||
des Bauprozesses:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh -e scripts/approve.sh amd64 7.1-RELEASE</userinput>
|
||||
Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.1-RELEASE
|
||||
Wed Aug 26 12:50:06 PDT 2009 Copying files to patch source directories for FreeBSD/amd64 7.1-RELEASE
|
||||
Wed Aug 26 12:50:06 PDT 2009 Copying files to upload staging area for FreeBSD/amd64 7.1-RELEASE
|
||||
Wed Aug 26 12:50:07 PDT 2009 Updating databases for FreeBSD/amd64 7.1-RELEASE
|
||||
Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-RELEASE
|
||||
|
||||
The FreeBSD/amd64 7.1-RELEASE update build has been signed and is
|
||||
ready to be uploaded. Remember to run
|
||||
# sh -e umountkey.sh
|
||||
to unmount the decrypted key once you have finished signing all
|
||||
the new builds.</screen>
|
||||
|
||||
<para>Nachdem Sie den Bau genehmigt haben, starten Sie den Upload
|
||||
der Software:</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>cd /usr/local/freebsd-update-server</userinput>
|
||||
&prompt.root; <userinput>sh scripts/upload.sh <replaceable>amd64 7.1-RELEASE</replaceable></userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<para>Als Referenz wird der gesamte Verlauf von <link xlink:href="diff.txt"><filename>diff.sh</filename></link>
|
||||
beigefügt.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="tips">
|
||||
<title>Tipps</title>
|
||||
|
||||
<!-- These are nice tips, but there are only a few of them and they need a
|
||||
bit of rewording to make sense. I'd like to see something that
|
||||
explains at least the following for every tip:
|
||||
|
||||
* Why is this tip necessary? What is the original problem it tries
|
||||
to solve?
|
||||
* How to install the changes of the tip, preferably in a <procedure>
|
||||
element, with clearly separated steps.
|
||||
* How to check that the changes of the tip had a measurable and
|
||||
noticeable effect.
|
||||
|
||||
We can do this in a followup commit. It doesn't have to be completed
|
||||
*before* we commit this to CVS. -->
|
||||
|
||||
<!-- thank you, i just learned these in the process, and thought I would share. They are "tips" and not necessary, so I do see your point, and I would suggest maybe even renaming the section to something more appropriate. Nothing really comes to mind now, though. -->
|
||||
|
||||
<!-- this tip will allow you to maintain a custom release and custom kernel, and update it like any other binary update -->
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Wenn Sie ein selbst erstelltes Release über die native
|
||||
<command>make release</command> <link xlink:href="&url.articles.releng;/release-build.html">Prozedur</link>
|
||||
bauen, wir der
|
||||
<application>freebsd-update-server</application> Code Ihr
|
||||
Release unterstützen. Als Beispiel können Sie ein Release
|
||||
ohne Ports oder Dokumentation bauen, indem Sie betreffende
|
||||
Funktionalität der Subroutinen <function> findextradocs
|
||||
()</function>, <function>addextradocs ()</function>
|
||||
entfernen und eine Veränderung des Download-Verzeichnisses
|
||||
in <function>fetchiso ()</function>, in
|
||||
<filename>scripts/build.subr</filename>. Als letzten
|
||||
Schritt ändern Sie den &man.sha256.1; Hash in
|
||||
<filename>build.conf</filename> für Ihr jeweiliges Release
|
||||
und Architektur damit Sie bereit sind, Ihr
|
||||
benutzerdefiniertes Release zu bauen.</para>
|
||||
|
||||
<programlisting># Compare ${WORKDIR}/release and ${WORKDIR}/$1, identify which parts
|
||||
# of the world|doc subcomponent are missing from the latter, and
|
||||
# build a tarball out of them.
|
||||
findextradocs () {
|
||||
}
|
||||
|
||||
# Add extra docs to ${WORKDIR}/$1
|
||||
addextradocs () {
|
||||
}
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Durch das Hinzufügen von <option>-j
|
||||
<replaceable>NUMMER</replaceable></option> zu den
|
||||
<buildtarget>buildworld</buildtarget> und
|
||||
<buildtarget>obj</buildtarget> Zielen in
|
||||
<filename>scripts/build.subr</filename> kann die
|
||||
Verarbeitung, abhängig von der eingesetzten Hardware,
|
||||
beschleunigt werden. Die Benutzung dieser Optionen auf
|
||||
andere Ziele wird jedoch nicht empfohlen, da sie den Bau
|
||||
unzuverlässig machen können.</para>
|
||||
|
||||
<programlisting>> # Build the world
|
||||
log "Building world"
|
||||
cd /usr/src &&
|
||||
make -j 2 ${COMPATFLAGS} buildworld 2>&1
|
||||
|
||||
# Distribute the world
|
||||
log "Distributing world"
|
||||
cd /usr/src/release &&
|
||||
make -j 2 obj &&
|
||||
make ${COMPATFLAGS} release.1 release.2 2>&1</programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Erstellen Sie einen geeigneten <link xlink:href="&url.books.handbook;/network-dns.html">DNS</link>
|
||||
SRV Datensatz für den Update-Server, und fügen Sie weitere
|
||||
Server mit verschiedenen Gewichtungen hinzu. Sie können
|
||||
diese Möglichkeit nutzen um Update-Mirror hinzuzufügen.
|
||||
Dieser Tipp ist jedoch nicht notwendig solange Sie keinen
|
||||
redundanten Service anbieten möchten.</para>
|
||||
|
||||
<programlisting> _http._tcp.update.myserver.com. IN SRV 0 2 80 host1.myserver.com.
|
||||
SRV 0 1 80 host2.myserver.com.
|
||||
SRV 0 0 80 host3.myserver.com.</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
</article>
|
||||
|
|
@ -1,724 +0,0 @@
|
|||
# $FreeBSD$
|
||||
# sh -e scripts/diff.sh amd64 7.1-RELEASE 7
|
||||
Wed Aug 26 10:09:59 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 17:10:25 UTC 2009 Building world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:05:11 UTC 2009 Distributing world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:06:16 UTC 2009 Building and distributing kernels for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:17:50 UTC 2009 Constructing world components for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 18:18:02 UTC 2009 Distributing source for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:19:23 PDT 2009 Moving components into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:19:37 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:19:42 PDT 2009 Indexing world0 for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 11:23:02 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 18:23:29 UTC 2010 Building world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:18:15 UTC 2010 Distributing world for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:19:18 UTC 2010 Building and distributing kernels for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:30:52 UTC 2010 Constructing world components for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 19:31:03 UTC 2010 Distributing source for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Thu Sep 30 12:32:25 PDT 2010 Moving components into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:32:39 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:32:43 PDT 2009 Indexing world1 for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:35:54 PDT 2009 Locating build stamps for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:36:58 PDT 2009 Reverting changes due to build stamps for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:37:14 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:37:14 PDT 2009 Preparing to copy files into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:37:15 PDT 2009 Copying data files into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:43:23 PDT 2009 Copying metadata files into staging area for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
Wed Aug 26 12:43:25 PDT 2009 Constructing metadata index and tag for FreeBSD/amd64 7.1-RELEASE-p7
|
||||
|
||||
Files found which include build stamps:
|
||||
kernel|generic|/GENERIC/hptrr.ko
|
||||
kernel|generic|/GENERIC/kernel
|
||||
world|base|/boot/loader
|
||||
world|base|/boot/pxeboot
|
||||
world|base|/etc/mail/freebsd.cf
|
||||
world|base|/etc/mail/freebsd.submit.cf
|
||||
world|base|/etc/mail/sendmail.cf
|
||||
world|base|/etc/mail/submit.cf
|
||||
world|base|/lib/libcrypto.so.5
|
||||
world|base|/usr/bin/ntpq
|
||||
world|base|/usr/include/osreldate.h
|
||||
world|base|/usr/lib/libalias.a
|
||||
world|base|/usr/lib/libalias_cuseeme.a
|
||||
world|base|/usr/lib/libalias_dummy.a
|
||||
world|base|/usr/lib/libalias_ftp.a
|
||||
world|base|/usr/lib/libalias_irc.a
|
||||
world|base|/usr/lib/libalias_nbt.a
|
||||
world|base|/usr/lib/libalias_pptp.a
|
||||
world|base|/usr/lib/libalias_skinny.a
|
||||
world|base|/usr/lib/libalias_smedia.a
|
||||
world|base|/usr/lib/libarchive.a
|
||||
world|base|/usr/lib/libasn1.a
|
||||
world|base|/usr/lib/libavl.a
|
||||
world|base|/usr/lib/libbegemot.a
|
||||
world|base|/usr/lib/libbluetooth.a
|
||||
world|base|/usr/lib/libbsdxml.a
|
||||
world|base|/usr/lib/libbsm.a
|
||||
world|base|/usr/lib/libbsnmp.a
|
||||
world|base|/usr/lib/libbz2.a
|
||||
world|base|/usr/lib/libc.a
|
||||
world|base|/usr/lib/libc_pic.a
|
||||
world|base|/usr/lib/libcalendar.a
|
||||
world|base|/usr/lib/libcam.a
|
||||
world|base|/usr/lib/libcom_err.a
|
||||
world|base|/usr/lib/libcompat.a
|
||||
world|base|/usr/lib/libcrypt.a
|
||||
world|base|/usr/lib/libcrypto.a
|
||||
world|base|/usr/lib/libctf.a
|
||||
world|base|/usr/lib/libdevinfo.a
|
||||
world|base|/usr/lib/libdevstat.a
|
||||
world|base|/usr/lib/libdialog.a
|
||||
world|base|/usr/lib/libdisk.a
|
||||
world|base|/usr/lib/libdtrace.a
|
||||
world|base|/usr/lib/libdwarf.a
|
||||
world|base|/usr/lib/libedit.a
|
||||
world|base|/usr/lib/libelf.a
|
||||
world|base|/usr/lib/libfetch.a
|
||||
world|base|/usr/lib/libfl.a
|
||||
world|base|/usr/lib/libform.a
|
||||
world|base|/usr/lib/libformw.a
|
||||
world|base|/usr/lib/libftpio.a
|
||||
world|base|/usr/lib/libgcc.a
|
||||
world|base|/usr/lib/libgcc_eh.a
|
||||
world|base|/usr/lib/libgcov.a
|
||||
world|base|/usr/lib/libgeom.a
|
||||
world|base|/usr/lib/libgnuregex.a
|
||||
world|base|/usr/lib/libgomp.a
|
||||
world|base|/usr/lib/libgpib.a
|
||||
world|base|/usr/lib/libgssapi.a
|
||||
world|base|/usr/lib/libgssapi_krb5.a
|
||||
world|base|/usr/lib/libhdb.a
|
||||
world|base|/usr/lib/libhistory.a
|
||||
world|base|/usr/lib/libipsec.a
|
||||
world|base|/usr/lib/libipx.a
|
||||
world|base|/usr/lib/libkadm5clnt.a
|
||||
world|base|/usr/lib/libkadm5srv.a
|
||||
world|base|/usr/lib/libkafs5.a
|
||||
world|base|/usr/lib/libkiconv.a
|
||||
world|base|/usr/lib/libkrb5.a
|
||||
world|base|/usr/lib/libkvm.a
|
||||
world|base|/usr/lib/libl.a
|
||||
world|base|/usr/lib/libln.a
|
||||
world|base|/usr/lib/liblwres.a
|
||||
world|base|/usr/lib/libm.a
|
||||
world|base|/usr/lib/libmagic.a
|
||||
world|base|/usr/lib/libmd.a
|
||||
world|base|/usr/lib/libmemstat.a
|
||||
world|base|/usr/lib/libmenu.a
|
||||
world|base|/usr/lib/libmenuw.a
|
||||
world|base|/usr/lib/libmilter.a
|
||||
world|base|/usr/lib/libmp.a
|
||||
world|base|/usr/lib/libncp.a
|
||||
world|base|/usr/lib/libncurses.a
|
||||
world|base|/usr/lib/libncursesw.a
|
||||
world|base|/usr/lib/libnetgraph.a
|
||||
world|base|/usr/lib/libngatm.a
|
||||
world|base|/usr/lib/libnvpair.a
|
||||
world|base|/usr/lib/libobjc.a
|
||||
world|base|/usr/lib/libopie.a
|
||||
world|base|/usr/lib/libpam.a
|
||||
world|base|/usr/lib/libpanel.a
|
||||
world|base|/usr/lib/libpanelw.a
|
||||
world|base|/usr/lib/libpcap.a
|
||||
world|base|/usr/lib/libpmc.a
|
||||
world|base|/usr/lib/libproc.a
|
||||
world|base|/usr/lib/libradius.a
|
||||
world|base|/usr/lib/libreadline.a
|
||||
world|base|/usr/lib/libroken.a
|
||||
world|base|/usr/lib/librpcsvc.a
|
||||
world|base|/usr/lib/librt.a
|
||||
world|base|/usr/lib/libsbuf.a
|
||||
world|base|/usr/lib/libsdp.a
|
||||
world|base|/usr/lib/libsmb.a
|
||||
world|base|/usr/lib/libssh.a
|
||||
world|base|/usr/lib/libssl.a
|
||||
world|base|/usr/lib/libssp.a
|
||||
world|base|/usr/lib/libssp_nonshared.a
|
||||
world|base|/usr/lib/libstand.a
|
||||
world|base|/usr/lib/libstdc++.a
|
||||
world|base|/usr/lib/libsupc++.a
|
||||
world|base|/usr/lib/libtacplus.a
|
||||
world|base|/usr/lib/libthr.a
|
||||
world|base|/usr/lib/libthread_db.a
|
||||
world|base|/usr/lib/libufs.a
|
||||
world|base|/usr/lib/libugidfw.a
|
||||
world|base|/usr/lib/libumem.a
|
||||
world|base|/usr/lib/libusbhid.a
|
||||
world|base|/usr/lib/libutil.a
|
||||
world|base|/usr/lib/libuutil.a
|
||||
world|base|/usr/lib/libwrap.a
|
||||
world|base|/usr/lib/liby.a
|
||||
world|base|/usr/lib/libypclnt.a
|
||||
world|base|/usr/lib/libz.a
|
||||
world|base|/usr/lib/libzfs.a
|
||||
world|base|/usr/lib/libzpool.a
|
||||
world|base|/usr/sbin/amd
|
||||
world|base|/usr/sbin/iasl
|
||||
world|base|/usr/sbin/ntpd
|
||||
world|base|/usr/sbin/ntpdate
|
||||
world|base|/usr/sbin/ntpdc
|
||||
world|lib32|/usr/lib32/libalias.a
|
||||
world|lib32|/usr/lib32/libalias_cuseeme.a
|
||||
world|lib32|/usr/lib32/libalias_cuseeme_p.a
|
||||
world|lib32|/usr/lib32/libalias_dummy.a
|
||||
world|lib32|/usr/lib32/libalias_dummy_p.a
|
||||
world|lib32|/usr/lib32/libalias_ftp.a
|
||||
world|lib32|/usr/lib32/libalias_ftp_p.a
|
||||
world|lib32|/usr/lib32/libalias_irc.a
|
||||
world|lib32|/usr/lib32/libalias_irc_p.a
|
||||
world|lib32|/usr/lib32/libalias_nbt.a
|
||||
world|lib32|/usr/lib32/libalias_nbt_p.a
|
||||
world|lib32|/usr/lib32/libalias_p.a
|
||||
world|lib32|/usr/lib32/libalias_pptp.a
|
||||
world|lib32|/usr/lib32/libalias_pptp_p.a
|
||||
world|lib32|/usr/lib32/libalias_skinny.a
|
||||
world|lib32|/usr/lib32/libalias_skinny_p.a
|
||||
world|lib32|/usr/lib32/libalias_smedia.a
|
||||
world|lib32|/usr/lib32/libalias_smedia_p.a
|
||||
world|lib32|/usr/lib32/libarchive.a
|
||||
world|lib32|/usr/lib32/libarchive_p.a
|
||||
world|lib32|/usr/lib32/libasn1.a
|
||||
world|lib32|/usr/lib32/libasn1_p.a
|
||||
world|lib32|/usr/lib32/libavl.a
|
||||
world|lib32|/usr/lib32/libavl_p.a
|
||||
world|lib32|/usr/lib32/libbegemot.a
|
||||
world|lib32|/usr/lib32/libbegemot_p.a
|
||||
world|lib32|/usr/lib32/libbluetooth.a
|
||||
world|lib32|/usr/lib32/libbluetooth_p.a
|
||||
world|lib32|/usr/lib32/libbsdxml.a
|
||||
world|lib32|/usr/lib32/libbsdxml_p.a
|
||||
world|lib32|/usr/lib32/libbsm.a
|
||||
world|lib32|/usr/lib32/libbsm_p.a
|
||||
world|lib32|/usr/lib32/libbsnmp.a
|
||||
world|lib32|/usr/lib32/libbsnmp_p.a
|
||||
world|lib32|/usr/lib32/libbz2.a
|
||||
world|lib32|/usr/lib32/libbz2_p.a
|
||||
world|lib32|/usr/lib32/libc.a
|
||||
world|lib32|/usr/lib32/libc_p.a
|
||||
world|lib32|/usr/lib32/libc_pic.a
|
||||
world|lib32|/usr/lib32/libcalendar.a
|
||||
world|lib32|/usr/lib32/libcalendar_p.a
|
||||
world|lib32|/usr/lib32/libcam.a
|
||||
world|lib32|/usr/lib32/libcam_p.a
|
||||
world|lib32|/usr/lib32/libcom_err.a
|
||||
world|lib32|/usr/lib32/libcom_err_p.a
|
||||
world|lib32|/usr/lib32/libcompat.a
|
||||
world|lib32|/usr/lib32/libcompat_p.a
|
||||
world|lib32|/usr/lib32/libcrypt.a
|
||||
world|lib32|/usr/lib32/libcrypt_p.a
|
||||
world|lib32|/usr/lib32/libcrypto.a
|
||||
world|lib32|/usr/lib32/libcrypto.so.5
|
||||
world|lib32|/usr/lib32/libcrypto_p.a
|
||||
world|lib32|/usr/lib32/libctf.a
|
||||
world|lib32|/usr/lib32/libctf_p.a
|
||||
world|lib32|/usr/lib32/libdevinfo.a
|
||||
world|lib32|/usr/lib32/libdevinfo_p.a
|
||||
world|lib32|/usr/lib32/libdevstat.a
|
||||
world|lib32|/usr/lib32/libdevstat_p.a
|
||||
world|lib32|/usr/lib32/libdialog.a
|
||||
world|lib32|/usr/lib32/libdialog_p.a
|
||||
world|lib32|/usr/lib32/libdisk.a
|
||||
world|lib32|/usr/lib32/libdtrace.a
|
||||
world|lib32|/usr/lib32/libdtrace_p.a
|
||||
world|lib32|/usr/lib32/libdwarf.a
|
||||
world|lib32|/usr/lib32/libdwarf_p.a
|
||||
world|lib32|/usr/lib32/libedit.a
|
||||
world|lib32|/usr/lib32/libedit_p.a
|
||||
world|lib32|/usr/lib32/libelf.a
|
||||
world|lib32|/usr/lib32/libelf_p.a
|
||||
world|lib32|/usr/lib32/libfetch.a
|
||||
world|lib32|/usr/lib32/libfetch_p.a
|
||||
world|lib32|/usr/lib32/libform.a
|
||||
world|lib32|/usr/lib32/libform_p.a
|
||||
world|lib32|/usr/lib32/libformw.a
|
||||
world|lib32|/usr/lib32/libformw_p.a
|
||||
world|lib32|/usr/lib32/libftpio.a
|
||||
world|lib32|/usr/lib32/libftpio_p.a
|
||||
world|lib32|/usr/lib32/libgcc.a
|
||||
world|lib32|/usr/lib32/libgcc_eh.a
|
||||
world|lib32|/usr/lib32/libgcc_eh_p.a
|
||||
world|lib32|/usr/lib32/libgcc_p.a
|
||||
world|lib32|/usr/lib32/libgcov.a
|
||||
world|lib32|/usr/lib32/libgeom.a
|
||||
world|lib32|/usr/lib32/libgeom_p.a
|
||||
world|lib32|/usr/lib32/libgnuregex.a
|
||||
world|lib32|/usr/lib32/libgnuregex_p.a
|
||||
world|lib32|/usr/lib32/libgomp.a
|
||||
world|lib32|/usr/lib32/libgomp_p.a
|
||||
world|lib32|/usr/lib32/libgpib.a
|
||||
world|lib32|/usr/lib32/libgpib_p.a
|
||||
world|lib32|/usr/lib32/libgssapi.a
|
||||
world|lib32|/usr/lib32/libgssapi_krb5.a
|
||||
world|lib32|/usr/lib32/libgssapi_krb5_p.a
|
||||
world|lib32|/usr/lib32/libgssapi_p.a
|
||||
world|lib32|/usr/lib32/libhdb.a
|
||||
world|lib32|/usr/lib32/libhdb_p.a
|
||||
world|lib32|/usr/lib32/libhistory.a
|
||||
world|lib32|/usr/lib32/libhistory_p.a
|
||||
world|lib32|/usr/lib32/libipsec.a
|
||||
world|lib32|/usr/lib32/libipsec_p.a
|
||||
world|lib32|/usr/lib32/libipx.a
|
||||
world|lib32|/usr/lib32/libipx_p.a
|
||||
world|lib32|/usr/lib32/libkadm5clnt.a
|
||||
world|lib32|/usr/lib32/libkadm5clnt_p.a
|
||||
world|lib32|/usr/lib32/libkadm5srv.a
|
||||
world|lib32|/usr/lib32/libkadm5srv_p.a
|
||||
world|lib32|/usr/lib32/libkafs5.a
|
||||
world|lib32|/usr/lib32/libkafs5_p.a
|
||||
world|lib32|/usr/lib32/libkiconv.a
|
||||
world|lib32|/usr/lib32/libkiconv_p.a
|
||||
world|lib32|/usr/lib32/libkrb5.a
|
||||
world|lib32|/usr/lib32/libkrb5_p.a
|
||||
world|lib32|/usr/lib32/libkvm.a
|
||||
world|lib32|/usr/lib32/libkvm_p.a
|
||||
world|lib32|/usr/lib32/libm.a
|
||||
world|lib32|/usr/lib32/libm_p.a
|
||||
world|lib32|/usr/lib32/libmagic.a
|
||||
world|lib32|/usr/lib32/libmagic_p.a
|
||||
world|lib32|/usr/lib32/libmd.a
|
||||
world|lib32|/usr/lib32/libmd_p.a
|
||||
world|lib32|/usr/lib32/libmemstat.a
|
||||
world|lib32|/usr/lib32/libmemstat_p.a
|
||||
world|lib32|/usr/lib32/libmenu.a
|
||||
world|lib32|/usr/lib32/libmenu_p.a
|
||||
world|lib32|/usr/lib32/libmenuw.a
|
||||
world|lib32|/usr/lib32/libmenuw_p.a
|
||||
world|lib32|/usr/lib32/libmilter.a
|
||||
world|lib32|/usr/lib32/libmilter_p.a
|
||||
world|lib32|/usr/lib32/libmp.a
|
||||
world|lib32|/usr/lib32/libmp_p.a
|
||||
world|lib32|/usr/lib32/libncp.a
|
||||
world|lib32|/usr/lib32/libncp_p.a
|
||||
world|lib32|/usr/lib32/libncurses.a
|
||||
world|lib32|/usr/lib32/libncurses_p.a
|
||||
world|lib32|/usr/lib32/libncursesw.a
|
||||
world|lib32|/usr/lib32/libncursesw_p.a
|
||||
world|lib32|/usr/lib32/libnetgraph.a
|
||||
world|lib32|/usr/lib32/libnetgraph_p.a
|
||||
world|lib32|/usr/lib32/libngatm.a
|
||||
world|lib32|/usr/lib32/libngatm_p.a
|
||||
world|lib32|/usr/lib32/libnvpair.a
|
||||
world|lib32|/usr/lib32/libnvpair_p.a
|
||||
world|lib32|/usr/lib32/libobjc.a
|
||||
world|lib32|/usr/lib32/libobjc_p.a
|
||||
world|lib32|/usr/lib32/libopie.a
|
||||
world|lib32|/usr/lib32/libopie_p.a
|
||||
world|lib32|/usr/lib32/libpam.a
|
||||
world|lib32|/usr/lib32/libpanel.a
|
||||
world|lib32|/usr/lib32/libpanel_p.a
|
||||
world|lib32|/usr/lib32/libpanelw.a
|
||||
world|lib32|/usr/lib32/libpanelw_p.a
|
||||
world|lib32|/usr/lib32/libpcap.a
|
||||
world|lib32|/usr/lib32/libpcap_p.a
|
||||
world|lib32|/usr/lib32/libpmc.a
|
||||
world|lib32|/usr/lib32/libpmc_p.a
|
||||
world|lib32|/usr/lib32/libproc.a
|
||||
world|lib32|/usr/lib32/libproc_p.a
|
||||
world|lib32|/usr/lib32/libradius.a
|
||||
world|lib32|/usr/lib32/libradius_p.a
|
||||
world|lib32|/usr/lib32/libreadline.a
|
||||
world|lib32|/usr/lib32/libreadline_p.a
|
||||
world|lib32|/usr/lib32/libroken.a
|
||||
world|lib32|/usr/lib32/libroken_p.a
|
||||
world|lib32|/usr/lib32/librpcsvc.a
|
||||
world|lib32|/usr/lib32/librpcsvc_p.a
|
||||
world|lib32|/usr/lib32/librt.a
|
||||
world|lib32|/usr/lib32/librt_p.a
|
||||
world|lib32|/usr/lib32/libsbuf.a
|
||||
world|lib32|/usr/lib32/libsbuf_p.a
|
||||
world|lib32|/usr/lib32/libsdp.a
|
||||
world|lib32|/usr/lib32/libsdp_p.a
|
||||
world|lib32|/usr/lib32/libsmb.a
|
||||
world|lib32|/usr/lib32/libsmb_p.a
|
||||
world|lib32|/usr/lib32/libssh.a
|
||||
world|lib32|/usr/lib32/libssh_p.a
|
||||
world|lib32|/usr/lib32/libssl.a
|
||||
world|lib32|/usr/lib32/libssl_p.a
|
||||
world|lib32|/usr/lib32/libssp.a
|
||||
world|lib32|/usr/lib32/libssp_nonshared.a
|
||||
world|lib32|/usr/lib32/libstand.a
|
||||
world|lib32|/usr/lib32/libstdc++.a
|
||||
world|lib32|/usr/lib32/libstdc++_p.a
|
||||
world|lib32|/usr/lib32/libsupc++.a
|
||||
world|lib32|/usr/lib32/libsupc++_p.a
|
||||
world|lib32|/usr/lib32/libtacplus.a
|
||||
world|lib32|/usr/lib32/libtacplus_p.a
|
||||
world|lib32|/usr/lib32/libthr.a
|
||||
world|lib32|/usr/lib32/libthr_p.a
|
||||
world|lib32|/usr/lib32/libthread_db.a
|
||||
world|lib32|/usr/lib32/libthread_db_p.a
|
||||
world|lib32|/usr/lib32/libufs.a
|
||||
world|lib32|/usr/lib32/libufs_p.a
|
||||
world|lib32|/usr/lib32/libugidfw.a
|
||||
world|lib32|/usr/lib32/libugidfw_p.a
|
||||
world|lib32|/usr/lib32/libumem.a
|
||||
world|lib32|/usr/lib32/libumem_p.a
|
||||
world|lib32|/usr/lib32/libusbhid.a
|
||||
world|lib32|/usr/lib32/libusbhid_p.a
|
||||
world|lib32|/usr/lib32/libutil.a
|
||||
world|lib32|/usr/lib32/libutil_p.a
|
||||
world|lib32|/usr/lib32/libuutil.a
|
||||
world|lib32|/usr/lib32/libuutil_p.a
|
||||
world|lib32|/usr/lib32/libvgl.a
|
||||
world|lib32|/usr/lib32/libvgl_p.a
|
||||
world|lib32|/usr/lib32/libwrap.a
|
||||
world|lib32|/usr/lib32/libwrap_p.a
|
||||
world|lib32|/usr/lib32/liby.a
|
||||
world|lib32|/usr/lib32/liby_p.a
|
||||
world|lib32|/usr/lib32/libypclnt.a
|
||||
world|lib32|/usr/lib32/libypclnt_p.a
|
||||
world|lib32|/usr/lib32/libz.a
|
||||
world|lib32|/usr/lib32/libz_p.a
|
||||
world|lib32|/usr/lib32/libzfs.a
|
||||
world|lib32|/usr/lib32/libzfs_p.a
|
||||
world|lib32|/usr/lib32/libzpool.a
|
||||
world|proflibs|/usr/lib/libalias_cuseeme_p.a
|
||||
world|proflibs|/usr/lib/libalias_dummy_p.a
|
||||
world|proflibs|/usr/lib/libalias_ftp_p.a
|
||||
world|proflibs|/usr/lib/libalias_irc_p.a
|
||||
world|proflibs|/usr/lib/libalias_nbt_p.a
|
||||
world|proflibs|/usr/lib/libalias_p.a
|
||||
world|proflibs|/usr/lib/libalias_pptp_p.a
|
||||
world|proflibs|/usr/lib/libalias_skinny_p.a
|
||||
world|proflibs|/usr/lib/libalias_smedia_p.a
|
||||
world|proflibs|/usr/lib/libarchive_p.a
|
||||
world|proflibs|/usr/lib/libasn1_p.a
|
||||
world|proflibs|/usr/lib/libavl_p.a
|
||||
world|proflibs|/usr/lib/libbegemot_p.a
|
||||
world|proflibs|/usr/lib/libbluetooth_p.a
|
||||
world|proflibs|/usr/lib/libbsdxml_p.a
|
||||
world|proflibs|/usr/lib/libbsm_p.a
|
||||
world|proflibs|/usr/lib/libbsnmp_p.a
|
||||
world|proflibs|/usr/lib/libbz2_p.a
|
||||
world|proflibs|/usr/lib/libc_p.a
|
||||
world|proflibs|/usr/lib/libcalendar_p.a
|
||||
world|proflibs|/usr/lib/libcam_p.a
|
||||
world|proflibs|/usr/lib/libcom_err_p.a
|
||||
world|proflibs|/usr/lib/libcompat_p.a
|
||||
world|proflibs|/usr/lib/libcrypt_p.a
|
||||
world|proflibs|/usr/lib/libcrypto_p.a
|
||||
world|proflibs|/usr/lib/libctf_p.a
|
||||
world|proflibs|/usr/lib/libdevinfo_p.a
|
||||
world|proflibs|/usr/lib/libdevstat_p.a
|
||||
world|proflibs|/usr/lib/libdialog_p.a
|
||||
world|proflibs|/usr/lib/libdtrace_p.a
|
||||
world|proflibs|/usr/lib/libdwarf_p.a
|
||||
world|proflibs|/usr/lib/libedit_p.a
|
||||
world|proflibs|/usr/lib/libelf_p.a
|
||||
world|proflibs|/usr/lib/libfetch_p.a
|
||||
world|proflibs|/usr/lib/libfl_p.a
|
||||
world|proflibs|/usr/lib/libform_p.a
|
||||
world|proflibs|/usr/lib/libformw_p.a
|
||||
world|proflibs|/usr/lib/libftpio_p.a
|
||||
world|proflibs|/usr/lib/libgcc_eh_p.a
|
||||
world|proflibs|/usr/lib/libgcc_p.a
|
||||
world|proflibs|/usr/lib/libgeom_p.a
|
||||
world|proflibs|/usr/lib/libgnuregex_p.a
|
||||
world|proflibs|/usr/lib/libgomp_p.a
|
||||
world|proflibs|/usr/lib/libgpib_p.a
|
||||
world|proflibs|/usr/lib/libgssapi_krb5_p.a
|
||||
world|proflibs|/usr/lib/libgssapi_p.a
|
||||
world|proflibs|/usr/lib/libhdb_p.a
|
||||
world|proflibs|/usr/lib/libhistory_p.a
|
||||
world|proflibs|/usr/lib/libipsec_p.a
|
||||
world|proflibs|/usr/lib/libipx_p.a
|
||||
world|proflibs|/usr/lib/libkadm5clnt_p.a
|
||||
world|proflibs|/usr/lib/libkadm5srv_p.a
|
||||
world|proflibs|/usr/lib/libkafs5_p.a
|
||||
world|proflibs|/usr/lib/libkiconv_p.a
|
||||
world|proflibs|/usr/lib/libkrb5_p.a
|
||||
world|proflibs|/usr/lib/libkvm_p.a
|
||||
world|proflibs|/usr/lib/libl_p.a
|
||||
world|proflibs|/usr/lib/libln_p.a
|
||||
world|proflibs|/usr/lib/liblwres_p.a
|
||||
world|proflibs|/usr/lib/libm_p.a
|
||||
world|proflibs|/usr/lib/libmagic_p.a
|
||||
world|proflibs|/usr/lib/libmd_p.a
|
||||
world|proflibs|/usr/lib/libmemstat_p.a
|
||||
world|proflibs|/usr/lib/libmenu_p.a
|
||||
world|proflibs|/usr/lib/libmenuw_p.a
|
||||
world|proflibs|/usr/lib/libmilter_p.a
|
||||
world|proflibs|/usr/lib/libmp_p.a
|
||||
world|proflibs|/usr/lib/libncp_p.a
|
||||
world|proflibs|/usr/lib/libncurses_p.a
|
||||
world|proflibs|/usr/lib/libncursesw_p.a
|
||||
world|proflibs|/usr/lib/libnetgraph_p.a
|
||||
world|proflibs|/usr/lib/libngatm_p.a
|
||||
world|proflibs|/usr/lib/libnvpair_p.a
|
||||
world|proflibs|/usr/lib/libobjc_p.a
|
||||
world|proflibs|/usr/lib/libopie_p.a
|
||||
world|proflibs|/usr/lib/libpanel_p.a
|
||||
world|proflibs|/usr/lib/libpanelw_p.a
|
||||
world|proflibs|/usr/lib/libpcap_p.a
|
||||
world|proflibs|/usr/lib/libpmc_p.a
|
||||
world|proflibs|/usr/lib/libproc_p.a
|
||||
world|proflibs|/usr/lib/libradius_p.a
|
||||
world|proflibs|/usr/lib/libreadline_p.a
|
||||
world|proflibs|/usr/lib/libroken_p.a
|
||||
world|proflibs|/usr/lib/librpcsvc_p.a
|
||||
world|proflibs|/usr/lib/librt_p.a
|
||||
world|proflibs|/usr/lib/libsbuf_p.a
|
||||
world|proflibs|/usr/lib/libsdp_p.a
|
||||
world|proflibs|/usr/lib/libsmb_p.a
|
||||
world|proflibs|/usr/lib/libssh_p.a
|
||||
world|proflibs|/usr/lib/libssl_p.a
|
||||
world|proflibs|/usr/lib/libstdc++_p.a
|
||||
world|proflibs|/usr/lib/libsupc++_p.a
|
||||
world|proflibs|/usr/lib/libtacplus_p.a
|
||||
world|proflibs|/usr/lib/libthr_p.a
|
||||
world|proflibs|/usr/lib/libthread_db_p.a
|
||||
world|proflibs|/usr/lib/libufs_p.a
|
||||
world|proflibs|/usr/lib/libugidfw_p.a
|
||||
world|proflibs|/usr/lib/libumem_p.a
|
||||
world|proflibs|/usr/lib/libusbhid_p.a
|
||||
world|proflibs|/usr/lib/libutil_p.a
|
||||
world|proflibs|/usr/lib/libuutil_p.a
|
||||
world|proflibs|/usr/lib/libwrap_p.a
|
||||
world|proflibs|/usr/lib/liby_p.a
|
||||
world|proflibs|/usr/lib/libypclnt_p.a
|
||||
world|proflibs|/usr/lib/libz_p.a
|
||||
world|proflibs|/usr/lib/libzfs_p.a
|
||||
|
||||
Values of build stamps, excluding library archive headers:
|
||||
v1.2 (Aug 26 2009 18:13:46)
|
||||
v1.2 (Aug 26 2009 18:11:44)
|
||||
@(#)FreeBSD 7.1-RELEASE-p7 #0: Wed Aug 26 18:11:50 UTC 2009
|
||||
FreeBSD 7.1-RELEASE-p7 #0: Wed Aug 26 18:11:50 UTC 2009
|
||||
root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC
|
||||
7.1-RELEASE-p7
|
||||
Wed Aug 26 17:29:15 UTC 2009
|
||||
Wed Aug 26 17:29:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009
|
||||
Wed Aug 26 17:20:39 UTC 2009
|
||||
ntpq 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)
|
||||
* Copyright (c) 1992-2009 The FreeBSD Project.
|
||||
Wed Aug 26 17:20:39 UTC 2009
|
||||
Wed Aug 26 17:29:30 UTC 2009
|
||||
Aug 26 2009
|
||||
ntpd 4.2.4p5-a Wed Aug 26 17:29:41 UTC 2009 (1)
|
||||
ntpdate 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)
|
||||
ntpdc 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)
|
||||
Wed Aug 26 17:55:02 UTC 2009
|
||||
Wed Aug 26 17:55:02 UTC 2009
|
||||
Wed Aug 26 17:55:02 UTC 2009
|
||||
Wed Aug 26 17:20:39 UTC 2009
|
||||
|
||||
New updates:
|
||||
kernel|generic|/GENERIC/kernel.symbols|f|0|0|0555|0|7c8dc176763f96ced0a57fc04e7c1b8d793f27e006dd13e0b499e1474ac47e10|
|
||||
kernel|generic|/GENERIC/kernel|f|0|0|0555|0|33197e8cf15bbbac263d17f39c153c9d489348c2c534f7ca1120a1183dec67b1|
|
||||
kernel|generic|/|d|0|0|0755|0||
|
||||
src|base|/|d|0|0|0755|0||
|
||||
src|bin|/|d|0|0|0755|0||
|
||||
src|cddl|/|d|0|0|0755|0||
|
||||
src|contrib|/contrib/bind9/bin/named/update.c|f|0|10000|0644|0|4d434abf0983df9bc47435670d307fa882ef4b348ed8ca90928d250f42ea0757|
|
||||
src|contrib|/contrib/bind9/lib/dns/openssldsa_link.c|f|0|10000|0644|0|c6805c39f3da2a06dd3f163f26c314a4692d4cd9a2d929c0acc88d736324f550|
|
||||
src|contrib|/contrib/bind9/lib/dns/opensslrsa_link.c|f|0|10000|0644|0|fa0f7417ee9da42cc8d0fd96ad24e7a34125e05b5ae075bd6e3238f1c022a712|
|
||||
src|contrib|/contrib/lukemftpd/src/extern.h|f|0|10000|0644|0|16e4c3701b151305cf683c6f8419c8fd23d9fefa3d12732a029c32396d6d6a8a|
|
||||
src|contrib|/contrib/lukemftpd/src/ftpcmd.y|f|0|10000|0644|0|9d36f9e8a88b54ad2e38058d72bb87a1ee6b7d54a71897b55a83ffd31f1c1f93|
|
||||
src|contrib|/contrib/lukemftpd/src/ftpd.c|f|0|10000|0644|0|b79b6396314b1355a28c0afa4f1aad9d8cd3fa5ad372eeb9a89416d239c55fdd|
|
||||
src|contrib|/contrib/ntp/ntpd/ntp_crypto.c|f|0|10000|0644|0|cc9480b2b8d217378c65664ec25b15814fe65de6f972fea3460a5c7b905bbdf9|
|
||||
src|contrib|/contrib/telnet/telnetd/sys_term.c|f|0|10000|0644|0|c4cceb60fe065858ac2a3e3f16bdfc843b108731a062a897bfd5ff5a5fbd872f|
|
||||
src|contrib|/|d|0|0|0755|0||
|
||||
src|crypto|/crypto/openssl/apps/speed.c|f|0|10000|0644|0|8e11322461b3956922f1bfa0f9d8268b0b54773f9083f9c19333f50bc75ebeea|
|
||||
src|crypto|/crypto/openssl/apps/spkac.c|f|0|10000|0644|0|9f4c7dd86b30543cfd63d376d58042cdb94a0eb14fdc53181b6f74a2798c324d|
|
||||
src|crypto|/crypto/openssl/apps/verify.c|f|0|10000|0644|0|2b190f87a7451ff427dcf1055cc8f1cb7b61f6aefd846ec8fa41dc5570682cc4|
|
||||
src|crypto|/crypto/openssl/apps/x509.c|f|0|10000|0644|0|d25e90db11d136bbacd8914c355539053908fc34473b6f22332e46187f409a25|
|
||||
src|crypto|/crypto/openssl/crypto/asn1/asn1.h|f|0|10000|0644|0|63d2a7ee846734a0dc33e67dd8e94056baed7ab954826e72137bfbc1a7344531|
|
||||
src|crypto|/crypto/openssl/crypto/asn1/asn1_err.c|f|0|10000|0644|0|fcd0c3b52479c832b1b3d1a97bf3c616d35e7ad4d10c44accf5588651ff71cc5|
|
||||
src|crypto|/crypto/openssl/crypto/asn1/tasn_dec.c|f|0|10000|0644|0|b2ce1d063423c21d676aa2bfa835548d8e29b1535ef4b030e5a6bf765c843c17|
|
||||
src|crypto|/crypto/openssl/ssl/s2_clnt.c|f|0|10000|0644|0|8f348f39afa9f50613c200abe552f9eaa315c982c5948fe3c72b77e7e5399928|
|
||||
src|crypto|/crypto/openssl/ssl/s2_srvr.c|f|0|10000|0644|0|afe502ba45387e0becea05ca40d4c2cf6b1ea1202c409d7709b5e49ee712ec41|
|
||||
src|crypto|/crypto/openssl/ssl/s3_clnt.c|f|0|10000|0644|0|c631d4fdb4b4a75b6c2ecb87c4f316d4a2af1040a56a243908a50fb99f91b2b1|
|
||||
src|crypto|/crypto/openssl/ssl/s3_srvr.c|f|0|10000|0644|0|4b1409a3ea03d782793188d3132a63d67583ac841bcef3366a8241da11b95c05|
|
||||
src|crypto|/crypto/openssl/ssl/ssltest.c|f|0|10000|0644|0|698c1b3b7f5ddf00ca29d08451ad628f768d89bec386e5be7a5cbdb1486c0a4a|
|
||||
src|crypto|/|d|0|0|0755|0||
|
||||
src|etc|/|d|0|0|0755|0||
|
||||
src|games|/|d|0|0|0755|0||
|
||||
src|gnu|/|d|0|0|0755|0||
|
||||
src|include|/|d|0|0|0755|0||
|
||||
src|krb5|/|d|0|0|0755|0||
|
||||
src|libexec|/|d|0|0|0755|0||
|
||||
src|lib|/lib/libc/db/btree/bt_split.c|f|0|10000|0644|0|b9bfc693e4abcaf51a87ba1c1cad15b7bc655c91f075d8cb4aa0b80dd55c65fe|
|
||||
src|lib|/lib/libc/db/hash/hash_buf.c|f|0|10000|0644|0|04dd645a1fda7594d1a6d401e36fad145a2f85edc04963710fc4a5b31c72d55c|
|
||||
src|lib|/lib/libc/db/mpool/mpool.c|f|0|10000|0644|0|986af06bba217829e15cb166fc609dbf89282bd9775e80dd3778413dd5cfc0e7|
|
||||
src|lib|/|d|0|0|0755|0||
|
||||
src|release|/|d|0|0|0755|0||
|
||||
src|rescue|/|d|0|0|0755|0||
|
||||
src|sbin|/|d|0|0|0755|0||
|
||||
src|secure|/|d|0|0|0755|0||
|
||||
src|share|/|d|0|0|0755|0||
|
||||
src|sys|/sys/conf/newvers.sh|f|0|0|0644|0|157b09a1244756217805f3f9674792df909d0c00c6b6e697562674da35803f33|
|
||||
src|sys|/sys/kern/kern_time.c|f|0|10000|0644|0|1de569e1513207413bbbb6a63d4395e85c790f23e6a0a09602b83a11d27d4cc1|
|
||||
src|sys|/sys/kern/sys_pipe.c|f|0|10000|0644|0|90ac7b73f5a5f6e4a3806233e6522eee047718ee8fc111b1cfa72ac86e289576|
|
||||
src|sys|/sys/netinet6/in6.c|f|0|10000|0644|0|0f8bf3515f443809a7b0675fe649d7b6578e179af5e99a174b1dff4b5fb9894d|
|
||||
src|sys|/|d|0|0|0755|0||
|
||||
src|tools|/|d|0|0|0755|0||
|
||||
src|ubin|/|d|0|0|0755|0||
|
||||
src|usbin|/|d|0|0|0755|0||
|
||||
world|base|/lib/libc.so.7|f|0|0|0444|400000|f85c2793851532b56ec1f383233276d1ef4dadb5edaacc12b88097eca9269e2e|
|
||||
world|base|/lib/libcrypto.so.5|f|0|0|0444|0|4bd9c4f67a08b6e0ce7eef2b4fa50470a603a6d60da65c4999674fe2b96afd59|
|
||||
world|base|/rescue/[|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|
|
||||
world|base|/rescue/atacontrol|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/atmconfig|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/badsect|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/bsdlabel|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/bunzip2|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/bzcat|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/bzip2|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/camcontrol|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/cat|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ccdconfig|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/chflags|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/chio|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/chmod|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/chroot|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/clri|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/cp|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/csh|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/date|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/dd|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/devfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/df|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/dhclient|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/disklabel|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/dmesg|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/dumpfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/dumpon|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/dump|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/echo|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ed|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/expr|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ex|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fastboot|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fasthalt|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fdisk|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsck_4.2bsd|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsck_ffs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsck_msdosfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsck_ufs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsck|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsdb|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/fsirand|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/gbde|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/getfacl|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/groups|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/gunzip|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/gzcat|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/gzip|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/halt|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/hostname|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/id|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ifconfig|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/init|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ipf|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/kenv|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/kill|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/kldconfig|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/kldload|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/kldstat|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/kldunload|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ldconfig|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/link|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ln|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ls|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/md5|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mdconfig|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mdmfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mkdir|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mknod|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_cd9660|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_msdosfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_nfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_ntfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_nullfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_udf|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount_unionfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mount|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/mv|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/newfs_msdos|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/newfs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/nos-tun|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/pax|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ping6|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ping|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/ps|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/pwd|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rcorder|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rcp|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rdump|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/realpath|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/reboot|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/red|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rescue|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/restore|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rmdir|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rm|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/routed|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/route|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rrestore|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rtquery|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/rtsol|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/savecore|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/setfacl|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/sh|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/slattach|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/spppcontrol|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/startslip|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/stty|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/swapon|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/sync|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/sysctl|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/tar|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/tcsh|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/test|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/tunefs|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/umount|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/unlink|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/vi|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/whoami|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/rescue/zcat|f|0|0|0555|0|3006e257f11acf66d3f5d259f56d72e28c120b8d3d9d6eb8ca62de80bf274ab7|/rescue/[
|
||||
world|base|/sbin/init|f|0|0|0555|400000|f8a3b96ea281f317a724f132f07b9f70302c385b998ca86e48374d51d59ed22c|
|
||||
world|base|/usr/bin/dig|f|0|0|0555|0|4e6a611fe9a1092071b4e67de70ff5c78b4c1ffee8d52b96f437c8f4b968c409|
|
||||
world|base|/usr/bin/host|f|0|0|0555|0|6d305c5ab8f1d3b2741e856836efd0fe28dfb26cbea1da0f9a9d92df2ee6877b|
|
||||
world|base|/usr/bin/nslookup|f|0|0|0555|0|7dc71d85f604c266a2417fb611f9b311a2ad645dba293dcd4de748016063643a|
|
||||
world|base|/usr/bin/nsupdate|f|0|0|0555|0|936837e33fd774fd8b2001ffe502e365a5335b10499d4125f5aab2c539e5b9af|
|
||||
world|base|/usr/bin/openssl|f|0|0|0555|0|c79743f0b816bcd74c59f154fc17f861662ba62b931a27066eb4d83efac41ea7|
|
||||
world|base|/usr/include/openssl/asn1.h|f|0|0|0444|0|63d2a7ee846734a0dc33e67dd8e94056baed7ab954826e72137bfbc1a7344531|
|
||||
world|base|/usr/lib/libc.a|f|0|0|0444|0|d8e3413ab2101f94025c9649935d836a33cc976ddff579a0f2c5d9b173a326c7|
|
||||
world|base|/usr/lib/libc_pic.a|f|0|0|0444|0|5c0a11ed9605a88869aa0577948753b2b5e0f38e934fe063b97a7a36f747e162|
|
||||
world|base|/usr/lib/libcrypto.a|f|0|0|0444|0|0fb76816febf29edf7318f8cdea4a6071969d942b2dea8034e69852b877b124c|
|
||||
world|base|/usr/lib/libssl.a|f|0|0|0444|0|e8e4d5171a2234625ffce8e78a1b0daf310bccfd37fb72fc872fbd8e63b83467|
|
||||
world|base|/usr/lib/libssl.so.5|f|0|0|0444|0|72a1c0afab0b5eb63ab56a39390a33bfc60544450bbfb2fc5597547e678c3aa0|
|
||||
world|base|/usr/libexec/lukemftpd|f|0|0|0555|0|8ef126a71a960bbd0bf759acc31af5b33750ea6f6c07420345682436aa6988c6|
|
||||
world|base|/usr/libexec/telnetd|f|0|0|0555|0|ae2aa516d0fe6d838b2cf83df7b11da358ac5c0102a077b0a19a367f493d0efd|
|
||||
world|base|/usr/sbin/dnssec-keygen|f|0|0|0555|0|8cda89cdd5661a72296f52d4d59d463f019ed141d23c231c7198c0160b115c9a|
|
||||
world|base|/usr/sbin/dnssec-signzone|f|0|0|0555|0|bb6fb1308537ddcfefa5a3c495a774e6a5edf9a210f93438d13e557ff603babe|
|
||||
world|base|/usr/sbin/lwresd|f|0|0|0555|0|deffdbff2f77a330713fe09b58647b26b4604ef7045b9c85b3a3eebcc178bc10|
|
||||
world|base|/usr/sbin/named-checkconf|f|0|0|0555|0|f69aefa279b9f8f45f55fc2966fdb08679424a76d18d5e46722861a82d68dfec|
|
||||
world|base|/usr/sbin/named-checkzone|f|0|0|0555|0|799718adb365b5e1a48c7183e06d86f9914d2be4edf28ce7cd6b1e6e53f9d5c1|
|
||||
world|base|/usr/sbin/named-compilezone|f|0|0|0555|0|799718adb365b5e1a48c7183e06d86f9914d2be4edf28ce7cd6b1e6e53f9d5c1|/usr/sbin/named-checkzone
|
||||
world|base|/usr/sbin/named|f|0|0|0555|0|deffdbff2f77a330713fe09b58647b26b4604ef7045b9c85b3a3eebcc178bc10|/usr/sbin/lwresd
|
||||
world|base|/usr/sbin/ntpd|f|0|0|0555|0|54f30bfd1ef1ed402688df38e7cc2a7a93c7b42a5f1b264aea10153c23b4ab08|
|
||||
world|base|/usr/sbin/rndc-confgen|f|0|0|0555|0|ed8c2a8af69813b6dade116df42e797b970a33583298bbb1719a4ff6131a7e07|
|
||||
world|lib32|/usr/lib32/libc.a|f|0|0|0444|0|54dcbd716dfe7d5440de506dc546310d4ac465d8bbbcb3cf387c1c6d831f2617|
|
||||
world|lib32|/usr/lib32/libc.so.7|f|0|0|0444|400000|6aae8b506339647fa94f5ae25327af0604f4aec0ca871856d1a8e4a18c51886d|
|
||||
world|lib32|/usr/lib32/libc_p.a|f|0|0|0444|0|2fe8c839033fe16fe854a4d91de3ec2a74eae4d1f8eff15108089d8d81aac595|
|
||||
world|lib32|/usr/lib32/libc_pic.a|f|0|0|0444|0|e1b65817889ba897c65aa7bb8cabf828f31e73207b95b377664bc8b914570438|
|
||||
world|lib32|/usr/lib32/libcrypto.a|f|0|0|0444|0|68a9e67eebe1cc1185cd72a3943a2d56828f771cd9c491edc995c7c1d02bc05e|
|
||||
world|lib32|/usr/lib32/libcrypto.so.5|f|0|0|0444|0|68af2001f1e2b6d0f3b528ce89b6b206175a3e9309b1e47efb31ce81838402f0|
|
||||
world|lib32|/usr/lib32/libcrypto_p.a|f|0|0|0444|0|9b41a4a12ff601616a8bc7b309a32554f02dc7bcb25dddac908ef6f494488512|
|
||||
world|lib32|/usr/lib32/libssl.a|f|0|0|0444|0|6d882bce2c6a1c3ec83d86822c64e15fd2111daa2eeeaddeb7bd2aa563a4d28d|
|
||||
world|lib32|/usr/lib32/libssl.so.5|f|0|0|0444|0|c31e60f9622459ddf6442c23d24720ef583374381c8a67f5579cfc3233fc452e|
|
||||
world|lib32|/usr/lib32/libssl_p.a|f|0|0|0444|0|86d88dbae2e1833bac5686d9b0fe67d54e8f0dcd72af0f94281819b352dc88ba|
|
||||
world|proflibs|/usr/lib/libc_p.a|f|0|0|0444|0|c704160abb6bacf00820fa1ffb002648f0000ab72d991bd27721c32a71cc0218|
|
||||
world|proflibs|/usr/lib/libcrypto_p.a|f|0|0|0444|0|6942da533a9cc7732ed9e6e00a240db8c0be0763a5787a2012d111629673a9d4|
|
||||
world|proflibs|/usr/lib/libssl_p.a|f|0|0|0444|0|e1af68851682db87a5779f73556ebfd1d4f9e98294af64349c87c22d1917de36|
|
||||
|
||||
FreeBSD/amd64 7.1-RELEASE update build complete. Please review
|
||||
the list of build stamps printed above and the list of updated
|
||||
files to confirm that they look sensible, then run
|
||||
# sh -e approve.sh amd64 7.1-RELEASE
|
||||
to sign the build.
|
||||
|
|
@ -1,978 +0,0 @@
|
|||
# $FreeBSD$
|
||||
# sh scripts/init.sh amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:04:36 PDT 2009 Starting fetch for FreeBSD/amd64 7.2-RELEASE
|
||||
/usr/local/freebsd-update-server/work/7.2-RELE100% of 588 MB 359 kBps 00m00s
|
||||
Mon Aug 24 16:32:38 PDT 2009 Verifying disc1 hash for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:32:44 PDT 2009 Extracting components for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:34:05 PDT 2009 Constructing world+src image for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 16:35:57 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 23:36:24 UTC 2009 Building world for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:31:29 UTC 2009 Distributing world for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:32:36 UTC 2009 Building and distributing kernels for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:44:44 UTC 2009 Constructing world components for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Aug 25 00:44:56 UTC 2009 Distributing source for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:46:18 PDT 2009 Moving components into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:46:33 PDT 2009 Identifying extra documentation for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:47:13 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:47:18 PDT 2009 Indexing release for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 17:50:44 PDT 2009 Indexing world0 for FreeBSD/amd64 7.2-RELEASE
|
||||
|
||||
Files built but not released:
|
||||
Files released but not built:
|
||||
Files which differ by more than contents:
|
||||
Files which differ between release and build:
|
||||
kernel|generic|/GENERIC/hptrr.ko
|
||||
kernel|generic|/GENERIC/kernel
|
||||
src|sys|/sys/conf/newvers.sh
|
||||
world|base|/boot/loader
|
||||
world|base|/boot/pxeboot
|
||||
world|base|/etc/mail/freebsd.cf
|
||||
world|base|/etc/mail/freebsd.submit.cf
|
||||
world|base|/etc/mail/sendmail.cf
|
||||
world|base|/etc/mail/submit.cf
|
||||
world|base|/lib/libcrypto.so.5
|
||||
world|base|/usr/bin/ntpq
|
||||
world|base|/usr/lib/libalias.a
|
||||
world|base|/usr/lib/libalias_cuseeme.a
|
||||
world|base|/usr/lib/libalias_dummy.a
|
||||
world|base|/usr/lib/libalias_ftp.a
|
||||
world|base|/usr/lib/libalias_irc.a
|
||||
world|base|/usr/lib/libalias_nbt.a
|
||||
world|base|/usr/lib/libalias_pptp.a
|
||||
world|base|/usr/lib/libalias_skinny.a
|
||||
world|base|/usr/lib/libalias_smedia.a
|
||||
world|base|/usr/lib/libarchive.a
|
||||
world|base|/usr/lib/libasn1.a
|
||||
world|base|/usr/lib/libavl.a
|
||||
world|base|/usr/lib/libbegemot.a
|
||||
world|base|/usr/lib/libbluetooth.a
|
||||
world|base|/usr/lib/libbsdxml.a
|
||||
world|base|/usr/lib/libbsm.a
|
||||
world|base|/usr/lib/libbsnmp.a
|
||||
world|base|/usr/lib/libbz2.a
|
||||
world|base|/usr/lib/libc.a
|
||||
world|base|/usr/lib/libc_pic.a
|
||||
world|base|/usr/lib/libcalendar.a
|
||||
world|base|/usr/lib/libcam.a
|
||||
world|base|/usr/lib/libcom_err.a
|
||||
world|base|/usr/lib/libcompat.a
|
||||
world|base|/usr/lib/libcrypt.a
|
||||
world|base|/usr/lib/libcrypto.a
|
||||
world|base|/usr/lib/libctf.a
|
||||
world|base|/usr/lib/libdevinfo.a
|
||||
world|base|/usr/lib/libdevstat.a
|
||||
world|base|/usr/lib/libdialog.a
|
||||
world|base|/usr/lib/libdisk.a
|
||||
world|base|/usr/lib/libdtrace.a
|
||||
world|base|/usr/lib/libdwarf.a
|
||||
world|base|/usr/lib/libedit.a
|
||||
world|base|/usr/lib/libelf.a
|
||||
world|base|/usr/lib/libfetch.a
|
||||
world|base|/usr/lib/libfl.a
|
||||
world|base|/usr/lib/libform.a
|
||||
world|base|/usr/lib/libformw.a
|
||||
world|base|/usr/lib/libftpio.a
|
||||
world|base|/usr/lib/libgcc.a
|
||||
world|base|/usr/lib/libgcc_eh.a
|
||||
world|base|/usr/lib/libgcov.a
|
||||
world|base|/usr/lib/libgeom.a
|
||||
world|base|/usr/lib/libgnuregex.a
|
||||
world|base|/usr/lib/libgomp.a
|
||||
world|base|/usr/lib/libgpib.a
|
||||
world|base|/usr/lib/libgssapi.a
|
||||
world|base|/usr/lib/libgssapi_krb5.a
|
||||
world|base|/usr/lib/libhdb.a
|
||||
world|base|/usr/lib/libhistory.a
|
||||
world|base|/usr/lib/libipsec.a
|
||||
world|base|/usr/lib/libipx.a
|
||||
world|base|/usr/lib/libkadm5clnt.a
|
||||
world|base|/usr/lib/libkadm5srv.a
|
||||
world|base|/usr/lib/libkafs5.a
|
||||
world|base|/usr/lib/libkiconv.a
|
||||
world|base|/usr/lib/libkrb5.a
|
||||
world|base|/usr/lib/libkvm.a
|
||||
world|base|/usr/lib/libl.a
|
||||
world|base|/usr/lib/libln.a
|
||||
world|base|/usr/lib/liblwres.a
|
||||
world|base|/usr/lib/libm.a
|
||||
world|base|/usr/lib/libmagic.a
|
||||
world|base|/usr/lib/libmd.a
|
||||
world|base|/usr/lib/libmemstat.a
|
||||
world|base|/usr/lib/libmenu.a
|
||||
world|base|/usr/lib/libmenuw.a
|
||||
world|base|/usr/lib/libmilter.a
|
||||
world|base|/usr/lib/libmp.a
|
||||
world|base|/usr/lib/libncp.a
|
||||
world|base|/usr/lib/libncurses.a
|
||||
world|base|/usr/lib/libncursesw.a
|
||||
world|base|/usr/lib/libnetgraph.a
|
||||
world|base|/usr/lib/libngatm.a
|
||||
world|base|/usr/lib/libnvpair.a
|
||||
world|base|/usr/lib/libobjc.a
|
||||
world|base|/usr/lib/libopie.a
|
||||
world|base|/usr/lib/libpam.a
|
||||
world|base|/usr/lib/libpanel.a
|
||||
world|base|/usr/lib/libpanelw.a
|
||||
world|base|/usr/lib/libpcap.a
|
||||
world|base|/usr/lib/libpmc.a
|
||||
world|base|/usr/lib/libproc.a
|
||||
world|base|/usr/lib/libradius.a
|
||||
world|base|/usr/lib/libreadline.a
|
||||
world|base|/usr/lib/libroken.a
|
||||
world|base|/usr/lib/librpcsvc.a
|
||||
world|base|/usr/lib/librt.a
|
||||
world|base|/usr/lib/libsbuf.a
|
||||
world|base|/usr/lib/libsdp.a
|
||||
world|base|/usr/lib/libsmb.a
|
||||
world|base|/usr/lib/libssh.a
|
||||
world|base|/usr/lib/libssl.a
|
||||
world|base|/usr/lib/libssp.a
|
||||
world|base|/usr/lib/libssp_nonshared.a
|
||||
world|base|/usr/lib/libstand.a
|
||||
world|base|/usr/lib/libstdc++.a
|
||||
world|base|/usr/lib/libsupc++.a
|
||||
world|base|/usr/lib/libtacplus.a
|
||||
world|base|/usr/lib/libthr.a
|
||||
world|base|/usr/lib/libthread_db.a
|
||||
world|base|/usr/lib/libufs.a
|
||||
world|base|/usr/lib/libugidfw.a
|
||||
world|base|/usr/lib/libumem.a
|
||||
world|base|/usr/lib/libusbhid.a
|
||||
world|base|/usr/lib/libutil.a
|
||||
world|base|/usr/lib/libuutil.a
|
||||
world|base|/usr/lib/libwrap.a
|
||||
world|base|/usr/lib/liby.a
|
||||
world|base|/usr/lib/libypclnt.a
|
||||
world|base|/usr/lib/libz.a
|
||||
world|base|/usr/lib/libzfs.a
|
||||
world|base|/usr/lib/libzpool.a
|
||||
world|base|/usr/sbin/amd
|
||||
world|base|/usr/sbin/iasl
|
||||
world|base|/usr/sbin/ntpd
|
||||
world|base|/usr/sbin/ntpdate
|
||||
world|base|/usr/sbin/ntpdc
|
||||
world|base|/usr/share/misc/magic
|
||||
world|base|/usr/share/misc/magic.mgc
|
||||
world|lib32|/usr/lib32/libalias.a
|
||||
world|lib32|/usr/lib32/libalias_cuseeme.a
|
||||
world|lib32|/usr/lib32/libalias_cuseeme_p.a
|
||||
world|lib32|/usr/lib32/libalias_dummy.a
|
||||
world|lib32|/usr/lib32/libalias_dummy_p.a
|
||||
world|lib32|/usr/lib32/libalias_ftp.a
|
||||
world|lib32|/usr/lib32/libalias_ftp_p.a
|
||||
world|lib32|/usr/lib32/libalias_irc.a
|
||||
world|lib32|/usr/lib32/libalias_irc_p.a
|
||||
world|lib32|/usr/lib32/libalias_nbt.a
|
||||
world|lib32|/usr/lib32/libalias_nbt_p.a
|
||||
world|lib32|/usr/lib32/libalias_p.a
|
||||
world|lib32|/usr/lib32/libalias_pptp.a
|
||||
world|lib32|/usr/lib32/libalias_pptp_p.a
|
||||
world|lib32|/usr/lib32/libalias_skinny.a
|
||||
world|lib32|/usr/lib32/libalias_skinny_p.a
|
||||
world|lib32|/usr/lib32/libalias_smedia.a
|
||||
world|lib32|/usr/lib32/libalias_smedia_p.a
|
||||
world|lib32|/usr/lib32/libarchive.a
|
||||
world|lib32|/usr/lib32/libarchive_p.a
|
||||
world|lib32|/usr/lib32/libasn1.a
|
||||
world|lib32|/usr/lib32/libasn1_p.a
|
||||
world|lib32|/usr/lib32/libavl.a
|
||||
world|lib32|/usr/lib32/libavl_p.a
|
||||
world|lib32|/usr/lib32/libbegemot.a
|
||||
world|lib32|/usr/lib32/libbegemot_p.a
|
||||
world|lib32|/usr/lib32/libbluetooth.a
|
||||
world|lib32|/usr/lib32/libbluetooth_p.a
|
||||
world|lib32|/usr/lib32/libbsdxml.a
|
||||
world|lib32|/usr/lib32/libbsdxml_p.a
|
||||
world|lib32|/usr/lib32/libbsm.a
|
||||
world|lib32|/usr/lib32/libbsm_p.a
|
||||
world|lib32|/usr/lib32/libbsnmp.a
|
||||
world|lib32|/usr/lib32/libbsnmp_p.a
|
||||
world|lib32|/usr/lib32/libbz2.a
|
||||
world|lib32|/usr/lib32/libbz2_p.a
|
||||
world|lib32|/usr/lib32/libc.a
|
||||
world|lib32|/usr/lib32/libc_p.a
|
||||
world|lib32|/usr/lib32/libc_pic.a
|
||||
world|lib32|/usr/lib32/libcalendar.a
|
||||
world|lib32|/usr/lib32/libcalendar_p.a
|
||||
world|lib32|/usr/lib32/libcam.a
|
||||
world|lib32|/usr/lib32/libcam_p.a
|
||||
world|lib32|/usr/lib32/libcom_err.a
|
||||
world|lib32|/usr/lib32/libcom_err_p.a
|
||||
world|lib32|/usr/lib32/libcompat.a
|
||||
world|lib32|/usr/lib32/libcompat_p.a
|
||||
world|lib32|/usr/lib32/libcrypt.a
|
||||
world|lib32|/usr/lib32/libcrypt_p.a
|
||||
world|lib32|/usr/lib32/libcrypto.a
|
||||
world|lib32|/usr/lib32/libcrypto.so.5
|
||||
world|lib32|/usr/lib32/libcrypto_p.a
|
||||
world|lib32|/usr/lib32/libctf.a
|
||||
world|lib32|/usr/lib32/libctf_p.a
|
||||
world|lib32|/usr/lib32/libdevinfo.a
|
||||
world|lib32|/usr/lib32/libdevinfo_p.a
|
||||
world|lib32|/usr/lib32/libdevstat.a
|
||||
world|lib32|/usr/lib32/libdevstat_p.a
|
||||
world|lib32|/usr/lib32/libdialog.a
|
||||
world|lib32|/usr/lib32/libdialog_p.a
|
||||
world|lib32|/usr/lib32/libdisk.a
|
||||
world|lib32|/usr/lib32/libdtrace.a
|
||||
world|lib32|/usr/lib32/libdtrace_p.a
|
||||
world|lib32|/usr/lib32/libdwarf.a
|
||||
world|lib32|/usr/lib32/libdwarf_p.a
|
||||
world|lib32|/usr/lib32/libedit.a
|
||||
world|lib32|/usr/lib32/libedit_p.a
|
||||
world|lib32|/usr/lib32/libelf.a
|
||||
world|lib32|/usr/lib32/libelf_p.a
|
||||
world|lib32|/usr/lib32/libfetch.a
|
||||
world|lib32|/usr/lib32/libfetch_p.a
|
||||
world|lib32|/usr/lib32/libform.a
|
||||
world|lib32|/usr/lib32/libform_p.a
|
||||
world|lib32|/usr/lib32/libformw.a
|
||||
world|lib32|/usr/lib32/libformw_p.a
|
||||
world|lib32|/usr/lib32/libftpio.a
|
||||
world|lib32|/usr/lib32/libftpio_p.a
|
||||
world|lib32|/usr/lib32/libgcc.a
|
||||
world|lib32|/usr/lib32/libgcc_eh.a
|
||||
world|lib32|/usr/lib32/libgcc_eh_p.a
|
||||
world|lib32|/usr/lib32/libgcc_p.a
|
||||
world|lib32|/usr/lib32/libgcov.a
|
||||
world|lib32|/usr/lib32/libgeom.a
|
||||
world|lib32|/usr/lib32/libgeom_p.a
|
||||
world|lib32|/usr/lib32/libgnuregex.a
|
||||
world|lib32|/usr/lib32/libgnuregex_p.a
|
||||
world|lib32|/usr/lib32/libgomp.a
|
||||
world|lib32|/usr/lib32/libgomp_p.a
|
||||
world|lib32|/usr/lib32/libgpib.a
|
||||
world|lib32|/usr/lib32/libgpib_p.a
|
||||
world|lib32|/usr/lib32/libgssapi.a
|
||||
world|lib32|/usr/lib32/libgssapi_krb5.a
|
||||
world|lib32|/usr/lib32/libgssapi_krb5_p.a
|
||||
world|lib32|/usr/lib32/libgssapi_p.a
|
||||
world|lib32|/usr/lib32/libhdb.a
|
||||
world|lib32|/usr/lib32/libhdb_p.a
|
||||
world|lib32|/usr/lib32/libhistory.a
|
||||
world|lib32|/usr/lib32/libhistory_p.a
|
||||
world|lib32|/usr/lib32/libipsec.a
|
||||
world|lib32|/usr/lib32/libipsec_p.a
|
||||
world|lib32|/usr/lib32/libipx.a
|
||||
world|lib32|/usr/lib32/libipx_p.a
|
||||
world|lib32|/usr/lib32/libkadm5clnt.a
|
||||
world|lib32|/usr/lib32/libkadm5clnt_p.a
|
||||
world|lib32|/usr/lib32/libkadm5srv.a
|
||||
world|lib32|/usr/lib32/libkadm5srv_p.a
|
||||
world|lib32|/usr/lib32/libkafs5.a
|
||||
world|lib32|/usr/lib32/libkafs5_p.a
|
||||
world|lib32|/usr/lib32/libkiconv.a
|
||||
world|lib32|/usr/lib32/libkiconv_p.a
|
||||
world|lib32|/usr/lib32/libkrb5.a
|
||||
world|lib32|/usr/lib32/libkrb5_p.a
|
||||
world|lib32|/usr/lib32/libkvm.a
|
||||
world|lib32|/usr/lib32/libkvm_p.a
|
||||
world|lib32|/usr/lib32/libm.a
|
||||
world|lib32|/usr/lib32/libm_p.a
|
||||
world|lib32|/usr/lib32/libmagic.a
|
||||
world|lib32|/usr/lib32/libmagic_p.a
|
||||
world|lib32|/usr/lib32/libmd.a
|
||||
world|lib32|/usr/lib32/libmd_p.a
|
||||
world|lib32|/usr/lib32/libmemstat.a
|
||||
world|lib32|/usr/lib32/libmemstat_p.a
|
||||
world|lib32|/usr/lib32/libmenu.a
|
||||
world|lib32|/usr/lib32/libmenu_p.a
|
||||
world|lib32|/usr/lib32/libmenuw.a
|
||||
world|lib32|/usr/lib32/libmenuw_p.a
|
||||
world|lib32|/usr/lib32/libmilter.a
|
||||
world|lib32|/usr/lib32/libmilter_p.a
|
||||
world|lib32|/usr/lib32/libmp.a
|
||||
world|lib32|/usr/lib32/libmp_p.a
|
||||
world|lib32|/usr/lib32/libncp.a
|
||||
world|lib32|/usr/lib32/libncp_p.a
|
||||
world|lib32|/usr/lib32/libncurses.a
|
||||
world|lib32|/usr/lib32/libncurses_p.a
|
||||
world|lib32|/usr/lib32/libncursesw.a
|
||||
world|lib32|/usr/lib32/libncursesw_p.a
|
||||
world|lib32|/usr/lib32/libnetgraph.a
|
||||
world|lib32|/usr/lib32/libnetgraph_p.a
|
||||
world|lib32|/usr/lib32/libngatm.a
|
||||
world|lib32|/usr/lib32/libngatm_p.a
|
||||
world|lib32|/usr/lib32/libnvpair.a
|
||||
world|lib32|/usr/lib32/libnvpair_p.a
|
||||
world|lib32|/usr/lib32/libobjc.a
|
||||
world|lib32|/usr/lib32/libobjc_p.a
|
||||
world|lib32|/usr/lib32/libopie.a
|
||||
world|lib32|/usr/lib32/libopie_p.a
|
||||
world|lib32|/usr/lib32/libpam.a
|
||||
world|lib32|/usr/lib32/libpanel.a
|
||||
world|lib32|/usr/lib32/libpanel_p.a
|
||||
world|lib32|/usr/lib32/libpanelw.a
|
||||
world|lib32|/usr/lib32/libpanelw_p.a
|
||||
world|lib32|/usr/lib32/libpcap.a
|
||||
world|lib32|/usr/lib32/libpcap_p.a
|
||||
world|lib32|/usr/lib32/libpmc.a
|
||||
world|lib32|/usr/lib32/libpmc_p.a
|
||||
world|lib32|/usr/lib32/libproc.a
|
||||
world|lib32|/usr/lib32/libproc_p.a
|
||||
world|lib32|/usr/lib32/libradius.a
|
||||
world|lib32|/usr/lib32/libradius_p.a
|
||||
world|lib32|/usr/lib32/libreadline.a
|
||||
world|lib32|/usr/lib32/libreadline_p.a
|
||||
world|lib32|/usr/lib32/libroken.a
|
||||
world|lib32|/usr/lib32/libroken_p.a
|
||||
world|lib32|/usr/lib32/librpcsvc.a
|
||||
world|lib32|/usr/lib32/librpcsvc_p.a
|
||||
world|lib32|/usr/lib32/librt.a
|
||||
world|lib32|/usr/lib32/librt_p.a
|
||||
world|lib32|/usr/lib32/libsbuf.a
|
||||
world|lib32|/usr/lib32/libsbuf_p.a
|
||||
world|lib32|/usr/lib32/libsdp.a
|
||||
world|lib32|/usr/lib32/libsdp_p.a
|
||||
world|lib32|/usr/lib32/libsmb.a
|
||||
world|lib32|/usr/lib32/libsmb_p.a
|
||||
world|lib32|/usr/lib32/libssh.a
|
||||
world|lib32|/usr/lib32/libssh_p.a
|
||||
world|lib32|/usr/lib32/libssl.a
|
||||
world|lib32|/usr/lib32/libssl_p.a
|
||||
world|lib32|/usr/lib32/libssp.a
|
||||
world|lib32|/usr/lib32/libssp_nonshared.a
|
||||
world|lib32|/usr/lib32/libstand.a
|
||||
world|lib32|/usr/lib32/libstdc++.a
|
||||
world|lib32|/usr/lib32/libstdc++_p.a
|
||||
world|lib32|/usr/lib32/libsupc++.a
|
||||
world|lib32|/usr/lib32/libsupc++_p.a
|
||||
world|lib32|/usr/lib32/libtacplus.a
|
||||
world|lib32|/usr/lib32/libtacplus_p.a
|
||||
world|lib32|/usr/lib32/libthr.a
|
||||
world|lib32|/usr/lib32/libthr_p.a
|
||||
world|lib32|/usr/lib32/libthread_db.a
|
||||
world|lib32|/usr/lib32/libthread_db_p.a
|
||||
world|lib32|/usr/lib32/libufs.a
|
||||
world|lib32|/usr/lib32/libufs_p.a
|
||||
world|lib32|/usr/lib32/libugidfw.a
|
||||
world|lib32|/usr/lib32/libugidfw_p.a
|
||||
world|lib32|/usr/lib32/libumem.a
|
||||
world|lib32|/usr/lib32/libumem_p.a
|
||||
world|lib32|/usr/lib32/libusbhid.a
|
||||
world|lib32|/usr/lib32/libusbhid_p.a
|
||||
world|lib32|/usr/lib32/libutil.a
|
||||
world|lib32|/usr/lib32/libutil_p.a
|
||||
world|lib32|/usr/lib32/libuutil.a
|
||||
world|lib32|/usr/lib32/libuutil_p.a
|
||||
world|lib32|/usr/lib32/libvgl.a
|
||||
world|lib32|/usr/lib32/libvgl_p.a
|
||||
world|lib32|/usr/lib32/libwrap.a
|
||||
world|lib32|/usr/lib32/libwrap_p.a
|
||||
world|lib32|/usr/lib32/liby.a
|
||||
world|lib32|/usr/lib32/liby_p.a
|
||||
world|lib32|/usr/lib32/libypclnt.a
|
||||
world|lib32|/usr/lib32/libypclnt_p.a
|
||||
world|lib32|/usr/lib32/libz.a
|
||||
world|lib32|/usr/lib32/libz_p.a
|
||||
world|lib32|/usr/lib32/libzfs.a
|
||||
world|lib32|/usr/lib32/libzfs_p.a
|
||||
world|lib32|/usr/lib32/libzpool.a
|
||||
world|proflibs|/usr/lib/libalias_cuseeme_p.a
|
||||
world|proflibs|/usr/lib/libalias_dummy_p.a
|
||||
world|proflibs|/usr/lib/libalias_ftp_p.a
|
||||
world|proflibs|/usr/lib/libalias_irc_p.a
|
||||
world|proflibs|/usr/lib/libalias_nbt_p.a
|
||||
world|proflibs|/usr/lib/libalias_p.a
|
||||
world|proflibs|/usr/lib/libalias_pptp_p.a
|
||||
world|proflibs|/usr/lib/libalias_skinny_p.a
|
||||
world|proflibs|/usr/lib/libalias_smedia_p.a
|
||||
world|proflibs|/usr/lib/libarchive_p.a
|
||||
world|proflibs|/usr/lib/libasn1_p.a
|
||||
world|proflibs|/usr/lib/libavl_p.a
|
||||
world|proflibs|/usr/lib/libbegemot_p.a
|
||||
world|proflibs|/usr/lib/libbluetooth_p.a
|
||||
world|proflibs|/usr/lib/libbsdxml_p.a
|
||||
world|proflibs|/usr/lib/libbsm_p.a
|
||||
world|proflibs|/usr/lib/libbsnmp_p.a
|
||||
world|proflibs|/usr/lib/libbz2_p.a
|
||||
world|proflibs|/usr/lib/libc_p.a
|
||||
world|proflibs|/usr/lib/libcalendar_p.a
|
||||
world|proflibs|/usr/lib/libcam_p.a
|
||||
world|proflibs|/usr/lib/libcom_err_p.a
|
||||
world|proflibs|/usr/lib/libcompat_p.a
|
||||
world|proflibs|/usr/lib/libcrypt_p.a
|
||||
world|proflibs|/usr/lib/libcrypto_p.a
|
||||
world|proflibs|/usr/lib/libctf_p.a
|
||||
world|proflibs|/usr/lib/libdevinfo_p.a
|
||||
world|proflibs|/usr/lib/libdevstat_p.a
|
||||
world|proflibs|/usr/lib/libdialog_p.a
|
||||
world|proflibs|/usr/lib/libdtrace_p.a
|
||||
world|proflibs|/usr/lib/libdwarf_p.a
|
||||
world|proflibs|/usr/lib/libedit_p.a
|
||||
world|proflibs|/usr/lib/libelf_p.a
|
||||
world|proflibs|/usr/lib/libfetch_p.a
|
||||
world|proflibs|/usr/lib/libfl_p.a
|
||||
world|proflibs|/usr/lib/libform_p.a
|
||||
world|proflibs|/usr/lib/libformw_p.a
|
||||
world|proflibs|/usr/lib/libftpio_p.a
|
||||
world|proflibs|/usr/lib/libgcc_eh_p.a
|
||||
world|proflibs|/usr/lib/libgcc_p.a
|
||||
world|proflibs|/usr/lib/libgeom_p.a
|
||||
world|proflibs|/usr/lib/libgnuregex_p.a
|
||||
world|proflibs|/usr/lib/libgomp_p.a
|
||||
world|proflibs|/usr/lib/libgpib_p.a
|
||||
world|proflibs|/usr/lib/libgssapi_krb5_p.a
|
||||
world|proflibs|/usr/lib/libgssapi_p.a
|
||||
world|proflibs|/usr/lib/libhdb_p.a
|
||||
world|proflibs|/usr/lib/libhistory_p.a
|
||||
world|proflibs|/usr/lib/libipsec_p.a
|
||||
world|proflibs|/usr/lib/libipx_p.a
|
||||
world|proflibs|/usr/lib/libkadm5clnt_p.a
|
||||
world|proflibs|/usr/lib/libkadm5srv_p.a
|
||||
world|proflibs|/usr/lib/libkafs5_p.a
|
||||
world|proflibs|/usr/lib/libkiconv_p.a
|
||||
world|proflibs|/usr/lib/libkrb5_p.a
|
||||
world|proflibs|/usr/lib/libkvm_p.a
|
||||
world|proflibs|/usr/lib/libl_p.a
|
||||
world|proflibs|/usr/lib/libln_p.a
|
||||
world|proflibs|/usr/lib/liblwres_p.a
|
||||
world|proflibs|/usr/lib/libm_p.a
|
||||
world|proflibs|/usr/lib/libmagic_p.a
|
||||
world|proflibs|/usr/lib/libmd_p.a
|
||||
world|proflibs|/usr/lib/libmemstat_p.a
|
||||
world|proflibs|/usr/lib/libmenu_p.a
|
||||
world|proflibs|/usr/lib/libmenuw_p.a
|
||||
world|proflibs|/usr/lib/libmilter_p.a
|
||||
world|proflibs|/usr/lib/libmp_p.a
|
||||
world|proflibs|/usr/lib/libncp_p.a
|
||||
world|proflibs|/usr/lib/libncurses_p.a
|
||||
world|proflibs|/usr/lib/libncursesw_p.a
|
||||
world|proflibs|/usr/lib/libnetgraph_p.a
|
||||
world|proflibs|/usr/lib/libngatm_p.a
|
||||
world|proflibs|/usr/lib/libnvpair_p.a
|
||||
world|proflibs|/usr/lib/libobjc_p.a
|
||||
world|proflibs|/usr/lib/libopie_p.a
|
||||
world|proflibs|/usr/lib/libpanel_p.a
|
||||
world|proflibs|/usr/lib/libpanelw_p.a
|
||||
world|proflibs|/usr/lib/libpcap_p.a
|
||||
world|proflibs|/usr/lib/libpmc_p.a
|
||||
world|proflibs|/usr/lib/libproc_p.a
|
||||
world|proflibs|/usr/lib/libradius_p.a
|
||||
world|proflibs|/usr/lib/libreadline_p.a
|
||||
world|proflibs|/usr/lib/libroken_p.a
|
||||
world|proflibs|/usr/lib/librpcsvc_p.a
|
||||
world|proflibs|/usr/lib/librt_p.a
|
||||
world|proflibs|/usr/lib/libsbuf_p.a
|
||||
world|proflibs|/usr/lib/libsdp_p.a
|
||||
world|proflibs|/usr/lib/libsmb_p.a
|
||||
world|proflibs|/usr/lib/libssh_p.a
|
||||
world|proflibs|/usr/lib/libssl_p.a
|
||||
world|proflibs|/usr/lib/libstdc++_p.a
|
||||
world|proflibs|/usr/lib/libsupc++_p.a
|
||||
world|proflibs|/usr/lib/libtacplus_p.a
|
||||
world|proflibs|/usr/lib/libthr_p.a
|
||||
world|proflibs|/usr/lib/libthread_db_p.a
|
||||
world|proflibs|/usr/lib/libufs_p.a
|
||||
world|proflibs|/usr/lib/libugidfw_p.a
|
||||
world|proflibs|/usr/lib/libumem_p.a
|
||||
world|proflibs|/usr/lib/libusbhid_p.a
|
||||
world|proflibs|/usr/lib/libutil_p.a
|
||||
world|proflibs|/usr/lib/libuutil_p.a
|
||||
world|proflibs|/usr/lib/libwrap_p.a
|
||||
world|proflibs|/usr/lib/liby_p.a
|
||||
world|proflibs|/usr/lib/libypclnt_p.a
|
||||
world|proflibs|/usr/lib/libz_p.a
|
||||
world|proflibs|/usr/lib/libzfs_p.a
|
||||
|
||||
Mon Aug 24 17:54:07 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 00:54:34 UTC 2010 Building world for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 01:49:42 UTC 2010 Distributing world for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 01:50:50 UTC 2010 Building and distributing kernels for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 02:02:56 UTC 2010 Constructing world components for FreeBSD/amd64 7.2-RELEASE
|
||||
Wed Sep 29 02:03:08 UTC 2010 Distributing source for FreeBSD/amd64 7.2-RELEASE
|
||||
Tue Sep 28 19:04:31 PDT 2010 Moving components into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:04:46 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:04:51 PDT 2009 Indexing world1 for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:08:04 PDT 2009 Locating build stamps for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:10:19 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:10:19 PDT 2009 Preparing to copy files into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 19:10:20 PDT 2009 Copying data files into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 12:16:57 PDT 2009 Copying metadata files into staging area for FreeBSD/amd64 7.2-RELEASE
|
||||
Mon Aug 24 12:16:59 PDT 2009 Constructing metadata index and tag for FreeBSD/amd64 7.2-RELEASE
|
||||
|
||||
Files found which include build stamps:
|
||||
kernel|generic|/GENERIC/hptrr.ko
|
||||
kernel|generic|/GENERIC/kernel
|
||||
world|base|/boot/loader
|
||||
world|base|/boot/pxeboot
|
||||
world|base|/etc/mail/freebsd.cf
|
||||
world|base|/etc/mail/freebsd.submit.cf
|
||||
world|base|/etc/mail/sendmail.cf
|
||||
world|base|/etc/mail/submit.cf
|
||||
world|base|/lib/libcrypto.so.5
|
||||
world|base|/usr/bin/ntpq
|
||||
world|base|/usr/include/osreldate.h
|
||||
world|base|/usr/lib/libalias.a
|
||||
world|base|/usr/lib/libalias_cuseeme.a
|
||||
world|base|/usr/lib/libalias_dummy.a
|
||||
world|base|/usr/lib/libalias_ftp.a
|
||||
world|base|/usr/lib/libalias_irc.a
|
||||
world|base|/usr/lib/libalias_nbt.a
|
||||
world|base|/usr/lib/libalias_pptp.a
|
||||
world|base|/usr/lib/libalias_skinny.a
|
||||
world|base|/usr/lib/libalias_smedia.a
|
||||
world|base|/usr/lib/libarchive.a
|
||||
world|base|/usr/lib/libasn1.a
|
||||
world|base|/usr/lib/libavl.a
|
||||
world|base|/usr/lib/libbegemot.a
|
||||
world|base|/usr/lib/libbluetooth.a
|
||||
world|base|/usr/lib/libbsdxml.a
|
||||
world|base|/usr/lib/libbsm.a
|
||||
world|base|/usr/lib/libbsnmp.a
|
||||
world|base|/usr/lib/libbz2.a
|
||||
world|base|/usr/lib/libc.a
|
||||
world|base|/usr/lib/libc_pic.a
|
||||
world|base|/usr/lib/libcalendar.a
|
||||
world|base|/usr/lib/libcam.a
|
||||
world|base|/usr/lib/libcom_err.a
|
||||
world|base|/usr/lib/libcompat.a
|
||||
world|base|/usr/lib/libcrypt.a
|
||||
world|base|/usr/lib/libcrypto.a
|
||||
world|base|/usr/lib/libctf.a
|
||||
world|base|/usr/lib/libdevinfo.a
|
||||
world|base|/usr/lib/libdevstat.a
|
||||
world|base|/usr/lib/libdialog.a
|
||||
world|base|/usr/lib/libdisk.a
|
||||
world|base|/usr/lib/libdtrace.a
|
||||
world|base|/usr/lib/libdwarf.a
|
||||
world|base|/usr/lib/libedit.a
|
||||
world|base|/usr/lib/libelf.a
|
||||
world|base|/usr/lib/libfetch.a
|
||||
world|base|/usr/lib/libfl.a
|
||||
world|base|/usr/lib/libform.a
|
||||
world|base|/usr/lib/libformw.a
|
||||
world|base|/usr/lib/libftpio.a
|
||||
world|base|/usr/lib/libgcc.a
|
||||
world|base|/usr/lib/libgcc_eh.a
|
||||
world|base|/usr/lib/libgcov.a
|
||||
world|base|/usr/lib/libgeom.a
|
||||
world|base|/usr/lib/libgnuregex.a
|
||||
world|base|/usr/lib/libgomp.a
|
||||
world|base|/usr/lib/libgpib.a
|
||||
world|base|/usr/lib/libgssapi.a
|
||||
world|base|/usr/lib/libgssapi_krb5.a
|
||||
world|base|/usr/lib/libhdb.a
|
||||
world|base|/usr/lib/libhistory.a
|
||||
world|base|/usr/lib/libipsec.a
|
||||
world|base|/usr/lib/libipx.a
|
||||
world|base|/usr/lib/libkadm5clnt.a
|
||||
world|base|/usr/lib/libkadm5srv.a
|
||||
world|base|/usr/lib/libkafs5.a
|
||||
world|base|/usr/lib/libkiconv.a
|
||||
world|base|/usr/lib/libkrb5.a
|
||||
world|base|/usr/lib/libkvm.a
|
||||
world|base|/usr/lib/libl.a
|
||||
world|base|/usr/lib/libln.a
|
||||
world|base|/usr/lib/liblwres.a
|
||||
world|base|/usr/lib/libm.a
|
||||
world|base|/usr/lib/libmagic.a
|
||||
world|base|/usr/lib/libmd.a
|
||||
world|base|/usr/lib/libmemstat.a
|
||||
world|base|/usr/lib/libmenu.a
|
||||
world|base|/usr/lib/libmenuw.a
|
||||
world|base|/usr/lib/libmilter.a
|
||||
world|base|/usr/lib/libmp.a
|
||||
world|base|/usr/lib/libncp.a
|
||||
world|base|/usr/lib/libncurses.a
|
||||
world|base|/usr/lib/libncursesw.a
|
||||
world|base|/usr/lib/libnetgraph.a
|
||||
world|base|/usr/lib/libngatm.a
|
||||
world|base|/usr/lib/libnvpair.a
|
||||
world|base|/usr/lib/libobjc.a
|
||||
world|base|/usr/lib/libopie.a
|
||||
world|base|/usr/lib/libpam.a
|
||||
world|base|/usr/lib/libpanel.a
|
||||
world|base|/usr/lib/libpanelw.a
|
||||
world|base|/usr/lib/libpcap.a
|
||||
world|base|/usr/lib/libpmc.a
|
||||
world|base|/usr/lib/libproc.a
|
||||
world|base|/usr/lib/libradius.a
|
||||
world|base|/usr/lib/libreadline.a
|
||||
world|base|/usr/lib/libroken.a
|
||||
world|base|/usr/lib/librpcsvc.a
|
||||
world|base|/usr/lib/librt.a
|
||||
world|base|/usr/lib/libsbuf.a
|
||||
world|base|/usr/lib/libsdp.a
|
||||
world|base|/usr/lib/libsmb.a
|
||||
world|base|/usr/lib/libssh.a
|
||||
world|base|/usr/lib/libssl.a
|
||||
world|base|/usr/lib/libssp.a
|
||||
world|base|/usr/lib/libssp_nonshared.a
|
||||
world|base|/usr/lib/libstand.a
|
||||
world|base|/usr/lib/libstdc++.a
|
||||
world|base|/usr/lib/libsupc++.a
|
||||
world|base|/usr/lib/libtacplus.a
|
||||
world|base|/usr/lib/libthr.a
|
||||
world|base|/usr/lib/libthread_db.a
|
||||
world|base|/usr/lib/libufs.a
|
||||
world|base|/usr/lib/libugidfw.a
|
||||
world|base|/usr/lib/libumem.a
|
||||
world|base|/usr/lib/libusbhid.a
|
||||
world|base|/usr/lib/libutil.a
|
||||
world|base|/usr/lib/libuutil.a
|
||||
world|base|/usr/lib/libwrap.a
|
||||
world|base|/usr/lib/liby.a
|
||||
world|base|/usr/lib/libypclnt.a
|
||||
world|base|/usr/lib/libz.a
|
||||
world|base|/usr/lib/libzfs.a
|
||||
world|base|/usr/lib/libzpool.a
|
||||
world|base|/usr/sbin/amd
|
||||
world|base|/usr/sbin/iasl
|
||||
world|base|/usr/sbin/ntpd
|
||||
world|base|/usr/sbin/ntpdate
|
||||
world|base|/usr/sbin/ntpdc
|
||||
world|lib32|/usr/lib32/libalias.a
|
||||
world|lib32|/usr/lib32/libalias_cuseeme.a
|
||||
world|lib32|/usr/lib32/libalias_cuseeme_p.a
|
||||
world|lib32|/usr/lib32/libalias_dummy.a
|
||||
world|lib32|/usr/lib32/libalias_dummy_p.a
|
||||
world|lib32|/usr/lib32/libalias_ftp.a
|
||||
world|lib32|/usr/lib32/libalias_ftp_p.a
|
||||
world|lib32|/usr/lib32/libalias_irc.a
|
||||
world|lib32|/usr/lib32/libalias_irc_p.a
|
||||
world|lib32|/usr/lib32/libalias_nbt.a
|
||||
world|lib32|/usr/lib32/libalias_nbt_p.a
|
||||
world|lib32|/usr/lib32/libalias_p.a
|
||||
world|lib32|/usr/lib32/libalias_pptp.a
|
||||
world|lib32|/usr/lib32/libalias_pptp_p.a
|
||||
world|lib32|/usr/lib32/libalias_skinny.a
|
||||
world|lib32|/usr/lib32/libalias_skinny_p.a
|
||||
world|lib32|/usr/lib32/libalias_smedia.a
|
||||
world|lib32|/usr/lib32/libalias_smedia_p.a
|
||||
world|lib32|/usr/lib32/libarchive.a
|
||||
world|lib32|/usr/lib32/libarchive_p.a
|
||||
world|lib32|/usr/lib32/libasn1.a
|
||||
world|lib32|/usr/lib32/libasn1_p.a
|
||||
world|lib32|/usr/lib32/libavl.a
|
||||
world|lib32|/usr/lib32/libavl_p.a
|
||||
world|lib32|/usr/lib32/libbegemot.a
|
||||
world|lib32|/usr/lib32/libbegemot_p.a
|
||||
world|lib32|/usr/lib32/libbluetooth.a
|
||||
world|lib32|/usr/lib32/libbluetooth_p.a
|
||||
world|lib32|/usr/lib32/libbsdxml.a
|
||||
world|lib32|/usr/lib32/libbsdxml_p.a
|
||||
world|lib32|/usr/lib32/libbsm.a
|
||||
world|lib32|/usr/lib32/libbsm_p.a
|
||||
world|lib32|/usr/lib32/libbsnmp.a
|
||||
world|lib32|/usr/lib32/libbsnmp_p.a
|
||||
world|lib32|/usr/lib32/libbz2.a
|
||||
world|lib32|/usr/lib32/libbz2_p.a
|
||||
world|lib32|/usr/lib32/libc.a
|
||||
world|lib32|/usr/lib32/libc_p.a
|
||||
world|lib32|/usr/lib32/libc_pic.a
|
||||
world|lib32|/usr/lib32/libcalendar.a
|
||||
world|lib32|/usr/lib32/libcalendar_p.a
|
||||
world|lib32|/usr/lib32/libcam.a
|
||||
world|lib32|/usr/lib32/libcam_p.a
|
||||
world|lib32|/usr/lib32/libcom_err.a
|
||||
world|lib32|/usr/lib32/libcom_err_p.a
|
||||
world|lib32|/usr/lib32/libcompat.a
|
||||
world|lib32|/usr/lib32/libcompat_p.a
|
||||
world|lib32|/usr/lib32/libcrypt.a
|
||||
world|lib32|/usr/lib32/libcrypt_p.a
|
||||
world|lib32|/usr/lib32/libcrypto.a
|
||||
world|lib32|/usr/lib32/libcrypto.so.5
|
||||
world|lib32|/usr/lib32/libcrypto_p.a
|
||||
world|lib32|/usr/lib32/libctf.a
|
||||
world|lib32|/usr/lib32/libctf_p.a
|
||||
world|lib32|/usr/lib32/libdevinfo.a
|
||||
world|lib32|/usr/lib32/libdevinfo_p.a
|
||||
world|lib32|/usr/lib32/libdevstat.a
|
||||
world|lib32|/usr/lib32/libdevstat_p.a
|
||||
world|lib32|/usr/lib32/libdialog.a
|
||||
world|lib32|/usr/lib32/libdialog_p.a
|
||||
world|lib32|/usr/lib32/libdisk.a
|
||||
world|lib32|/usr/lib32/libdtrace.a
|
||||
world|lib32|/usr/lib32/libdtrace_p.a
|
||||
world|lib32|/usr/lib32/libdwarf.a
|
||||
world|lib32|/usr/lib32/libdwarf_p.a
|
||||
world|lib32|/usr/lib32/libedit.a
|
||||
world|lib32|/usr/lib32/libedit_p.a
|
||||
world|lib32|/usr/lib32/libelf.a
|
||||
world|lib32|/usr/lib32/libelf_p.a
|
||||
world|lib32|/usr/lib32/libfetch.a
|
||||
world|lib32|/usr/lib32/libfetch_p.a
|
||||
world|lib32|/usr/lib32/libform.a
|
||||
world|lib32|/usr/lib32/libform_p.a
|
||||
world|lib32|/usr/lib32/libformw.a
|
||||
world|lib32|/usr/lib32/libformw_p.a
|
||||
world|lib32|/usr/lib32/libftpio.a
|
||||
world|lib32|/usr/lib32/libftpio_p.a
|
||||
world|lib32|/usr/lib32/libgcc.a
|
||||
world|lib32|/usr/lib32/libgcc_eh.a
|
||||
world|lib32|/usr/lib32/libgcc_eh_p.a
|
||||
world|lib32|/usr/lib32/libgcc_p.a
|
||||
world|lib32|/usr/lib32/libgcov.a
|
||||
world|lib32|/usr/lib32/libgeom.a
|
||||
world|lib32|/usr/lib32/libgeom_p.a
|
||||
world|lib32|/usr/lib32/libgnuregex.a
|
||||
world|lib32|/usr/lib32/libgnuregex_p.a
|
||||
world|lib32|/usr/lib32/libgomp.a
|
||||
world|lib32|/usr/lib32/libgomp_p.a
|
||||
world|lib32|/usr/lib32/libgpib.a
|
||||
world|lib32|/usr/lib32/libgpib_p.a
|
||||
world|lib32|/usr/lib32/libgssapi.a
|
||||
world|lib32|/usr/lib32/libgssapi_krb5.a
|
||||
world|lib32|/usr/lib32/libgssapi_krb5_p.a
|
||||
world|lib32|/usr/lib32/libgssapi_p.a
|
||||
world|lib32|/usr/lib32/libhdb.a
|
||||
world|lib32|/usr/lib32/libhdb_p.a
|
||||
world|lib32|/usr/lib32/libhistory.a
|
||||
world|lib32|/usr/lib32/libhistory_p.a
|
||||
world|lib32|/usr/lib32/libipsec.a
|
||||
world|lib32|/usr/lib32/libipsec_p.a
|
||||
world|lib32|/usr/lib32/libipx.a
|
||||
world|lib32|/usr/lib32/libipx_p.a
|
||||
world|lib32|/usr/lib32/libkadm5clnt.a
|
||||
world|lib32|/usr/lib32/libkadm5clnt_p.a
|
||||
world|lib32|/usr/lib32/libkadm5srv.a
|
||||
world|lib32|/usr/lib32/libkadm5srv_p.a
|
||||
world|lib32|/usr/lib32/libkafs5.a
|
||||
world|lib32|/usr/lib32/libkafs5_p.a
|
||||
world|lib32|/usr/lib32/libkiconv.a
|
||||
world|lib32|/usr/lib32/libkiconv_p.a
|
||||
world|lib32|/usr/lib32/libkrb5.a
|
||||
world|lib32|/usr/lib32/libkrb5_p.a
|
||||
world|lib32|/usr/lib32/libkvm.a
|
||||
world|lib32|/usr/lib32/libkvm_p.a
|
||||
world|lib32|/usr/lib32/libm.a
|
||||
world|lib32|/usr/lib32/libm_p.a
|
||||
world|lib32|/usr/lib32/libmagic.a
|
||||
world|lib32|/usr/lib32/libmagic_p.a
|
||||
world|lib32|/usr/lib32/libmd.a
|
||||
world|lib32|/usr/lib32/libmd_p.a
|
||||
world|lib32|/usr/lib32/libmemstat.a
|
||||
world|lib32|/usr/lib32/libmemstat_p.a
|
||||
world|lib32|/usr/lib32/libmenu.a
|
||||
world|lib32|/usr/lib32/libmenu_p.a
|
||||
world|lib32|/usr/lib32/libmenuw.a
|
||||
world|lib32|/usr/lib32/libmenuw_p.a
|
||||
world|lib32|/usr/lib32/libmilter.a
|
||||
world|lib32|/usr/lib32/libmilter_p.a
|
||||
world|lib32|/usr/lib32/libmp.a
|
||||
world|lib32|/usr/lib32/libmp_p.a
|
||||
world|lib32|/usr/lib32/libncp.a
|
||||
world|lib32|/usr/lib32/libncp_p.a
|
||||
world|lib32|/usr/lib32/libncurses.a
|
||||
world|lib32|/usr/lib32/libncurses_p.a
|
||||
world|lib32|/usr/lib32/libncursesw.a
|
||||
world|lib32|/usr/lib32/libncursesw_p.a
|
||||
world|lib32|/usr/lib32/libnetgraph.a
|
||||
world|lib32|/usr/lib32/libnetgraph_p.a
|
||||
world|lib32|/usr/lib32/libngatm.a
|
||||
world|lib32|/usr/lib32/libngatm_p.a
|
||||
world|lib32|/usr/lib32/libnvpair.a
|
||||
world|lib32|/usr/lib32/libnvpair_p.a
|
||||
world|lib32|/usr/lib32/libobjc.a
|
||||
world|lib32|/usr/lib32/libobjc_p.a
|
||||
world|lib32|/usr/lib32/libopie.a
|
||||
world|lib32|/usr/lib32/libopie_p.a
|
||||
world|lib32|/usr/lib32/libpam.a
|
||||
world|lib32|/usr/lib32/libpanel.a
|
||||
world|lib32|/usr/lib32/libpanel_p.a
|
||||
world|lib32|/usr/lib32/libpanelw.a
|
||||
world|lib32|/usr/lib32/libpanelw_p.a
|
||||
world|lib32|/usr/lib32/libpcap.a
|
||||
world|lib32|/usr/lib32/libpcap_p.a
|
||||
world|lib32|/usr/lib32/libpmc.a
|
||||
world|lib32|/usr/lib32/libpmc_p.a
|
||||
world|lib32|/usr/lib32/libproc.a
|
||||
world|lib32|/usr/lib32/libproc_p.a
|
||||
world|lib32|/usr/lib32/libradius.a
|
||||
world|lib32|/usr/lib32/libradius_p.a
|
||||
world|lib32|/usr/lib32/libreadline.a
|
||||
world|lib32|/usr/lib32/libreadline_p.a
|
||||
world|lib32|/usr/lib32/libroken.a
|
||||
world|lib32|/usr/lib32/libroken_p.a
|
||||
world|lib32|/usr/lib32/librpcsvc.a
|
||||
world|lib32|/usr/lib32/librpcsvc_p.a
|
||||
world|lib32|/usr/lib32/librt.a
|
||||
world|lib32|/usr/lib32/librt_p.a
|
||||
world|lib32|/usr/lib32/libsbuf.a
|
||||
world|lib32|/usr/lib32/libsbuf_p.a
|
||||
world|lib32|/usr/lib32/libsdp.a
|
||||
world|lib32|/usr/lib32/libsdp_p.a
|
||||
world|lib32|/usr/lib32/libsmb.a
|
||||
world|lib32|/usr/lib32/libsmb_p.a
|
||||
world|lib32|/usr/lib32/libssh.a
|
||||
world|lib32|/usr/lib32/libssh_p.a
|
||||
world|lib32|/usr/lib32/libssl.a
|
||||
world|lib32|/usr/lib32/libssl_p.a
|
||||
world|lib32|/usr/lib32/libssp.a
|
||||
world|lib32|/usr/lib32/libssp_nonshared.a
|
||||
world|lib32|/usr/lib32/libstand.a
|
||||
world|lib32|/usr/lib32/libstdc++.a
|
||||
world|lib32|/usr/lib32/libstdc++_p.a
|
||||
world|lib32|/usr/lib32/libsupc++.a
|
||||
world|lib32|/usr/lib32/libsupc++_p.a
|
||||
world|lib32|/usr/lib32/libtacplus.a
|
||||
world|lib32|/usr/lib32/libtacplus_p.a
|
||||
world|lib32|/usr/lib32/libthr.a
|
||||
world|lib32|/usr/lib32/libthr_p.a
|
||||
world|lib32|/usr/lib32/libthread_db.a
|
||||
world|lib32|/usr/lib32/libthread_db_p.a
|
||||
world|lib32|/usr/lib32/libufs.a
|
||||
world|lib32|/usr/lib32/libufs_p.a
|
||||
world|lib32|/usr/lib32/libugidfw.a
|
||||
world|lib32|/usr/lib32/libugidfw_p.a
|
||||
world|lib32|/usr/lib32/libumem.a
|
||||
world|lib32|/usr/lib32/libumem_p.a
|
||||
world|lib32|/usr/lib32/libusbhid.a
|
||||
world|lib32|/usr/lib32/libusbhid_p.a
|
||||
world|lib32|/usr/lib32/libutil.a
|
||||
world|lib32|/usr/lib32/libutil_p.a
|
||||
world|lib32|/usr/lib32/libuutil.a
|
||||
world|lib32|/usr/lib32/libuutil_p.a
|
||||
world|lib32|/usr/lib32/libvgl.a
|
||||
world|lib32|/usr/lib32/libvgl_p.a
|
||||
world|lib32|/usr/lib32/libwrap.a
|
||||
world|lib32|/usr/lib32/libwrap_p.a
|
||||
world|lib32|/usr/lib32/liby.a
|
||||
world|lib32|/usr/lib32/liby_p.a
|
||||
world|lib32|/usr/lib32/libypclnt.a
|
||||
world|lib32|/usr/lib32/libypclnt_p.a
|
||||
world|lib32|/usr/lib32/libz.a
|
||||
world|lib32|/usr/lib32/libz_p.a
|
||||
world|lib32|/usr/lib32/libzfs.a
|
||||
world|lib32|/usr/lib32/libzfs_p.a
|
||||
world|lib32|/usr/lib32/libzpool.a
|
||||
world|proflibs|/usr/lib/libalias_cuseeme_p.a
|
||||
world|proflibs|/usr/lib/libalias_dummy_p.a
|
||||
world|proflibs|/usr/lib/libalias_ftp_p.a
|
||||
world|proflibs|/usr/lib/libalias_irc_p.a
|
||||
world|proflibs|/usr/lib/libalias_nbt_p.a
|
||||
world|proflibs|/usr/lib/libalias_p.a
|
||||
world|proflibs|/usr/lib/libalias_pptp_p.a
|
||||
world|proflibs|/usr/lib/libalias_skinny_p.a
|
||||
world|proflibs|/usr/lib/libalias_smedia_p.a
|
||||
world|proflibs|/usr/lib/libarchive_p.a
|
||||
world|proflibs|/usr/lib/libasn1_p.a
|
||||
world|proflibs|/usr/lib/libavl_p.a
|
||||
world|proflibs|/usr/lib/libbegemot_p.a
|
||||
world|proflibs|/usr/lib/libbluetooth_p.a
|
||||
world|proflibs|/usr/lib/libbsdxml_p.a
|
||||
world|proflibs|/usr/lib/libbsm_p.a
|
||||
world|proflibs|/usr/lib/libbsnmp_p.a
|
||||
world|proflibs|/usr/lib/libbz2_p.a
|
||||
world|proflibs|/usr/lib/libc_p.a
|
||||
world|proflibs|/usr/lib/libcalendar_p.a
|
||||
world|proflibs|/usr/lib/libcam_p.a
|
||||
world|proflibs|/usr/lib/libcom_err_p.a
|
||||
world|proflibs|/usr/lib/libcompat_p.a
|
||||
world|proflibs|/usr/lib/libcrypt_p.a
|
||||
world|proflibs|/usr/lib/libcrypto_p.a
|
||||
world|proflibs|/usr/lib/libctf_p.a
|
||||
world|proflibs|/usr/lib/libdevinfo_p.a
|
||||
world|proflibs|/usr/lib/libdevstat_p.a
|
||||
world|proflibs|/usr/lib/libdialog_p.a
|
||||
world|proflibs|/usr/lib/libdtrace_p.a
|
||||
world|proflibs|/usr/lib/libdwarf_p.a
|
||||
world|proflibs|/usr/lib/libedit_p.a
|
||||
world|proflibs|/usr/lib/libelf_p.a
|
||||
world|proflibs|/usr/lib/libfetch_p.a
|
||||
world|proflibs|/usr/lib/libfl_p.a
|
||||
world|proflibs|/usr/lib/libform_p.a
|
||||
world|proflibs|/usr/lib/libformw_p.a
|
||||
world|proflibs|/usr/lib/libftpio_p.a
|
||||
world|proflibs|/usr/lib/libgcc_eh_p.a
|
||||
world|proflibs|/usr/lib/libgcc_p.a
|
||||
world|proflibs|/usr/lib/libgeom_p.a
|
||||
world|proflibs|/usr/lib/libgnuregex_p.a
|
||||
world|proflibs|/usr/lib/libgomp_p.a
|
||||
world|proflibs|/usr/lib/libgpib_p.a
|
||||
world|proflibs|/usr/lib/libgssapi_krb5_p.a
|
||||
world|proflibs|/usr/lib/libgssapi_p.a
|
||||
world|proflibs|/usr/lib/libhdb_p.a
|
||||
world|proflibs|/usr/lib/libhistory_p.a
|
||||
world|proflibs|/usr/lib/libipsec_p.a
|
||||
world|proflibs|/usr/lib/libipx_p.a
|
||||
world|proflibs|/usr/lib/libkadm5clnt_p.a
|
||||
world|proflibs|/usr/lib/libkadm5srv_p.a
|
||||
world|proflibs|/usr/lib/libkafs5_p.a
|
||||
world|proflibs|/usr/lib/libkiconv_p.a
|
||||
world|proflibs|/usr/lib/libkrb5_p.a
|
||||
world|proflibs|/usr/lib/libkvm_p.a
|
||||
world|proflibs|/usr/lib/libl_p.a
|
||||
world|proflibs|/usr/lib/libln_p.a
|
||||
world|proflibs|/usr/lib/liblwres_p.a
|
||||
world|proflibs|/usr/lib/libm_p.a
|
||||
world|proflibs|/usr/lib/libmagic_p.a
|
||||
world|proflibs|/usr/lib/libmd_p.a
|
||||
world|proflibs|/usr/lib/libmemstat_p.a
|
||||
world|proflibs|/usr/lib/libmenu_p.a
|
||||
world|proflibs|/usr/lib/libmenuw_p.a
|
||||
world|proflibs|/usr/lib/libmilter_p.a
|
||||
world|proflibs|/usr/lib/libmp_p.a
|
||||
world|proflibs|/usr/lib/libncp_p.a
|
||||
world|proflibs|/usr/lib/libncurses_p.a
|
||||
world|proflibs|/usr/lib/libncursesw_p.a
|
||||
world|proflibs|/usr/lib/libnetgraph_p.a
|
||||
world|proflibs|/usr/lib/libngatm_p.a
|
||||
world|proflibs|/usr/lib/libnvpair_p.a
|
||||
world|proflibs|/usr/lib/libobjc_p.a
|
||||
world|proflibs|/usr/lib/libopie_p.a
|
||||
world|proflibs|/usr/lib/libpanel_p.a
|
||||
world|proflibs|/usr/lib/libpanelw_p.a
|
||||
world|proflibs|/usr/lib/libpcap_p.a
|
||||
world|proflibs|/usr/lib/libpmc_p.a
|
||||
world|proflibs|/usr/lib/libproc_p.a
|
||||
world|proflibs|/usr/lib/libradius_p.a
|
||||
world|proflibs|/usr/lib/libreadline_p.a
|
||||
world|proflibs|/usr/lib/libroken_p.a
|
||||
world|proflibs|/usr/lib/librpcsvc_p.a
|
||||
world|proflibs|/usr/lib/librt_p.a
|
||||
world|proflibs|/usr/lib/libsbuf_p.a
|
||||
world|proflibs|/usr/lib/libsdp_p.a
|
||||
world|proflibs|/usr/lib/libsmb_p.a
|
||||
world|proflibs|/usr/lib/libssh_p.a
|
||||
world|proflibs|/usr/lib/libssl_p.a
|
||||
world|proflibs|/usr/lib/libstdc++_p.a
|
||||
world|proflibs|/usr/lib/libsupc++_p.a
|
||||
world|proflibs|/usr/lib/libtacplus_p.a
|
||||
world|proflibs|/usr/lib/libthr_p.a
|
||||
world|proflibs|/usr/lib/libthread_db_p.a
|
||||
world|proflibs|/usr/lib/libufs_p.a
|
||||
world|proflibs|/usr/lib/libugidfw_p.a
|
||||
world|proflibs|/usr/lib/libumem_p.a
|
||||
world|proflibs|/usr/lib/libusbhid_p.a
|
||||
world|proflibs|/usr/lib/libutil_p.a
|
||||
world|proflibs|/usr/lib/libuutil_p.a
|
||||
world|proflibs|/usr/lib/libwrap_p.a
|
||||
world|proflibs|/usr/lib/liby_p.a
|
||||
world|proflibs|/usr/lib/libypclnt_p.a
|
||||
world|proflibs|/usr/lib/libz_p.a
|
||||
world|proflibs|/usr/lib/libzfs_p.a
|
||||
|
||||
Values of build stamps, excluding library archive headers:
|
||||
v1.2 (Aug 25 2009 00:40:36)
|
||||
v1.2 (Aug 25 2009 00:38:22)
|
||||
@(#)FreeBSD 7.2-RELEASE #0: Tue Aug 25 00:38:29 UTC 2009
|
||||
FreeBSD 7.2-RELEASE #0: Tue Aug 25 00:38:29 UTC 2009
|
||||
root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC
|
||||
7.2-RELEASE
|
||||
Mon Aug 24 23:55:25 UTC 2009
|
||||
Mon Aug 24 23:55:25 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009
|
||||
Mon Aug 24 23:46:47 UTC 2009
|
||||
ntpq 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)
|
||||
* Copyright (c) 1992-2009 The FreeBSD Project.
|
||||
Mon Aug 24 23:46:47 UTC 2009
|
||||
Mon Aug 24 23:55:40 UTC 2009
|
||||
Aug 25 2009
|
||||
ntpd 4.2.4p5-a Mon Aug 24 23:55:52 UTC 2009 (1)
|
||||
ntpdate 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)
|
||||
ntpdc 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)
|
||||
Tue Aug 25 00:21:21 UTC 2009
|
||||
Tue Aug 25 00:21:21 UTC 2009
|
||||
Tue Aug 25 00:21:21 UTC 2009
|
||||
Mon Aug 24 23:46:47 UTC 2009
|
||||
|
||||
FreeBSD/amd64 7.2-RELEASE initialization build complete. Please
|
||||
review the list of build stamps printed above to confirm that
|
||||
they look sensible, then run
|
||||
# sh -e approve.sh amd64 7.2-RELEASE
|
||||
to sign the release.
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
# basiert auf: r46873
|
||||
#
|
||||
# Article: Leap Seconds
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="leapseconds" xml:lang="de_DE">
|
||||
|
||||
<info>
|
||||
<title>Unterstützung für Schaltsekunden in FreeBSD</title>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="leapseconds-definition">
|
||||
<title>Einleitung</title>
|
||||
|
||||
<para>Eine <emphasis>Schaltsekunde</emphasis> ist eine eigens dazu eingerichtete Korrektur, um die atomaren Zeitskalen mit der Erdrotation zu synchronisieren. Dieser Artikel beschreibt wie FreeBSD mit Schaltsekunden umgeht.</para>
|
||||
|
||||
<para>Zum Zeitpunkt der Erstellung dieses Dokuments wird die nächste Schaltsekunde am 30. Juni 2015 um 23:59:60 UTC auftreten. Diese Schaltsekunde wird während eines Arbeitstages für Nord- und Südamerika, sowie die Asien/Pazifik-Region stattfinden.</para>
|
||||
|
||||
<para>Schaltsekunden werden durch den <link xlink:href="http://datacenter.iers.org/"><acronym>IERS</acronym></link> im <link xlink:href="http://datacenter.iers.org/web/guest/bulletins/-/somos/5Rgv/product/16">Bulletin C</link> angekündigt.</para>
|
||||
|
||||
<para>Das normale Verhalten für Schaltsekunden wird in <link xlink:href="https://tools.ietf.org/html/rfc7164#section-3">RFC 7164</link> beschrieben. Lesen Sie auch <citerefentry><refentrytitle>time2posix</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="leapseconds-posix">
|
||||
<title>Handhabung von gewöhnlichen Schaltsekunden in FreeBD</title>
|
||||
|
||||
<para>Die einfachste Art, mit Schaltsekunden umzugehen, ist, die <acronym>POSIX</acronym> Zeitregeln, welche FreeBSD standardmässig verwendet, sowie <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/network-ntp.html"><acronym>NTP</acronym></link> zu benutzen. Wenn <citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</manvolnum></citerefentry> läuft und die Uhrzeit mit einem vorgeschalteten <acronym>NTP</acronym>-Server, welcher Schaltsekunden richtig handhabt, abgeglichen wird, passt das System die Uhrzeit automatisch so an, dass die letzte Sekunde des Tages wiederholt wird. Es sind keine weiteren Anpassungen nötig.</para>
|
||||
|
||||
<para>Sollte der vorgeschaltete <acronym>NTP</acronym>-Server Schaltsekunden nicht korrekt handhaben, wird <citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</manvolnum></citerefentry> die Uhrzeit um eine Sekunde anpassen nachdem der fehlerhafte Server dies bemerkt hat und seine Uhr selbst neu einstellt.</para>
|
||||
|
||||
<para>Wenn <acronym>NTP</acronym> nicht verwendet wird muss die Systemuhr manuell eingestellt werden, nachdem die Schaltsekunde vorbei ist.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="leapseconds-cautions">
|
||||
<title>Vorsichtshinweise</title>
|
||||
|
||||
<para>Schaltsekunden werden im gleichen Augenblick weltweit eingestellt: Mitternacht <acronym>UTC</acronym>. In Japan ist das in der Morgenmitte, im Pazifik am Mittag, in Nord-, Mittel- und Südamerika am späten Nachmittag und in Europa nachts.</para>
|
||||
|
||||
<para>Wir glauben und erwarten dass FreeBSD, sofern es mit einem korrekten und stabilen <acronym>NTP</acronym>-Dienst versorgt wird, wie erwartet funktionieren wird, genauso wie es das während der bisherigen Schaltsekunden auch getan hat.</para>
|
||||
|
||||
<para>Jedoch weisen wir darauf hin, dass praktisch keine Anwendung jemals den Kernel zu Schaltsekunden angefragt hat. Unsere Erfahrung ist, dass Schaltsekunden, so wie sie entwickelt wurden, einfach nur eine Wiederholung der Sekunde vor der Schaltsekunde sind und dies eine Überraschung für die meisten Anwendungsentwickler darstellt.</para>
|
||||
|
||||
<para>Andere Betriebssysteme und andere Computer behandeln die Schaltsekunde wie FreeBSD oder auch nicht und Systeme ohne einen korrekten und stabilen <acronym>NTP</acronym>-Dienst werden gar nichts über Schaltsekunden wissen.</para>
|
||||
|
||||
<para>Es ist kein ungewöhnlicher Zustand, wenn Computer wegen Schaltsekunden abstürzen und die Erfahrung hat gezeigt, dass eine grosse Menge von allen öffentlichen <acronym>NTP</acronym>-Servern die Schaltsekunde falsch behandeln oder ankündigen.</para>
|
||||
|
||||
<para>Bitte stellen Sie sicher, dass nichts schreckliches wegen der Schaltsekunde passieren kann.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="leapseconds-testing">
|
||||
<title>Überprüfen</title>
|
||||
|
||||
<para>Es ist möglich, zu überprüfen, ob eine Schaltsekunde verwendet wird. Aufgrund der Art und Weise wie <acronym>NTP</acronym> arbeitet, funktioniert der Test möglicherweise bis zu 24 Stunden vor der Schaltsekunde. Manche Hauptreferenzuhrzeitquellen kündigen Schaltsekunden erst eine Stunde vor dem Ereignis an. Fragen Sie den <acronym>NTP</acronym>-Dienst ab:</para>
|
||||
|
||||
<screen><prompt>%</prompt> <userinput>ntpq -c 'rv 0 leap'</userinput></screen>
|
||||
|
||||
<para>Ausgaben, die <literal>leap_add_sec</literal> beinhalten zeigen die korrekte Unterstützung für Schaltsekunden an. Vor den 24 Stunden, welche vor der Schaltsekunde liegen oder wenn diese vorüber ist, wird <literal>leap_none</literal> angezeigt.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="leapseconds-conclusion">
|
||||
<title>Fazit</title>
|
||||
|
||||
<para>In der Praxis sind Schaltsekunden kein Problem für FreeBSD. Wir hoffen, dass dieser Überblick dabei geholfen hat, zu klären, was zu erwarten ist und wie das Ereignis der Schaltsekunde einfacher gehandhabt werden kann.</para>
|
||||
</sect1>
|
||||
</article>
|
||||
|
|
@ -1,267 +0,0 @@
|
|||
# $FreeBSD$
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: The FreeBSD German Documentation Project\n"
|
||||
"POT-Creation-Date: 2016-02-23 07:15-0700\n"
|
||||
"PO-Revision-Date: 2015-08-25 17:42+0200\n"
|
||||
"Last-Translator: Benedict Reuschling <bcr@FreeBSD.org>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: de_DE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.4\n"
|
||||
"X-Poedit-SourceCharset: iso-8859-1\n"
|
||||
|
||||
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
|
||||
msgctxt "_"
|
||||
msgid "translator-credits"
|
||||
msgstr "bcr@freebsd.org, 2015"
|
||||
|
||||
#. (itstool) path: info/title
|
||||
#: article.translate.xml:6
|
||||
msgid "FreeBSD Support for Leap Seconds"
|
||||
msgstr "Unterstützung für Schaltsekunden in FreeBSD"
|
||||
|
||||
#. (itstool) path: info/pubdate
|
||||
#: article.translate.xml:8
|
||||
msgid ""
|
||||
"$FreeBSD: head/en_US.ISO8859-1/articles/leap-seconds/article.xml 46895 "
|
||||
"2015-06-29 16:41:41Z wblock $"
|
||||
msgstr ""
|
||||
"$FreeBSD: head/en_US.ISO8859-1/articles/leap-seconds/article.xml 46895 "
|
||||
"2015-06-29 16:41:41Z wblock $"
|
||||
|
||||
#. (itstool) path: sect1/title
|
||||
#: article.translate.xml:12
|
||||
msgid "Introduction"
|
||||
msgstr "Einleitung"
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:14
|
||||
msgid ""
|
||||
"A <emphasis>leap second</emphasis> is an ad-hoc one-second correction to "
|
||||
"synchronize atomic timescales with Earth rotation. This article describes "
|
||||
"how FreeBSD interacts with leap seconds."
|
||||
msgstr ""
|
||||
"Eine <emphasis>Schaltsekunde</emphasis> ist eine eigens dazu eingerichtete "
|
||||
"Korrektur, um die atomaren Zeitskalen mit der Erdrotation zu "
|
||||
"synchronisieren. Dieser Artikel beschreibt wie FreeBSD mit Schaltsekunden "
|
||||
"umgeht."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:19
|
||||
msgid ""
|
||||
"As of this writing, the next leap second will occur at 2015-Jun-30 23:59:60 "
|
||||
"UTC. This leap second will occur during a business day for North and South "
|
||||
"America and the Asia/Pacific region."
|
||||
msgstr ""
|
||||
"Zum Zeitpunkt der Erstellung dieses Dokuments wird die nächste Schaltsekunde "
|
||||
"am 30. Juni 2015 um 23:59:60 UTC auftreten. Diese Schaltsekunde wird während "
|
||||
"eines Arbeitstages für Nord- und Südamerika, sowie die Asien/Pazifik-Region "
|
||||
"stattfinden."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:24
|
||||
msgid ""
|
||||
"Leap seconds are announced by <link xlink:href=\"http://datacenter.iers.org/"
|
||||
"\"><acronym>IERS</acronym></link> on <link xlink:href=\"http://datacenter."
|
||||
"iers.org/web/guest/bulletins/-/somos/5Rgv/product/16\">Bulletin C</link>."
|
||||
msgstr ""
|
||||
"Schaltsekunden werden durch den <link xlink:href=\"http://datacenter.iers."
|
||||
"org/\"><acronym>IERS</acronym></link> im <link xlink:href=\"http://"
|
||||
"datacenter.iers.org/web/guest/bulletins/-/somos/5Rgv/product/16\">Bulletin "
|
||||
"C</link> angekündigt."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:28
|
||||
msgid ""
|
||||
"Standard leap second behavior is described in <link xlink:href=\"https://"
|
||||
"tools.ietf.org/html/rfc7164#section-3\">RFC 7164</link>. Also see "
|
||||
"<citerefentry><refentrytitle>time2posix</refentrytitle><manvolnum>3</"
|
||||
"manvolnum></citerefentry>."
|
||||
msgstr ""
|
||||
"Das normale Verhalten für Schaltsekunden wird in <link xlink:href=\"https://"
|
||||
"tools.ietf.org/html/rfc7164#section-3\">RFC 7164</link> beschrieben. Lesen "
|
||||
"Sie auch <citerefentry><refentrytitle>time2posix</"
|
||||
"refentrytitle><manvolnum>3</manvolnum></citerefentry>."
|
||||
|
||||
#. (itstool) path: sect1/title
|
||||
#: article.translate.xml:33
|
||||
msgid "Default Leap Second Handling on FreeBSD"
|
||||
msgstr "Handhabung von gewöhnlichen Schaltsekunden in FreeBD"
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:35
|
||||
msgid ""
|
||||
"The easiest way to handle leap seconds is with the <acronym>POSIX</acronym> "
|
||||
"time rules FreeBSD uses by default, combined with <link xlink:href="
|
||||
"\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/network-ntp.html"
|
||||
"\"><acronym>NTP</acronym></link>. When <citerefentry><refentrytitle>ntpd</"
|
||||
"refentrytitle><manvolnum>8</manvolnum></citerefentry> is running and the "
|
||||
"time is synchronized with upstream <acronym>NTP</acronym> servers that "
|
||||
"handle leap seconds correctly, the leap second will cause the system time to "
|
||||
"automatically repeat the last second of the day. No other adjustments are "
|
||||
"necessary."
|
||||
msgstr ""
|
||||
"Die einfachste Art, mit Schaltsekunden umzugehen, ist, die <acronym>POSIX</"
|
||||
"acronym> Zeitregeln, welche FreeBSD standardmässig verwendet, sowie <link "
|
||||
"xlink:href=\"@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/network-"
|
||||
"ntp.html\"><acronym>NTP</acronym></link> zu benutzen. Wenn "
|
||||
"<citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</manvolnum></"
|
||||
"citerefentry> läuft und die Uhrzeit mit einem vorgeschalteten <acronym>NTP</"
|
||||
"acronym>-Server, welcher Schaltsekunden richtig handhabt, abgeglichen wird, "
|
||||
"passt das System die Uhrzeit automatisch so an, dass die letzte Sekunde des "
|
||||
"Tages wiederholt wird. Es sind keine weiteren Anpassungen nötig."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:44
|
||||
msgid ""
|
||||
"If the upstream <acronym>NTP</acronym> servers do not handle leap seconds "
|
||||
"correctly, <citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</"
|
||||
"manvolnum></citerefentry> will step the time by one second after the errant "
|
||||
"upstream server has noticed and stepped itself."
|
||||
msgstr ""
|
||||
"Sollte der vorgeschaltete <acronym>NTP</acronym>-Server Schaltsekunden nicht "
|
||||
"korrekt handhaben, wird <citerefentry><refentrytitle>ntpd</"
|
||||
"refentrytitle><manvolnum>8</manvolnum></citerefentry> die Uhrzeit um eine "
|
||||
"Sekunde anpassen nachdem der fehlerhafte Server dies bemerkt hat und seine "
|
||||
"Uhr selbst neu einstellt."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:49
|
||||
msgid ""
|
||||
"If <acronym>NTP</acronym> is not being used, manual adjustment of the system "
|
||||
"clock will be required after the leap second has passed."
|
||||
msgstr ""
|
||||
"Wenn <acronym>NTP</acronym> nicht verwendet wird muss die Systemuhr manuell "
|
||||
"eingestellt werden, nachdem die Schaltsekunde vorbei ist."
|
||||
|
||||
#. (itstool) path: sect1/title
|
||||
#: article.translate.xml:55
|
||||
msgid "Cautions"
|
||||
msgstr "Vorsichtshinweise"
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:57
|
||||
msgid ""
|
||||
"Leap seconds are inserted at the same instant all over the world: "
|
||||
"<acronym>UTC</acronym> midnight. In Japan that is mid-morning, in the "
|
||||
"Pacific mid-day, in the Americas late afternoon, and in Europe at night."
|
||||
msgstr ""
|
||||
"Schaltsekunden werden im gleichen Augenblick weltweit eingestellt: "
|
||||
"Mitternacht <acronym>UTC</acronym>. In Japan ist das in der Morgenmitte, im "
|
||||
"Pazifik am Mittag, in Nord-, Mittel- und Südamerika am späten Nachmittag und "
|
||||
"in Europa nachts."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:62
|
||||
msgid ""
|
||||
"We believe and expect that FreeBSD, if provided correct and stable "
|
||||
"<acronym>NTP</acronym> service, will work as designed during this leap "
|
||||
"second, as it did during the previous ones."
|
||||
msgstr ""
|
||||
"Wir glauben und erwarten dass FreeBSD, sofern es mit einem korrekten und "
|
||||
"stabilen <acronym>NTP</acronym>-Dienst versorgt wird, wie erwartet "
|
||||
"funktionieren wird, genauso wie es das während der bisherigen Schaltsekunden "
|
||||
"auch getan hat."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:67
|
||||
msgid ""
|
||||
"However, we caution that practically no applications have ever asked the "
|
||||
"kernel about leap seconds. Our experience is that, as designed, leap seconds "
|
||||
"are essentially a replay of the second before the leap second, and this is a "
|
||||
"surprise to most application programmers."
|
||||
msgstr ""
|
||||
"Jedoch weisen wir darauf hin, dass praktisch keine Anwendung jemals den "
|
||||
"Kernel zu Schaltsekunden angefragt hat. Unsere Erfahrung ist, dass "
|
||||
"Schaltsekunden, so wie sie entwickelt wurden, einfach nur eine Wiederholung "
|
||||
"der Sekunde vor der Schaltsekunde sind und dies eine Überraschung für die "
|
||||
"meisten Anwendungsentwickler darstellt."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:73
|
||||
msgid ""
|
||||
"Other operating systems and other computers may or may not handle the leap-"
|
||||
"second the same way as FreeBSD, and systems without correct and stable "
|
||||
"<acronym>NTP</acronym> service will not know anything about leap seconds at "
|
||||
"all."
|
||||
msgstr ""
|
||||
"Andere Betriebssysteme und andere Computer behandeln die Schaltsekunde wie "
|
||||
"FreeBSD oder auch nicht und Systeme ohne einen korrekten und stabilen "
|
||||
"<acronym>NTP</acronym>-Dienst werden gar nichts über Schaltsekunden wissen."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:78
|
||||
msgid ""
|
||||
"It is not unheard of for computers to crash because of leap seconds, and "
|
||||
"experience has shown that a large fraction of all public <acronym>NTP</"
|
||||
"acronym> servers might handle and announce the leap second incorrectly."
|
||||
msgstr ""
|
||||
"Es ist kein ungewöhnlicher Zustand, wenn Computer wegen Schaltsekunden "
|
||||
"abstürzen und die Erfahrung hat gezeigt, dass eine grosse Menge von allen "
|
||||
"öffentlichen <acronym>NTP</acronym>-Servern die Schaltsekunde falsch "
|
||||
"behandeln oder ankündigen."
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:83
|
||||
msgid ""
|
||||
"Please try to make sure nothing horrible happens because of the leap second."
|
||||
msgstr ""
|
||||
"Bitte stellen Sie sicher, dass nichts schreckliches wegen der Schaltsekunde "
|
||||
"passieren kann."
|
||||
|
||||
#. (itstool) path: sect1/title
|
||||
#: article.translate.xml:88
|
||||
msgid "Testing"
|
||||
msgstr "Überprüfen"
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:90
|
||||
msgid ""
|
||||
"It is possible to test whether a leap second will be used. Due to the nature "
|
||||
"of <acronym>NTP</acronym>, the test might work up to 24 hours before the "
|
||||
"leap second. Some major reference clock sources only announce leap seconds "
|
||||
"one hour ahead of the event. Query the <acronym>NTP</acronym> daemon:"
|
||||
msgstr ""
|
||||
"Es ist möglich, zu überprüfen, ob eine Schaltsekunde verwendet wird. "
|
||||
"Aufgrund der Art und Weise wie <acronym>NTP</acronym> arbeitet, funktioniert "
|
||||
"der Test möglicherweise bis zu 24 Stunden vor der Schaltsekunde. Manche "
|
||||
"Hauptreferenzuhrzeitquellen kündigen Schaltsekunden erst eine Stunde vor dem "
|
||||
"Ereignis an. Fragen Sie den <acronym>NTP</acronym>-Dienst ab:"
|
||||
|
||||
#. (itstool) path: sect1/screen
|
||||
#: article.translate.xml:96
|
||||
#, no-wrap
|
||||
msgid "<prompt>%</prompt> <userinput>ntpq -c 'rv 0 leap'</userinput>"
|
||||
msgstr "<prompt>%</prompt> <userinput>ntpq -c 'rv 0 leap'</userinput>"
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:98
|
||||
msgid ""
|
||||
"Output that includes <literal>leap_add_sec</literal> indicates proper "
|
||||
"support of the leap second. Before the 24 hours leading up to the leap "
|
||||
"second, or after the leap second has passed, <literal>leap_none</literal> "
|
||||
"will be shown."
|
||||
msgstr ""
|
||||
"Ausgaben, die <literal>leap_add_sec</literal> beinhalten zeigen die korrekte "
|
||||
"Unterstützung für Schaltsekunden an. Vor den 24 Stunden, welche vor der "
|
||||
"Schaltsekunde liegen oder wenn diese vorüber ist, wird <literal>leap_none</"
|
||||
"literal> angezeigt."
|
||||
|
||||
#. (itstool) path: sect1/title
|
||||
#: article.translate.xml:105
|
||||
msgid "Conclusion"
|
||||
msgstr "Fazit"
|
||||
|
||||
#. (itstool) path: sect1/para
|
||||
#: article.translate.xml:107
|
||||
msgid ""
|
||||
"In practice, leap seconds are usually not a problem on FreeBSD. We hope that "
|
||||
"this overview helps clarify what to expect and how to make the leap second "
|
||||
"event proceed more smoothly."
|
||||
msgstr ""
|
||||
"In der Praxis sind Schaltsekunden kein Problem für FreeBSD. Wir hoffen, dass "
|
||||
"dieser Überblick dabei geholfen hat, zu klären, was zu erwarten ist und wie "
|
||||
"das Ereignis der Schaltsekunde einfacher gehandhabt werden kann."
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
# Basiert auf: r39631
|
||||
#
|
||||
# Article: FreeBSD Anleitung für Benutzer von Linux
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,325 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de_DE">
|
||||
<info>
|
||||
<title>FreeBSD Anleitung für <trademark class="registered">Linux</trademark>-Benutzer</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>John</firstname><surname>Ferrell</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<copyright><year>2008</year> <holder>The FreeBSD Documentation Project</holder></copyright>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
<para>FreeBSD ist ein eingetragenes Warenzeichen der FreeBSD Foundation.</para>
|
||||
<para>Linux ist ein eingetragenes Warenzeichen von Linus Torvalds.</para>
|
||||
<para>Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, und Xeon sind eingetragene Warenzeichen der Intel Corporation oder ihrer Gesellschaften in den Vereinigten Staaten und in anderen Ländern.</para>
|
||||
<para>Red Hat, RPM, sind Warenzeichen oder eingetragene Warenzeichen von Red Hat, Inc. in den Vereinigten Staaten und in anderen Ländern.</para>
|
||||
<para>UNIX ist ein eingetragenes Warenzeichen der The Open Group in den Vereinigten Staaten und in anderen Ländern.</para>
|
||||
<para>Viele Produktbezeichnungen von Herstellern und Verkäufern sind Warenzeichen. Soweit dem FreeBSD Project das Warenzeichen bekannt ist, werden die in diesem Dokument vorkommenden Bezeichnungen mit dem Symbol <quote>™</quote> oder dem Symbol <quote>®</quote> gekennzeichnet.</para>
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
<para>Dieses Dokument soll <trademark class="registered">Linux</trademark>-Benutzer mit den Grundlagen von FreeBSD vertraut machen.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="intro">
|
||||
<title>Übersicht </title>
|
||||
|
||||
<para>Dieses Dokument beschreibt einige der technischen Unterschiede zwischen FreeBSD und <trademark class="registered">Linux</trademark>, damit sich <trademark class="registered">Linux</trademark>-Anwender schnell mit den Grundlagen von FreeBSD vertraut machen können.</para>
|
||||
|
||||
<para>Dieses Dokument geht davon aus, dass FreeBSD bereits installiert ist. Lesen Sie das Kapitel <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/bsdinstall.html">Installation von FreeBSD</link> des FreeBSD-Handbuch für die Hilfe bei der Installation.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="shells">
|
||||
<title>Standard-Shell</title>
|
||||
|
||||
<para><trademark class="registered">Linux</trademark>-Benutzer sind oft überrascht, dass <application>Bash</application> nicht die Standard-Shell in FreeBSD ist. Genau genommen ist <application>Bash</application> nicht einmal in der Standardinstallation enthalten. FreeBSD benutzt stattdessen <citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</manvolnum></citerefentry> als Standard-Shell für root, sowie die <application>Bourne shell</application>-kompatible <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry> als Standardshell für Benutzer. <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry> ist der <application>Bash</application> sehr ähnlich, besitzt jedoch einen kleineren Funktionsumfang. In der Regel werden Skripte für die <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry> auch mit der <application>Bash</application> laufen. Der umgekehrte Fall trifft jedoch meistens nicht zu.</para>
|
||||
|
||||
<para><application>Bash</application> und weitere Shells können unter FreeBSD mit <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/ports.html">Paketen und der Ports-Sammlung</link> installiert werden.</para>
|
||||
|
||||
<para>Nachdem Sie eine andere Shell installiert haben, benutzen Sie <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum></citerefentry> um die Standard-Shell für einen Benutzer zu ändern. Es wird empfohlen, die Standard-Shell des Benutzers <systemitem class="username">root</systemitem> unverändert bleibt, da Shells, welche nicht im Basissystem enthalten sind, in <filename>/usr/local/bin</filename> installiert werden. Im Falle eines Problems ist vielleicht das Dateisystem, auf dem sich
|
||||
<filename>/usr/local/bin</filename> befindet, nicht eingehängt ist. In einem solchen Fall hätte der Benutzer <systemitem class="username">root</systemitem> keinen Zugriff auf die Standard-Shell, was ihn daran hindern würde, sich am System anzumelden und das Problem zu beheben.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="software">
|
||||
<title>Pakete und Ports: Installation von Software in FreeBSD</title>
|
||||
|
||||
<para>FreeBSD bietet zwei Methoden zur Installation von Anwendungen: Binärpakete und kompilierte Ports. Jede Methode hat ihre eigenen Vorteile:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<title>Binärpakete</title>
|
||||
|
||||
<listitem>
|
||||
<simpara>Schnellere Installation, insbesondere bei größeren Anwendungen.</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Es wird kein Verständnis darüber benötigt, wie Software kompiliert wird.</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Es muss kein Compiler installiert werden.</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<itemizedlist>
|
||||
<title>Ports</title>
|
||||
|
||||
<listitem>
|
||||
<simpara>Bieten die Möglichkeit, Installationsoptionen anzupassen.</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Eigene Korrekturen können angewendet werden.</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Wenn für die Installation der Anwendung keine Änderungen nötig sind, kann auch das Paket installiert werden. Kompilieren Sie den Port, wenn die Anwendung eine Änderung an den voreingestellten Optionen erfordert. In diesem Fall kann ein angepasstes Paket mit <command>make</command> <buildtarget>Paket</buildtarget> erstellt werden.</para>
|
||||
|
||||
<para>Eine vollständige Liste aller Ports und Pakete finden Sie <link xlink:href="http://www.freebsd.org/ports/master-index.html">hier</link>.</para>
|
||||
|
||||
<sect2 xml:id="packages">
|
||||
<title>Pakete</title>
|
||||
|
||||
<para>Pakete sind vorkompilierte Anwendungen, sozusagen FreeBSD-Äquivalente von <filename>.deb</filename>-Dateien unter Debian/Ubuntu basierten Systemen und <filename>.rpm</filename>-Dateien von Red Hat/Fedora basierten Systemen. Pakete werden mit <command>pkg</command> installiert. Das folgende Kommando installiert beispielsweise <application>Apache 2.4</application>:</para>
|
||||
|
||||
<screen><prompt>#</prompt> <userinput>pkg install <replaceable>apache24</replaceable></userinput></screen>
|
||||
|
||||
<para>Weitere Informationen zu Paketen finden Sie im Abschnitt 4.4 des FreeBSD Handbuchs: <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/pkgng-intro.html">Benutzen von pkg zur Verwaltung von Binärpaketen</link>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="ports">
|
||||
<title>Ports</title>
|
||||
|
||||
<para>Die FreeBSD Ports-Sammlung ist ein Gerüst aus <filename>Makefiles</filename> und Korrekturen, um Anwendungen aus dem Quellcode unter FreeBSD zu installieren. Wenn Sie einen Port installieren, wird das System den Quellcode herunterladen, die benötigten Korrekturen anwenden, den Quellcode kompilieren und die Anwendung und die erforderlichen Abhängigkeiten installieren.</para>
|
||||
|
||||
<para>Die Ports-Sammlung, oder einfach Ports genannt, kann mit <citerefentry><refentrytitle>portsnap</refentrytitle><manvolnum>8</manvolnum></citerefentry> nach <filename>/usr/ports</filename> installiert werden.</para>
|
||||
|
||||
<para>Um einen Port zu kompilieren, wechseln Sie in das Verzeichnis des Ports und starten Sie den Bau-Prozess. Das folgende Beispiel installiert <application>Apache 2.4</application> aus der Ports-Sammlung:</para>
|
||||
|
||||
<screen><prompt>#</prompt> <userinput>cd /usr/ports/www/apache24</userinput>
|
||||
<prompt>#</prompt> <userinput>make install clean</userinput></screen>
|
||||
|
||||
<para>Ein Vorteil von Ports bei der Installation von Software ist die Möglichkeit, die Installationsoptionen anzupassen. In diesem Beispiel wird spezifiziert, dass zusätzlich das Modul <application>mod_ldap</application> installiert werden soll:</para>
|
||||
|
||||
<screen><prompt>#</prompt> <userinput>cd /usr/ports/www/apache24</userinput>
|
||||
<prompt>#</prompt> <userinput>make WITH_LDAP="YES" install clean</userinput></screen>
|
||||
|
||||
<para>Lesen Sie <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/ports-using.html">Benutzen der Ports-Sammlung</link> für weitere Informationen.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="startup">
|
||||
<title>Systemstart</title>
|
||||
|
||||
<para>Viele <trademark class="registered">Linux</trademark>-Distributionen verwenden das SysV init System, während FreeBSD das traditionelle BSD-<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></citerefentry> benutzt. Unter BSD-<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></citerefentry> gibt es keine Runlevel und <filename>/etc/inittab</filename> existiert auch nicht. Stattdessen wird der Systemstart von <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></citerefentry> Skripten gesteuert. Beim Systemstart liest <filename>/etc/rc</filename> <filename>/etc/rc.conf</filename> und <filename>/etc/rc.conf.local</filename> um herauszufinden welche Dienste gestartet werden müssen. Die jeweiligen Dienste werden dann gestartet, indem die entsprechenden Skripten in <filename>/etc/rc.d/</filename> und <filename>/usr/local/etc/rc.d/</filename> ausgeführt werden. Diese Skripte sind ähnlich wie die Skripte in <filename>/etc/init.d/</filename> unter <trademark class="registered">Linux</trademark>-Systemen.</para>
|
||||
|
||||
<para>Die Skripte in <filename>/etc/rc.d/</filename> sind für Anwendungen aus dem <quote>Basissystem</quote>, wie beispielsweise <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>sshd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, und <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Die Skripte in <filename>/usr/local/etc/rc.d/</filename> gehören zu den vom Benutzer installierten Anwendungen, wie zum Beispiel <application>Apache</application> und <application>Squid</application>.</para>
|
||||
|
||||
<para>Da FreeBSD als komplettes Betriebssystem entwickelt wird, werden die vom Benutzer installierten Anwendungen nicht als Teil des <quote>Basissystems</quote> angesehen. Diese Anwendungen werden in der Regel als <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/ports-using.html">Pakete oder Ports</link> installiert. Um die Anwendungen vom Basissystem zu separieren, werden diese unterhalb von <filename>/usr/local/</filename> installiert. Die Binärdateien der installierten Anwendungen werden in <filename>/usr/local/bin/</filename> gespeichert, die Konfigurationsdateien in <filename>/usr/local/etc/</filename>, und so weiter.</para>
|
||||
|
||||
<para>Dienste werden über einen Eintrag in <filename>/etc/rc.conf</filename> aktiviert. Die Standardeinstellungen des Systems stehen in <filename>/etc/defaults/rc.conf</filename> und werden von den Einstellungen in <filename>/etc/rc.conf</filename> überschrieben. Lesen Sie <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> für weitere Informationen über die verfügbaren Einträge. Wenn Sie zusätzliche Anwendungen installieren, lesen Sie die Nachrichten um zu erfahren, wie Sie alle dazugehörigen Dienste aktivieren.</para>
|
||||
|
||||
<para>Die folgenden Einträge in <filename>/etc/rc.conf</filename> aktivieren <citerefentry><refentrytitle>sshd</refentrytitle><manvolnum>8</manvolnum></citerefentry> sowie <application>Apache 2.4</application>, wobei <application>Apache</application> mit <acronym>SSL</acronym>-Unterstützung gestartet werden soll.</para>
|
||||
|
||||
<programlisting># enable SSHD
|
||||
sshd_enable="YES"
|
||||
# enable Apache with SSL
|
||||
apache24_enable="YES"
|
||||
apache24_flags="-DSSL"</programlisting>
|
||||
|
||||
<para>Sobald ein Dienst in <filename>/etc/rc.conf</filename> aktiviert ist, kann er ohne einen Neustart des Systems gestartet werden:</para>
|
||||
|
||||
<screen><prompt>#</prompt> <userinput>service <replaceable>sshd</replaceable> start</userinput>
|
||||
<prompt>#</prompt> <userinput>service <replaceable>apache24</replaceable> start</userinput></screen>
|
||||
|
||||
<para>Wenn ein Dienst nicht aktiviert wurde, kann er auf der Kommandozeile mit <option>onestart</option> gestartet werden:</para>
|
||||
|
||||
<screen><prompt>#</prompt> <userinput>service <replaceable>sshd</replaceable> onestart</userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="network">
|
||||
<title>Netzwerkkonfiguration</title>
|
||||
|
||||
<para>Anstelle einer allgemeinen <emphasis>ethX</emphasis>-Kennzeichnung, die von <trademark class="registered">Linux</trademark> benutzt wird, um Netzwerkschnittstellen zu identifizieren, verwendet FreeBSD den Treibernamen gefolgt von einer Nummer. Die folgende Ausgabe von <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> zeigt zwei <trademark class="registered">Intel</trademark>Pro 1000 Netzwerkschnittstellen (<filename>em0</filename> und <filename>em1</filename>):</para>
|
||||
|
||||
<screen><prompt>%</prompt> <userinput>ifconfig</userinput>
|
||||
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
options=b<RXCSUM,TXCSUM,VLAN_MTU>
|
||||
inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255
|
||||
ether 00:50:56:a7:70:b2
|
||||
media: Ethernet autoselect (1000baseTX <full-duplex>)
|
||||
status: active
|
||||
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
options=b<RXCSUM,TXCSUM,VLAN_MTU>
|
||||
inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255
|
||||
ether 00:50:56:a7:03:2b
|
||||
media: Ethernet autoselect (1000baseTX <full-duplex>)
|
||||
status: active</screen>
|
||||
|
||||
<para>Mit <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> kann einer Schnittstelle eine <acronym>IP</acronym>-Adresse zugeordnet werden. Damit diese nach einem Neustart erhalten bleibt, muss die <acronym>IP</acronym>-Konfiguration in <filename>/etc/rc.conf</filename> eingetragen werden. Die folgenden Einträge in <filename>/etc/rc.conf</filename> konfigurieren den Rechnernamen, die <acronym>IP</acronym>-Adresse und das Standard-Gateway:</para>
|
||||
|
||||
<programlisting>hostname="server1.example.com"
|
||||
ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0"
|
||||
defaultrouter="10.10.10.1"</programlisting>
|
||||
|
||||
<para>Benutzen Sie die folgenden Einträge um die Schnittstelle über <acronym>DHCP</acronym> zu konfigurieren:</para>
|
||||
|
||||
<programlisting>hostname="server1.example.com"
|
||||
ifconfig_em0="DHCP"</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="firewall">
|
||||
<title>Firewall</title>
|
||||
|
||||
<para>FreeBSD verwendet nicht <trademark class="registered">Linux</trademark> <application>IPTABLES</application> als Firewall. Stattdessen hat der Benutzer unter FreeBSD die Wahl zwischen drei Firewalls, die auf Kernel-Ebene arbeiten:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara><link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/firewalls-pf.html">PF</link></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/firewalls-ipf.html">IPFILTER</link></simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara><link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/firewalls-ipfw.html">IPFW</link></simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para><application>PF</application> wurde vom OpenBSD Projekt entwickelt und nach FreeBSD portiert. <application>PF</application> wurde als Ersatz für <application>IPFILTER</application> entwickelt und die Syntax ist der von <application>IPFILTER</application> sehr ähnlich. <application>PF</application> kann zusammen mit <citerefentry><refentrytitle>altq</refentrytitle><manvolnum>4</manvolnum></citerefentry> werden um <acronym>QoS</acronym>-Funktionen bereitzustellen.</para>
|
||||
|
||||
<para>Dieser beispielhafte <application>PF</application>-Eintrag erlaubt eingehende <application>SSH</application>-Verbindungen:</para>
|
||||
|
||||
<programlisting>pass in on $ext_if inet proto tcp from any to ($ext_if) port 22</programlisting>
|
||||
|
||||
<para><application>IPFILTER</application> ist eine von Darren Reed entwickelte Firewall. Diese Firewall ist nicht FreeBSD-spezifisch und wurde bereits auf andere Betriebssysteme portiert, einschließlich NetBSD, OpenBSD, SunOS, HP/UX, und Solaris.</para>
|
||||
|
||||
<para>Die Syntax für <application>IPFILTER</application> zum Erlauben von eingehenden <application>SSH</application>-Verbindungen lautet:</para>
|
||||
|
||||
<programlisting>pass in on $ext_if proto tcp from any to any port = 22</programlisting>
|
||||
|
||||
<para>Die Firewall <application>IPFW</application> wird von FreeBSD entwickelt und betreut. Sie kann zusammen mit <citerefentry><refentrytitle>dummynet</refentrytitle><manvolnum>4</manvolnum></citerefentry> eingesetzt werden, um Traffic-Shaping zu realisieren und verschiedene Arten von Netzwerkverbindungen zu simulieren.</para>
|
||||
|
||||
<para>Die Syntax für <application>IPFW</application> zum Erlauben von eingehenden <application>SSH</application>-Verbindungen ist:</para>
|
||||
|
||||
<programlisting>ipfw add allow tcp from any to me 22 in via $ext_if</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="updates">
|
||||
<title>FreeBSD aktualisieren</title>
|
||||
|
||||
<para>Es gibt zwei Methoden um ein FreeBSD-System zu aktualisieren: aus den Quellen oder über binäre Updates.</para>
|
||||
|
||||
<para>Die Aktualisierung aus den Quellen ist etwas komplexer, bietet aber das höchste Maß an Flexibilität. Dieser Prozess beinhaltet die Synchronisation der Quellen über einen <application>Subversion</application>-Server von FreeBSD. Sobald die lokale Kopie aktualisiert wurde, kann eine neue Version des Kernels und des Userlands kompiliert werden.</para>
|
||||
|
||||
<para>Binäre Updates funktionieren in etwa so, als wenn Sie ein <trademark class="registered">Linux</trademark>-System mit <command>yum</command> oder <command>apt-get</command> aktualisieren. In FreeBSD können Sie <citerefentry><refentrytitle>freebsd-update</refentrytitle><manvolnum>8</manvolnum></citerefentry> benutzen, um binäre Updates herunterzuladen und zu installieren. Diese Updates können mit <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry> zu festgelegten Zeitpunkten durchgeführt werden.</para>
|
||||
|
||||
<note>
|
||||
<para>Wenn Sie <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry> verwenden um Updates zu planen, benutzen Sie <command>freebsd-update cron</command> in der <citerefentry><refentrytitle>crontab</refentrytitle><manvolnum>1</manvolnum></citerefentry>, um die Möglichkeit zu verringern, dass alle Maschinen die Updates zur gleichen Zeit laden:</para>
|
||||
|
||||
<programlisting>0 3 * * * root /usr/sbin/freebsd-update cron</programlisting>
|
||||
</note>
|
||||
|
||||
<para>Weitere Informationen über die Aktualisierung aus den Quellen und Binär-Updates finden Sie im Kapitel <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/updating-upgrading.html">FreeBSD aktualisieren</link> des FreeBSD Handbuchs.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="procfs">
|
||||
<title>procfs: Verschwunden, aber nicht vergessen</title>
|
||||
|
||||
<para>In einigen <trademark class="registered">Linux</trademark>-Distributionen kann man in <filename>/proc/sys/net/ipv4/ip_forward</filename> feststellen, ob <acronym>IP</acronym>-Weiterleitung aktiviert ist. In FreeBSD wird stattdessen <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> verwendet, um diese und andere Systemeinstellungen anzuzeigen.</para>
|
||||
|
||||
<para>Auf einem FreeBSD-System kann der folgende Befehl benutzt werden, um festzustellen ob <acronym>IP</acronym>-Weiterleitung aktiviert ist:</para>
|
||||
|
||||
<screen><prompt>%</prompt> <userinput>sysctl net.inet.ip.forwarding</userinput>
|
||||
net.inet.ip.forwarding: 0</screen>
|
||||
|
||||
<para>Benutzen Sie <option>-a</option> um alle Einstellungen des Systems anzuzeigen:</para>
|
||||
|
||||
<screen><prompt>%</prompt> <userinput>sysctl -a | more</userinput></screen>
|
||||
|
||||
<para>Wenn eine Anwendung procfs benötigt, fügen Sie den folgenden Eintrag in <filename>/etc/fstab</filename> ein:</para>
|
||||
|
||||
<screen>proc /proc procfs rw,noauto 0 0</screen>
|
||||
|
||||
<para>Die Option <option>noauto</option> verhindert, dass <filename>/proc</filename> beim Booten automatisch eingehängt wird.</para>
|
||||
|
||||
<para>Das Dateisystem kann ohne Neustart eingehängt werden:</para>
|
||||
|
||||
<screen><prompt>#</prompt> <userinput>mount /proc</userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="commands">
|
||||
<title>Häufig verwendete Kommandos</title>
|
||||
|
||||
<para>Einige Kommando-Äquivalente sind wie folgt:</para>
|
||||
|
||||
<para>
|
||||
<informaltable frame="none" pgwide="1">
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry><trademark class="registered">Linux</trademark>-Kommando (Red Hat/Debian)</entry>
|
||||
<entry>FreeBSD Äquivalent</entry>
|
||||
<entry>Aufgabe</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><command>yum install <replaceable>Paket</replaceable></command> / <command>apt-get install <replaceable>Paket</replaceable></command></entry>
|
||||
<entry><command>pkg install <replaceable>Paket</replaceable></command></entry>
|
||||
<entry>Paket aus einem entfernten Repository installieren.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><command>rpm -ivh <replaceable>Paket</replaceable></command> / <command>dpkg -i <replaceable>Paket</replaceable></command></entry>
|
||||
<entry><command>pkg add <replaceable>Paket</replaceable></command></entry>
|
||||
<entry>Ein lokales Paket installieren</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><command>rpm -qa</command> / <command>dpkg -l</command></entry>
|
||||
<entry><command>pkg info</command></entry>
|
||||
<entry>Installierte Paket anzeigen</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><command>lspci</command></entry>
|
||||
<entry><command>pciconf</command></entry>
|
||||
<entry><acronym>PCI</acronym>-Geräte anzeigen</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><command>lsmod</command></entry>
|
||||
<entry><command>kldstat</command></entry>
|
||||
<entry>Geladene Kernelmodule anzeigen</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><command>modprobe</command></entry>
|
||||
<entry><command>kldload</command> / <command>kldunload</command></entry>
|
||||
<entry>Kernelmodule laden/entladen</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><command>strace</command></entry>
|
||||
<entry><command>truss</command></entry>
|
||||
<entry>Systemaufrufe verfolgen</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable></para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="conclusion">
|
||||
<title>Fazit</title>
|
||||
|
||||
<para>Dieses Dokument hat einen Überblick über FreeBSD geboten. Lesen Sie das <link xlink:href="@@URL_RELPREFIX@@/doc/de_DE.ISO8859-1/books/handbook/index.html">FreeBSD Handbuch</link> für eine tiefergehender Abdeckung dieses und weiterer Themen, welche nicht in diesem Dokument behandelt sind.</para>
|
||||
</sect1>
|
||||
</article>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,29 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# basiert auf: r39631
|
||||
#
|
||||
# Article: Einführung in NanoBSD
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
# Images from the cross-document image library
|
||||
IMAGES_LIB= callouts/1.png
|
||||
IMAGES_LIB+= callouts/2.png
|
||||
IMAGES_LIB+= callouts/3.png
|
||||
IMAGES_LIB+= callouts/4.png
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?=../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,537 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>Einführung in NanoBSD</title>
|
||||
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<copyright>
|
||||
<year>2006</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
<para>Dieses Dokument stellt Informationen zu den
|
||||
<application>NanoBSD</application> Werkzeugen bereit, die dazu
|
||||
verwendet werden können ein &os; Abbild für eingebettete
|
||||
Systeme zu erstellen, welche auf eine Compact Flash Karte
|
||||
passen (oder andere Massenspeicher).</para>
|
||||
|
||||
<para><emphasis>Übersetzt von Björn
|
||||
Heidotting</emphasis>.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="intro">
|
||||
<title>Einführung in NanoBSD</title>
|
||||
|
||||
<indexterm><primary>NanoBSD</primary></indexterm>
|
||||
|
||||
<para><application>NanoBSD</application> ist ein Werkzeug welches
|
||||
derzeit von &a.phk; entwickelt wird. Es erstellt ein &os;
|
||||
Systemabbild für eingebettete Systeme, die auf eine Compact
|
||||
Flash Karte passen (oder andere Massenspeicher).</para>
|
||||
|
||||
<para>Es kann dazu benutzt werden um spezialisierte
|
||||
Installationsabbilder zu bauen, entworfen für die einfache
|
||||
Installation und Wartung von Systemen die als "Computer
|
||||
Appliances" bekannt sind. Computer Appliances haben ihre Hard-
|
||||
und Software fest verbaut, dass bedeutet alle Anwendungen sind
|
||||
vorinstalliert. Die Appliance wird an ein bestehendes Netzwerk
|
||||
angeschlossen und kann mit der Arbeit (fast) sofort
|
||||
beginnen.</para>
|
||||
|
||||
<para>Zu den Eigenschaften von <application>NanoBSD</application>
|
||||
gehören:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Ports und Pakete funktionieren wie in &os; — Jede
|
||||
einzelne Anwendung kann auf dem
|
||||
<application>NanoBSD</application> Abbild installiert und
|
||||
benutzt werden, auf die gleiche Weise wie Sie es aus &os;
|
||||
gewohnt sind.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Keine fehlende Funktionalität — Wenn es möglich
|
||||
ist, etwas mit &os; zu tun, ist es auch möglich, die
|
||||
gleiche Sache mit <application>NanoBSD</application> zu tun,
|
||||
es sei denn, eine oder mehrere Funktionen wurden
|
||||
ausdrücklich vor dem Bau des
|
||||
<application>NanoBSD</application> Abbilds entfernt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Zur Laufzeit ist alles read-only — Es ist sicher
|
||||
den Stromstecker zu ziehen. Es besteht dann keine
|
||||
Notwendigkeit, einen &man.fsck.8; nach einem nicht
|
||||
ordnungsgemäßem Herunterfahren des Systems
|
||||
auszuführen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Einfach zu bauen und anzupassen — Unter Verwendung
|
||||
von nur einem Shell-Skript und einer Konfigurationsdatei ist
|
||||
es möglich, ein reduziertes und angepasstes Abbild zu
|
||||
bauen, welches jegliche Reihe von Anforderungen
|
||||
erfüllt.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="howto">
|
||||
<title>NanoBSD Anleitung</title>
|
||||
|
||||
<sect2 xml:id="design">
|
||||
<title>Das Design von NanoBSD</title>
|
||||
|
||||
<para>Sobald das Abbild auf dem Medium verfügbar ist, kann
|
||||
<application>NanoBSD</application> gebootet werden. Der
|
||||
Massenspeicher ist standardmäßig in drei Teile
|
||||
unterteilt:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Zwei Abbild Partitionen: <literal>code#1</literal> und
|
||||
<literal>code#2</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die Partition der Konfigurationsdatei, welche zur
|
||||
Laufzeit unter dem <filename>/cfg</filename> Verzeichnis gemountet
|
||||
werden kann.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Diese Partitionen sind im Allgemeinen read-only.</para>
|
||||
|
||||
<para>Die <filename>/etc</filename> und
|
||||
<filename>/var</filename> Verzeichnisse sind
|
||||
&man.md.4; (malloc) Speicher.</para>
|
||||
|
||||
<para>Die Partition der Konfigurationsdatei besteht unter dem
|
||||
<filename>/cfg</filename> Verzeichnis. Sie
|
||||
enthält Dateien für das <filename>/etc</filename> Verzeichnis und wird
|
||||
direkt nach dem Botten read-only eingehangen, weshalb es
|
||||
erforderlich ist geänderte Dateien von <filename>/etc</filename> zurück nach <filename>/cfg</filename> zu kopieren falls die
|
||||
Änderungen nach einem Neustart bestehen bleiben
|
||||
sollen.</para>
|
||||
|
||||
<example>
|
||||
<title>Dauerhafte Änderungen in
|
||||
<filename>/etc/resolv.conf</filename> vornehmen</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>vi /etc/resolv.conf</userinput>
|
||||
[...]
|
||||
&prompt.root; <userinput>mount /cfg</userinput>
|
||||
&prompt.root; <userinput>cp /etc/resolv.conf /cfg</userinput>
|
||||
&prompt.root; <userinput>umount /cfg</userinput></screen>
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<para>Die <filename>/cfg</filename>
|
||||
Partition sollte nur während des Bootvorgangs und zu
|
||||
Änderungen an den Konfigurationsdateien gemountet
|
||||
werden.</para>
|
||||
|
||||
<para>Die <filename>/cfg</filename>
|
||||
Partition jederzeit gemountet zu haben ist keine gute Idee,
|
||||
besonders wenn das <application>NanoBSD</application> System
|
||||
auf einem Massenspeicher betrieben wird, der eventuell druch
|
||||
eine große Anzahl von Schreiboperationen nachteilig
|
||||
beeinträchtigt wird (z. B. wenn der Dateisystem-Syncer den
|
||||
Speicher mit Daten überflutet).</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Ein NanoBSD Abbild erstellen</title>
|
||||
|
||||
<para>Ein <application>NanoBSD</application> Abbild wird über
|
||||
ein einfaches <filename>nanobsd.sh</filename> Shell-Skript
|
||||
gebaut, das sich unter <filename>/usr/src/tools/tools/nanobsd</filename>
|
||||
befindet. Das Skript erstellt ein Abbild, welches dann
|
||||
mittels &man.dd.1; auf einen Massenspeicher kopiert werden
|
||||
kann.</para>
|
||||
|
||||
<para>Die folgenden Kommandos sind notwendig um ein
|
||||
<application>NanoBSD</application> Abbild zu erstellen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co xml:id="nbsd-cd"/>
|
||||
&prompt.root; <userinput>sh nanobsd.sh</userinput> <co xml:id="nbsd-sh"/>
|
||||
&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co xml:id="nbsd-cd2"/>
|
||||
&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co xml:id="nbsd-dd"/></screen>
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="nbsd-cd">
|
||||
<para>Wechsel in das Basisverzeichnis des
|
||||
<application>NanoBSD</application> Skripts.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="nbsd-sh">
|
||||
<para>Den Bauprozess starten.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="nbsd-cd2">
|
||||
<para>Wechsel in das Verzeichnis, in dem das gebaute Abbild
|
||||
liegt.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="nbsd-dd">
|
||||
<para><application>NanoBSD</application> auf einem
|
||||
Massenspeicher installieren.</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Ein NanoBSD Abbild anpassen</title>
|
||||
|
||||
<para>Dies ist wahrscheinlich das wichtigste und interessanteste
|
||||
Merkmal von <application>NanoBSD</application>. Hierbei
|
||||
werden Sie auch die meiste Zeit mit der Entwicklung von
|
||||
<application>NanoBSD</application> verbringen.</para>
|
||||
|
||||
<para>Der Aufruf des folgenden Kommandos wird
|
||||
<filename>nanobsd.sh</filename> dazu zwingen, seine
|
||||
Konfiguration aus <filename>myconf.nano</filename> aus dem
|
||||
aktuellen Verzeichnis zu lesen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen>
|
||||
|
||||
<para>Die Anpassung wird auf zwei Arten geschehen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Konfigurations-Optionen</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Benutzerdefinierte Funktionen</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect3>
|
||||
<title>Konfigurations-Optionen</title>
|
||||
|
||||
<para>Durch Konfigurationseinstellungen ist es möglich
|
||||
Optionen zu übergeben, die sowohl die
|
||||
<buildtarget>buildworld</buildtarget> und
|
||||
<buildtarget>installworld</buildtarget> Phasen des
|
||||
<application>NanoBSD</application> Bauprozesses betreffen,
|
||||
sowie interne Optionen, die den Haupt-Bauprozess von
|
||||
<application>NanoBSD</application> beeinflussen. Durch diese
|
||||
Optionen ist es möglich, das System so zu reduzieren, dass
|
||||
es mit wenig Platz, etwa 64 MB auskommt. Sie können die
|
||||
Konfigurationsdateien dazu nutzten &os; noch weiter zu
|
||||
trimmen, bis es nur noch aus dem Kernel und zwei oder drei
|
||||
Dateien im Userland besteht.</para>
|
||||
|
||||
<para>Die Konfigurationsdatei besteht aus
|
||||
Konfigurations-Optionen, welche die Standardwerte
|
||||
überschreiben.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>NANO_NAME</literal> — Name des Build
|
||||
(wird verwendet, um die workdir Namen zu
|
||||
konstruieren).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>NANO_SRC</literal> — Pfad zum
|
||||
Quelltextverzeichnis, das für den Bau des Abbilds
|
||||
verwendet wird.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>NANO_KERNEL</literal> — Name der
|
||||
Kernelkonfigurationsdatei, die für den Bau des Kernels
|
||||
verwendet wird.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>CONF_BUILD</literal> — Optionen für
|
||||
die <buildtarget>buildworld</buildtarget> Phase des
|
||||
Bauprozesses.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>CONF_INSTALL</literal> — Optionen
|
||||
für die <buildtarget>installworld</buildtarget> Phase
|
||||
des Bauprozesses.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>CONF_WORLD</literal> — Optionen für
|
||||
die <buildtarget>buildworld</buildtarget> und
|
||||
<buildtarget>installworld</buildtarget> Phasen des
|
||||
Bauprozesses.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>FlashDevice</literal> — Definiert den
|
||||
zu benutzenden Medientyp. Überprüfen Sie die
|
||||
Datei <filename>FlashDevice.sub</filename> für
|
||||
weitere Informationen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Benutzerdefinierte Funktionen</title>
|
||||
|
||||
<para>Mit Hilfe von Shell-Funktionen in der
|
||||
Konfigurationsdatei besteht die Möglichkeit zur
|
||||
Feinabstimmung von <application>NanoBSD</application>. Das
|
||||
folgende Beispiel illustriert das Grundmodell von
|
||||
benutzerdefinierten Funktionen:</para>
|
||||
|
||||
<programlisting>cust_foo () (
|
||||
echo "bar=baz" > \
|
||||
${NANO_WORLDDIR}/etc/foo
|
||||
)
|
||||
customize_cmd cust_foo</programlisting>
|
||||
|
||||
<para>Ein besseres Beispiel für eine Anpassung ist folgende,
|
||||
welche die Standardgröße des <filename>/etc</filename> Verzeichnisses von 5 MB
|
||||
auf 30 MB ändert:</para>
|
||||
|
||||
<programlisting>cust_etc_size () (
|
||||
cd ${NANO_WORLDDIR}/conf
|
||||
echo 30000 > default/etc/md_size
|
||||
)
|
||||
customize_cmd cust_etc_size</programlisting>
|
||||
|
||||
<para>Es gibt ein paar vordefinierte Standardfunktionen die
|
||||
Sie nutzen können:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>cust_comconsole</literal> —
|
||||
Deaktiviert &man.getty.8; auf den VGA Geräten (den
|
||||
<filename>/dev/ttyv*</filename> Gerätedateien) und
|
||||
ermöglicht die Nutzung der seriellen Schnittstelle COM1
|
||||
als Systemkonsole.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>cust_allow_ssh_root</literal> —
|
||||
Erlaubt es <systemitem class="username">root</systemitem> sich über
|
||||
&man.sshd.8; anzumelden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>cust_install_files</literal> —
|
||||
Installiert Dateien aus dem <filename>nanobsd/Files</filename>
|
||||
Verzeichnis, das einige nützliche Skripte für die
|
||||
Systemverwaltung enthält.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Pakete hinzufügen</title>
|
||||
|
||||
<para>Durch benutzerdefinierte Funktionen können Pakete zum
|
||||
<application>NanoBSD</application> Abbild hinzugefügt
|
||||
werden. Die nachfolgende Funktion installiert alle Pakete
|
||||
aus
|
||||
<filename>/usr/src/tools/tools/nanobsd/packages</filename>:</para>
|
||||
|
||||
<programlisting>install_packages () (
|
||||
mkdir -p ${NANO_WORLDDIR}/packages
|
||||
cp /usr/src/tools/tools/nanobsd/packages/* ${NANO_WORLDDIR}/packages
|
||||
chroot ${NANO_WORLDDIR} sh -c 'cd packages; pkg_add -v *;cd ..;'
|
||||
rm -rf ${NANO_WORLDDIR}/packages
|
||||
)
|
||||
customize_cmd install_packages</programlisting>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Beispiel einer Konfigurationsdatei</title>
|
||||
|
||||
<para>Ein komplettes Beispiel für eine Konfigurationsdatei
|
||||
zum Erstellen eines benutzerdefinierten
|
||||
<application>NanoBSD</application> Abbilds könnte folgende
|
||||
sein:</para>
|
||||
|
||||
<programlisting>NANO_NAME=custom
|
||||
NANO_SRC=/usr/src
|
||||
NANO_KERNEL=MYKERNEL
|
||||
NANO_IMAGES=2
|
||||
|
||||
CONF_BUILD='
|
||||
NO_KLDLOAD=YES
|
||||
NO_NETGRAPH=YES
|
||||
NO_PAM=YES
|
||||
'
|
||||
|
||||
CONF_INSTALL='
|
||||
NO_ACPI=YES
|
||||
NO_BLUETOOTH=YES
|
||||
NO_CVS=YES
|
||||
NO_FORTRAN=YES
|
||||
NO_HTML=YES
|
||||
NO_LPR=YES
|
||||
NO_MAN=YES
|
||||
NO_SENDMAIL=YES
|
||||
NO_SHAREDOCS=YES
|
||||
NO_EXAMPLES=YES
|
||||
NO_INSTALLLIB=YES
|
||||
NO_CALENDAR=YES
|
||||
NO_MISC=YES
|
||||
NO_SHARE=YES
|
||||
'
|
||||
|
||||
CONF_WORLD='
|
||||
NO_BIND=YES
|
||||
NO_MODULES=YES
|
||||
NO_KERBEROS=YES
|
||||
NO_GAMES=YES
|
||||
NO_RESCUE=YES
|
||||
NO_LOCALES=YES
|
||||
NO_SYSCONS=YES
|
||||
NO_INFO=YES
|
||||
'
|
||||
|
||||
FlashDevice SanDisk 1G
|
||||
|
||||
cust_nobeastie() (
|
||||
touch ${NANO_WORLDDIR}/boot/loader.conf
|
||||
echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf
|
||||
)
|
||||
|
||||
customize_cmd cust_comconsole
|
||||
customize_cmd cust_install_files
|
||||
customize_cmd cust_allow_ssh_root
|
||||
customize_cmd cust_nobeastie</programlisting>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>NanoBSD aktualisieren</title>
|
||||
|
||||
<para>The Update-Prozess von <application>NanoBSD</application>
|
||||
ist relativ einfach:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Erstellen Sie ein neues
|
||||
<application>NanoBSD</application> Abbild.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Laden Sie das neue Abbild in eine unbenutzte Partition
|
||||
eines laufenden <application>NanoBSD</application>
|
||||
Systems.</para>
|
||||
|
||||
<para>Der wichtigste Unterschied dieses Schrittes zur ersten
|
||||
<application>NanoBSD</application> Installation besteht
|
||||
darin, das jetzt anstatt der Datei
|
||||
<filename>_.disk.full</filename> (enthält ein Abbild der
|
||||
gesamten Platte) die Datei
|
||||
<filename>_.disk.image</filename> (enthält ein Abbild
|
||||
einer einzelnen System-Partition) installiert wird.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Neustart, um das System von der neu installierten
|
||||
Partition zu starten.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Wenn alles gut geht, ist die Aktualisierung
|
||||
abgeschlossen.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Wenn etwas schief läuft, starten Sie wieder in die
|
||||
vorherige Partition (die das alte, funktionierende Abbild
|
||||
enthält) um die System-Funktionalität so schnell wie
|
||||
möglich wieder herzustellen. Beheben Sie alle Probleme
|
||||
des neu gebauten Abbilds, und wiederholen Sie den
|
||||
Vorgang.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>Um das neue Abbild auf das laufende
|
||||
<application>NanoBSD</application> System zu installieren, ist
|
||||
es möglich, entweder das <filename>updatep1</filename> oder
|
||||
<filename>updatep2</filename> Skript im <filename>/root</filename> Verzeichnis zu verwenden,
|
||||
je nachdem, von welcher Partition das aktuelle System
|
||||
läuft.</para>
|
||||
|
||||
<para>In Abhängigkeit davon welche Dienste der Host, der das
|
||||
<application>NanoBSD</application> Abbild anbietet, und welche
|
||||
Art von Transfer bevorzugt wird, bestehen eine von drei zu
|
||||
prüfenden Möglichkeiten:</para>
|
||||
|
||||
<sect3>
|
||||
<title>Verwendung von &man.ftp.1;</title>
|
||||
|
||||
<para>Wenn die Übertragungsgeschwindigkeit an erster
|
||||
Stelle steht, verwenden Sie dieses Beispiel:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ftp myhost
|
||||
get _.disk.image "| sh updatep1"</userinput></screen>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Verwendung von &man.ssh.1;</title>
|
||||
|
||||
<para>Wenn eine sichere Übertragung bevorzugt wird,
|
||||
sollten Sie die Verwendung dieses Beispiels in Betracht
|
||||
ziehen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Verwendung von &man.nc.1;</title>
|
||||
|
||||
<para>Verwenden Sie dieses Beispiel, wenn auf dem Remote-Host
|
||||
kein &man.ftpd.8; oder &man.sshd.8; Dienst läuft:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Zunächst öffnen Sie eine TCP-Listener auf dem Host
|
||||
der das Abbild bereitstellt und zum Client
|
||||
sendet:</para>
|
||||
|
||||
<screen>myhost&prompt.root; <userinput>nc -l 2222 < _.disk.image</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Stellen Sie sicher das der benutzte Port nicht
|
||||
blockiert wird, um eingehende Verbindungen, vom
|
||||
<application>NanoBSD</application> Host durch die
|
||||
Firewall, zu ermöglichen.</para>
|
||||
</note>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Verbinden Sie sich zum Host der das Abbild
|
||||
bereitstellt und führen Sie das
|
||||
<filename>updatep1</filename> Skript aus:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>nc myhost 2222 | sh updatep1</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<index/>
|
||||
</article>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/articles/new-users/Makefile,v 1.2 2005/02/08 00:43:39 mheinen Exp $
|
||||
# basiert auf: 1.11
|
||||
#
|
||||
# Article: Informationen für &os;- und &unix;-Einsteiger
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,22 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# basiert auf: r39631
|
||||
#
|
||||
# Article: Port Mentor Guidelines
|
||||
#
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,262 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<!-- The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
basiert auf: r396332
|
||||
-->
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>Richtlinien für Port-Mentoren</title>
|
||||
|
||||
|
||||
<authorgroup>
|
||||
<author><orgname>Das &os; Ports-Management Team</orgname></author>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<copyright>
|
||||
<year>2011</year>
|
||||
<holder role="mailto:tabthorpe@FreeBSD.org">Thomas
|
||||
Abthorpe</holder>
|
||||
<holder role="mailto:crees@FreeBSD.org">Chris Rees</holder>
|
||||
</copyright>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="port-mentor.guidelines">
|
||||
<title>Richtlinien für Mentor/Mentee Beziehungen</title>
|
||||
|
||||
<para>Dieser Abschnitt soll dazu dienen, den Mythos des
|
||||
Mentoringprozesses zu entzaubern und gleichzeitig einen offenen
|
||||
Dialog zu führen, um diese Richtlinien anzupassen und zu
|
||||
erweitern. Es gibt bereits sehr viele Regeln in unserem Leben
|
||||
und wir sind auch keine Regierungsorganisation, die Gesetze
|
||||
aufzwingt. Stattdessen verstehen wir uns als eine Gemeinschaft
|
||||
von gleichgesinnten Individuen, die an einem gemeinsamen Ziel
|
||||
arbeiten, um die Qualitätsansprüche an das Produkt,
|
||||
welches als Portbaum bekannt ist, zu gewährleisten.</para>
|
||||
|
||||
<sect2 xml:id="why.mentor">
|
||||
<title>Warum Mentor sein?</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Die meisten von uns kamen durch die Hife eines Mentors
|
||||
in das Projekt hinein. Also sollte man jemand anderem auch
|
||||
diesen Gefallen tun.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sie haben das unwiderstehliche Bedürfnis, anderen
|
||||
Ihr Wissen mitzuteilen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die übliche Bestrafung wird angewendet, da Sie es
|
||||
mittlerweile Leid sind, die gute Arbeit von anderen Leuten
|
||||
zu committen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="mentor.comentor">
|
||||
<title>Mentor/Mit-Mentor</title>
|
||||
|
||||
<para>Gründe für eine Mit-Mentorenschaft:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Signifikanter Zeitzonenunterschied. Verfügbare
|
||||
Mentoren, mit denen man interaktiv Dinge via Instant
|
||||
Messenger besprechen kann, sind extrem hilfreich.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Potentielle Sprachbarriere. Ja, &os; ist, wie die
|
||||
meiste Softwareentwicklung auch, sehr Englisch-orientiert.
|
||||
Jedoch kann ein Mentor, der die eigene Sprache spricht,
|
||||
hilfreich sein.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>ENOTIME! Solange es keinen 30-Stunden Tag und eine
|
||||
8-Tage Woche gibt, haben manche von uns nur eine begrenzte
|
||||
Menge Zeit zur Verfügung. Diese Last mit jemandem zu
|
||||
teilen macht die Sache einfacher.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ein Mentor-Neuling kann von den Erfahrungen eines
|
||||
erfahrenen Committers bzw. Mentors profitieren.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Zwei Köpfe sind besser als einer allein.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Gründe für einen Einzelmentor:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Sie arbeiten nicht so gut mit anderen zusammen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sie bevorzugen eine 1:1-Beziehung.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die Gründe für die Mit-Mentorenschaft
|
||||
treffen auf Sie nicht zu.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="mentor.expectations">
|
||||
<title>Erwartungen</title>
|
||||
|
||||
<para>Wir erwarten, dass Mentoren alle vorgeschlagenen Patche,
|
||||
zumindest für einen Anfangszeitraum, welcher mehr als
|
||||
eine oder zwei Wochen dauert, prüfen und testweise bauen
|
||||
sollten.</para>
|
||||
|
||||
<para>Wir erwarten, dass Mentoren die Verantwortung für die
|
||||
Aktionen Ihres Mentees übernehmen. Ein Mentor sollte
|
||||
hinter den Commits des Mentees stehen, sowohl implizit als
|
||||
auch explizit.</para>
|
||||
|
||||
<para>Wir erwarten, dass Mentoren ihre Mentees die Lektüre
|
||||
des <link xlink:href="&url.books.porters-handbook;">Handbuch
|
||||
für Ports Committer</link>, die <link xlink:href="&url.articles.pr-guidelines;">PR-Richtlinien</link> sowie
|
||||
den <link xlink:href="&url.articles.committers-guide;">Committer's
|
||||
Guide</link> empfehlen. Obwohl es nicht notwendig ist, all
|
||||
diese Details im Gedächtnis zu behalten, sollte jeder
|
||||
Committer einen Überblick über diese Dinge haben, um
|
||||
ein effizienter Teil der Gemeinschaft zu sein (und um
|
||||
Anfängerfehler so weit wie möglich zu vermeiden).</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="mentees">
|
||||
<title>Auswahl eines Mentees</title>
|
||||
|
||||
<para>Es existiert keine definierte Regel, die festlegt, dass
|
||||
ein Kandidat bereit ist. Es kann eine Kombination der Anzahl
|
||||
von PRs sein, die an <application>GNATS</application>
|
||||
geschickt wurden, die Anzahl an Ports, die von dieser Person
|
||||
gepflegt werden, die Häfigkeit von Ports-Aktualisierungen
|
||||
bzw. die Menge von Beteiligungen in einem bestimmten Bereich,
|
||||
z.B. <application>GNOME</application>,
|
||||
<application>KDE</application>,
|
||||
<application>Gecko</application> oder andere.</para>
|
||||
|
||||
<para>Ein Kandidat sollte fasst keine Auszeiten haben, auf
|
||||
Anfragen antworten und generell sehr hilfreich in der
|
||||
Unterstützung seiner Ports sein.</para>
|
||||
|
||||
<para>Es sollte eine Historie von Einsatzbereitschaft vorliegen,
|
||||
da es bekanntermassen Zeit und Aufwand benötigt, um einen
|
||||
Committer zu trainieren. Falls jemand schon längere Zeit
|
||||
dabei ist und Zeit damit verbringt, zu beobachten, wie die
|
||||
Dinge funktionieren, ergibt sich eine Erwartungshaltung von
|
||||
angehäuftem Wissen. Viel zu oft schon haben wir
|
||||
beobachten müssen, dass jemand viele PRs schickt, um
|
||||
anschliessend im IRC aufzutauchen um zu fragen, wann das
|
||||
Commit-Bit gewährt wird.</para>
|
||||
|
||||
<para>Eine Mailingliste abonniert zu haben und dieser zu folgen
|
||||
ist vorteilhaft. Es gibt keine echte Erwartungshaltung, dass
|
||||
durch das schreiben auf einer Mailingliste jemand zum
|
||||
Committer wird, doch es zeigt dennoch die Bereitschaft. Manche
|
||||
Mails bieten Einsichten in das Wissen eines Kandidaten
|
||||
genauso, wie gut jemand mit anderen interagiert. Gleichfalls
|
||||
kann durch Teilnahme im IRC jemand ein höheres Ansehen
|
||||
erhalten.</para>
|
||||
|
||||
<para>Fragen Sie sechs verschiedene Committer, wieviele PRs
|
||||
jemand vor seiner Nominierung einschicken sollte und Sie
|
||||
erhalten sechs verschiedene Antworten. Fragen Sie diese
|
||||
Individuen wie lange jemand schon etwas beigetragen haben
|
||||
sollte, ergibt sich das gleiche Dilemma. Wieviele Ports sollte
|
||||
jemand als Minimum betreuen? Jetzt haben wir wirklich eine
|
||||
Diskussion ausgelöst! Manche Dinge sind einfach schwer als
|
||||
Mengen abzubilden, also muss ein Mentor eine Einschätzung
|
||||
machen und hoffen, dass portmgr zustimmt.</para>
|
||||
|
||||
</sect2>
|
||||
<sect2 xml:id="mentorship.duration">
|
||||
<title>Dauer der Mentorenschaft</title>
|
||||
|
||||
<para>Mit der Zeit wird das Vertrauen in jemanden wachsen und
|
||||
der Mentee wird <quote>implizite</quote> Commitrechte
|
||||
erhalten. Dies kann triviale Änderungen für
|
||||
<filename>Makefile</filename>, <filename>pkg-descr</filename>
|
||||
und andere Dateien beinhalten. Genauso kann dies
|
||||
Aktualisierungen der <varname>PORTVERSION</varname>, die keine
|
||||
<varname>plist</varname>-Änderungen sind, betreffen.
|
||||
Andere Umstände können nach Gutdünken des
|
||||
Mentors formuliert werden. Allerdings sollten
|
||||
Versionsänderungen bei Ports, die andere Ports betreffen,
|
||||
vorher von einem Mentor geprüft werden.</para>
|
||||
|
||||
<para>Genauso wie wir alle verschiedene Individuen sind, besitzt
|
||||
jeder Mentee unterschiedliche Lernkurven, Zeitinvestitionen
|
||||
und andere Einflussfaktoren, die zu der Zeit beitragen, bevor
|
||||
jemand <quote>allein fliegt</quote>. Empirisch sollte ein
|
||||
Mentee für mindestens 3 Monate beobachtet werden. 90-100
|
||||
Commits ist ein weiteres Ziel, dass ein Mentor nutzen kann,
|
||||
bevor jemand als Mentee entlassen wird. Andere Faktoren, die
|
||||
man vor der Freilassung seines Mentees berücksichtigen
|
||||
sollte, ist die Anzahl der gemachten Fehler, die erhaltenen
|
||||
QATs, usw. Falls immer noch Fehler gemacht werden, ist die
|
||||
Betreuung durch einen Mentor weiterhin notwendig.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="mentor.comentor.debate">
|
||||
<title>Mentor/Mit-Mentor Debatten</title>
|
||||
|
||||
<para>Wenn eine Anfrage an portmgr geht, sieht dies
|
||||
normalerweise so aus: <quote>I propose 'foo' for a ports
|
||||
commit bit, I will co-mentor with 'bar'</quote>. Anfrage wurde
|
||||
erhalten, abgestimmt und die Entscheidung wird
|
||||
getragen.</para>
|
||||
|
||||
<para>Der Mentor ist die primäre Kontaktperson, oder
|
||||
zumindest der <quote>erste unter gleichgestellten</quote>, der
|
||||
Co-Mentor dient als Absicherung.</para>
|
||||
|
||||
<para>Mancher Schurke, dessen Name hier nicht genannt werden
|
||||
soll, machte den <link xlink:href="http://lists.freebsd.org/pipermail/cvs-ports/2007-September/134614.html">
|
||||
ersten aufgezeichneten Mit-Mentoren Commit</link>. Es wurden
|
||||
auch schon Mit-Mentoren commits im src-Baum beobachtet. Macht
|
||||
dieses Vorgehen die Sache richtig? Ist es falsch? Es scheint
|
||||
Teil dessen zu sein, wie die Dinge sich entwickeln.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="mentee.expectations">
|
||||
<title>Erwartungen</title>
|
||||
|
||||
<para>Wir erwarten von Mentees, dass diese für konstruktive
|
||||
Kritik aus der Gemeinschaft offen sind. Es gibt immer noch
|
||||
viel <quote>Wissen</quote>, welches nicht geschrieben steht.
|
||||
Richtig auf konstruktive Kritik zu antworten ist was wir
|
||||
hoffen zu erkennen, wenn wir jemanden anhand seiner
|
||||
Beiträge im IRC und auf den Mailinglisten
|
||||
auswählen.</para>
|
||||
|
||||
<para>Wir warnen Mentees davor, dass manche Kritik, die sie
|
||||
erhalten werden, weniger <quote>konstruktiv</quote> als andere
|
||||
sein wird (egal ob durch Verständigungsprobleme, die
|
||||
durch die Sprache bedingt sind oder durch Pingeligkeit). Mit
|
||||
dieser Art von Kritik kultiviert umzugehen ist auch Teil
|
||||
davon, einer grossen Gemeinschaft anzugehören. Bei
|
||||
spezifischen Problemen mit bestimmten Leuten oder falls fragen
|
||||
aufkommen, hoffen wir dass diese sich an ein Mitglied von
|
||||
portmgr wenden, entweder via IRC oder per eMail.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/articles/solid-state/Makefile,v 1.2 2011/12/31 12:33:27 bcr Exp $
|
||||
# basiert auf: 1.5
|
||||
#
|
||||
# Article: FreeBSD und Solid State Devices
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html html-split
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,531 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||
<!-- Copyright (c) 2001 The FreeBSD Documentation Project
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
|
||||
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/articles/solid-state/article.xml,v 1.2 2010/09/18 21:55:49 jkois Exp $
|
||||
basiert auf: 1.18
|
||||
-->
|
||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>&os; und Solid State-Geräte</title>
|
||||
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>John</firstname><surname>Kozubik</surname></personname><affiliation>
|
||||
<address><email>john@kozubik.com</email></address>
|
||||
</affiliation></author>
|
||||
</authorgroup>
|
||||
|
||||
<copyright>
|
||||
<year>2001</year>
|
||||
<year>2009</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
&legalnotice;
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>Dieser Artikel behandelt die Verwendung von Solid State Festplatten
|
||||
in &os;, um eingebettete Systeme zu erstellen.</para>
|
||||
|
||||
<para>Eingebettete Systeme haben den Vorteil, dass sie eine
|
||||
höhere Stabilität aufgrund des fehlens von beweglichen
|
||||
Bauteilen (Festplatten) besitzen. Es muss jedoch beachtet
|
||||
werden, dass generell weniger Speicherplatz zur Verfügung
|
||||
steht und die Lebensdauer des Speichermediums geringer
|
||||
ist.</para>
|
||||
|
||||
<para>Spezielle Themen die behandelt werden beinhalten die Typen
|
||||
und Attribute von Solid State Datenträgern, die in &os;
|
||||
verwendet werden, Kernel-Optionen die in solch einer Umgebung
|
||||
von Interesse sind, der
|
||||
<filename>rc.initdiskless</filename>-Mechanismus, welcher die
|
||||
Initalisierung solcher Systeme automatisiert, sowie die
|
||||
Notwendigkeit von Nur-Lese-Dateisystemen und das Erstellen von
|
||||
Dateisystemen von Grund auf. Der Artikel schliesst mit ein
|
||||
paar generellen Strategien für kleine und Nur-Lese-&os;
|
||||
Umgebungen.</para>
|
||||
|
||||
<para><emphasis>Übersetzt von Benedict
|
||||
Reuschling</emphasis>.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="intro">
|
||||
<title>Solid State Festplattengeräte</title>
|
||||
|
||||
<para>Der Umfang des Artikels ist auf Solid State Geräte
|
||||
beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist
|
||||
ein Solid State Speicher (keine beweglichen Teile), der nicht
|
||||
flüchtig ist (der Speicher behält die Daten sogar nachdem alle
|
||||
Energiequellen ausgeschaltet wurden). Flash-Speicher kann
|
||||
grossen physischen Schock aushalten und ist vergleichsweise
|
||||
schnell (die Flash-Speicher Lösungen, die in diesem Artikel
|
||||
behandelt werden, sind nur wenig langsamer als eine
|
||||
EIDE-Festplatte in der Schreibgeschwindigkeit und viel schneller
|
||||
bei Lese-Operationen). Ein sehr wichtiger Aspekt von
|
||||
Flash-Speichern, dessen Auswirkungen später in diesem Artikel
|
||||
diskutiert werden, ist, dass jeder Sektor eine begrenzte
|
||||
Kapazität zur Wiederbeschreibung besitzt. Man kann nur eine
|
||||
bestimmte Anzahl von Schreib-, Lösch- und
|
||||
Wiederbeschreibungsvorgängen durchführen, bevor der Sektor
|
||||
permanent unbrauchbar wird. Obwohl viele Flash-Speicher
|
||||
Produkte automatisch schlechte Blöcke markieren und manche
|
||||
Geräte Schreiboperationen gleichmässig verteilen, bleibt
|
||||
weiterhin die Anzahl der durchführbaren Schreibvorgänge
|
||||
begrenzt. Verschiedene Geräteeinheiten besitzen zwischen
|
||||
1,000,000 und 10,000,000 Schreibzyklen pro Sektor in ihren
|
||||
Spezifikationen. Diese Zahlen variieren aufgrund der
|
||||
Umgebungstemperatur.</para>
|
||||
|
||||
<para>Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten
|
||||
betrachten, welche als Speichermedien für Digitalkameras
|
||||
ziemlich populär sind. Von besonderem Interesse ist der
|
||||
Umstand, dass diese direkt an den IDE-Bus angeschlossen werden
|
||||
und kompatibel zu den ATA-Befehlen sind. Aus diesem Grund
|
||||
können diese Geräte mit einem einfachen und billigen Adapter
|
||||
direkt an den IDE-Bus eines Computers angeschlossen werden. Auf
|
||||
diese Weise sehen Betriebssysteme wie &os; diese Geräte dann als
|
||||
normale (wenn auch sehr kleine) Festplatten an.</para>
|
||||
|
||||
<para>Andere Solid State Plattenlösungen existieren, jedoch
|
||||
platzieren deren Kosten, Obskurität und ihre Unhandlichkeit sie
|
||||
aussserhalb des Umfangs dieses Artikels.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="kernel">
|
||||
<title>Kerneloptionen</title>
|
||||
|
||||
<para>Ein paar Kerneloptionen sind von besonderem Interesse für
|
||||
diejenigen, welche diese eingebetteten &os;-Systeme erstellen
|
||||
möchten.</para>
|
||||
|
||||
<para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als
|
||||
Systemplatte verwenden, sind interessant für Dateisysteme im
|
||||
Hauptspeicher und RAM-Disks. Wegen der begrenzten Anzahl von
|
||||
Schreibzyklen, die auf Flash-Speicher durchgeführt werden
|
||||
können, werden die Platte und die Dateisysteme darauf mit
|
||||
grosser Wahrscheinlichkeit nur lesend eingehängt werden. In
|
||||
dieser Umgebung werden Dateisysteme wie
|
||||
<filename>/tmp</filename> und <filename>/var</filename> als
|
||||
RAM-Disks eingebunden, um dem System zu erlauben, Logdateien
|
||||
anzulegen und Zähler sowie temporäre Dateien zu aktualisieren.
|
||||
RAM-Disks sind eine kritische Komponente für eine erfolgreiche
|
||||
Solid State Umsetzung in &os;.</para>
|
||||
|
||||
<para>Sie sollten dafür sorgen, dass die folgenden Zeilen in Ihrer
|
||||
Kernelkonfigurationsdatei vorhanden sind:</para>
|
||||
|
||||
<programlisting>options MFS # Memory Filesystem
|
||||
options MD_ROOT # md device usable as a potential root device
|
||||
pseudo-device md # memory disk</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="ro-fs">
|
||||
<title>Die <literal>rc</literal>-Subsysteme und nur-Lese
|
||||
Dateisysteme</title>
|
||||
|
||||
<para>Die Initialisierung nach dem Bootvorgang eines eingebetteten
|
||||
&os;-Systems wird von <filename>/etc/rc.initdiskless</filename>
|
||||
kontrolliert.</para>
|
||||
|
||||
<para><filename>/etc/rc.d/var</filename> hängt
|
||||
<filename>/var</filename> als RAM-Disk ein, erstellt eine
|
||||
konfigurierbare Liste von Verzeichnissen in
|
||||
<filename>/var</filename> mittels des &man.mkdir.1;-Kommandos
|
||||
und ändert die Attribute von ein paar dieser Verzeichnisse. Bei
|
||||
der Ausführung von <filename>/etc/rc.d/var</filename> kommt eine
|
||||
andere <filename>rc.conf</filename>-Variable ins Spiel:
|
||||
<literal>varsize</literal>. Die Datei <filename>/etc/rc.d/var</filename>
|
||||
erstellt eine <filename>/var</filename>-Partition basierend auf
|
||||
dem Wert dieser Variable in <filename>rc.conf</filename>:</para>
|
||||
|
||||
<programlisting>varsize=8192</programlisting>
|
||||
|
||||
<para>Standardmässig wird dieser Wert in Sektoren
|
||||
angegeben.</para>
|
||||
|
||||
<para>Der Fakt, dass es sich bei <filename>/var</filename> um ein
|
||||
nur-Lese Dateisystem handelt, ist eine wichtige Unterscheidung,
|
||||
da die <filename>/</filename>-Partition (und jede andere
|
||||
Partition, die Sie auf Ihrem Flash-Medium haben) nur lesend
|
||||
eingehängt wird. Erinnern Sie sich, dass in <xref linkend="intro"/> die Beschränkungen von Flash-Speichern
|
||||
erläutert wurden, speziell deren begrenzte Kapazität zum
|
||||
Schreiben. Die Notwendigkeit, Dateisysteme auf Flash-Speichern
|
||||
nur lesend einzubinden und keine Swap-Dateien zu verwenden, kann
|
||||
nicht oft genug erwähnt werden. Eine Swap-Datei auf einem
|
||||
ausgelasteten System kann in weniger als einem Jahr den gesamten
|
||||
Flash-Speicher aufbrauchen. Häufige Protokollierung oder das
|
||||
Erstellen und Löschen von temporären Dateien kann das gleiche
|
||||
verursachen. Aus diesem Grund sollten Sie zusätzlich zum
|
||||
entfernen des <literal>swap</literal>-Eintrags aus ihrer
|
||||
<filename>/etc/fstab</filename>-Datei auch noch die
|
||||
Optionsfelder für jedes Dateisystem auf <literal>ro</literal>
|
||||
wie folgt stellen:</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/ad0s1a / ufs ro 1 1</programlisting>
|
||||
|
||||
<para>Ein paar Anwendungen im normalen System werden sofort nach
|
||||
dieser Änderung ausfallen. Beispielsweise wird Cron nicht
|
||||
richtig funktionieren, aufgrund von fehlenden Cron-Tabellen in
|
||||
<filename>/var</filename> die von
|
||||
<filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und
|
||||
DHCP werden ebenfalls Probleme durch das nur-Lese Dateisystem
|
||||
und fehlende Elemente im Verzeichnis <filename>/var</filename>
|
||||
verursachen, die <filename>/etc/rc.d/var</filename> erstellt
|
||||
hat. Diese Probleme sind jedoch nur vorübergehend und werden
|
||||
zusammen mit Lösungen zur Ausführung von anderen gebräuchlichen
|
||||
Softwarepaketen in <xref linkend="strategies"/>
|
||||
angesprochen.</para>
|
||||
|
||||
<para>Eine wichtige Sache, an die man sich erinnern sollte, ist,
|
||||
dass ein Dateisystem, welches als nur lesend in
|
||||
<filename>/etc/fstab</filename> eingebunden wurde, jederzeit als
|
||||
schreibend durch das folgende Kommando eingehängt werden
|
||||
kann:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/sbin/mount -uw partition</userinput></screen>
|
||||
|
||||
<para>und auch wieder zurück auf nur lesend durch den Befehl:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/sbin/mount -ur partition</userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Ein Dateisystem von Grund auf neu erstellen</title>
|
||||
|
||||
<para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als
|
||||
normale IDE-Festplatten erkannt werden, könnten Sie theoretisch
|
||||
&os; aus dem Netzwerk mittels der Kern- und mfsroot-Floppies
|
||||
oder einer CD installieren.</para>
|
||||
|
||||
<para>Jedoch kann selbst eine kleine Installation von &os; durch
|
||||
die normale Installationsprozedur ein System erzeugen, dass
|
||||
grösser als 200 MB ist. Da die meisten Leute kleinere
|
||||
Flash-Speichermedien einsetzen (128 MB wird hier als gross
|
||||
angesehen - 32 oder sogar 16 MB sind gebräuchlich) ist eine
|
||||
gewöhnliche Installation mit normalen Methoden nicht möglich, da
|
||||
es einfach nicht genug freien Plattenplatz gibt, selbst für die
|
||||
kleinste Installationsart.</para>
|
||||
|
||||
<para>Der einfachste Weg, diese Speicherlimitierung zu umgehen,
|
||||
ist, &os; auf konventionelle Weise auf eine normale Festplatte
|
||||
zu installieren. Nachdem die Installation abgeschlossen wurde,
|
||||
kürzen Sie das Betriebssystem auf das nötigste, bis Sie eine
|
||||
Grösse erreicht hat, die auf das Flash-Medium passt und benutzen
|
||||
Sie dann tar auf dem gesamten Dateisystem. Die folgenden
|
||||
Schritte werden Sie durch den Prozess der Vorbereitung eines
|
||||
Flash-Mediums für ihr getartes Dateisystem führen. Beachten
|
||||
Sie, dass Operationen wie Partitionierung, Benennung, Erstellung
|
||||
von Dateisystemen, etc. von Hand durchgeführt werden müssen, da
|
||||
eine normale Installation nicht möglich ist. Zusätzlich zu den
|
||||
Kern- und mfsroot-Disketten benötigen Sie auch die
|
||||
fixit-Floppy.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Partitionierung Ihrer Flash-Medien</title>
|
||||
|
||||
<para>Wählen Sie nach dem Starten der Kern- und
|
||||
mfsroot-Disketten, <literal>custom</literal> aus dem
|
||||
Installationsmenü. In diesem Menü wählen Sie dann
|
||||
<literal>partition</literal> aus. Dort sollten Sie alle
|
||||
bestehenden Partitionen mit Hilfe der Taste
|
||||
<keycap>d</keycap> löschen. Nachdem alle bestehenden
|
||||
Partitionen gelöscht wurden, erstellen Sie mittels der Taste
|
||||
<keycap>c</keycap> eine Partition und akzeptieren Sie den
|
||||
Standardwert für die Grösse der Partition. Wenn Sie nach
|
||||
dem Typ der Partition gefragt werden, stellen Sie sicher,
|
||||
dass der Wert auf <literal>165</literal> eingestellt ist.
|
||||
Schreiben Sie jetzt diese Partitionstabelle auf die Platte
|
||||
durch betätigen der Taste <keycap>w</keycap> (dies ist die
|
||||
versteckte Option auf diesem Bildschirm). Wenn Sie eine
|
||||
ATA-kompatible Compact Flash-Karte verwenden, sollten Sie
|
||||
den &os; Bootmanager auswählen. Drücken Sie nun die Taste
|
||||
<keycap>q</keycap>, um das Partitionsmenü zu verlassen. Sie
|
||||
werden das Menü des Bootmanagers noch ein weiteres Mal
|
||||
gezeigt bekommt. In diesem Fall wiederholen Sie die Auswahl
|
||||
von vorher.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Anlegen von Dateisystemen auf Ihrem
|
||||
Flashspeicher-Gerät</title>
|
||||
|
||||
<para>Verlassen Sie das Installationsmenü und wählen Sie aus
|
||||
dem Hauptinstallationsmenü die Option
|
||||
<literal>fixit</literal>. In der fixit-Umgebung angelangt,
|
||||
geben Sie den folgenden Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen>
|
||||
|
||||
<para>Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter
|
||||
der Herrschaft des disklabel-Kommandos befinden. Als
|
||||
nächstes müssen Sie die eine <literal>a:</literal>-Zeile an
|
||||
das Ende der Datei hinzufügen. Diese
|
||||
<literal>a:</literal>-Zeile sollte wie folgt
|
||||
aussehen:</para>
|
||||
|
||||
<programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting>
|
||||
|
||||
<para>Wobei <replaceable>123456</replaceable> eine Zahl
|
||||
darstellt, die exakt der gleichen Zahl in der bestehenden
|
||||
Zeile mit dem <literal>c:</literal>-Eintrag entspricht. Sie
|
||||
kopieren quasi die bestehende Zeile <literal>c:</literal>
|
||||
als eine neue Zeile <literal>a:</literal> und stellen
|
||||
sicher, dass fstype <literal>4.2BSD</literal> entspricht.
|
||||
Speichern Sie die Datei und verlassen Sie den Editor.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
|
||||
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Schreiben des Dateisystems auf Ihr Flash-Medium</title>
|
||||
|
||||
<para>Hängen Sie das neu erstellte Flash-Medium ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen>
|
||||
|
||||
<para>Verbinden Sie diese Maschine mit dem Netzwerk, um die
|
||||
tar-Datei zu übertragen und extrahieren Sie es auf das
|
||||
Dateisystem des Flash-Mediums. Ein Beispiel dazu wäre
|
||||
folgendes:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
|
||||
&prompt.root; <userinput>route add default 192.168.0.1</userinput></screen>
|
||||
|
||||
<para>Jetzt da die Maschine ans Netzwerk angeschlossen ist,
|
||||
kopieren Sie die tar-Datei. An diesem Punkt werden Sie
|
||||
möglicherweise mit einem Dilemma konfrontiert - sollte Ihr
|
||||
Flash-Speicher beispielsweise 128 MB gross sein und
|
||||
Ihre tar-Datei grösser als 64 MB, können Sie ihre
|
||||
tar-Datei auf dem Flash-Speicher nicht entpacken - Ihnen
|
||||
wird vorher der Speicherplatz ausgehen. Eine Lösung für
|
||||
dieses Problem, sofern Sie FTP verwenden, ist, dass Sie die
|
||||
Datei entpacken können, während es von FTP übertragen wird.
|
||||
Wenn Sie die Übertragung auf diese Weise durchführen, haben
|
||||
Sie niemals die tar-Datei und deren Inhalt zur gleichen Zeit
|
||||
auf Ihrem Medium:</para>
|
||||
|
||||
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen>
|
||||
|
||||
<para>Sollte Ihre tar-Datei gezippt sein, können Sie dies
|
||||
ebenso bewerkstelligen:</para>
|
||||
|
||||
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen>
|
||||
|
||||
<para>Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem
|
||||
des Flash-Mediums abgelegt wurden, können Sie den
|
||||
Flash-Speicher aushängen und neu starten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /</userinput>
|
||||
&prompt.root; <userinput>umount /flash</userinput>
|
||||
&prompt.root; <userinput>exit</userinput></screen>
|
||||
|
||||
<para>In der Annahme, dass Sie Ihr Dateisystem richtig
|
||||
konfiguriert haben, als es noch auf der gewöhnlichen
|
||||
Festplatte gebaut wurde (mit Ihren Nur-Lese-Dateisystemen
|
||||
und den nötigen Optionen im Kernel), sollten Sie nun
|
||||
erfolgreich von Ihrem &os; Embedded-System starten
|
||||
können.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="strategies">
|
||||
<title>Systemstrategien für kleine und Nur-Lese-Umgebungen</title>
|
||||
|
||||
<para>In <xref linkend="ro-fs"/> wurde darauf hingewiesen, dass
|
||||
das <filename>/var</filename>-Dateisystem von
|
||||
<filename>/etc/rc.d/var</filename> konstruiert wurde und die
|
||||
Präsenz eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in
|
||||
&os; gebrächlichen Softwarepaketen verursacht. In diesem
|
||||
Artikel werden Vorschläge für das erfolgreiche Betreiben von
|
||||
cron, syslog, Installationen von Ports und dem Apache-Webserver
|
||||
unterbreitet.</para>
|
||||
|
||||
<sect2>
|
||||
<title>cron</title>
|
||||
|
||||
<para>Während des Bootvorgangs wird <filename>/var</filename> von
|
||||
<filename>/etc/rc.d/var</filename> anhand der Liste aus
|
||||
<filename>/etc/mtree/BSD.var.dist</filename> gefüllt, damit
|
||||
<filename>cron</filename>, <filename>cron/tabs</filename>, <filename>at</filename> und ein paar weitere
|
||||
Standardverzeichnisse erstellt werden.</para>
|
||||
|
||||
<para>Jedoch löst das noch nicht das Problem, Crontabs über
|
||||
Neustarts des Systems hinaus zu erhalten. Wenn das System neu
|
||||
gestartet wird, verschwindet das
|
||||
<filename>/var</filename>-Dateiystem, welches sich im
|
||||
Hauptspeicher befunden hat und jegliche Crontabs, die Sie
|
||||
hatten werden ebenfalls verschwinden. Aus diesem Grund besteht
|
||||
eine Lösung darin, Crontabs für diejenigen Benutzer zu
|
||||
erstellen, die diese auch benötigen. Dazu sollte das
|
||||
<filename>/</filename>-Dateisystem lesend und schreibend
|
||||
eingehängt und diese Crontabs an einen sicheren Ort kopiert
|
||||
werden, wie beispielsweise <filename>/etc/tabs</filename>.
|
||||
Fügen Sie dann eine Zeile an das Ende der Datei
|
||||
<filename>/etc/rc.initdiskless</filename> hinzu, die diese
|
||||
Crontabs in <filename>/var/cron/tabs</filename> kopiert,
|
||||
nachdem dieses Verzeichnis während der Systeminitialisierung
|
||||
erstellt wurde. Sie werden auch eine Zeile hinzufügen mössen,
|
||||
welche die Besitzer und Berechtigungen auf diesen
|
||||
Verzeichnissen, die Sie erstellen und den dazugehörigen
|
||||
Dateien, die Sie mittels
|
||||
<filename>/etc/rc.initdiskless</filename> kopieren,
|
||||
setzen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>syslog</title>
|
||||
|
||||
<para>Die Datei <filename>syslog.conf</filename> spezifiziert
|
||||
den Ort von bestimmten Logdateien, welche in
|
||||
<filename>/var/log</filename> existieren. Diese Dateien
|
||||
werden nicht von <filename>/etc/rc.d/var</filename> während
|
||||
der Systeminitialisierung erstellt. Aus diesem Grund müssen
|
||||
Sie irgendwo in <filename>/etc/rc.d/var</filename> nach dem
|
||||
Abschnitt, der die Verzeichnisse in <filename>/var</filename>
|
||||
erstellt, eine Zeile ähnlich der folgenden hinzufügen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
|
||||
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Installation von Ports</title>
|
||||
|
||||
<para>Bevor die notwendigen Änderungen erkärt werden, einen
|
||||
Ports-Baum zu verwenden, ist es notwendig, Sie an die
|
||||
Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium
|
||||
zu erinnern. Da dieses nur lesend verfügbar ist, müssen Sie
|
||||
es vorübergehend mit Schreibrechten ausstatten, indem Sie die
|
||||
mount-Syntax, wie in <xref linkend="ro-fs"/> dargestellt wird,
|
||||
verwenden. Sie sollten immer diese Dateisysteme erneut mit
|
||||
nur-Lese-Rechten einhängen wenn Sie damit fertig sind -
|
||||
unnötige Schreibvorgänge auf dem Flash-Medium kann dessen
|
||||
Lebenszeit erheblich verkürzen.</para>
|
||||
|
||||
<para>Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln
|
||||
und erfolgreich <command>make</command>
|
||||
<buildtarget>install</buildtarget> auszuführen, müssen wir ein
|
||||
Paketverzeichnis auf einem Nicht-Hauptspeicherdateisystem
|
||||
erstellen, welches die Pakete über Neustarts hinweg im Auge
|
||||
behält. Weil es sowieso nötig ist, Ihre Dateisysteme mit
|
||||
Lese-Schreibrechten für die Installation eines Pakets
|
||||
einzuhängen, ist es sinnvoll anzunehmen, dass ein Bereich
|
||||
Ihres Flash-Mediums ebenfalls für Paketinformationen, die
|
||||
darauf abgespeichert werden, verwendet wird.</para>
|
||||
|
||||
<para>Erstellen Sie zuerst ein Verzeichnis für die
|
||||
Paketdatenbank. Normalerweise ist dies
|
||||
<filename>/var/db/pkg</filename>, jedoch können wir es dort
|
||||
nicht unterbringen, da es jedesmal verschwinden wird, wenn das
|
||||
System neu gestartet wird.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
|
||||
|
||||
<para>Fügen Sie nun eine Zeile in
|
||||
<filename>/etc/rc.d/var</filename> hinzu, welche das
|
||||
<filename>/etc/pkg</filename>-Verzeichnis mit
|
||||
<filename>/var/db/pkg</filename> verknüpft. Ein
|
||||
Beispiel:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
|
||||
|
||||
<para>Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit
|
||||
Lese-Schreibrechten einbinden und ein Paket installieren, der
|
||||
Befehl <command>make</command>
|
||||
<buildtarget>install</buildtarget> funktionieren und
|
||||
Paketinformationen werden erfolgreich nach
|
||||
<filename>/etc/pkg</filename> geschrieben (da zu diesem
|
||||
Zeitpunkt das Dateisystem mit Lese-Schreibrechten eingebunden
|
||||
ist), welche dann stets dem Betriebssystem als
|
||||
<filename>/var/db/pkg</filename> zur Verfügung stehen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Apache Webserver</title>
|
||||
|
||||
<note>
|
||||
<para>Die Anweisungen in diesem Abschnitt sind nur notwendig,
|
||||
wenn Apache so eingerichtet ist, dass dieser seine PID oder
|
||||
Protokollierungsinformationen ausserhalb von <filename>/var</filename> ablegt. Standardmässig
|
||||
bewahrt Apache seine PID-Datei in <filename>/var/run/httpd.pid</filename> und seine
|
||||
Protokolldateien in <filename>/var/log</filename> auf.</para>
|
||||
</note>
|
||||
|
||||
<para>Es wird nun davon ausgegangen, dass Apache seine
|
||||
Protokolldateien in einem Verzeichnis namens <filename>apache_log_dir</filename>
|
||||
ausserhalb von <filename>/var</filename>
|
||||
speichert. Wenn dieses Verzeichnis auf einem
|
||||
nur-Lese-Dateisystem existiert, wird Apache nicht in der Lage
|
||||
sein, Protokolldateien zu speichern und wird vermutlich nicht
|
||||
richtig funktionieren. Wenn dies der Fall ist, muss ein neues
|
||||
Verzeichnis zu der Liste der Verzeichnisse in
|
||||
<filename>/etc/rc.d/var</filename> hinzugefügt werden, um
|
||||
dieses in <filename>/var</filename> zu erstellen und um
|
||||
<filename>apache_log_dir</filename>
|
||||
nach <filename>/var/log/apache</filename> zu verknüpfen. Es
|
||||
ist auch nötig, Berechtigungen und Besitzer auf diesem neuen
|
||||
Verzeichnis zu setzen.</para>
|
||||
|
||||
<para>Fügen Sie zuerst das Verzeichnis
|
||||
<literal>log/apache</literal> zu der Liste von Verzeichnissen
|
||||
hinzu, die in <filename>/etc/rc.d/var</filename> angelegt
|
||||
werden sollen.</para>
|
||||
|
||||
<para>Danach tragen Sie die folgenden Befehle in
|
||||
<filename>/etc/rc.d/var</filename> nach dem Abschnitt zum
|
||||
Erstellen der Verzeichnisse ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput>
|
||||
&prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen>
|
||||
|
||||
<para>Schliesslich löschen Sie das bestehende <filename>apache_log_dir</filename>
|
||||
Verzeichnis und ersetzen es mit einer Verknüpfung:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>rm -rf apache_log_dir</userinput>
|
||||
&prompt.root; <userinput>ln -s /var/log/apache apache_log_dir</userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/books/Makefile,v 1.7 2009/02/10 11:36:13 jkois Exp $
|
||||
#
|
||||
|
||||
SUBDIR= developers-handbook
|
||||
SUBDIR+= faq
|
||||
SUBDIR+= fdp-primer
|
||||
SUBDIR+= handbook
|
||||
SUBDIR+= porters-handbook
|
||||
|
||||
ROOT_SYMLINKS= handbook
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/books/Makefile.inc,v 1.8 2002/04/12 05:57:24 mheinen Exp $
|
||||
# basiert auf: 1.4
|
||||
#
|
||||
|
||||
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/books/${.CURDIR:T}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/books/developers-handbook/Makefile,v 1.3 2009/02/21 19:12:23 jkois Exp $
|
||||
# basiert auf: 1.24
|
||||
#
|
||||
# Build the FreeBSD Developers' Handbook.
|
||||
#
|
||||
|
||||
MAINTAINER=doc@FreeBSD.org
|
||||
|
||||
DOC?= book
|
||||
|
||||
FORMATS?= html-split
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
# Images
|
||||
IMAGES_EN= sockets/layers.eps sockets/sain.eps sockets/sainfill.eps sockets/sainlsb.eps sockets/sainmsb.eps sockets/sainserv.eps sockets/serv.eps sockets/serv2.eps sockets/slayers.eps
|
||||
|
||||
#
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= introduction/chapter.xml
|
||||
SRCS+= ipv6/chapter.xml
|
||||
SRCS+= kernelbuild/chapter.xml
|
||||
SRCS+= kerneldebug/chapter.xml
|
||||
SRCS+= l10n/chapter.xml
|
||||
SRCS+= policies/chapter.xml
|
||||
SRCS+= secure/chapter.xml
|
||||
SRCS+= sockets/chapter.xml
|
||||
SRCS+= testing/chapter.xml
|
||||
SRCS+= tools/chapter.xml
|
||||
SRCS+= x86/chapter.xml
|
||||
|
||||
# Entities
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,228 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
||||
<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
|
||||
]>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/book.xml,v 1.15 2010/12/18 13:28:29 jkois Exp $
|
||||
basiert auf: 1.58
|
||||
-->
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>FreeBSD Developers' Handbook</title>
|
||||
|
||||
|
||||
<author><orgname>The FreeBSD Documentation Project</orgname></author>
|
||||
|
||||
<pubdate>August 2000</pubdate>
|
||||
|
||||
<copyright>
|
||||
<year>2000</year>
|
||||
<year>2001</year>
|
||||
<year>2002</year>
|
||||
<year>2003</year>
|
||||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
<copyright>
|
||||
<year>2008</year>
|
||||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<holder>The FreeBSD German Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
&legalnotice;
|
||||
|
||||
<legalnotice xml:id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.apple;
|
||||
&tm-attrib.ibm;
|
||||
&tm-attrib.ieee;
|
||||
&tm-attrib.intel;
|
||||
&tm-attrib.linux;
|
||||
&tm-attrib.microsoft;
|
||||
&tm-attrib.opengroup;
|
||||
&tm-attrib.sun;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>Willkommen zum Entwickler-Handbuch. Dieses Handbuch ist
|
||||
<emphasis>jederzeit unter Bearbeitung</emphasis> und das
|
||||
Ergebnis der Arbeit vieler Einzelpersonen. Dies kann dazu
|
||||
führen, dass bestimmte Bereiche nicht mehr aktuell sind
|
||||
und auf den neuesten Stand gebracht werden müssen. Bei
|
||||
Unklarheiten empfiehlt es sich daher stets, auch die <link xlink:href="&url.base;/doc/en_US.ISO8859-1/books/developers-handbook/index.html">
|
||||
englische Originalversion</link> des Handbuchs zu
|
||||
lesen.</para>
|
||||
|
||||
<para>Wenn Sie bei der Übersetzung dieses Handbuchs
|
||||
mithelfen möchten, senden Sie bitte eine E-Mail an die
|
||||
Mailingliste &a.de.translators;.</para>
|
||||
|
||||
<para>Die aktuelle Version dieses Handbuchs ist immer auf dem
|
||||
<link xlink:href="http://www.FreeBSD.org/">&os;-Webserver</link>
|
||||
verfügbar und kann in verschiedenen Formaten und in
|
||||
komprimierter Form vom <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">&os;-FTP-Server</link>
|
||||
oder einem der zahlreichen <link xlink:href="&url.base;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">Spiegel</link>
|
||||
heruntergeladen werden (ältere Versionen finden Sie
|
||||
hingegen unter <uri xlink:href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</uri>).</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<part xml:id="Basics">
|
||||
<title>Grundlagen</title>
|
||||
|
||||
&chap.introduction;
|
||||
&chap.tools;
|
||||
&chap.secure;
|
||||
&chap.l10n;
|
||||
&chap.policies;
|
||||
&chap.testing;
|
||||
</part>
|
||||
|
||||
<part xml:id="ipc">
|
||||
<title>Interprozess-Kommunikation</title>
|
||||
|
||||
&chap.sockets;
|
||||
&chap.ipv6;
|
||||
</part>
|
||||
|
||||
<part xml:id="kernel">
|
||||
<title>Kernel</title>
|
||||
|
||||
&chap.kernelbuild;
|
||||
&chap.kerneldebug;
|
||||
</part>
|
||||
|
||||
<part xml:id="architectures">
|
||||
<title>Architekturen</title>
|
||||
|
||||
&chap.x86;
|
||||
</part>
|
||||
|
||||
<part xml:id="appendices">
|
||||
<title>Anhang</title>
|
||||
|
||||
<bibliography>
|
||||
<biblioentry xml:id="COD" xreflabel="1">
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Dave</firstname><othername role="MI">A</othername><surname>Patterson</surname></personname></author>
|
||||
|
||||
<author><personname><firstname>John</firstname><othername role="MI">L</othername><surname>Hennessy</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<copyright>
|
||||
<year>1998</year>
|
||||
<holder>Morgan Kaufmann Publishers, Inc.</holder>
|
||||
</copyright>
|
||||
|
||||
<biblioid class="isbn">1-55860-428-6</biblioid>
|
||||
|
||||
<publisher>
|
||||
<publishername>Morgan Kaufmann Publishers,
|
||||
Inc.</publishername>
|
||||
</publisher>
|
||||
|
||||
<citetitle>Computer Organization and Design</citetitle>
|
||||
|
||||
<subtitle>The Hardware / Software Interface</subtitle>
|
||||
|
||||
<pagenums>1-2</pagenums>
|
||||
</biblioentry>
|
||||
|
||||
<biblioentry xreflabel="2">
|
||||
<authorgroup>
|
||||
<author><personname><firstname>W.</firstname><othername role="Middle">Richard</othername><surname>Stevens</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<copyright>
|
||||
<year>1993</year>
|
||||
<holder>Addison Wesley Longman, Inc.</holder>
|
||||
</copyright>
|
||||
|
||||
<biblioid class="isbn">0-201-56317-7</biblioid>
|
||||
|
||||
<publisher>
|
||||
<publishername>Addison Wesley Longman, Inc.</publishername>
|
||||
</publisher>
|
||||
|
||||
<citetitle>Advanced Programming in the Unix Environment</citetitle>
|
||||
|
||||
<pagenums>1-2</pagenums>
|
||||
</biblioentry>
|
||||
|
||||
<biblioentry xreflabel="3">
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Marshall</firstname><othername role="Middle">Kirk</othername><surname>McKusick</surname></personname></author>
|
||||
|
||||
<author><personname><firstname>George</firstname><surname>Neville-Neil</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<copyright>
|
||||
<year>2004</year>
|
||||
<holder>Addison-Wesley Publishing Company, Inc.</holder>
|
||||
</copyright>
|
||||
|
||||
<biblioid class="isbn">0-201-70245-2</biblioid>
|
||||
|
||||
<publisher>
|
||||
<publishername>Addison-Wesley</publishername>
|
||||
</publisher>
|
||||
|
||||
<citetitle>The Design and Implementation of the &os; Operating
|
||||
System</citetitle>
|
||||
|
||||
<pagenums>1-2</pagenums>
|
||||
</biblioentry>
|
||||
|
||||
<biblioentry xml:id="Phrack" xreflabel="4">
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Aleph</firstname><surname>One</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<citetitle>Phrack 49; "Smashing the Stack for Fun and
|
||||
Profit"</citetitle>
|
||||
</biblioentry>
|
||||
|
||||
<biblioentry xml:id="StackGuard" xreflabel="5">
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Chrispin</firstname><surname>Cowan</surname></personname></author>
|
||||
|
||||
<author><personname><firstname>Calton</firstname><surname>Pu</surname></personname></author>
|
||||
|
||||
<author><personname><firstname>Dave</firstname><surname>Maier</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<citetitle>StackGuard; Automatic Adaptive Detection and Prevention
|
||||
of Buffer-Overflow Attacks</citetitle>
|
||||
</biblioentry>
|
||||
|
||||
<biblioentry xml:id="OpenBSD" xreflabel="6">
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Todd</firstname><surname>Miller</surname></personname></author>
|
||||
|
||||
<author><personname><firstname>Theo</firstname><surname>de Raadt</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<citetitle>strlcpy and strlcat -- consistent, safe string copy and
|
||||
concatenation.</citetitle>
|
||||
</biblioentry>
|
||||
</bibliography>
|
||||
</part>
|
||||
|
||||
&chap.index;
|
||||
|
||||
</book>
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
Creates entities for each chapter in the FreeBSD Developer's
|
||||
Handbook. Each entity is named chap.foo, where foo is the value
|
||||
of the id attribute on that chapter, and corresponds to the name of
|
||||
the directory in which that chapter's .xml file is stored.
|
||||
|
||||
Chapters should be listed in the order in which they are referenced.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/chapters.ent,v 1.3 2009/02/21 19:12:23 jkois Exp $
|
||||
basiert auf: 1.23
|
||||
-->
|
||||
|
||||
<!-- Part one -->
|
||||
<!ENTITY chap.introduction SYSTEM "introduction/chapter.xml">
|
||||
<!ENTITY chap.tools SYSTEM "tools/chapter.xml">
|
||||
<!ENTITY chap.secure SYSTEM "secure/chapter.xml">
|
||||
<!ENTITY chap.l10n SYSTEM "l10n/chapter.xml">
|
||||
<!ENTITY chap.policies SYSTEM "policies/chapter.xml">
|
||||
<!ENTITY chap.testing SYSTEM "testing/chapter.xml">
|
||||
|
||||
<!-- Part two - IPC -->
|
||||
<!ENTITY chap.sockets SYSTEM "sockets/chapter.xml">
|
||||
<!ENTITY chap.ipv6 SYSTEM "ipv6/chapter.xml">
|
||||
|
||||
<!-- Part three - Kernel -->
|
||||
<!ENTITY chap.kernelbuild SYSTEM "kernelbuild/chapter.xml">
|
||||
<!ENTITY chap.kerneldebug SYSTEM "kerneldebug/chapter.xml">
|
||||
|
||||
<!-- Part five - Architectures -->
|
||||
<!ENTITY chap.x86 SYSTEM "x86/chapter.xml">
|
||||
|
||||
<!-- Part six - Appendices -->
|
||||
<!ENTITY chap.index "<index xmlns='http://docbook.org/ns/docbook'/>">
|
||||
|
|
@ -1,241 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/introduction/chapter.xml,v 1.12 2012/04/22 20:07:16 bcr Exp $
|
||||
basiert auf: 1.21
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="introduction">
|
||||
<info><title>Einführung</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
<author><personname><firstname>Jeroen</firstname><surname>Ruigrok van der Werven</surname></personname></author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Fabian</firstname><surname>Borschel</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<sect1 xml:id="introduction-devel">
|
||||
<title>Unter FreeBSD entwickeln</title>
|
||||
|
||||
<para>Hier sind wir also. Ihr System ist vollständig
|
||||
installiert und Sie wollen mit dem Programmieren beginnen.
|
||||
Aber womit sollen Sie anfangen? Was bietet Ihnen FreeBSD?
|
||||
Was kann es für einen Programmierer tun?</para>
|
||||
|
||||
<para>Dies sind einige der Fragen, welche dieses Handbuch
|
||||
zu beantworten versucht. Natürlich gibt es, analog zu
|
||||
anderen Berufen, auch bei Programmierern unterschiedliche
|
||||
Leistungsniveaus. Für die einen ist es ein Hobby,
|
||||
für die anderen ist es der Beruf. Die Informationen
|
||||
in diesem Kapitel dürften eher für den
|
||||
Programmieranfänger geeignet sein; allerdings könnte
|
||||
es auch für Programmierer, die bisher nichts mit der
|
||||
&os;-Plattform zu tun hatten, interessante Informationen
|
||||
enthalten.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="introduction-bsdvision">
|
||||
<title>Die Vision von BSD</title>
|
||||
|
||||
<para>Ziel ist es, das bestmögliche &unix;-artige
|
||||
Betriebssystempaket zu erstellen, mit dem gebührenden
|
||||
Respekt gegenüber der Ideologie der ursprünglichen
|
||||
Software, sowie der Bedienbarkeit, Leistungsfähigkeit und
|
||||
Stabilität.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="introduction-archguide">
|
||||
<title>Grundlegende Richtlinien</title>
|
||||
|
||||
<para>Unsere Ideologie kann durch die folgenden Leitfäden
|
||||
beschrieben werden.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Füge keine neue Funktionalität hinzu, solange
|
||||
ein Programmierer diese nicht zur Fertigstellung einer
|
||||
realen Anwendung benötigt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Zu entscheiden, was ein System ist, ist genauso
|
||||
wichtig wie zu entscheiden, was ein System nicht ist.
|
||||
Versuchen Sie nicht, alle möglichen Wünsche zu
|
||||
erfüllen; machen Sie lieber das System erweiterbar, so
|
||||
dass zusätzliche Bedürfnisse in einer
|
||||
aufwärtskompatiblen Weise bedient werden
|
||||
können.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Das Einzige, das schlimmer ist, als von einem Beispiel
|
||||
auf die Allgemeinheit zu schließen, ist, von
|
||||
überhaupt keinem Beispiel auf die Allgemeinheit zu
|
||||
schließen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Solange ein Problem nicht vollständig verstanden
|
||||
wurde, ist es besser, keine Lösung
|
||||
bereitzustellen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wenn Sie 90% des gewünschten Effektes bei nur 10%
|
||||
des Aufwands erreichen können, sollten Sie besser die
|
||||
einfachere Lösung verwenden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Grenzen Sie Komplexität so gut wie möglich
|
||||
ein.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Stellen Sie Mechanismen anstelle von Strategien bereit.
|
||||
Überlassen Sie insbesondere Strategien für die
|
||||
Benutzerschnittstelle dem Benutzerprogramm.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Aus Scheifler & Gettys: "X Window System"</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="introduction-layout">
|
||||
<title>Der Aufbau von
|
||||
<filename>/usr/src</filename></title>
|
||||
|
||||
<para>Der vollständige Quelltext von FreeBSD ist über
|
||||
unser öffentliches Repository verfügbar. Der
|
||||
Quelltext wird normalerweise in <filename>/usr/src</filename> abgelegt und enthält
|
||||
die folgenden Unterverzeichnisse:</para>
|
||||
|
||||
<para>
|
||||
<informaltable frame="none" pgwide="1">
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Verzeichnis</entry>
|
||||
<entry>Beschreibung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><filename>bin/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in
|
||||
<filename>/bin</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>cddl/</filename></entry>
|
||||
<entry>Quelldateien für Programme, die unter
|
||||
der Common Development and Distribution License
|
||||
stehen</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>contrib/</filename></entry>
|
||||
<entry>Quelldateien für Dateien von beigesteuerter
|
||||
Software</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>crypto/</filename></entry>
|
||||
<entry>Quelldateien für die Kryptographie</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>etc/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/etc</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>games/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/games</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>gnu/</filename></entry>
|
||||
<entry>Programme, die unter der GNU Public License
|
||||
stehen</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>include/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/include</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>kerberos5/</filename></entry>
|
||||
<entry>Quelldateien für Kerberos Version 5</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>lib/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/lib</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>libexec/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/libexec</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>release/</filename></entry>
|
||||
<entry>Dateien, die für die Erstellung eines
|
||||
FreeBSD-Releases nötig sind</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>rescue/</filename></entry>
|
||||
<entry>Bausystem für die <filename>/rescue</filename>-Programme</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>sbin/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/sbin</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>secure/</filename></entry>
|
||||
<entry>Quelldateien für FreeSec</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>share/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/share</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>sys/</filename></entry>
|
||||
<entry>Kernel-Quelldateien</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>tools/</filename></entry>
|
||||
<entry>Programme zum Verwalten und Testen von
|
||||
FreeBSD</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>usr.bin/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/bin</filename></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>usr.sbin/</filename></entry>
|
||||
<entry>Quelldateien für Dateien in <filename>/usr/sbin</filename></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,101 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/kernelbuild/chapter.xml,v 1.5 2009/02/21 19:22:07 jkois Exp $
|
||||
basiert auf: 1.3
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="kernelbuild">
|
||||
<info><title>Einen &os;-Kernel bauen und installieren</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Ein Kernelentwickler muss wissen, wie der Bau eines angepassten
|
||||
Kernels funktioniert, da das Debuggen des &os;-Kernels nur durch den
|
||||
Bau eines neuen Kernels möglich ist. Es gibt zwei Wege, einen
|
||||
angepassten Kernel zu bauen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Den <quote>traditionellen</quote> Weg</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Den <quote>neuen</quote> Weg</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>Die folgenden Ausführungen setzen voraus, dass Sie
|
||||
den Abschnitt <link xlink:href="../handbook/kernelconfig-building.html">
|
||||
Erstellen und Installation eines angepassten Kernels</link> des
|
||||
FreeBSD-Handbuchs gelesen haben und daher wissen, wie man einen
|
||||
FreeBSD-Kernel baut.</para>
|
||||
</note>
|
||||
|
||||
<sect1 xml:id="kernelbuild-traditional">
|
||||
<title>Einen Kernel auf die <quote>traditionelle</quote> Art und
|
||||
Weise bauen</title>
|
||||
|
||||
<para>Bis &os; 4.X wurde dieser Weg zum Bau eines angepassten
|
||||
Kernels empfohlen. Sie können Ihren Kernel nach wie vor
|
||||
auf diese Art und Weise bauen (anstatt das Target
|
||||
<quote>buildkernel</quote> der Makefiles im Verzeichnis
|
||||
<filename>/usr/src/</filename> zu verwenden).
|
||||
Dies kann beispielsweise sinnvoll sein, wenn Sie am
|
||||
Kernel-Quellcode arbeiten. Haben Sie nur ein oder zwei Optionen
|
||||
der Kernelkonfigurationsdatei geändert, ist dieser Weg in
|
||||
der Regel schneller als der <quote>neue</quote> Weg.
|
||||
Andererseits kann es aber auch zu unerwarteten Fehlern beim
|
||||
Bau des Kernels kommen, wenn Sie Ihren Kernel unter aktuellen
|
||||
&os;-Versionen auf diese Art und Weise bauen.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Erzeugen Sie den Kernel-Quellcode mit
|
||||
&man.config.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Wechseln Sie in das Build-Verzeichnis. &man.config.8;
|
||||
gibt den Namen dieses Verzeichnisses aus, wenn die Erzeugung
|
||||
des Kernel-Quellcodes im vorherigen Schritt erfolgreich
|
||||
abgeschlossen wurde.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd ../compile/MYKERNEL</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kompilieren Sie den neuen Kernel:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>make depend</userinput>
|
||||
&prompt.root; <userinput>make</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Installieren Sie den neuen Kernel:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>make install</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="kernelbuild-new">
|
||||
<title>Einen Kernel auf die <quote>neue</quote> Art und Weise
|
||||
bauen</title>
|
||||
|
||||
<para>Dieser Weg wird für alle aktuellen &os;-Versionen
|
||||
empfohlen. Lesen Sie bitte den Abschnitt <link xlink:href="../handbook/kernelconfig-building.html">Erstellen und
|
||||
Installation eines angepassten Kernels</link> des
|
||||
&os;-Handbuchs, wenn Sie Ihren Kernel auf diese Art und Weise
|
||||
bauen wollen.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/books/developers-handbook/kerneldebug/Makefile,v 1.2 2007/08/31 06:13:09 as Exp $
|
||||
# basiert auf: 1.1
|
||||
#
|
||||
|
||||
CHAPTERS= kerneldebug/chapter.xml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,378 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/l10n/chapter.xml,v 1.15 2010/12/15 19:03:51 bcr Exp $
|
||||
basiert auf: 1.14
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="l10n">
|
||||
<info><title>Lokalisierung und Internationalisierung - L10N und
|
||||
I18N</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Jochen</firstname><surname>Neumeister</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<sect1 xml:id="l10n-programming">
|
||||
<title>I18N-konforme Anwendungen programmieren</title>
|
||||
|
||||
<indexterm><primary>Qt</primary></indexterm>
|
||||
<indexterm><primary>GTK</primary></indexterm>
|
||||
|
||||
<para>Um Ihre Anwendung verwendbarer für andere
|
||||
Sprachen zu machen, hoffen wir, dass Sie I18N-konform
|
||||
programmieren. Der GNU gcc-Compiler und Bibliotheken
|
||||
für grafische Benutzeroberflächen wie QT und GTK
|
||||
unterstützen I18N durch eine spezielle Verarbeitung von
|
||||
Zeichenketten. Das Erstellen eines I18N-konformen Programms
|
||||
ist sehr einfach und erlaubt anderen Mitwirkenden, Ihre
|
||||
Programme leichter in andere Sprachen zu übersetzen.
|
||||
Lesen Sie die Bibliothek-spezifischen I18N-Dokumentationen
|
||||
für weitere Details.</para>
|
||||
|
||||
<para>Im Gegensatz zur allgemeinen Meinung ist I18N-konformer
|
||||
Code einfach zu programmieren. Üblicherweise umfasst
|
||||
dies nur das Einbetten Ihrer Zeichenketten in
|
||||
Bibliothek-spezifische Funktionen. Stellen Sie außerdem
|
||||
bitte sicher, dass Sie Unterstützung für Unicode- und
|
||||
Multibyte-Zeichen vorsehen.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Ein Aufruf, die I18N-Bemühungen zu
|
||||
vereinheitlichen</title>
|
||||
|
||||
<para>Wir sind darauf aufmerksam geworden, dass die
|
||||
einzelnen I18N-/L10N-Bemühungen für jedes Land
|
||||
wiederholt wurden. Viele von uns haben somit unproduktiverweise
|
||||
das Rad immer wieder neu erfunden. Wir hoffen, dass die
|
||||
verschiedenen großen Gruppen für I18N Ihre
|
||||
Bemühungen in einer Gruppe vereinen können,
|
||||
ähnlich der Zuständigkeit des Core-Teams.</para>
|
||||
|
||||
<para>Derzeit hoffen wir, dass wenn Sie I18N-konforme
|
||||
Programme schreiben oder portieren, diese an die
|
||||
betreffenden FreeBSD-Mailinglisten jedes Landes schicken, um
|
||||
sie testen zu lassen. Wir hoffen in Zukunft, Anwendungen zu
|
||||
entwickeln, die in allen Sprachen direkt und ohne unsaubere
|
||||
Änderungen funktionieren.</para>
|
||||
|
||||
<para>Die &a.i18n;-Mailingliste ist eingerichtet worden. Wenn
|
||||
Sie I18N-/L10N-Entwickler sind, schicken Sie bitte Ihre
|
||||
Kommentare, Ideen, Fragen und alles, das Sie mit dem Thema in
|
||||
Verbindung bringen, dorthin.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Perl und Python</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>Perl</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>Python</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Perl und Python bieten Bibliotheken für I18N und zur
|
||||
Behandlung von Unicode-Zeichen. Bitte nutzen Sie diese
|
||||
für I18N-Konformität.</para>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="posix-nls">
|
||||
<info><title>Lokalisierte Nachrichten mit POSIX.1 Native Language
|
||||
Support (NLS)</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Gábor</firstname><surname>Kövesdán</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Über die Basisfunktionen von I18N hinaus, wie das Bereitstellen
|
||||
von verschiedenen Eingabecodierungen oder die diversen nationalen
|
||||
Konventionen, zum Beispiel die verschiedenen Dezimalpunkte, ist es
|
||||
auf einem höheren Level von I18N möglich, die Ausgabe
|
||||
von Programmen zu lokalisieren. Ein Weg dies zu tun besteht in der
|
||||
Nutzung der POSIX.1 NLS-Funktionen von &os;.</para>
|
||||
|
||||
<sect2 xml:id="nls-catalogs">
|
||||
<title>Organisation von lokalisierten Mitteilungen in Katalog
|
||||
Dateien</title>
|
||||
|
||||
<para>POSIX.1 NLS basiert auf Katalogdateien, welche die lokalisierten
|
||||
Mitteilungen in der entsprechenden Codierung enthalten. Die
|
||||
Mitteilungen sind in Sets organisiert und jede Mitteilung ist
|
||||
durch eine eindeutige Zahl in dem jeweiligen Set identifiziert.
|
||||
Die Katalogdateien werden nach der Lokale, von den jeweiligen
|
||||
lokalisierten Mitteilungen, die sie enthalten, gefolgt von der
|
||||
<literal>.msg</literal> Endung benannt. Zum Beispiel werden die
|
||||
ungarischen Mitteilungen für das ISO8859-2 Encoding in
|
||||
einer Datei mit dem Dateinamen <filename>hu_HU.ISO8859-2</filename>
|
||||
gespeichert.</para>
|
||||
|
||||
<para>Diese Katalogdateien sind normale Textdateien, welche die
|
||||
nummerierten Mitteilungen enthalten. Es ist möglich
|
||||
Kommentare in die Dateien zu schreiben, indem Sie ein
|
||||
<literal>$</literal>-Zeichen an den Anfang der Zeile setzen.
|
||||
Das Setzen von Grenzen wird ebenfalls durch spezielle Kommentare
|
||||
möglich wobei das Schlüsselwort <literal>set</literal>
|
||||
direkt nach dem <literal>$</literal>-Zeichen folgen muss. Dem
|
||||
Schlüsselwort <literal>set</literal> folgt dann die Set-Nummer.
|
||||
Ein Beispiel:</para>
|
||||
|
||||
<programlisting>$set 1</programlisting>
|
||||
|
||||
<para>Der aktuelle Mitteilungseintrag startet mit der
|
||||
Mitteilungsnummer gefolgt von der lokalisierten Nachricht. Die
|
||||
bekannten Modifikatoren von &man.printf.3; werden akzeptiert:</para>
|
||||
|
||||
<programlisting>15 "File not found: %s\n"</programlisting>
|
||||
|
||||
<para>Die Katalogdateien müssen in binärer Form vorliegen,
|
||||
bevor sie von einem Programm benutzt werden können. Dies wird
|
||||
mit dem &man.gencat.1; Tool durchgeführt. Das erste Argument
|
||||
ist der Dateiname des kompilierten Katalogs und die weiteren
|
||||
Argumente sind die Eingabekataloge. Die lokalisierten
|
||||
Mitteilungen können auf mehrere Katalogdateien aufgeteilt
|
||||
sein. Danach werden dann alle auf einmal mit dem &man.gencat.1;
|
||||
Tool kompiliert.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="nls-using">
|
||||
<title>Nutzung der Katalogdateien im Quellcode</title>
|
||||
|
||||
<para>Das Benutzen der Katalogdateien ist einfach. Um die
|
||||
relevante Funktion zu nutzen, muss <filename>nl_types.h</filename> in die Quelldatei
|
||||
eingefügt werden. Bevor ein Katalog benutzt werden
|
||||
kann, muss er mit &man.catopen.3; geöffnet werden.
|
||||
Die Funktion hat 2 Argumente. Der erste Parameter ist der
|
||||
Name des installierten und kompilierten Katalogs. Normalerweise
|
||||
wird der Name des Programmes, zum Beispiel
|
||||
<application>grep</application>, genutzt. Dieser Name wird
|
||||
zum Suchen der kompilierten Katalogdatei benutzt. Der Aufruf
|
||||
von &man.catopen.3; sucht nach dieser Datei in <filename>/usr/share/nls/locale/catname</filename>
|
||||
und in <filename>/usr/local/share/nls/locale/catname</filename>,
|
||||
wobei <literal>locale</literal> die gesetzte Lokale und
|
||||
<literal>catname</literal> der Katalogname ist. Der zweite
|
||||
Parameter ist eine Konstante, die zwei Werte haben kann:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
||||
<para><literal>NL_CAT_LOCALE</literal>, hat die Bedeutung,
|
||||
dass die benutzte Katalogdatei auf
|
||||
<envar>LC_MESSAGES</envar> basiert.</para>
|
||||
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
||||
<para><literal>0</literal>, hat die Bedeutung, dass
|
||||
<envar>LANG</envar> benutzt wird, um die Katalogdatei
|
||||
zu öffnen.
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Der &man.catopen.3; Aufruf gibt einen Katalogidentifizierer
|
||||
vom Type <literal>nl_catd</literal> zurück. Sehen Sie in der
|
||||
Manualpage nach, um eine Liste mit möglichen Fehlercodes
|
||||
zu erhalten.</para>
|
||||
|
||||
<para>Nach dem Öffnen eines Katalogs, kann &man.catgets.3;
|
||||
benutzt werden, um Mitteilungen zu erhalten. Der erste
|
||||
Parameter ist der Katalogidentifizierer, der von
|
||||
&man.catopen.3; zurück gegeben wurde, das zweite ist die
|
||||
Nummer des Sets, das dritte die Nummer der Mitteilung und das
|
||||
vierte ist eine Fallbackmitteilung, die angezeigt wird,
|
||||
falls die gewünschte Mitteilung in der Katalogdatei
|
||||
nicht verfügbar ist.</para>
|
||||
|
||||
<para>Nach der Nutzung der Katalogdatei, muss sie mit dem
|
||||
Kommando &man.catclose.3;, geschlossen werden. Es besitzt
|
||||
ein Argument, die Katalog ID.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="nls-example">
|
||||
<title>Ein Beispiel aus der Praxis</title>
|
||||
|
||||
<para>Das folgende Beispiel zeigt einen einfachen Weg wie man
|
||||
NLS-Kataloge flexibel nutzen kann.</para>
|
||||
|
||||
<para>Die nachfolgenden Zeilen müssen in eine allgemeine
|
||||
Headerdatei, die in allen Quelldateien vorhanden ist, die
|
||||
lokalisierte Mitteilungen benutzen, eingefügt werden:</para>
|
||||
|
||||
<programlisting>
|
||||
#ifdef WITHOUT_NLS
|
||||
#define getstr(n) nlsstr[n]
|
||||
#else
|
||||
#include <nl_types.h>
|
||||
|
||||
extern nl_catd catalog;
|
||||
#define getstr(n) catgets(catalog, 1, n, nlsstr[n])
|
||||
#endif
|
||||
|
||||
extern char *nlsstr[];
|
||||
</programlisting>
|
||||
|
||||
<para>Als nächstes fügen Sie die folgenden Zeilen
|
||||
in den globalen Deklarationsteil der Hauptquelldatei ein:</para>
|
||||
|
||||
<programlisting>
|
||||
#ifndef WITHOUT_NLS
|
||||
#include <nl_types.h>
|
||||
nl_catd catalog;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Default messages to use when NLS is disabled or no catalog
|
||||
* is found.
|
||||
*/
|
||||
char *nlsstr[] = {
|
||||
"",
|
||||
/* 1*/ "some random message",
|
||||
/* 2*/ "some other message"
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
<para>Als nächstes kommt der Code der den Katalog
|
||||
öffnet, liest und schließt:</para>
|
||||
|
||||
<programlisting>
|
||||
#ifndef WITHOUT_NLS
|
||||
catalog = catopen("myapp", NL_CAT_LOCALE);
|
||||
#endif
|
||||
|
||||
...
|
||||
|
||||
printf(getstr(1));
|
||||
|
||||
...
|
||||
|
||||
#ifndef WITHOUT_NLS
|
||||
catclose(catalog);
|
||||
#endif
|
||||
</programlisting>
|
||||
|
||||
<sect3>
|
||||
<title>Reduzierung von zu lokalisierenden Zeichenketten</title>
|
||||
|
||||
<para>Es gibt einen guten Weg, Zeichenketten die lokaliesert
|
||||
werden müssen, durch den Einsatz von
|
||||
<application>libc</application>-Fehlermeldungen zu reduzieren.
|
||||
Dadurch vermeidet man Duplikate und erstellt gleiche Meldungen
|
||||
für häufige Fehlermeldungen, die bei vielen
|
||||
Programmen auftreten können.</para>
|
||||
|
||||
<para>Als erstes ist hier ein Beispiel, dass keine
|
||||
<application>libc</application>-Fehlermeldungen benutzt:</para>
|
||||
|
||||
<programlisting>
|
||||
#include <err.h>
|
||||
...
|
||||
if (!S_ISDIR(st.st_mode))
|
||||
err(1, "argument is not a directory");
|
||||
</programlisting>
|
||||
|
||||
<para>Dies kann so abgeändert werden, dass eine
|
||||
Fehlermeldung durch Auslesen der Variabel <varname>errno</varname>
|
||||
ausgegeben wird. Die Fehlermeldung wird entsprechend dem Beispiel
|
||||
ausgegeben:</para>
|
||||
|
||||
<programlisting>
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
...
|
||||
if (!S_ISDIR(st.st_mode)) {
|
||||
errno = ENOTDIR;
|
||||
err(1, NULL);
|
||||
}
|
||||
</programlisting>
|
||||
|
||||
<para>In diesem Beispiel wurde die benutzerdefinierte
|
||||
Zeichenkette entfernt. Übersetzer haben weniger Arbeit,
|
||||
wenn sie ein Programm lokalisieren und die Benutzer sehen die
|
||||
übliche <quote>"Not a directory"</quote>
|
||||
Fehlermeldung, wenn dieser Fehler auftritt. Diese Meldung wird
|
||||
ihnen wahrscheinlich vertraut erscheinen. Bitte beachten Sie,
|
||||
dass es notwendig ist,
|
||||
<filename>errno.h</filename>
|
||||
hinzuzufügen um einen direkten Zugriff auf
|
||||
<varname>errno</varname> zu haben.</para>
|
||||
|
||||
<para>Es lohnt sich darauf hinzuweisen, dass es Fälle gibt,
|
||||
in denen <varname>errno</varname> automatisch aufgerufen wird,
|
||||
so dass es nicht notwendig ist, es explizit zu tun:</para>
|
||||
|
||||
<programlisting>
|
||||
#include <err.h>
|
||||
...
|
||||
if ((p = malloc(size)) == NULL)
|
||||
err(1, NULL);
|
||||
</programlisting>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="nls-mk">
|
||||
<title>Benutzung von <filename>bsd.nls.mk</filename></title>
|
||||
|
||||
<para>Das Benutzen von Katalogdateien setzt einige sich
|
||||
wiederholende Schritte, wie das kompilieren und installieren
|
||||
der Kataloge, voraus. Um diese Schritte zu vereinfachen,
|
||||
stellt <filename>bsd.nls.mk</filename> einige Makros zur
|
||||
Verfügung. Es ist nicht notwendig
|
||||
<filename>bsd.nls.mk</filename> explizit hinein zu kopieren,
|
||||
es wird automatisch aus den allgemeinen Makefiles wie
|
||||
<filename>bsd.prog.mk</filename> oder
|
||||
<filename>bsd.lib.mk</filename> gezogen.</para>
|
||||
|
||||
<para>Normalerweise reicht es, <varname>NLSNAME</varname> zu
|
||||
definieren, die den Namen des Kataloges als erstes
|
||||
Argument von &man.catopen.3; enthalten sollte und die
|
||||
Katalogdateien in <varname>NLS</varname> ohne ihre Endung
|
||||
<literal>.msg</literal> auflistet. Hier ist ein Beispiel, das
|
||||
es ermöglicht, NLS mit dem obigen Code zu deaktivieren.
|
||||
Die <varname>WITHOUT_NLS</varname> Variable von &man.make.1;
|
||||
muss so definiert werden, dass das Programm ohne
|
||||
NLS-Unterstützung gebaut wird.</para>
|
||||
|
||||
<programlisting>
|
||||
.if !defined(WITHOUT_NLS)
|
||||
NLS= es_ES.ISO8859-1
|
||||
NLS+= hu_HU.ISO8859-2
|
||||
NLS+= pt_BR.ISO8859-1
|
||||
.else
|
||||
CFLAGS+= -DWITHOUT_NLS
|
||||
.endif
|
||||
</programlisting>
|
||||
|
||||
<para>Normalerweise werden die Katalogdateien in dem
|
||||
<filename>nls</filename>-Unterverzeichnis
|
||||
abgelegt. Dies ist der Standard von
|
||||
<filename>bsd.nls.mk</filename>. Es ist möglich, mit der
|
||||
<varname>NLSSRCDIR</varname>-Variablen von &man.make.1; diese zu
|
||||
überschreiben. Der Standardname der vorkompilierten
|
||||
Katalogdateien folgt den Namenskonventionen, wie oben beschrieben.
|
||||
Er kann durch die <varname>NLSNAME</varname>-Variablen
|
||||
überschrieben werden. Es gibt noch weitere Optionen, um
|
||||
eine Feinabstimmung zur Verarbeitung der Katalogdateien
|
||||
zu erreichen. Da sie nicht notwendig sind, werden sie hier
|
||||
nicht weiter beschrieben. Weitere Informationen über
|
||||
<filename>bsd.nls.mk</filename> finden Sie in der Datei selbst.
|
||||
Der Text ist kurz und leicht zu verstehen.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/books/developers-handbook/policies/Makefile,v 1.2 2009/02/14 22:12:52 miwi Exp $
|
||||
# basiert auf: 1.1
|
||||
#
|
||||
|
||||
CHAPTERS= policies/chapter.xml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
||||
|
|
@ -1,759 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/policies/chapter.xml,v 1.14 2011/12/24 13:42:24 bcr Exp $
|
||||
basiert auf: 1.38
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="policies">
|
||||
<info><title>Vorgaben und Richtlinien für das
|
||||
Quelltextverzeichnis</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Poul-Henning</firstname><surname>Kamp</surname></personname><contrib>Beigesteuert von </contrib></author>
|
||||
<author><personname><firstname>Giorgos</firstname><surname>Keramidas</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Axel</firstname><surname>Gruner</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Dieses Kapitel dokumentiert verschiedene Vorgaben und
|
||||
Richtlinien für das FreeBSD-Quelltextverzeichnis.</para>
|
||||
|
||||
<sect1 xml:id="policies-style">
|
||||
<title>Stil-Richtlinien</title>
|
||||
<indexterm><primary>style</primary></indexterm>
|
||||
|
||||
<para>Ein konsistenter Code-Stil ist extrem wichtig, besonders
|
||||
in einem so grossen Projekt wie &os;. Der Code sollte dem
|
||||
&os; Code-Stil entsprechen, welcher in &man.style.9; und
|
||||
&man.style.Makefile.5; genauer beschrieben ist.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="policies-maintainer">
|
||||
<title><varname>MAINTAINER</varname> eines Makefiles</title>
|
||||
<indexterm><primary>Ports-Maintainer</primary></indexterm>
|
||||
|
||||
<para>Wenn ein bestimmter Bereich der &os;
|
||||
<filename>src/</filename>-Distribution von einer Person oder Gruppe
|
||||
gepflegt wird, kann dies durch einen Eintrag in die Datei
|
||||
<filename>src/MAINTAINERS</filename> der Öffentlichkeit
|
||||
mitgeteilt werden. Maintainer eines Ports in der Ports-Sammlung
|
||||
können ihre Verantwortung über den Port durch einen Eintrag in
|
||||
die <varname>MAINTAINER</varname>-Zeile im <filename>Makefile</filename>
|
||||
des Ports der Welt mitteilen.</para>
|
||||
|
||||
<programlisting><varname>MAINTAINER</varname>= <replaceable>email-addresses</replaceable></programlisting>
|
||||
|
||||
<tip>
|
||||
<para>Für andere Teile des Repositories oder andere Abschnitte, die
|
||||
noch keinen Maintainer aufweisen, oder falls Sie sich nicht sicher
|
||||
sind, wer der Maintainer ist, sehen Sie sich die Commit-Historie des
|
||||
betreffenden Ports an. Es ist recht häufig der Fall, dass ein
|
||||
Maintainer nicht explizit aufgeführt ist, aber trotzdem diejenigen
|
||||
Personen, die den Port seit den letzten paar Jahren aktiv betreuen,
|
||||
daran interessiert sind, Änderungen zu begutachten. Selbst wenn
|
||||
dies nicht explizit in der Dokumentation oder im Quellcode erwähnt
|
||||
ist, wird es trotzdem als höfliche Geste angesehen, wenn man
|
||||
nach einer Überprüfung der eigenen Änderungen
|
||||
fragt.</para>
|
||||
</tip>
|
||||
|
||||
<para>Die Rolle eines Maintainers ist die folgende:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Der Maintainer ist verantwortlich für diesen Code. Er
|
||||
oder sie muss einerseits für die Behebung von Fehlern und das
|
||||
Beantworten von Problemberichten für diesen Code die
|
||||
Verantwortung tragen und andererseits, falls es sich um beigesteuerte
|
||||
Software handelt, neue Versionen verfolgen und bereitstellen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Änderungen an Verzeichnissen, die ein Maintainer definiert
|
||||
hat, sollten an den Maintainer für eine Überprüfung
|
||||
gesendet werden, bevor diese committet werden. Nur wenn der
|
||||
Maintainer in einer inakzeptablen Zeitspanne auf mehrere E-Mails
|
||||
nicht antwortet, können die Änderungen, die mit dem Commit
|
||||
in Kraft treten, auch ohne Überprüfung durch den Maintainer
|
||||
vollzogen werden. Dennoch wird empfohlen, dass die Änderungen,
|
||||
falls möglich, von jemand anderem überprüft
|
||||
werden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Es ist natürlich nicht akzeptabel, einer Person oder Gruppe
|
||||
den Status eines Maintainers zu geben, so lange sie nicht zustimmt,
|
||||
diese Pflicht auf sich zu nehmen. Andererseits muss es kein einzelner
|
||||
Mensch sein. Eine Gruppe von Menschen ist genauso in Ordnung.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="policies-contributed">
|
||||
<info><title>Beigesteuerte Software</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Poul-Henning</firstname><surname>Kamp</surname></personname><contrib>Beigesteuert von </contrib></author>
|
||||
<author><personname><firstname>David</firstname><surname>O'Brien</surname></personname></author>
|
||||
<author><personname><firstname>Gavin</firstname><surname>Atkinson</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<indexterm><primary>Beigesteuerte Software</primary></indexterm>
|
||||
|
||||
<para>Einige Teile der FreeBSD-Distribution enthalten Software,
|
||||
die aktiv außerhalb des FreeBSD-Projektes gepflegt wird.
|
||||
Aus historischen Gründen nennen wir dies
|
||||
<emphasis>contributed</emphasis> Software. Beispiele dafür
|
||||
sind <application>sendmail</application>,
|
||||
<application>gcc</application> und
|
||||
<application>patch</application>.</para>
|
||||
|
||||
<para>Über die Jahre wurden verschiedene Methoden genutzt,
|
||||
um solche Software zu verwalten, und jede hat Vor-
|
||||
wie auch Nachteile. So hat sich kein eindeutiger Gewinner
|
||||
herauskristallisiert.</para>
|
||||
|
||||
<para>Es wurde viel über diesen Umstand diskutiert und
|
||||
eine Methode als die <quote>offizielle</quote>
|
||||
vorgestellt, um in Zukunft diese Art der Software zu
|
||||
importieren. Ferner wird dringend geraten, dass sich
|
||||
existierende, beigesteuerte Software diesem Modell
|
||||
annähert, da es signifikante Vorteile gegenüber der
|
||||
alten Methode gibt. Dazu gehört auch, dass jeder
|
||||
einfach Diffs bezüglich der
|
||||
<quote>offiziellen</quote> Quelltext-Versionen erzeugen kann
|
||||
(auch ohne direkten Repository-Zugang). Dies wird es deutlich
|
||||
vereinfachen, Änderungen an die Hauptentwickler
|
||||
zurückfließen zu lassen.</para>
|
||||
|
||||
<para>Letztendlich kommt es jedoch auf die Menschen an, welche die
|
||||
Arbeit leisten. Wenn die Durchführung dieses Modells bei
|
||||
einem Paket mal nicht möglich ist, können Ausnahmen
|
||||
dieser Regeln nur mit Genehmigung des Core-Teams und der
|
||||
Übereinstimmung der anderen Entwickler gewährt werden.
|
||||
Die Fähigkeit, dieses Paket auch in Zukunft pflegen zu
|
||||
können, ist eine der Schlüsselfragen bei dieser
|
||||
Entscheidung.</para>
|
||||
|
||||
<note>
|
||||
<para>Durch einige bedauernswerte Einschränkungen des <acronym role="Revision Control System">RCS</acronym>-Dateiformats und die
|
||||
Handhabung von Herstellerzweigen ist von unwesentlichen, trivialen
|
||||
und/oder kosmetischen Änderungen an Dateien <emphasis>dringend
|
||||
abzuraten</emphasis>, die dem Herstellerzweig folgen.
|
||||
<quote>Grammatikalische oder sprachliche
|
||||
Fehlerbehebungen</quote> sind explizit unter der
|
||||
<quote>Kosmetik</quote>-Kategorie einzuordnen und sollten vermieden
|
||||
werden. Das Repository kann sich durch Änderungen einzelner
|
||||
Zeichen dramatisch aufblähen.</para>
|
||||
</note>
|
||||
|
||||
<sect2 xml:id="vendor-imports-cvs">
|
||||
|
||||
<title>Herstellerimports mit CVS</title>
|
||||
|
||||
<para>Das <application>file</application>-Werkzeug soll als Beispiel
|
||||
dienen, wie dieses Modell funktioniert:</para>
|
||||
|
||||
<para><filename>src/contrib/file</filename> enthält den
|
||||
Quelltext so, wie vom Maintainer dieses Pakets bereitgestellt.
|
||||
Teile, die unter &os; gänzlich unnutzbar sind, können entfernt
|
||||
werden. Im Fall von &man.file.1; wurde u.a. das Unterverzeichnis
|
||||
<filename>python</filename> und Dateien mit dem Präfix
|
||||
<filename>lt</filename> vor dem Import entfernt.</para>
|
||||
|
||||
<para><filename>src/lib/libmagic</filename> enthält ein
|
||||
<filename>Makefile</filename> im <application>bmake</application>-Stil,
|
||||
das die Regeln des Standard-Makefiles <filename>bsd.lib.mk</filename>
|
||||
nutzt, um die Bibliothek zu erstellen und die Dokumentation zu
|
||||
installieren.</para>
|
||||
|
||||
<para><filename>src/usr.bin/file</filename> enthält ein
|
||||
<filename>Makefile</filename> im <application>bmake</application>-Stil,
|
||||
welches das <command>file</command>-Programm erstellt und installiert,
|
||||
ebenso die dazugehörigen Manualpages, welche die Regeln von
|
||||
<filename>bsd.prog.mk</filename> nutzen.</para>
|
||||
|
||||
<para>Das Entscheidende ist hier das
|
||||
<filename>src/contrib/file</filename>-Verzeichnis, welches nach
|
||||
den folgenden Regeln erstellt wird: Es muss den
|
||||
Quelltext aus dem Original enthalten (ohne
|
||||
<acronym>RCS</acronym>-Schlüsselworte und im korrekten
|
||||
Herstellerzweig) mit so wenig FreeBSD-spezifischen Änderungen wie
|
||||
möglich. Sollte es Zweifel geben, wie hier zu verfahren
|
||||
ist, unbedingt zuerst nachfragen und nicht auf gut Glück etwas
|
||||
probieren in der vagen Hoffnung, dass es
|
||||
<quote>irgendwie funktioniert</quote>.</para>
|
||||
|
||||
<para>Aufgrund der eingangs schon erwähnten Einschränkungen
|
||||
bei Herstellerzweigen ist es erforderlich, dass <quote>offizielle</quote>
|
||||
Fehlerbehebungen vom Hersteller in die Originalquellen der Distribution
|
||||
einfließen und als Resultat wieder in den Herstellerzweig
|
||||
importiert werden. Offizielle Fehlerbehebungen sollten nie direkt in
|
||||
FreeBSD eingepflegt und <quote>committet</quote> werden, da dies
|
||||
den Herstellerzweig zerstören würde und der Import
|
||||
von zukünftigen Versionen wäre um ein Vielfaches
|
||||
schwerer, da es zu Konflikten kommen würde.</para>
|
||||
|
||||
<para>Da einige Pakete Dateien enthalten, die zur
|
||||
Kompatibilität mit anderen Architekturen und Umgebungen
|
||||
als FreeBSD gedacht sind, ist es zulässig, diese Teile zu
|
||||
löschen, wenn sie für FreeBSD nicht von Interesse
|
||||
sind, und so Speicherplatz zu sparen. Dateien, die ein
|
||||
Copyright und Release-artige Informationen zu den vorhandenen
|
||||
Dateien enthalten, sollten <emphasis>nicht</emphasis>
|
||||
gelöscht werden.</para>
|
||||
|
||||
<para>Falls es einfacher erscheint, können die
|
||||
<command>bmake</command>-<filename>Makefile</filename>s vom
|
||||
Verzeichnisbaum durch einige Dienstprogramme automatisch
|
||||
erstellt werden, was es hoffentlich sogar noch einfacher macht,
|
||||
eine Version zu aktualisieren. Ist dies geschehen, so stellen
|
||||
Sie bitte sicher, diese Werkzeuge in das Verzeichnis
|
||||
<filename>src/tools</filename> gleich mit dem Port an sich
|
||||
einzuchecken, sodass es für zukünftige Maintainer
|
||||
verfügbar ist.</para>
|
||||
|
||||
<para>Im Verzeichnis <filename>src/contrib/file</filename> sollte
|
||||
eine Datei mit dem Namen <filename>FREEBSD-upgrade</filename>
|
||||
hinzugefügt werden und sie sollte den Stand wie folgt
|
||||
anzeigen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Welche Dateien ausgelassen wurden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Von wo die Original-Distribution stammt und/oder wo die
|
||||
offizielle Hauptseite zu finden ist.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Wohin Fehlerbehebungen an den Originalautor gesendet
|
||||
werden können.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Möglicherweise eine Übersicht, welche
|
||||
FreeBSD-spezifischen Änderungen vorgenommen
|
||||
wurden.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Ein Beispielinhalt von
|
||||
<filename>src/contrib/groff/FREEBSD-upgrade</filename> ist hier
|
||||
aufgelistet:</para>
|
||||
|
||||
<programlisting>$FreeBSD: src/contrib/groff/FREEBSD-upgrade,v 1.5.12.1 2005/11/15 22:06:18 ru Exp $
|
||||
|
||||
This directory contains virgin sources of the original distribution files
|
||||
on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
|
||||
the files in this directory via patches and a cvs commit.
|
||||
|
||||
To upgrade to a newer version of groff, when it is available:
|
||||
1. Unpack the new version into an empty directory.
|
||||
[Do not make ANY changes to the files.]
|
||||
|
||||
2. Use the command:
|
||||
cvs import -m 'Virgin import of FSF groff v<version>' \
|
||||
src/contrib/groff FSF v<version>
|
||||
|
||||
For example, to do the import of version 1.19.2, I typed:
|
||||
cvs import -m 'Virgin import of FSF groff v1.19.2' \
|
||||
src/contrib/groff FSF v1_19_2
|
||||
|
||||
3. Follow the instructions printed out in step 2 to resolve any
|
||||
conflicts between local FreeBSD changes and the newer version.
|
||||
|
||||
Do not, under any circumstances, deviate from this procedure.
|
||||
|
||||
To make local changes to groff, simply patch and commit to the main
|
||||
branch (aka HEAD). Never make local changes on the FSF branch.
|
||||
|
||||
All local changes should be submitted to Werner Lemberg <wl@gnu.org> or
|
||||
Ted Harding <ted.harding@nessie.mcc.ac.uk> for inclusion in the next
|
||||
vendor release.
|
||||
|
||||
ru@FreeBSD.org - 20 October 2005</programlisting>
|
||||
|
||||
|
||||
<para>Eine weitere Möglichkeit ist es, eine Liste von Dateien, die
|
||||
nicht enthalten sein sollen zu pflegen, was besonders dann sehr hilfreich
|
||||
sein kann, wenn die Liste ziemlich gross oder kompliziert ist bzw.
|
||||
Imports sehr häufig stattfinden. Durch erstellen einer Datei namens
|
||||
<filename>FREEBSD-Xlist</filename> im gleichen Verzeichnis, in welches
|
||||
das Herstellerverzeichnis importiert werden soll, die eine Liste von
|
||||
auszuschliessenden Dateinamen-Mustern pro Zeile enthält, können
|
||||
zukünftige Imports folgendermassen durchgeführt werden:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>tar -X FREEBSD-Xlist -xzf vendor-source.tgz</userinput></screen>
|
||||
|
||||
<para>Als Beispiel einer <filename>FREEBSD-Xlist</filename>-Datei wird
|
||||
hier diejenige von <filename>src/contrib/tcsh</filename> gezeigt:</para>
|
||||
|
||||
<programlisting>*/BUGS
|
||||
*/config/a*
|
||||
*/config/bs2000
|
||||
*/config/bsd
|
||||
*/config/bsdreno
|
||||
*/config/[c-z]*
|
||||
*/tests
|
||||
*/win32</programlisting>
|
||||
|
||||
<note>
|
||||
<para>Bitte importieren Sie weder <filename>FREEBSD-upgrade</filename>
|
||||
noch <filename>FREEBSD-Xlist</filename> mit den beigesteuerten
|
||||
Quellen. Stattdessen sollten Sie diese Dateien nach dem initialen
|
||||
Import hinzufügen.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="vendor-import-svn">
|
||||
<info><title>Herstellerimports mit SVN</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Dag-Erling</firstname><surname>Smørgrav</surname></personname><contrib>Beigetragen von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Dieser Abschnitt beschreibt die Prozedur für Herstellerimports
|
||||
mit <application>Subversion</application> im Detail.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Vorbereiten des Quellbaums</title>
|
||||
|
||||
<para>Wenn dies Ihr erster Import nach dem Wechsel zu
|
||||
<acronym>SVN</acronym> ist, sollen Sie den Herstellerbaum
|
||||
aufräumen, verflachen und die Merge-Historie in den Hauptzweig
|
||||
vorbereiten. Falls das nicht Ihr erster Import ist, können
|
||||
Sie diesen Schritt ohne Probleme überspringen.</para>
|
||||
|
||||
<para>Während der Konvertierung von <acronym>CVS</acronym> zu
|
||||
<acronym>SVN</acronym> wurden Herstellerzweige mit der gleichen
|
||||
Struktur wie der Hauptzweig importiert. Beispielsweise wurden die
|
||||
<application>foo</application> Herstellerquellen in
|
||||
<filename>vendor/foo/dist/contrib/foo</filename>
|
||||
abgelegt, jedoch ist dies unpraktisch und zwecklos. Was wir wirklich
|
||||
wollen, ist dass die Herstellerquellen direkt in
|
||||
<filename>vendor/foo/dist</filename>
|
||||
liegen, beispielsweise so:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd vendor/foo/dist/contrib/foo</userinput>
|
||||
&prompt.user; <userinput>svn move $(svn list) ../..</userinput>
|
||||
&prompt.user; <userinput>cd ../..</userinput>
|
||||
&prompt.user; <userinput>svn remove contrib</userinput>
|
||||
&prompt.user; <userinput>svn propdel -R svn:mergeinfo</userinput>
|
||||
&prompt.user; <userinput>svn commit</userinput></screen>
|
||||
|
||||
<para>Beachten Sie, dass das <literal>propdel</literal>-Bit notwendig
|
||||
ist, da mit Subversion 1.5 automatisch
|
||||
<literal>svn:mergeinfo</literal> zu jedem Verzeichnis
|
||||
hinzugefügt wird, das Sie kopieren oder verschieben. In diesem
|
||||
Fall brauchen Sie diese Informationen nicht, da Sie nichts in den
|
||||
Zweig mergen werden, den Sie gelöscht haben.</para>
|
||||
|
||||
<note>
|
||||
<para>Sie werden wahrscheinlich die Tags genauso verflachen wollen.
|
||||
Die Prozedur dafür ist die selbe. Wenn Sie dies tun, sollten
|
||||
Sie den Commit bis zum Schluss aufschieben.</para>
|
||||
</note>
|
||||
|
||||
<para>Prüfen Sie den <filename>dist</filename>-Baum und
|
||||
führen Sie alle nötigen Aufräumarbeiten durch, die Sie
|
||||
für sinnvoll erachten. Sie werden möglicherweise die
|
||||
Erweiterung von Schlüsselwörtern deaktivieren wollen, da
|
||||
dies auf unmodifizierten Quellen keinen Sinn ergibt. In machen
|
||||
Fällen kann dies sogar schädlich sein.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn propdel svn:keywords -R .</userinput>
|
||||
&prompt.user; <userinput>svn commit</userinput></screen>
|
||||
|
||||
<para>Bootstrappen der <literal>svn:mergeinfo</literal> auf dem
|
||||
Zielverzeichnis (des Hauptzweiges) auf die Revision die mit der
|
||||
letzten Änderung, die im Herstellerzweig vor dem Import der
|
||||
neuen Quellen durchgeführt wurde, korrespondiert, wird ebenso
|
||||
benötigt:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd head/contrib/foo</userinput>
|
||||
&prompt.user; <userinput>svn merge --record-only svn_base/vendor/foo/dist@12345678 .</userinput>
|
||||
&prompt.user; <userinput>svn commit</userinput></screen>
|
||||
|
||||
<para>Dabei entspricht <replaceable>svn_base</replaceable> dem
|
||||
Basisverzeichnis Ihres <acronym>SVN</acronym>-Repositories, z.B.
|
||||
<literal>svn+ssh://svn.FreeBSD.org/base</literal>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Neue Quellen importieren</title>
|
||||
|
||||
<para>Bereiten Sie einen kompletten, sauberen Baum mit
|
||||
Herstellerquellen vor. Mit <acronym>SVN</acronym> können wir
|
||||
eine komplette Distribution in dem Herstellerzweig aufbewahren, ohne
|
||||
den Hauptzweig aufzublähen. Importieren Sie alles, aber mergen
|
||||
Sie nur das, was wirklich benötigt wird.</para>
|
||||
|
||||
<para>Beachten Sie, dass Sie alle Dateien, die seit dem letzten
|
||||
Herstellerimport hinzugefügt wurden, auch einbeziehen und
|
||||
diejenigen, welche entfernt wurden, auch löschen
|
||||
müssen. Um dies zu bewerkstelligen, sollten Sie sortierte
|
||||
Listen der Bestandteile des Herstellerbaums und von den Quellen,
|
||||
Sie die vorhaben zu importieren, vorbereiten:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd vendor/foo/dist</userinput>
|
||||
&prompt.user; <userinput>svn list -R | grep -v '/$' | sort > ../old</userinput>
|
||||
&prompt.user; <userinput>cd ../foo-9.9</userinput>
|
||||
&prompt.user; <userinput>find . -type f | cut -c 3- | sort > ../new</userinput></screen>
|
||||
|
||||
<para>Mit diesen beiden Dateien, wird Ihnen das folgende Kommando alle
|
||||
Dateien auflisten, die entfernt wurden (nur die Dateien in
|
||||
<filename>old</filename>):</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>comm -23 ../old ../new</userinput></screen>
|
||||
|
||||
<para>Der folgende Befehl wird die hinzugefügten Dateien auflisten
|
||||
(nur diejenigen Dateien in
|
||||
<filename>new</filename>):</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>comm -13 ../old ../new</userinput></screen>
|
||||
|
||||
<para>Wir führen dies nun zusammen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd vendor/foo/foo-9.9</userinput>
|
||||
&prompt.user; <userinput>tar cf - . | tar xf - -C ../dist</userinput>
|
||||
&prompt.user; <userinput>cd ../dist</userinput>
|
||||
&prompt.user; <userinput>comm -23 ../old ../new | xargs svn remove</userinput>
|
||||
&prompt.user; <userinput>comm -13 ../old ../new | xargs svn add</userinput></screen>
|
||||
|
||||
<warning>
|
||||
<para>Wenn in der neuen Version neue Verzeichnisse hinzugekommen
|
||||
sind, wird dieser letzte Befehl fehlschlagen. Sie müssen
|
||||
diese Verzeichnisse hinzufügen und anschliessend den Befehl
|
||||
erneut ausführen. Genauso müssen Sie Verzeichnisse, die
|
||||
entfernt wurden, händisch löschen.</para>
|
||||
</warning>
|
||||
|
||||
<para>Prüfen Sie die Eigenschaften jeder neuen Datei:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Alle Textdateien sollten <literal>svn:eol-style</literal> auf
|
||||
den Wert <literal>native</literal> gesetzt haben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Alle Binärdateien sollten
|
||||
<literal>svn:mime-type</literal> auf
|
||||
<literal>application/octet-stream</literal> gesetzt haben,
|
||||
ausser es existiert ein passenderer Medientyp.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ausführbare Dateien sollten
|
||||
<literal>svn:executable</literal> auf <literal>*</literal>
|
||||
gesetzt haben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Es sollten keine anderen Eigenschaften auf den Dateien im
|
||||
Baum gesetzt sein.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>Sie sind bereit, zu committen, jedoch sollten Sie zuerst die
|
||||
Ausgabe von <command>svn stat</command> und <command>svn
|
||||
diff</command> überprüfen, um sicher zu gehen, dass alles
|
||||
in Ordnung ist.</para>
|
||||
</note>
|
||||
|
||||
<para>Sobald Sie den die neue Release-Version des Herstellers
|
||||
committed haben, sollten Sie Ihn für zukünftige Referenzen
|
||||
taggen. Die beste und schnellste Methode ist, dies direkt im
|
||||
Repository zu tun:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn copy svn_base/vendor/foo/dist svn_base/vendor/foo/9.9</userinput></screen>
|
||||
|
||||
<para>Um den neuen Tag zu bekommen, brauchen Sie nur ihre Arbeitskopie
|
||||
von <filename>vendor/foo</filename> zu
|
||||
aktualisieren.</para>
|
||||
|
||||
<note>
|
||||
<para>Wenn Sie lieber die Kopie in der ausgecheckten Kopie
|
||||
durchführen wollen, vergessen Sie nicht, die generierte
|
||||
<literal>svn:mergeinfo</literal> wie oben beschrieben zu
|
||||
entfernen.</para>
|
||||
</note>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Mit <emphasis>-HEAD</emphasis> mergen</title>
|
||||
|
||||
<para>Nachdem Sie Ihren Import vorbereitet haben, wird es Zeit zu
|
||||
mergen. Die Option <option>--accept=postpone</option> weist
|
||||
<acronym>SVN</acronym> an, noch keine merge-Konflikte
|
||||
aufzulösen, weil wir uns um diese manuell kümmern
|
||||
werden:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd head/contrib/foo</userinput>
|
||||
&prompt.user; <userinput>svn update</userinput>
|
||||
&prompt.user; <userinput>svn merge --accept=postpone svn_base/vendor/foo/dist</userinput></screen>
|
||||
|
||||
<para>Lösen Sie die Konflikte und stellen Sie sicher, dass alle
|
||||
Dateien, die im Herstellerzweig hinzugefügt oder entfernt
|
||||
wurden, auch sauber im Hauptzweig hinzugefügt bzw. gelöscht
|
||||
wurden. Es ist immer ratsam, diese Unterschiede gegen den
|
||||
Herstellerbaum zu prüfen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn diff --no-diff-deleted --old=svn_base/vendor/foo/dist --new=.</userinput></screen>
|
||||
|
||||
<para>Die Option <option>--no-diff-deleted</option> weist
|
||||
<acronym>SVN</acronym> an, keine Dateien zu prüfen, die sich
|
||||
zwar im Herstellerbaum, aber nicht im Hauptzweig befinden.</para>
|
||||
|
||||
<note>
|
||||
<para>Bei <acronym>SVN</acronym> gibt es das Konzept von innerhalb
|
||||
und ausserhalb des Herstellerbaums nicht. Wenn eine Datei, die
|
||||
zuvor eine lokale Änderung hatte, aber nun keine mehr
|
||||
besitzt, entfernen Sie einfach das was übrig ist, wie &os;
|
||||
Versionstags, damit diese nicht länger in den diffs gegen
|
||||
den Herstellerbaum erscheinen.</para>
|
||||
</note>
|
||||
|
||||
<para>Wenn irgendwelche Änderungen notwendig sind, um die Welt
|
||||
mit den neuen Quellen zu bauen, machen Sie diese jetzt und testen
|
||||
Sie diese bis Sie sicher sind, dass alles korrekt gebaut wird und
|
||||
richtig funktionert.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Commit</title>
|
||||
|
||||
<para>Nun sind Sie bereit für den Commit. Stellen Sie sicher,
|
||||
dass Sie alles in einem einzigen Schritt durchführen.
|
||||
Idealerweise sollten Sie alle diese Schritte in einem sauberen Baum
|
||||
durchgeführt haben. Falls dies der Fall ist, können Sie
|
||||
einfach aus dem obersten Verzeichnis dieses Baums committen. Dies
|
||||
ist der beste Weg, um Überraschungen zu vermeiden. Wenn Sie
|
||||
dies korrekt durchführen, wird der Baum atomar von einem
|
||||
konsistenten Zustand mit dem alten Code in einen neuen konsistenten
|
||||
Zustand mit dem neuen Code überführt.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="policies-encumbered">
|
||||
<title>Belastende Dateien</title>
|
||||
|
||||
<para>Es kann gelegentlich notwendig sein, belastende Dateien
|
||||
in den FreeBSD-Quelltextbaum zu integrieren. Braucht ein
|
||||
Gerät zum Beispiel ein Stück binären Code, der
|
||||
zuerst geladen werden muss, bevor das Gerät funktioniert,
|
||||
und wir haben keine Quellen zu diesem Code, dann wird die
|
||||
binäre Datei als belastend bezeichnet. Die folgenden
|
||||
Richtlinien sind beim Aufnehmen von belastenden Dateien in den
|
||||
FreeBSD-Quelltextbaum zu beachten.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Jede Datei, die durch die System-CPU(s) ausgeführt
|
||||
wird und nicht als Quelltext vorliegt, ist belastend.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Jede Datei, deren Lizenz restriktiver ist als die BSD-
|
||||
oder GNU-Lizenz, ist belastend.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Eine Datei, die herunterladbare Binär-Daten
|
||||
enthält, ist nur belastend, wenn (1) oder (2)
|
||||
zutreffen. Sie muss in einem ASCII-Format
|
||||
gespeichert werden, das Architektur-neutral ist (file2c
|
||||
oder uuencoding wird empfohlen).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Jede belastende Datei braucht eine spezielle
|
||||
Genehmigung vom <link xlink:href="&url.base;/administration.html#t-core">Core-Team</link>,
|
||||
bevor diese in das Repository aufgenommen werden darf.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Belastende Dateien liegen unter
|
||||
<filename>src/contrib</filename> oder
|
||||
<filename>src/sys/contrib</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Das komplette Modul sollte auch am Stück
|
||||
aufbewahrt werden. Es gibt keinen Grund, dieses zu teilen,
|
||||
außer es gibt einen Code-Austausch mit Quelltext, der
|
||||
nicht belastend ist.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Objekt-Dateien werden wie folgt benannt:
|
||||
<filename>arch/filename.o.uu></filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Kernel-Dateien:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Sollten immer nach
|
||||
<filename>conf/files.*</filename> verweisen (um den Bau
|
||||
einfach zu halten).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sollten sich immer in <filename>LINT</filename>
|
||||
befinden, jedoch entscheidet das <link xlink:href="&url.base;/administration.html#t-core">Core-Team</link>
|
||||
je nach Fall, ob es
|
||||
auskommentiert wird oder nicht. Das <link xlink:href="&url.base;/administration.html#t-core">Core-Team</link>
|
||||
kann sich zu einem späteren Zeitpunkt
|
||||
immer noch anders entscheiden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Der <firstterm>Release-Engineer</firstterm>
|
||||
entscheidet, ob es in ein Release aufgenommen wird oder
|
||||
nicht.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Userland-Dateien:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<indexterm><primary>Core-Team</primary></indexterm>
|
||||
|
||||
<para>Das <link xlink:href="&url.base;/administration.html#t-core">Core-Team</link>
|
||||
entscheidet, ob der Code von
|
||||
<command>make world</command> gebaut wird oder nicht.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<indexterm><primary>Release-Engineer</primary></indexterm>
|
||||
|
||||
<para>Der <link xlink:href="&url.base;/administration.html#t-re">Release-Engineer</link>
|
||||
entscheidet, ob es in das Release
|
||||
aufgenommen wird oder nicht.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="policies-shlib">
|
||||
<info><title>Shared-Libraries</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Satoshi</firstname><surname>Asami</surname></personname><contrib>Beigesteuert von </contrib></author>
|
||||
|
||||
<author><personname><firstname>Peter</firstname><surname>Wemm</surname></personname></author>
|
||||
|
||||
<author><personname><firstname>David</firstname><surname>O'Brien</surname></personname></author>
|
||||
</authorgroup>
|
||||
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Sollten Sie die Unterstützung für
|
||||
Shared-Libraries bei einem Port oder einem Stück Software,
|
||||
das dies nicht hat, hinzufügen, sollten die Versionsnummern
|
||||
dessen Regeln folgen. Im Allgemeinen hat die sich daraus
|
||||
resultierende Nummer nichts mit der Release-Version der Software
|
||||
zu tun.</para>
|
||||
|
||||
<para>Die drei Grundsätze zum Erstellen von Shared-Libraries
|
||||
sind:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Sie beginnen mit <literal>1.0</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Gibt es eine Änderung, die
|
||||
abwärtskompatibel ist, so springen Sie zur
|
||||
nächsten Minor-Version (beachten Sie, dass ELF-Systeme
|
||||
die Minor-Version ignorieren).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Gibt es eine inkompatible Änderung, so springen
|
||||
Sie bitte zur nächsten Major-Version.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Zum Beispiel wird beim Hinzufügen von Funktionen und
|
||||
oder Fehlerbehebungen zur nächsten Minor-Version
|
||||
gesprungen, beim Löschen einer Funktion, Ändern
|
||||
von Funktionsaufrufen usw. ändert sich die Major-Version.</para>
|
||||
|
||||
<para>Bleiben Sie bei Versionsnummern in der Form major.minor
|
||||
(<replaceable>x</replaceable>.<replaceable>y</replaceable>).
|
||||
Unser dynamischer Linker a.out kann mit Versionsnummern
|
||||
in der Form
|
||||
<replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>
|
||||
nicht gut umgehen.
|
||||
Jede Versionsnummer nach dem <replaceable>y</replaceable>
|
||||
(die dritte Zahl) wird völlig ignoriert, wenn
|
||||
Versionsnummern der Shared-Libraries verglichen werden, um
|
||||
zu bestimmen, mit welcher Bibliothek eine Anwendung verlinkt wird.
|
||||
Sind zwei Shared-Libraries vorhanden, die sich nur in der
|
||||
<quote>micro</quote>-Revision unterscheiden, so wird
|
||||
<command>ld.so</command> zu der höheren verlinken.
|
||||
Dies bedeutet, dass wenn Sie mit <filename>libfoo.so.3.3.3</filename>
|
||||
verlinken, der Linker nur <literal>3.3</literal> in den
|
||||
Header aufnimmt und alles linkt, was mit
|
||||
<replaceable>libfoo.so.3</replaceable>
|
||||
.<replaceable>(irgendetwas
|
||||
>= 3)</replaceable>.<replaceable>(höchste
|
||||
verfügbare Nummer)</replaceable> beginnt.</para>
|
||||
|
||||
<note>
|
||||
<para><command>ld.so</command> wird immer die höchste
|
||||
<quote>Minor</quote>-Revision benutzen. Beispielsweise wird
|
||||
es die <filename>libc.so.2.2</filename> bevorzugen
|
||||
gegenüber der <filename>libc.so.2.0</filename>, auch
|
||||
dann, wenn das Programm ursprünglich mit
|
||||
<filename>libc.so.2.0</filename> verlinkt war.</para>
|
||||
</note>
|
||||
|
||||
<para>Unser dynamischer ELF-Linker kann keine Minor-Versionen
|
||||
handhaben. Dennoch sollten die Major- und Minor-Versionen genutzt
|
||||
werden, da unsere <filename>Makefile</filename>s <quote>das
|
||||
Richtige machen</quote> bezogen auf den Systemtyp.</para>
|
||||
|
||||
<para>Für nicht-Port-Bibliotheken lautet die Richtlinie,
|
||||
die Shared-Library-Versionsnummer nur einmal zwischen den
|
||||
Releases zu ändern. Weiterhin ist es vorgeschrieben, die
|
||||
Major-Version der Shared-Libraries nur bei Major-OS-Releases zu
|
||||
ändern (beispielsweise von 6.0 auf 7.0). Wenn Sie also eine
|
||||
Änderung an einer Systembibliothek vornehmen, die eine neue
|
||||
Versionsnummer benötigt, überprüfen Sie die
|
||||
Commit-Logs des <filename>Makefile</filename>s. Es liegt in der
|
||||
Verantwortung des Committers, dass sich eine erste solche
|
||||
Änderung seit dem letzten Release in der aktualisierten
|
||||
Versionsnummer der Shared-Library im
|
||||
<filename>Makefile</filename> äußert, folgende
|
||||
Änderungen werden nicht berücksichtigt.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,627 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/secure/chapter.xml,v 1.16 2010/12/18 13:28:29 jkois Exp $
|
||||
basiert auf: 1.30
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="secure">
|
||||
<info><title>Sicheres Programmieren</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Contributed by </contrib></author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Hagen</firstname><surname>Kühl</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<sect1 xml:id="secure-synopsis">
|
||||
<title>Zusammenfassung</title>
|
||||
|
||||
<para>Dieses Kapitel beschreibt einige Sicherheitsprobleme, die
|
||||
&unix;-Programmierer seit Jahrzehnten quälen, und
|
||||
inzwischen verfügbare Werkzeuge, die Programmierern helfen,
|
||||
Sicherheitslücken in ihrem Quelltext zu vermeiden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="secure-philosophy">
|
||||
<title>Methoden des sicheren Entwurfs</title>
|
||||
|
||||
<para>Sichere Anwendungen zu schreiben erfordert eine sehr
|
||||
skeptische und pessimistische Lebenseinstellung. Anwendungen
|
||||
sollten nach dem Prinzip der <quote>geringsten
|
||||
Privilegien</quote> ausgeführt werden, sodass kein Prozess
|
||||
mit mehr als dem absoluten Minimum an Zugriffsrechten arbeitet,
|
||||
die er zum Erfüllen seiner Aufgabe benötigt. Wo es
|
||||
möglich ist, sollte Quelltext, der bereits
|
||||
überprüft wurde, wiederverwendet werden, um
|
||||
häufige Fehler, die andere schon korrigiert haben, zu
|
||||
vermeiden.</para>
|
||||
|
||||
<para>Eine der Stolperfallen der &unix;-Umgebung ist, dass es
|
||||
sehr einfach ist Annahmen über die Konsistenz der Umgebung
|
||||
zu machen. Anwendungen sollten Nutzereingaben (in allen Formen)
|
||||
niemals trauen, genauso wenig wie den System-Ressourcen,
|
||||
der Inter-Prozess-Kommunikation oder dem zeitlichen Ablauf von
|
||||
Ereignissen. &unix;-Prozesse arbeiten nicht synchron. Daher sind
|
||||
logische Operationen selten atomar.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="secure-bufferov">
|
||||
<title>Puffer-Überläufe</title>
|
||||
|
||||
<para>Puffer-Überläufe gibt es schon seit den
|
||||
Anfängen der Von-Neuman-Architektur <xref linkend="COD"/>.
|
||||
|
||||
<indexterm><primary>Puffer-Überlauf</primary></indexterm>
|
||||
<indexterm><primary>Von-Neuman</primary></indexterm>
|
||||
|
||||
Sie erlangten zum ersten Mal durch den Internetwurm Morris im
|
||||
Jahre 1988 öffentliche Bekanntheit. Unglücklicherweise
|
||||
|
||||
<indexterm><primary>Morris Internetwurm</primary></indexterm>
|
||||
|
||||
funktioniert der gleiche grundlegende Angriff noch heute. Die bei weitem
|
||||
häufigste Form eines Puffer-Überlauf-Angriffs basiert darauf,
|
||||
den Stack zu korrumpieren.</para>
|
||||
|
||||
<indexterm><primary>Stack</primary></indexterm>
|
||||
<indexterm><primary>Arguments</primary></indexterm>
|
||||
|
||||
<para>Die meisten modernen Computer-Systeme verwenden einen
|
||||
Stack, um Argumente an Prozeduren zu übergeben und
|
||||
lokale Variablen zu speichern. Ein Stack ist ein
|
||||
last-in-first-out-Puffer (LIFO) im hohen Speicherbereich
|
||||
eines Prozesses. Wenn ein Programm eine Funktion
|
||||
|
||||
<indexterm><primary>LIFO</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>Prozessabbild</primary>
|
||||
<secondary>Stack-Pointer</secondary>
|
||||
</indexterm>
|
||||
|
||||
aufruft wird ein neuer "Stackframe" erzeugt. Dieser besteht aus
|
||||
den Argumenten, die der Funktion übergeben wurden und
|
||||
einem variabel grossem Bereich für lokale Variablen. Der
|
||||
"Stack-Pointer" ist ein Register, dass die
|
||||
|
||||
<indexterm><primary>Stack-Frame</primary></indexterm>
|
||||
<indexterm><primary>Stack-Pointer</primary></indexterm>
|
||||
|
||||
aktuelle Adresse der Stack-Spitze enthält.
|
||||
Da sich dieser Wert oft ändert, wenn neue Werte
|
||||
auf dem Stack abgelegt werden, bieten viele Implementierungen
|
||||
einen "Frame-Pointer", der nahe am Anfang des Stack-Frames
|
||||
liegt und es so leichter macht lokale Variablen relativ zum
|
||||
aktuellen Stackframe zu adressieren. <xref linkend="COD"/>
|
||||
Die Rücksprungadresse
|
||||
|
||||
<indexterm><primary>Frame-Pointer</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>Prozessabbild</primary>
|
||||
<secondary>Frame-Pointer</secondary>
|
||||
</indexterm>
|
||||
<indexterm><primary>Rücksprungadresse</primary></indexterm>
|
||||
<indexterm><primary>Stack-Überlauf</primary></indexterm>
|
||||
|
||||
der Funktionen werden ebenfalls auf dem Stack
|
||||
gespeichert und das ist der Grund für
|
||||
Stack-Überlauf-Exploits. Denn ein böswilliger Nutzer
|
||||
kann die Rücksprungadresse der Funktion überschreiben
|
||||
indem er eine lokale Variable in der Funktion
|
||||
überlaufen lässt, wodurch es ihm möglich ist
|
||||
beliebigen Code auszuführen.</para>
|
||||
|
||||
<para>Obwohl Stack-basierte Angriffe bei weitem die
|
||||
Häufigsten sind, ist es auch möglich den Stack mit
|
||||
einem Heap-basierten (malloc/free) Angriff zu
|
||||
überschreiben.</para>
|
||||
|
||||
<para>Die C-Programmiersprache führt keine automatischen
|
||||
Bereichsüberprüfungen bei Feldern oder Zeigern durch, wie
|
||||
viele andere Sprachen das tun. Außerdem enthält
|
||||
die C-Standardbibliothek eine Handvoll sehr
|
||||
gefährlicher Funktionen.</para>
|
||||
|
||||
<informaltable frame="none" pgwide="1">
|
||||
<tgroup cols="2">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><function>strcpy</function>(char *dest, const
|
||||
char *src)</entry>
|
||||
<entry><simpara>Kann den Puffer dest überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><function>strcat</function>(char *dest, const
|
||||
char *src)</entry>
|
||||
<entry><simpara>Kann den Puffer dest überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><function>getwd</function>(char *buf)</entry>
|
||||
<entry><simpara>Kann den Puffer buf überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><function>gets</function>(char *s)</entry>
|
||||
<entry><simpara>Kann den Puffer s überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><function>[vf]scanf</function>(const char
|
||||
*format, ...)</entry>
|
||||
<entry><simpara>Kann sein Argument überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><function>realpath</function>(char *path,
|
||||
char resolved_path[])</entry>
|
||||
<entry><simpara>Kann den Puffer path überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><function>[v]sprintf</function>(char *str,
|
||||
const char *format, ...)</entry>
|
||||
<entry><simpara>Kann den Puffer str überlaufen
|
||||
lassen</simpara></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
<sect2>
|
||||
<title>Puffer-Überlauf Beispiel</title>
|
||||
|
||||
<para>Das folgende Quellcode-Beispiel enthält einen
|
||||
Puffer-Überlauf, der darauf ausgelegt ist die
|
||||
Rücksprungadresse zu überschreiben und die
|
||||
Anweisung direkt nach dem Funktionsaufruf zu
|
||||
überspringen. (Inspiriert durch
|
||||
<xref linkend="Phrack"/>)</para>
|
||||
|
||||
<programlisting>#include <stdio.h>
|
||||
|
||||
void manipulate(char *buffer) {
|
||||
char newbuffer[80];
|
||||
strcpy(newbuffer,buffer);
|
||||
}
|
||||
|
||||
int main() {
|
||||
char ch,buffer[4096];
|
||||
int i=0;
|
||||
|
||||
while ((buffer[i++] = getchar()) != '\n') {};
|
||||
|
||||
i=1;
|
||||
manipulate(buffer);
|
||||
i=2;
|
||||
printf("The value of i is : %d\n",i);
|
||||
return 0;
|
||||
}</programlisting>
|
||||
|
||||
<para>Betrachten wir nun, wie das Speicherabbild dieses
|
||||
Prozesses aussehen würde, wenn wir 160 Leerzeichen
|
||||
in unser kleines Programm eingeben, bevor wir Enter
|
||||
drücken.</para>
|
||||
|
||||
<para>[XXX figure here!]</para>
|
||||
|
||||
<para>Offensichtlich kann man durch böswilligere Eingaben
|
||||
bereits kompilierten Programmtext ausführen (wie z.B.
|
||||
exec(/bin/sh)).</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Puffer-Überläufe vermeiden</title>
|
||||
|
||||
<para>Die direkteste Lösung, um
|
||||
Stack-Überläufe zu vermeiden, ist immer
|
||||
grössenbegrenzten Speicher und String-Copy-Funktionen
|
||||
zu verwenden.
|
||||
<function>strncpy</function> und <function>strncat</function>
|
||||
sind Teil der C-Standardbibliothek.
|
||||
|
||||
<indexterm>
|
||||
<primary>Zeichenketten-Kopierfunktioen</primary>
|
||||
<secondary>strncpy</secondary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>Zeichenketten-Kopierfunktionen</primary>
|
||||
<secondary>strncat</secondary>
|
||||
</indexterm>
|
||||
|
||||
Diese Funktionen akzeptieren einen Längen-Parameter. Dieser
|
||||
Wert sollte nicht größer sein als die Länge
|
||||
des Zielpuffers. Die Funktionen kopieren dann bis zu
|
||||
`length' Bytes von der Quelle zum Ziel. Allerdings gibt es
|
||||
einige Probleme. Keine der Funktionen garantiert, dass
|
||||
die Zeichenkette NUL-terminiert ist, wenn die
|
||||
Größe
|
||||
|
||||
<indexterm><primary>NUL-Terminierung</primary></indexterm>
|
||||
|
||||
des Eingabepuffers so groß ist wie das Ziel.
|
||||
Außerdem wird der Parameter length zwischen strncpy
|
||||
und strncat inkonsistent definiert, weshalb Programmierer
|
||||
leicht bezüglich der korrekten Verwendung durcheinander
|
||||
kommen können. Weiterhin gibt es einen spürbaren
|
||||
Leistungsverlust im Vergleich zu
|
||||
<function>strcpy</function>, wenn eine kurze Zeichenkette in
|
||||
einen großen Puffer kopiert wird. Denn
|
||||
<function>strncpy</function> fült den Puffer bis zur
|
||||
angegebenen Länge mit NUL auf.
|
||||
</para>
|
||||
|
||||
<para>In OpenBSD wurde eine weitere Möglichkeit zum
|
||||
|
||||
<indexterm><primary>OpenBSD</primary></indexterm>
|
||||
|
||||
kopieren von Speicherbereichen implementiert, die dieses
|
||||
Problem umgeht. Die Funktionen <function>strlcpy</function>
|
||||
und <function>strlcat</function> garantieren, dass das Ziel
|
||||
immer NUL-terminiert wird, wenn das Argument length ungleich
|
||||
null ist. Für weitere Informationen über diese
|
||||
Funktionen lesen Sie bitte <xref linkend="OpenBSD"/>. Die
|
||||
OpenBSD-Funktionen <function>strlcpy</function> und
|
||||
<function>strlcat</function> sind seit Version 3.3 auch in
|
||||
FreeBSD verfügbar.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>Zeichenketten-Kopierfunktionen</primary>
|
||||
<secondary>strlcpy</secondary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>Zeichenketten-Kopierfunktionen</primary>
|
||||
<secondary>strlcat</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect3>
|
||||
<title>Compiler-basierte Laufzeitüberprüfung
|
||||
von Grenzen</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>Prüfung von Grenzen</primary>
|
||||
<secondary>Compiler-basiert</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Unglücklicherweise gibt es immer noch sehr viel
|
||||
Quelltext, der allgemein verwendet wird und blind Speicher
|
||||
umherkopiert, ohne eine der gerade besprochenen Funktionen,
|
||||
die Begrenzungen unterstützen, zu verwenden.
|
||||
Glücklicherweise gibt es einen Weg, um solche Angriffe zu
|
||||
verhindern - Überprüfung der Grenzen zur Laufzeit, die in
|
||||
verschiedenen C/C++ Compilern eingebaut ist.</para>
|
||||
|
||||
<indexterm><primary>ProPolice</primary></indexterm>
|
||||
<indexterm><primary>StackGuard</primary></indexterm>
|
||||
<indexterm><primary>GCC</primary></indexterm>
|
||||
|
||||
<para>ProPolice ist eine solche Compiler-Eigenschaft und ist in den
|
||||
&man.gcc.1; Versionen 4.1 und höher integriert. Es ersetzt und
|
||||
erweitert die &man.gcc.1; StackGuard-Erweiterung von
|
||||
früher.</para>
|
||||
|
||||
<para>ProPolice schützt gegen stackbasierte
|
||||
Pufferüberläufe und andere Angriffe durch das Ablegen von
|
||||
Pseudo-Zufallszahlen in Schlüsselbereichen des Stacks bevor es
|
||||
irgendwelche Funktionen aufruft. Wenn eine Funktion beendet wird,
|
||||
werden diese <quote>Kanarienvögel</quote> überprüft
|
||||
und wenn festgestellt wird, dass diese verändert wurden wird das
|
||||
Programm sofort abgebrochen. Dadurch wird jeglicher Versuch, die
|
||||
Rücksprungadresse oder andere Variablen, die auf dem Stack
|
||||
gespeichert werden, durch die Ausführung von Schadcode zu
|
||||
manipulieren, nicht funktionieren, da der Angreifer auch die
|
||||
Pseudo-Zufallszahlen unberührt lassen müsste.</para>
|
||||
|
||||
<indexterm><primary>Puffer-Überlauf</primary></indexterm>
|
||||
|
||||
<para>Ihre Anwendungen mit ProPolice neu zu kompilieren ist
|
||||
eine effektive Maßnahme, um sie vor den meisten
|
||||
Puffer-Überlauf-Angriffen zu schützen, aber die
|
||||
Programme können noch immer kompromittiert werden.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Bibliotheks-basierte Laufzeitüberprüfung
|
||||
von Grenzen</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>Prüfung von Grenzen</primary>
|
||||
<secondary>Bibliotheks-basiert</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Compiler-basierte Mechanismen sind bei Software,
|
||||
die nur im Binärformat vertrieben wird, und die somit
|
||||
nicht neu kompiliert werden kann völlig nutzlos.
|
||||
Für diesen Fall gibt es einige Bibliotheken, welche
|
||||
die unsicheren Funktionen der C-Bibliothek
|
||||
(<function>strcpy</function>, <function>fscanf</function>,
|
||||
<function>getwd</function>, etc..) neu implementieren und
|
||||
sicherstellen, dass nicht hinter den Stack-Pointer
|
||||
geschrieben werden kann.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><simpara>libsafe</simpara></listitem>
|
||||
<listitem><simpara>libverify</simpara></listitem>
|
||||
<listitem><simpara>libparanoia</simpara></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Leider haben diese Bibliotheks-basierten
|
||||
Verteidigungen mehrere Schwächen. Diese Bibliotheken
|
||||
schützen nur vor einer kleinen Gruppe von
|
||||
Sicherheitslücken und sie können das
|
||||
eigentliche Problem nicht lösen. Diese
|
||||
Maßnahmen können versagen, wenn die Anwendung
|
||||
mit -fomit-frame-pointer kompiliert wurde.
|
||||
Außerdem kann der Nutzer die Umgebungsvariablen
|
||||
LD_PRELOAD und LD_LIBRARY_PATH überschreiben oder
|
||||
löschen.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="secure-setuid">
|
||||
<title>SetUID-Themen</title>
|
||||
|
||||
<indexterm><primary>seteuid</primary></indexterm>
|
||||
|
||||
<para>Es gibt zu jedem Prozess mindestens sechs verschiedene
|
||||
IDs, die diesem zugeordnet sind. Deshalb müssen Sie
|
||||
sehr vorsichtig mit den Zugriffsrechten sein, die Ihr Prozess
|
||||
zu jedem Zeitpunkt besitzt. Konkret bedeutet dass, das alle
|
||||
seteuid-Anwendungen ihre Privilegien abgeben sollten, sobald
|
||||
sie diese nicht mehr benötigen.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>Benutzer-IDs</primary>
|
||||
<secondary>reale Benutzer-ID</secondary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>Benutzer-IDs</primary>
|
||||
<secondary>effective Benutzer-ID</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Die reale Benutzer-ID kann nur von einem
|
||||
Superuser-Prozess geändert werden. Das Programm
|
||||
<application>login</application> setzt sie, wenn sich ein
|
||||
Benutzer am System anmeldet, und sie wird nur selten
|
||||
geändert.</para>
|
||||
|
||||
<para>Die effektive Benutzer-ID wird von der Funktion
|
||||
<function>exec()</function> gesetzt, wenn ein Programm
|
||||
das seteuid-Bit gesetzt hat. Eine Anwendung kann
|
||||
<function>seteuid()</function> jederzeit aufrufen, um die
|
||||
effektive Benutzer-ID entweder auf die reale Benutzer-ID oder
|
||||
die gespeicherte set-user-ID zu setzen. Wenn eine der
|
||||
<function>exec()</function>-Funktionen die effektive
|
||||
Benutzer-ID setzt, wird der vorherige Wert als
|
||||
gespeicherte set-user-ID abgelegt.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="secure-chroot">
|
||||
<title>Die Umgebung ihrer Programme einschränken</title>
|
||||
|
||||
<indexterm><primary>chroot()</primary></indexterm>
|
||||
|
||||
<para>Die herkömmliche Methode, um einen Prozess
|
||||
einzuschränken, besteht in dem Systemaufruf
|
||||
<function>chroot()</function>. Dieser Aufruf
|
||||
ändert das Wurzelverzeichnis, auf das sich alle
|
||||
Pfadangaben des Prozesses und jegliche Kind-Prozesse beziehen.
|
||||
Damit dieser Systemaufruf gelingt, muss der Prozess
|
||||
Ausführungsrechte (Durchsuchungsrechte) für das
|
||||
Verzeichnis haben, auf das er sich bezieht. Die neue Umgebung
|
||||
wird erst wirksam, wenn Sie mittels
|
||||
<function>chdir()</function> in Ihre neue Umgebung wechseln.
|
||||
Es sollte erwähnt werden, dass ein Prozess recht einfach
|
||||
aus der chroot-Umgebung ausbrechen kann, wenn er root-Rechte
|
||||
besitzt. Das kann man erreichen, indem man Gerätedateien
|
||||
anlegt, um Kernel-Speicher zu lesen, oder indem man einen
|
||||
Debugger mit einem Prozess außerhalb seiner
|
||||
&man.chroot.8;-Umgebung verbindet, oder auf viele andere
|
||||
kreative Wege.</para>
|
||||
|
||||
<para>Das Verhalten des Systemaufrufs
|
||||
<function>chroot()</function> kann durch die
|
||||
kern.chroot.allow_open_directories
|
||||
<command>sysctl</command>-Variable beeinflusst werden. Wenn
|
||||
diese auf 0 gesetzt ist, wird <function>chroot()</function>
|
||||
mit EPERM fehlschlagen, wenn irgendwelche Verzeichnisse
|
||||
geöffnet sind. Wenn die Variable auf den Standardwert 1
|
||||
gesetzt ist, wird <function>chroot()</function> mit EPERM
|
||||
fehlschlagen, wenn irgendwelche Verzeichnisse geöffnet
|
||||
sind und sich der Prozess bereits in einer
|
||||
<function>chroot()</function>-Umgebung befindet. Bei jedem
|
||||
anderen Wert wird die Überprüfung auf
|
||||
geöffnete Verzeichnisse komplett umgangen.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Die Jail-Funktionalität in FreeBSD</title>
|
||||
|
||||
<indexterm><primary>Jail</primary></indexterm>
|
||||
|
||||
<para>Das Konzept einer Jail (Gefängnis) erweitert
|
||||
<function>chroot()</function>, indem es die Macht des
|
||||
Superusers einschränkt, um einen echten 'virtuellen
|
||||
Server' zu erzeugen. Wenn ein solches Gefängnis einmal
|
||||
eingerichtet ist, muss die gesamte Netzwerkkommunikation
|
||||
über eine bestimmte IP-Adresse erfolgen und die
|
||||
"root-Privilegien" innerhalb der Jail sind sehr stark
|
||||
eingeschränkt.</para>
|
||||
|
||||
<para>Solange Sie sich in einer Jail befinden, werden alle
|
||||
Tests auf Superuser-Rechte durch den Aufruf von
|
||||
<function>suser()</function> fehlschlagen. Allerdings wurden
|
||||
einige Aufrufe von <function>suser()</function>
|
||||
abgeändert, um die neue
|
||||
<function>suser_xxx()</function>-Schnittstelle zu
|
||||
implementieren. Diese Funktion ist dafür verantwortlich,
|
||||
festzustellen, ob bestimmte Superuser-Rechte einem
|
||||
eingesperrten Prozess zur Verfügung stehen.</para>
|
||||
|
||||
<para>Ein Superuser-Prozess innerhalb einer Jail darf
|
||||
folgendes:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>Berechtigungen verändern mittels:
|
||||
<function>setuid</function>,
|
||||
<function>seteuid</function>,
|
||||
<function>setgid</function>,
|
||||
<function>setegid</function>,
|
||||
<function>setgroups</function>,
|
||||
<function>setreuid</function>,
|
||||
<function>setregid</function>,
|
||||
<function>setlogin</function></simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Ressourcenbegrenzungen setzen mittels
|
||||
<function>setrlimit</function></simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Einige sysctl-Variablen (kern.hostname)
|
||||
verändern</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara><function>chroot()</function></simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Ein Flag einer vnode setzen:
|
||||
<function>chflags</function>,
|
||||
<function>fchflags</function></simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Attribute einer vnode setzen wie Dateiberechtigungen,
|
||||
Eigentümer, Gruppe, Größe, Zugriffszeit
|
||||
und Modifikationszeit</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>Binden eines Prozesses an einen öffentlichen
|
||||
privilegierten Port (ports < 1024)</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para><function>Jail</function>s sind ein mächtiges
|
||||
Werkzeug, um Anwendungen in einer sicheren Umgebung
|
||||
auszuführen, aber sie haben auch ihre Nachteile.
|
||||
Derzeit wurden die IPC-Mechanismen noch nicht an
|
||||
<function>suser_xxx</function> angepasst, so dass Anwendungen
|
||||
wie MySQL nicht innerhalb einer Jail ausgeführt werden
|
||||
können. Der Superuser-Zugriff hat in einer Jail nur eine
|
||||
sehr eingeschränkte Bedeutung, aber es gibt keine
|
||||
Möglichkeit zu definieren was
|
||||
"sehr eingeschränkt" heißt.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>&posix;.1e Prozess Capabilities</title>
|
||||
|
||||
<indexterm><primary>POSIX.1e Process
|
||||
Capabilities</primary></indexterm>
|
||||
<indexterm><primary>TrustedBSD</primary></indexterm>
|
||||
|
||||
<para>&posix; hat einen funktionalen Entwurf (Working Draft)
|
||||
herausgegeben, der Ereignisüberprüfung,
|
||||
Zugriffskontrolllisten, feiner einstellbare Privilegien,
|
||||
Informationsmarkierung und verbindliche Zugriffskontrolle
|
||||
enthält.</para>
|
||||
|
||||
<para>Dies ist im Moment in Arbeit und das Hauptziel des <link xlink:href="http://www.trustedbsd.org/">TrustedBSD</link>-Projekts.
|
||||
Ein Teil der bisherigen Arbeit wurde in &os.current;
|
||||
übernommen (cap_set_proc(3)).</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="secure-trust">
|
||||
<title>Vertrauen</title>
|
||||
|
||||
<para>Eine Anwendung sollte niemals davon ausgehen, dass
|
||||
irgendetwas in der Nutzerumgebung vernünftig ist.
|
||||
Das beinhaltet (ist aber sicher nicht darauf
|
||||
beschränkt): Nutzereingaben, Signale,
|
||||
Umgebungsvariablen, Ressourcen, IPC, mmaps, das
|
||||
Arbeitsverzeichnis im Dateisystem, Dateideskriptoren,
|
||||
die Anzahl geöffneter Dateien, etc..</para>
|
||||
|
||||
<indexterm><primary>positive Filterung</primary></indexterm>
|
||||
<indexterm><primary>Datenvalidierung</primary></indexterm>
|
||||
|
||||
<para>Sie sollten niemals annehmen, dass Sie jede Art von
|
||||
inkorrekten Eingaben abfangen können, die ein Nutzer
|
||||
machen kann. Stattdessen sollte Ihre Anwendung positive
|
||||
Filterung verwenden, um nur eine bestimmte Teilmenge an
|
||||
Eingaben zuzulassen, die Sie für sicher halten.
|
||||
Ungeeignete Datenüberprüfung ist die Ursache
|
||||
vieler Exploits, besonders für CGI-Skripte im Internet.
|
||||
Bei Dateinamen müssen Sie besonders vorsichtig sein,
|
||||
wenn es sich um Pfade ("../", "/"), symbolische
|
||||
Verknüpfungen und Shell-Escape-Sequenzen handelt.</para>
|
||||
|
||||
<indexterm><primary>Perl Taint-Modus</primary></indexterm>
|
||||
|
||||
<para>Perl bietet eine wirklich coole Funktion, den sogenannten
|
||||
"Taint"-Modus, der verwendet werden kann, um zu verhindern,
|
||||
dass Skripte Daten, die von außerhalb des Programmes
|
||||
stammen, auf unsichere Art und Weise verwenden. Dieser
|
||||
Modus überprüft Kommandozeilenargumente,
|
||||
Umgebungsvariablen, Lokalisierungsinformationen, die
|
||||
Ergebnisse von Systemaufrufen
|
||||
(<function>readdir()</function>,
|
||||
<function>readlink()</function>,
|
||||
<function>getpwxxx()</function>)
|
||||
und alle Dateieingaben.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="secure-race-conditions">
|
||||
<title>Race-Conditions</title>
|
||||
|
||||
<para>Eine Race-Condition ist ein unnormales Verhalten, das von
|
||||
einer unerwarteten Abhängigkeit beim Timing von Ereignissen
|
||||
verursacht wird. Mit anderen Worten heißt das, ein
|
||||
Programmierer nimmt irrtümlicher Weise an, dass ein
|
||||
bestimmtes Ereignis immer vor einem anderen stattfindet.</para>
|
||||
|
||||
<indexterm><primary>Race-Conditions</primary>
|
||||
<secondary>Signale</secondary></indexterm>
|
||||
|
||||
<indexterm><primary>Race-Conditions</primary>
|
||||
<secondary>Zugriffsprüfungen</secondary></indexterm>
|
||||
|
||||
<indexterm><primary>Race-Conditions</primary>
|
||||
<secondary>Öffnen von Dateien</secondary></indexterm>
|
||||
|
||||
<para>Einige der häufigsten Ursachen für
|
||||
Race-Conditions sind Signale, Zugriffsprüfungen und das
|
||||
Öffnen von Dateien. Signale sind von Natur aus
|
||||
asynchrone Ereignisse, deshalb ist besondere Vorsicht im
|
||||
Umgang damit geboten. Das Prüfen des Zugriffs mittels
|
||||
der Aufrufe <function>access(2)</function> gefolgt von
|
||||
<function>open(2)</function> ist offensichtlich nicht atomar.
|
||||
Benutzer können zwischen den beiden Aufrufen Dateien
|
||||
verschieben. Stattdessen sollten privilegierte Anwendungen
|
||||
<function>seteuid()</function> direkt gefolgt von
|
||||
<function>open()</function> aufrufen. Auf die gleiche Art
|
||||
sollte eine Anwendung immer eine korrekte Umask vor dem
|
||||
Aufruf von <function>open()</function> setzen, um
|
||||
störende Aufrufe von <function>chmod()</function> zu
|
||||
umgehen.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/sockets/chapter.xml,v 1.5 2010/12/23 18:23:30 bcr Exp $
|
||||
basiert auf: 1.16
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<para>Dieses Kapitel ist noch nicht übersetzt.
|
||||
Lesen Sie bitte <link xlink:href="&url.books.developers-handbook.en;/sockets.html">
|
||||
das Original in englischer Sprache</link>. Wenn Sie helfen
|
||||
wollen, dieses Kapitel zu übersetzen, senden Sie bitte
|
||||
eine E-Mail an die Mailingliste &a.de.translators;.</para>
|
||||
</chapter>
|
||||
|
|
@ -1,256 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/developers-handbook/testing/chapter.xml,v 1.10 2010/12/18 13:28:29 jkois Exp $
|
||||
basiert auf: 1.3
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="testing">
|
||||
<info><title>Regressions- und Performance-Tests</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Jürgen</firstname><surname>Lock</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Regressions-Tests werden durchgeführt, um zu überprüfen,
|
||||
ob ein bestimmter Teil des Systems wie erwartet funktioniert, und
|
||||
um sicherzustellen, dass bereits beseitigte Fehler nicht wieder eingebaut
|
||||
werden.</para>
|
||||
|
||||
<para>Die &os;-Regressions-Testwerkzeuge finden Sie im
|
||||
&os;-Quelltextbaum unter <filename>src/tools/regression</filename>.</para>
|
||||
|
||||
<section xml:id="testing-micro-benchmark">
|
||||
<title>Mikro-Benchmark-Checkliste</title>
|
||||
|
||||
<para>Dieser Abschnitt enthält Tipps, wie
|
||||
ordnungsgemäße Mikro-Benchmarks unter &os; oder für
|
||||
&os; selbst erstellt werden.</para>
|
||||
|
||||
<para>Es ist nicht möglich, immer alle der folgenden
|
||||
Vorschläge zu berücksichtigen, aber je mehr davon,
|
||||
desto besser wird der Benchmark kleine
|
||||
Unterschiede nachweisen können.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Schalten Sie <acronym>APM</acronym> und alles andere,
|
||||
das den Systemtakt beeinflusst, ab
|
||||
(<acronym>ACPI</acronym>?).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Starten Sie in den Single-User-Modus. &man.cron.8;
|
||||
und andere Systemdienste verursachen nur Störungen.
|
||||
Genauso der &man.sshd.8;-Systemdienst.
|
||||
Falls während des Tests
|
||||
SSH-Zugriff benötigt wird, schalten Sie entweder die
|
||||
Neuerstellung des SSHv1-Schlüssels ab oder beenden Sie
|
||||
den <command>sshd</command>-Elternprozess während der
|
||||
Tests.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Beenden Sie &man.ntpd.8;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Falls &man.syslog.3;-Ereignisse erzeugt werden,
|
||||
starten Sie &man.syslogd.8; mit leerer
|
||||
<filename>/etc/syslogd.conf</filename> oder beenden Sie
|
||||
es.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sorgen Sie für möglichst wenig Disk-I/O;
|
||||
vermeiden Sie es ganz wenn möglich.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Hängen Sie keine Dateisysteme ein, die Sie nicht
|
||||
benötigen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Hängen Sie <filename>/</filename>, <filename>/usr</filename> und die anderen
|
||||
Dateisysteme nur lesbar ein wenn möglich. Dies
|
||||
verhindert, dass atime-Aktualisierungen auf der Festplatte (usw.) das
|
||||
Ergebnis verfälschen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Initialisieren Sie das beschreibbare
|
||||
Test-Dateisystem mit &man.newfs.8; neu und füllen Sie es
|
||||
aus einer &man.tar.1;- oder &man.dump.8;-Datei vor jedem
|
||||
Lauf. Hängen Sie es aus und wieder ein, bevor Sie den
|
||||
Test starten. Dies sorgt für einen konsistenten
|
||||
Dateisystemaufbau. Bei einem <quote>worldstone</quote>-Test
|
||||
bezieht sich dies auf <filename>/usr/obj</filename> (Initialisieren Sie
|
||||
es einfach mit <command>newfs</command> neu und hängen Sie
|
||||
es ein). Um absolut reproduzierbare Ergebnisse zu bekommen,
|
||||
füllen Sie das Dateisystem aus einer &man.dd.1;-Datei
|
||||
(d.h. <command>dd
|
||||
if=myimage of=/dev/ad0s1h
|
||||
bs=1m</command>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Benutzen Sie malloc-gestützte oder vorbelastete
|
||||
&man.md.4;-Partitionen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Starten Sie zwischen den einzelnen
|
||||
Durchläufen neu, dies sichert einen konsistenteren
|
||||
Zustand.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Entfernen Sie alle nicht unbedingt benötigten
|
||||
Gerätetreiber aus dem Kernel. Wenn z.B. USB für
|
||||
den Test nicht benötigt wird, entfernen Sie es aus dem
|
||||
Kernel. Gerätetreiber, die sich Hardware zuteilen, haben
|
||||
oft <quote>tickende</quote> Timeouts.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Konfigurieren Sie nicht Hardware, die
|
||||
nicht benutzt wird. Entfernen Sie Festplatten
|
||||
mit &man.atacontrol.8; und &man.camcontrol.8;, wenn diese
|
||||
für den Test nicht gebraucht werden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Konfigurieren Sie nicht das Netzwerk, es sei denn es
|
||||
wird getestet, oder warten Sie, bis der Test fertig ist, wenn
|
||||
Sie das Ergebnis auf einen anderen Rechner übertragen
|
||||
wollen.</para>
|
||||
|
||||
<para>Falls das System an ein öffentliches Netzwerk
|
||||
angeschlossen sein muss, achten Sie auf Spitzen im
|
||||
Broadcast-Verkehr. Obwohl dieser kaum auffällt, wird
|
||||
er CPU-Zyklen brauchen. Ähnliches gilt für
|
||||
Multicast.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Legen Sie jedes Dateisystem auf eine eigene Festplatte.
|
||||
Dies minimiert Jitter durch Optimierungen von
|
||||
Lesekopfbewegungen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Minimieren Sie Ausgaben auf serielle oder VGA-Konsolen.
|
||||
Ausgabenumleitung in Dateien ergibt weniger Jitter
|
||||
(serielle Konsolen werden leicht zum Flaschenhals).
|
||||
Benutzen Sie die Tastatur nicht, während der Test
|
||||
läuft, sogar <keycap>space</keycap> oder
|
||||
<keycap>back-space</keycap> wirken sich auf die
|
||||
Ergebnisse aus.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Stellen Sie sicher, dass der Test lang genug
|
||||
läuft, aber nicht zu lange. Wenn er zu kurz ist, sind
|
||||
Zeitstempel ein Problem. Wenn er zu lang ist, werden
|
||||
Temperaturänderungen und Drift die Frequenz von
|
||||
Quarzkristallen im Rechner beeinflussen. Daumenregel: mehr
|
||||
als eine Minute, weniger als eine Stunde.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Versuchen Sie, die Temperatur in der Umgebung des
|
||||
Rechners so stabil wie möglich zu halten. Diese beeinflusst
|
||||
sowohl Quarzkristalle als auch Festplatten-Algorithmen.
|
||||
Um einen wirklich stabilen Takt zu erhalten, wäre es auch
|
||||
möglich, einen stabilisierten Takt anzuschließen.
|
||||
D.h. besorgen Sie sich einen OCXO + PLL und koppeln Sie das
|
||||
Ausgangssignal mit den Taktgeberschaltkreisen anstelle des
|
||||
Quarzkristalls der Hauptplatine. Wenden Sie sich an
|
||||
&a.phk;, wenn Sie mehr Informationen hierüber
|
||||
benötigen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Lassen Sie den Test mindestens drei Mal laufen, besser
|
||||
mehr als 20 Mal, sowohl
|
||||
für <quote>vor</quote> als auch für
|
||||
<quote>nach</quote> dem Code. Versuchen Sie abzuwechseln
|
||||
(d.h. nicht erst 20 Mal <quote>vorher</quote> und dann 20
|
||||
Mal <quote>nachher</quote>), dies ermöglicht,
|
||||
umgebungsbedingte Effekte zu erkennen. Wechseln Sie nicht
|
||||
1:1 ab, sondern 3:3; dies erlaubt,
|
||||
Wechselwirkungseffekte zu erkennen.</para>
|
||||
|
||||
<para>Ein gutes Muster ist:
|
||||
<literal>bababa{bbbaaa}*</literal>. Dies gibt Hinweise nach
|
||||
den ersten 1+1-Läufen (sodass Sie den Test stoppen
|
||||
können, falls er völlig daneben geht), Sie
|
||||
können die Standardabweichung nach den ersten 3+3-Läufen
|
||||
überprüfen (zeigt an, ob sich ein
|
||||
längerer Lauf lohnt), später
|
||||
Trends und Wechselwirkungen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Benutzen Sie &man.ministat.1;, um
|
||||
festzustellen, ob Ihre Ergebnisse signifikant sind.
|
||||
Überlegen Sie sich, das Buch <quote>Cartoon guide to
|
||||
statistics</quote> ISBN: 0062731025 zu kaufen. Es ist sehr
|
||||
empfehlenswert, falls Sie Dinge wie Standardabweichung und
|
||||
Studentsche t-Verteilung vergessen oder nie gelernt
|
||||
haben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Benutzen Sie keinen Hintergrund-&man.fsck.8;, wenn Sie
|
||||
ihn nicht selbst testen
|
||||
wollen. Schalten Sie auch <varname>background_fsck</varname>
|
||||
in <filename>/etc/rc.conf</filename> aus, es sei denn der
|
||||
Benchmark wird nicht mindestens 60+<quote>Laufzeit von
|
||||
<command>fsck</command></quote> Sekunden nach Systemstart
|
||||
gestartet, da &man.rc.8; startet und prüft, ob
|
||||
<command>fsck</command> auf irgendeinem der Dateisysteme
|
||||
laufen muss, wenn Hintergrund-<command>fsck</command>
|
||||
eingeschaltet ist. Stellen Sie ebenfalls sicher, dass keine
|
||||
Snapshots herumliegen, falls der Benchmark nicht ein Test
|
||||
mit Snapshots ist.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Falls der Benchmark unerwartet schlechte Performance
|
||||
zeigt, überprüfen Sie Dinge wie große Mengen
|
||||
Interrupts von unerwarteten Quellen. Es gibt Berichte, dass
|
||||
einige <acronym>ACPI</acronym>-Versionen sich <quote>daneben
|
||||
benehmen</quote> und ein Übermaß an Interrupts
|
||||
erzeugen. Um zu helfen, ungewöhnliche Testergebnisse zu
|
||||
diagnostizieren, machen Sie ein paar Momentaufnahmen von
|
||||
<command>vmstat -i</command> und suchen Sie nach
|
||||
Ungewöhnlichem.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Gehen Sie mit Parametern zur Optimierung
|
||||
von Kernel, Userland und Fehlersuche vorsichtig um.
|
||||
Es passiert schnell, irgendetwas durchrutschen zu
|
||||
lassen und dann später festzustellen, dass der Test
|
||||
nicht das gleiche verglichen hat.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Erstellen Sie nie Benchmarks unter Verwendung der Kernel-Optionen
|
||||
<literal>WITNESS</literal> und <literal>INVARIANTS</literal>,
|
||||
wenn der Test nicht diese Merkmale selbst
|
||||
untersuchen soll. <literal>WITNESS</literal> kann zu 400% und
|
||||
mehr Performance-Abnahme führen. Ähnliches gilt
|
||||
für Userland-&man.malloc.3;-Parameter, Voreinstellungen
|
||||
hierbei unterscheiden sich bei -CURRENT von denen bei
|
||||
Production-Releases.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</chapter>
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,33 +0,0 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# Build the FreeBSD FAQ in the German translation
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde: de-docproj/books/faq/Makefile,v 1.11 2004/08/04 23:33:31 mheinen Exp $
|
||||
# basiert auf: 1.12
|
||||
#
|
||||
|
||||
MAINTAINER=de-bsd-translators@de.FreeBSD.org
|
||||
|
||||
DOC?= book
|
||||
|
||||
FORMATS?= html-split html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
WITH_BIBLIOXREF_TITLE?=YES
|
||||
#
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,63 +0,0 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDde$
|
||||
# basiert auf: r50998
|
||||
#
|
||||
# Build the FreeBSD Documentation Project Primer.
|
||||
#
|
||||
MAINTAINER=de-bsd-translators@de.FreeBSD.org
|
||||
|
||||
DOC?= book
|
||||
|
||||
FORMATS?= html-split html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= overview/chapter.xml
|
||||
SRCS+= tools/chapter.xml
|
||||
SRCS+= working-copy/chapter.xml
|
||||
SRCS+= structure/chapter.xml
|
||||
SRCS+= doc-build/chapter.xml
|
||||
SRCS+= the-website/chapter.xml
|
||||
SRCS+= xml-primer/chapter.xml
|
||||
SRCS+= xhtml-markup/chapter.xml
|
||||
SRCS+= docbook-markup/chapter.xml
|
||||
SRCS+= stylesheets/chapter.xml
|
||||
SRCS+= translations/chapter.xml
|
||||
SRCS+= po-translations/chapter.xml
|
||||
SRCS+= manpages/chapter.xml
|
||||
SRCS+= writing-style/chapter.xml
|
||||
SRCS+= editor-config/chapter.xml
|
||||
SRCS+= see-also/chapter.xml
|
||||
|
||||
SRCS+= examples/appendix.xml
|
||||
|
||||
# Images from the cross-document image library
|
||||
IMAGES_LIB= callouts/1.png
|
||||
IMAGES_LIB+= callouts/2.png
|
||||
IMAGES_LIB+= callouts/3.png
|
||||
IMAGES_LIB+= callouts/4.png
|
||||
IMAGES_LIB+= callouts/5.png
|
||||
IMAGES_LIB+= callouts/6.png
|
||||
IMAGES_LIB+= callouts/7.png
|
||||
IMAGES_LIB+= callouts/8.png
|
||||
IMAGES_LIB+= callouts/9.png
|
||||
|
||||
# Entities
|
||||
SRCS+= chapters.ent
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
# Fixme!
|
||||
DOCBOOK_DEPS_DISABLE=YES
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||
|
|
@ -1,281 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
||||
<!ENTITY % chapters SYSTEM "chapters.ent">
|
||||
%chapters;
|
||||
]>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r50998
|
||||
-->
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||||
<info><title>Die Fibel für neue Mitarbeiter des
|
||||
FreeBSD-Dokumentationsprojekts</title>
|
||||
|
||||
<author><orgname>The FreeBSD Documentation Project</orgname></author>
|
||||
|
||||
<copyright>
|
||||
<year>1998-2017</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
<copyright>
|
||||
<year>1998-2019</year>
|
||||
<holder>The FreeBSD German Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
<pubdate role="rcs">$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
&legalnotice;
|
||||
|
||||
<abstract>
|
||||
<para>Vielen Dank für Ihr Interesse und Ihre Mitarbeit an
|
||||
der FreeBSD-Dokumentation. Wir freuen uns über jeden Beitrag.</para>
|
||||
|
||||
<para>Diese Fibel enthält die Informationen, die Sie für die
|
||||
Mitarbeit am FreeBSD-Dokumentationsprojekt (auch als
|
||||
<acronym>FDP</acronym> bekannt) benötigen. Diese reichen von
|
||||
verpflichtender und optionaler Software bis hin zur Philosophie
|
||||
des FreeBSD-Dokumentationsprojekts.</para>
|
||||
|
||||
<para>Bitte beachten Sie, dass diese Fibel
|
||||
<emphasis>jederzeit</emphasis> unter Bearbeitung und noch
|
||||
nicht vollständig ist. Falls Sie einen Fehler finden, würden
|
||||
wir uns freuen, wenn Sie uns darüber informieren.</para>
|
||||
</abstract>
|
||||
</info>
|
||||
|
||||
<preface xml:id="preface">
|
||||
<title>Benutzungshinweise</title>
|
||||
|
||||
<sect1 xml:id="preface-prompts">
|
||||
<title>Die Eingabeaufforderungen</title>
|
||||
|
||||
<para>Die folgende Tabelle enthält die Eingabeaufforderung eines
|
||||
normalen Benutzers sowie die des Superusers. Die in
|
||||
diesem Buch verwendeten Beispiele benutzen die jeweilige
|
||||
Eingabeaufforderung, um zu zeigen, als welcher Benutzer die
|
||||
Beispiele ausgeführt werden.</para>
|
||||
|
||||
<informaltable frame="none" pgwide="1">
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Benutzer</entry>
|
||||
<entry>Eingabeaufforderung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><systemitem class="username">Normaler Benutzer</systemitem></entry>
|
||||
<entry>&prompt.user;</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><systemitem class="username">Superuser</systemitem></entry>
|
||||
<entry>&prompt.root;</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="preface-conventions">
|
||||
<title>Typographische Festlegungen</title>
|
||||
|
||||
<para>Um die Lesbarkeit zu erhöhen, werden in diesem
|
||||
Dokument die im folgenden genannten typographischen
|
||||
Festlegungen verwendet:</para>
|
||||
|
||||
<informaltable frame="none" pgwide="1">
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Bedeutung</entry>
|
||||
|
||||
<entry>Beispiel</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>Kommandonamen</entry>
|
||||
|
||||
<entry>Geben Sie <command>ls -a</command> ein, um alle
|
||||
Dateien anzuzeigen.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Datei- und Verzeichnisnamen</entry>
|
||||
|
||||
<entry>Bearbeiten Sie
|
||||
<filename>.login</filename>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Bildschirmausgaben</entry>
|
||||
|
||||
<entry><screen>You have mail.</screen></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Bildschirmein- und ausgaben</entry>
|
||||
|
||||
<entry><screen>&prompt.user; <userinput>date +"The time is %H:%M"</userinput>
|
||||
The time is 09:18</screen></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Referenzen auf Hilfeseiten</entry>
|
||||
|
||||
<entry>Mit &man.su.1; können Sie sich als ein anderer
|
||||
Benutzer anmelden.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Benutzer- und Gruppennamen</entry>
|
||||
|
||||
<entry>Ich bin <systemitem class="username">root</systemitem>,
|
||||
ich darf das.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Hervorhebungen</entry>
|
||||
|
||||
<entry>Hier <emphasis>müssen</emphasis> Sie
|
||||
vorsichtig sein.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Text, der vom Benutzer durch seine Eingaben ersetzt
|
||||
werden muss</entry>
|
||||
|
||||
<entry>Um die Hilfeseiten nach einem bestimmten Begriff zu
|
||||
durchsuchen, geben Sie
|
||||
<command>man -k <replaceable>Suchbegriff</replaceable></command>
|
||||
ein.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Umgebungsvariablen</entry>
|
||||
|
||||
<entry><envar>$HOME</envar> ist Ihr
|
||||
Benutzerverzeichnis.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="preface-notes">
|
||||
<title>Anmerkungen, Tipps, wichtige Hinweise, Warnungen und
|
||||
Beispiel</title>
|
||||
|
||||
<para>An einigen Stellen innerhalb dieses Buchs werden
|
||||
wichtige oder nützliche Hinweise gegeben, die besonders
|
||||
hervorgehoben sind. Hier ein kurzer Überblick über
|
||||
die verwendeten Darstellungen.</para>
|
||||
|
||||
<note>
|
||||
<para>Anmerkungen werden so dargestellt. Sie enthalten
|
||||
Informationen die Sie nur zu lesen brauchen, wenn Sie direkt
|
||||
davon betroffen sind.</para>
|
||||
</note>
|
||||
|
||||
<tip>
|
||||
<para>Tipps sind Informationen, die vielleicht hilfreich sein
|
||||
könnten oder aufzeigen, wie bestimmte Dinge einfacher
|
||||
zu bewerkstelligen sind.</para>
|
||||
</tip>
|
||||
|
||||
<important>
|
||||
<para>Besonders wichtige Punkte werden so hervorgehoben. Meist
|
||||
enthalten sie Hinweise auf vielleicht zusätzlich auszuführende
|
||||
Schritte oder Dinge, die besonders zu beachten sind.</para>
|
||||
</important>
|
||||
|
||||
<warning>
|
||||
<para>Warnungen werden wie dieser Abschnitt dargestellt und
|
||||
weisen auf mögliche Schäden hin, die entstehen
|
||||
können, falls die beschriebenen Schritte nicht genau
|
||||
befolgt oder Hinweise nicht beachtet werden. Die Palette der
|
||||
möglichen Schäden reicht von Hardwareschäden
|
||||
bis hin zu Datendatenverlust durch ein versehentliches
|
||||
Löschen von wichtigen Dateien oder ganzen
|
||||
Verzeichnissen.</para>
|
||||
</warning>
|
||||
|
||||
<example>
|
||||
<title>Ein Beispiel</title>
|
||||
|
||||
<para>Beispiele, die so wie hier dargestellt werden, enthalten
|
||||
meist kleine Übungen, die nachvollzogen werden sollten,
|
||||
um das vorher beschriebene besser zu verinnerlichen oder mit
|
||||
den erzeugten Ausgaben vertraut zu werden.</para>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="preface-acknowledgements">
|
||||
<title>Danksagungen</title>
|
||||
|
||||
<para>Ich möchte mich bei Sue Blake, Patrick Durusau, Jon
|
||||
Hamilton, Peter Flynn und Christopher Maden bedanken, die sich
|
||||
die Zeit genommen haben, die frühen Entwürfe dieses
|
||||
Dokuments zu lesen und viele hilfreiche Hinweise und
|
||||
Ratschläge gegeben haben.</para>
|
||||
</sect1>
|
||||
</preface>
|
||||
|
||||
&chap.overview;
|
||||
&chap.tools;
|
||||
&chap.working-copy;
|
||||
&chap.structure;
|
||||
&chap.doc-build;
|
||||
&chap.the-website;
|
||||
&chap.xml-primer;
|
||||
&chap.xhtml-markup;
|
||||
&chap.docbook-markup;
|
||||
&chap.stylesheets;
|
||||
&chap.translations;
|
||||
&chap.po-translations;
|
||||
&chap.manpages;
|
||||
&chap.writing-style;
|
||||
&chap.editor-config;
|
||||
&chap.see-also;
|
||||
|
||||
&app.examples;
|
||||
|
||||
<index/>
|
||||
</book>
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
Creates entities for each chapter in the Documentation Project Primer.
|
||||
Each entity is named chap.foo, where foo is the value of the id
|
||||
attribute on that chapter, and corresponds to the name of the
|
||||
directory in which that chapter's .xml file is stored.
|
||||
|
||||
Chapters should be listed in the order in which they are referenced.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r50998
|
||||
-->
|
||||
|
||||
<!ENTITY chap.overview SYSTEM "overview/chapter.xml">
|
||||
<!ENTITY chap.tools SYSTEM "tools/chapter.xml">
|
||||
<!ENTITY chap.working-copy SYSTEM "working-copy/chapter.xml">
|
||||
<!ENTITY chap.structure SYSTEM "structure/chapter.xml">
|
||||
<!ENTITY chap.doc-build SYSTEM "doc-build/chapter.xml">
|
||||
<!ENTITY chap.the-website SYSTEM "the-website/chapter.xml">
|
||||
<!ENTITY chap.xml-primer SYSTEM "xml-primer/chapter.xml">
|
||||
<!ENTITY chap.xhtml-markup SYSTEM "xhtml-markup/chapter.xml">
|
||||
<!ENTITY chap.docbook-markup SYSTEM "docbook-markup/chapter.xml">
|
||||
<!ENTITY chap.stylesheets SYSTEM "stylesheets/chapter.xml">
|
||||
<!ENTITY chap.translations SYSTEM "translations/chapter.xml">
|
||||
<!ENTITY chap.po-translations SYSTEM "po-translations/chapter.xml">
|
||||
<!ENTITY chap.manpages SYSTEM "manpages/chapter.xml">
|
||||
<!ENTITY chap.writing-style SYSTEM "writing-style/chapter.xml">
|
||||
<!ENTITY chap.editor-config SYSTEM "editor-config/chapter.xml">
|
||||
<!ENTITY chap.see-also SYSTEM "see-also/chapter.xml">
|
||||
|
||||
<!ENTITY app.examples SYSTEM "examples/appendix.xml">
|
||||
|
|
@ -1,571 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1999 Neil Blakey-Milner, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r52149
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="doc-build">
|
||||
<info><title>Die Erzeugung der Zieldokumente</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<para>Dieses Kapitels erklärt detailliert,
|
||||
<emphasis>wie der Bau der Dokumentation organisiert
|
||||
ist</emphasis> und wie Sie diesen Prozess mit &man.make.1;
|
||||
beeinflussen können.</para>
|
||||
|
||||
<sect1 xml:id="doc-build-rendering">
|
||||
<title>DocBook in verschiedene Ausgabeformate konvertieren</title>
|
||||
|
||||
<para>Aus einer einzigen DocBook-Quellcodedatei können
|
||||
verschiedene Ausgabeformate erstellt werden. Welches Dateiformat
|
||||
erstellt wird, wird über die Variable
|
||||
<varname>FORMATS</varname> festgelegt. Eine Liste aller
|
||||
verfügbaren Formate ist in <varname>KNOWN_FORMATS</varname>
|
||||
gespeichert:</para>
|
||||
|
||||
<screen xml:id="doc-build-rendering-known-formats">&prompt.user; <userinput>cd ~/doc/en_US.ISO8859-1/books/handbook</userinput>
|
||||
&prompt.user; <userinput>make -V KNOWN_FORMATS</userinput></screen>
|
||||
|
||||
<table xml:id="doc-build-rendering-common-formats" frame="none">
|
||||
<title>Häufige Ausgabeformate</title>
|
||||
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry><varname>FORMATS</varname></entry>
|
||||
<entry>Dateityp</entry>
|
||||
<entry>Beschreibung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><literal>html</literal></entry>
|
||||
<entry><acronym>HTML</acronym>, Einzeldatei</entry>
|
||||
<entry>Eine einzelne <filename>book.html</filename> oder
|
||||
<filename>article.html</filename>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literal>html-split</literal></entry>
|
||||
<entry><acronym>HTML</acronym>, multiple Dateien</entry>
|
||||
<entry>Multiple <acronym>HTML</acronym>-Dateien, eine
|
||||
für jedes Kapitel oder für jeden Abschnitt. Dieser
|
||||
Typ wird in der Regel für die Nutzung des Dokuments
|
||||
auf einer Internetseite verwendet.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literal>pdf</literal></entry>
|
||||
<entry><acronym>PDF</acronym></entry>
|
||||
<entry>Portable Document Format</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>Welches Format verwendet wird, hängt vom jeweiligen
|
||||
Dokument ab, in der Regel handelt es sich aber um
|
||||
<literal>html-split</literal>. Weitere Formate werden über die
|
||||
Variable <varname>FORMATS</varname> angegeben. Dabei können
|
||||
Sie ein einzelnes Format, aber auch mehrere Formate gleichzeitig
|
||||
definieren.</para>
|
||||
|
||||
<example xml:id="doc-build-formats-example-html">
|
||||
<title>Das Dokument als eine einzelne HTML-Seite bauen</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/en_US.ISO8859-1/books/handbook</userinput>
|
||||
&prompt.user; <userinput>make FORMATS=html</userinput></screen>
|
||||
</example>
|
||||
|
||||
<example xml:id="doc-build-formats-example-html-split-pdf">
|
||||
<title>Das Dokument in den Formaten HTML-Split sowie
|
||||
<acronym>PDF</acronym> bauen</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/en_US.ISO8859-1/books/handbook</userinput>
|
||||
&prompt.user; <userinput>make FORMATS="html-split pdf"</userinput></screen>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="doc-build-toolset">
|
||||
<title>Für den Bau der &os;-Dokumentation benötigte
|
||||
Werkzeuge</title>
|
||||
|
||||
<para>Die folgende Werkzeuge werden benötigt, um die
|
||||
<acronym>FDP</acronym>-Dokumente zu bauen und zu installieren.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Das wichtigste Werkzeug ist &man.make.1;, genauer
|
||||
<application>Berkeley Make</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Der Bau von Paketen erfolgt unter FreeBSD mit
|
||||
&man.pkg-create.8;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&man.gzip.1; dient zur Erstellung
|
||||
komprimierter Versionen der Dokumentation. &man.bzip2.1; wird
|
||||
ebenfalls unterstützt. Wollen Sie Pakete der Dokumentation
|
||||
erstellen, benötigen Sie auch &man.tar.1;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mit &man.install.1; installieren Sie die Dokumentation auf
|
||||
Ihrem System.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="doc-build-makefiles">
|
||||
<title>Die <filename>Makefile</filename>s des Dokumentationsbaums
|
||||
verstehen</title>
|
||||
|
||||
<para>Innerhalb des &os; Documentation Projects gibt es drei
|
||||
verschiedene Arten von <filename>Makefile</filename>s:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Ein <link linkend="sub-make">
|
||||
<filename>Makefile</filename></link> in einem
|
||||
Unterverzeichnis gibt Anweisungen an dessen Dateien und
|
||||
Unterverzeichnisse weiter.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ein <link linkend="doc-make">
|
||||
Dokument-<filename>Makefile</filename></link> beschreibt das
|
||||
Dokument, das aus dem Inhalt des jeweiligen Verzeichnisses
|
||||
gebaut werden soll.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link linkend="make-includes">
|
||||
<application>Make</application>-Includes</link> sind der
|
||||
"Klebstoff", der für den Bau der Dokumentation
|
||||
erforderlich ist. In der Regel heissen diese Dokumente
|
||||
<filename>doc.<replaceable>xxx</replaceable>.mk</filename>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect2 xml:id="sub-make">
|
||||
<title>Unterverzeichnis-<filename>Makefile</filename>s</title>
|
||||
|
||||
<para>Derartige <filename>Makefile</filename>s sind in der Regel
|
||||
wie folgt aufgebaut:</para>
|
||||
|
||||
<programlisting>SUBDIR =articles
|
||||
SUBDIR+=books
|
||||
|
||||
COMPAT_SYMLINK = en
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting>
|
||||
|
||||
<para>Die ersten vier nicht-leeren Zeilen definieren die
|
||||
&man.make.1;-Variablen
|
||||
<varname>SUBDIR</varname>, <varname>COMPAT_SYMLINK</varname>,
|
||||
und <varname>DOC_PREFIX</varname>.</para>
|
||||
|
||||
<para>Die <varname>SUBDIR</varname>-Anweisung weist
|
||||
(ebenso wie die <varname>COMPAT_SYMLINK</varname>-Anweisung)
|
||||
einer Variable einen Wert zu und überschreibt dabei
|
||||
deren ursprünglichen Wert.</para>
|
||||
|
||||
<para>Die zweite <varname>SUBDIR</varname>-Anweisung zeigt,
|
||||
wie man den aktuellen Wert einer Variable ergänzen
|
||||
kann. Nach der Ausführung dieser Anweisung hat die
|
||||
Variable <varname>SUBDIR</varname> den Wert
|
||||
<literal>articles books</literal>.</para>
|
||||
|
||||
<para>Die Anweisung <varname>DOC_PREFIX</varname> zeigt, wie
|
||||
man einer Variable einen Wert zuweist (vorausgesetzt, die
|
||||
Variable ist nicht bereits definiert). Eine derartige
|
||||
Anweisung ist beispielsweise sinnvoll, wenn sich
|
||||
<varname>DOC_PREFIX</varname> nicht dort befindet, wo es
|
||||
vom <filename>Makefile</filename> erwartet wird.
|
||||
Durch das Setzen dieser Variable kann der korrekte Wert an
|
||||
das Makefile übergeben werden.</para>
|
||||
|
||||
<para>Was heißt dies nun konkret? Mit den
|
||||
<varname>SUBDIR</varname>-Anweisungen legen Sie fest, welche
|
||||
Unterverzeichnisse beim Bau der Dokumentation eingeschlossen
|
||||
werden müssen.</para>
|
||||
|
||||
<para><varname>COMPAT_SYMLINK</varname> wird zur Erstellung
|
||||
von symbolischen Links zwischen den jeweiligen Dokumentsprachen
|
||||
und deren offizieller Kodierung benötigt (so wird
|
||||
beispielsweise <filename>doc/en</filename> nach
|
||||
<filename>en_US.ISO-8859-1</filename> verlinkt).</para>
|
||||
|
||||
<para><varname>DOC_PREFIX</varname> gibt den Pfad zum
|
||||
Wurzelverzeichnis des Quellcode-Baums des FreeBSD Documentation
|
||||
Projects an. Diese Vorgabe kann jederzeit durch einen eigenen
|
||||
Wert ersetzt werden. Bei <varname>.CURDIR</varname> handelt es
|
||||
sich um eine in &man.make.1; eingebaute
|
||||
Variable, die den Pfad des aktuellen Verzeichnisses
|
||||
enthält.</para>
|
||||
|
||||
<para>Die letzte Zeile bindet <filename>doc.project.mk</filename>,
|
||||
die zentrale, projektweite &man.make.1;-Datei
|
||||
des &os; Documentation Projects, in den Bau ein. Diese Datei
|
||||
enthält den "Klebstoff", der die diversen Variablen in
|
||||
Anweisungen zum Bau der Dokumentation konvertiert.</para>
|
||||
|
||||
</sect2>
|
||||
<sect2 xml:id="doc-make">
|
||||
<title>Dokument-<filename>Makefile</filename>s</title>
|
||||
|
||||
<para>Diese <filename>Makefile</filename>s definieren diverse
|
||||
<application>make</application>-Variablen mit Vorgaben
|
||||
zum Bau der im Verzeichnis enthaltenen Dokumentation.</para>
|
||||
|
||||
<para>Dazu ein Beispiel:</para>
|
||||
|
||||
<programlisting>MAINTAINER=nik@FreeBSD.org
|
||||
|
||||
DOC?= book
|
||||
|
||||
FORMATS?= html-split html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
# SGML content
|
||||
SRCS= book.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"</programlisting>
|
||||
|
||||
<para>Die Variable <varname>MAINTAINER</varname> ist von
|
||||
zentraler Bedeutung. Sie legt fest, wer für ein
|
||||
bestimmtes Dokument des FreeBSD Documentation Projects
|
||||
verantwortlich ist.</para>
|
||||
|
||||
<para><varname>DOC</varname> (ohne die Erweiterung
|
||||
<filename>.xml</filename>) ist der Name des Hauptdokuments des
|
||||
Verzeichnisses, in dem sich das Makefile befindet. Mit
|
||||
<varname>SRCS</varname>-Anweisungen geben Sie alle Dokumente an,
|
||||
aus denen das Dokument besteht. Zusätzlich binden Sie
|
||||
damit wichtige Dateien ein, deren Änderung einen erneuten
|
||||
Bau der Dokumentation erforderlich macht.</para>
|
||||
|
||||
<para>Mit <varname>FORMATS</varname> geben Sie an, in welchen
|
||||
Formaten die Dokumentation gebaut werden soll.
|
||||
<varname>INSTALL_COMPRESSED</varname> enthält die
|
||||
Standardvorgaben, die beim Bau komprimierter Pakte der
|
||||
Dokumentation verwendet werden sollen. Der Variable
|
||||
<varname>INSTALL_ONLY_COMPRESS</varname> (die in der
|
||||
Voreinstellung leer ist) wird nur dann ein Wert zugewiesen,
|
||||
wenn ausschließlich komprimierte Pakete der Dokumentation
|
||||
erstellt werden sollen.</para>
|
||||
|
||||
<para>Die Variable <varname>DOC_PREFIX</varname> und die
|
||||
verschiedenen Include-Anweisungen sollten Ihnen ebenfalls
|
||||
bereits vertraut sein.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="make-includes">
|
||||
<title>&man.make.1;-Includes des &os; Documentation Projects</title>
|
||||
|
||||
<para>Diese Dateien lassen sich am besten verstehen, indem man sich
|
||||
deren Inhalt näher ansieht. Konkret handelt es sich dabei
|
||||
um folgende Dateien:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>doc.project.mk</filename> ist die
|
||||
Haupt-Include-Datei, die bei Bedarf alle folgenden
|
||||
Include-Dateien enthält.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>doc.subdir.mk</filename> sorgt dafür, dass
|
||||
alle benötigten Verzeichnisse (und Unterverzeichnisse)
|
||||
beim Bau der Dokumentation durchlaufen werden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>doc.install.mk</filename> definiert Variablen,
|
||||
die die Installation der Dokumentation beeinflussen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>doc.docbook.mk</filename> wird verwendet, wenn
|
||||
die Variable <varname>DOCFORMAT</varname> den Wert
|
||||
<literal>docbook</literal> hat und die Variable
|
||||
<varname>DOC</varname> gesetzt ist.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect2 xml:id="includes-doc-project-mk">
|
||||
<title><filename>doc.project.mk</filename></title>
|
||||
|
||||
<para>Diese Datei hat folgenden Aufbau:</para>
|
||||
|
||||
<programlisting>DOCFORMAT?= docbook
|
||||
MAINTAINER?= doc@FreeBSD.org
|
||||
|
||||
PREFIX?= /usr/local
|
||||
PRI_LANG?= en_US.ISO8859-1
|
||||
|
||||
.if defined(DOC)
|
||||
.if ${DOCFORMAT} == "docbook"
|
||||
.include "doc.docbook.mk"
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.include "doc.subdir.mk"
|
||||
.include "doc.install.mk"</programlisting>
|
||||
|
||||
<sect3 xml:id="doc-project-mk-variables">
|
||||
|
||||
<title>Variablen</title>
|
||||
|
||||
<para><varname>DOCFORMAT</varname> und <varname>MAINTAINER</varname>
|
||||
enthalten Standardwerte, falls ihnen über das
|
||||
Dokument-Makefile keine anderen Werte zugewiesen werden.</para>
|
||||
|
||||
<para>Bei <varname>PREFIX</varname> handelt es sich um das
|
||||
Präfix, unter dem die zum Bau der Dokumentation
|
||||
erforderlichen <link linkend="tools">SGML-Werkzeuge</link>
|
||||
installiert sind. In der Regel handelt es sich dabei um
|
||||
<filename>/usr/local</filename>.</para>
|
||||
|
||||
<para><varname>PRI_LANG</varname> sollte auf die Sprache und
|
||||
Kodierung eingestellt werden, die unter den Leser der
|
||||
Dokumentation am häufigsten verwendet wird. Diese
|
||||
Variable hat den Standardwert "US English".</para>
|
||||
|
||||
<note>
|
||||
<para><varname>PRI_LANG</varname> beeinflusst nicht,
|
||||
welche Dokumente gebaut werden können oder
|
||||
sollen. Diese Variable wird lediglich dazu verwendet,
|
||||
häufig verwendete Dokumente in das Wurzelverzeichnis
|
||||
der installierten Dokumentation zu verlinken.</para>
|
||||
</note>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="doc-project-mk-conditionals">
|
||||
<title>Bedingungen</title>
|
||||
|
||||
<para>Die Zeile <literal>.if defined(DOC)</literal> ist ein
|
||||
Beispiel für eine &man.make.1;-Bedingung, die (analog zum
|
||||
Einsatz in anderen Programmen) festlegt, was geschehen soll,
|
||||
wenn eine Bedingung "wahr" oder "falsch" ist.
|
||||
<literal>defined</literal> ist eine Funktion, die
|
||||
zurückgibt, ob die angegebene Variable existiert oder
|
||||
nicht.</para>
|
||||
|
||||
<para><literal>.if ${DOCFORMAT} == "docbook"</literal> testet,
|
||||
ob die Variable <varname>DOCFORMAT</varname> den Wert
|
||||
<literal>"docbook"</literal> hat. Ist dies der Fall, wird
|
||||
<filename>doc.docbook.mk</filename> mit in den Bau
|
||||
aufgenommen.</para>
|
||||
|
||||
<para>Die zwei <literal>.endif</literal>s schließen die
|
||||
zwei weiter oben definierten Bedingungen.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="includes-doc-subdir-mk">
|
||||
<title><filename>doc.subdir.mk</filename></title>
|
||||
|
||||
<para>Den Inhalt dieser Datei hier zu beschreiben, würde
|
||||
zu weit führen. Sie sollten aber nach dem Lesen der
|
||||
vorangegangenen Abschnitte und der folgenden Ausführungen
|
||||
in der Lage sein, Inhalt und Aufgabe dieser Datei zu
|
||||
verstehen.</para>
|
||||
|
||||
<sect3 xml:id="doc-subdir-mk-variables">
|
||||
<title>Variablen</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><varname>SUBDIR</varname> legt die Unterverzeichnisse
|
||||
fest, deren Inhalt beim Bau der Dokumentation inkludiert
|
||||
werden muss.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mit <varname>ROOT_SYMLINKS</varname> wird der Name der
|
||||
Verzeichnisse angegeben, die von ihrer tatsächlichen
|
||||
Position aus in das Wurzelverzeichnis, unter dem die
|
||||
Dokumentation installiert wird, verlinkt werden sollen.
|
||||
Vorausgesetzt, bei der verwendeten Sprache handelt es sich
|
||||
um die primäre Sprache (die über
|
||||
<varname>PRI_LANG</varname> festgelegt wird).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><varname>COMPAT_SYMLINK</varname> wird im Abschnitt
|
||||
<link linkend="sub-make">Unterverzeichnis-Makefile</link>s
|
||||
beschrieben.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="doc-subdir-mk-targets-macro">
|
||||
<title>Targets und Makros</title>
|
||||
|
||||
<para>Abhängigkeiten
|
||||
(<foreignphrase>Dependencies</foreignphrase>) werden
|
||||
folgendermaßen definiert:
|
||||
<literal><replaceable>target</replaceable>
|
||||
<replaceable>abhaengigkeit1 abhaengigkeit2 ...</replaceable></literal>.
|
||||
Um <literal>target</literal> zu bauen, müssen Sie zuvor
|
||||
die angegebenen Abhängigkeiten bauen.</para>
|
||||
|
||||
<para>Daran anschließend können Anweisungen zum
|
||||
Bau des angegebenen Targets folgen, falls der
|
||||
Konvertierungsprozess zwischen dem Target und seinen
|
||||
Abhängigkeiten nicht bereits früher definiert
|
||||
wurde oder falls die Konvertierung nicht der
|
||||
Standardkonvertierungsmethode entspricht.</para>
|
||||
|
||||
<para>Die spezielle Abhängigkeit <literal>.USE</literal>
|
||||
definiert das Äquivalent eines Makros.</para>
|
||||
|
||||
<programlisting>_SUBDIRUSE: .USE
|
||||
.for entry in ${SUBDIR}
|
||||
@${ECHO} "===> ${DIRPRFX}${entry}"
|
||||
@(cd ${.CURDIR}/${entry} && \
|
||||
${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
|
||||
.endfor</programlisting>
|
||||
|
||||
<para>In diesem Beispiel kann <buildtarget>_SUBDIRUSE</buildtarget>
|
||||
nun als Makro, welches die angegebenen Befehle ausführt,
|
||||
verwendet werden, indem es im Makefile als Abhängigkeit
|
||||
angegeben wird.</para>
|
||||
|
||||
<para>Was unterscheidet dieses Makro nun von beliebigen anderen
|
||||
Targets? Der Hauptunterschied ist, dass es
|
||||
<emphasis>nach</emphasis> den Anweisungen der Bauprozedur,
|
||||
in der es als Abhängigkeit angegeben ist, ausgeführt
|
||||
wird. Außerdem ändert es die Variable
|
||||
<varname>.TARGET</varname> (die den Namen des aktuell gebauten
|
||||
Targets enthält) nicht.</para>
|
||||
|
||||
<programlisting>clean: _SUBDIRUSE
|
||||
rm -f ${CLEANFILES}</programlisting>
|
||||
|
||||
<para>In diesem Beispiel führt <buildtarget>clean</buildtarget>
|
||||
das Makro <buildtarget>_SUBDIRUSE</buildtarget> aus, nachdem es
|
||||
den Befehl <command>rm -f ${CLEANFILES}</command> erfolgreich
|
||||
ausgeführt hat. Dadurch löscht
|
||||
<buildtarget>clean</buildtarget> zwar beim Wechsel in ein neues
|
||||
<emphasis>Unterverzeichnis</emphasis> beim Bau erstellte
|
||||
Dateien, aber nicht beim Wechsel aus einem Unterverzeichnis
|
||||
in ein übergeordnetes Verzeichnis.</para>
|
||||
|
||||
<sect4 xml:id="doc-subdir-mk-provided-targets">
|
||||
<title>Vorhandene Targets</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><buildtarget>install</buildtarget> und
|
||||
<buildtarget>package</buildtarget> arbeiten nacheinander
|
||||
alle Unterverzeichnisse ab und rufen dabei jeweils ihre
|
||||
realen Versionen (<buildtarget>realinstall</buildtarget>
|
||||
beziehungsweise <buildtarget>realpackage</buildtarget>)
|
||||
auf.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><buildtarget>clean</buildtarget> entfernt alle
|
||||
Dateien, die beim Bau der Dokumentation erzeugt wurden
|
||||
(dies sowohl im aktuellen Verzeichnis als auch in allen
|
||||
Unterverzeichnissen). <buildtarget>cleandir</buildtarget>
|
||||
hat die gleiche Aufgabe, würde aber zusätzlich
|
||||
die Objekt-Verzeichnisse löschen (falls diese
|
||||
existieren).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect4>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="doc-subdir-mk-conditionals">
|
||||
<title>Weitere Bedingungen</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>exists</literal> gibt "wahr" zurück, wenn
|
||||
die angegebene Datei bereits existiert.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>empty</literal> gibt "wahr" zurück, wenn
|
||||
die angegebene Variable leer ist.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>target</literal> gibt "wahr" zurück, wenn
|
||||
das angegebene Target noch nicht existiert.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="doc-subdir-mk-looping">
|
||||
<title>Schleifenkonstrukte in
|
||||
<command>make (.for)</command></title>
|
||||
|
||||
<para><literal>.for</literal> erlaubt es, bestimmte
|
||||
Anweisungen für jedes Element einer Variable zu
|
||||
wiederholen, indem dieser Variable in jedem Durchlauf
|
||||
der Schleife das jeweilige Element der untersuchten Liste
|
||||
zugewiesen wird.</para>
|
||||
|
||||
<programlisting>_SUBDIRUSE: .USE
|
||||
.for entry in ${SUBDIR}
|
||||
@${ECHO} "===> ${DIRPRFX}${entry}"
|
||||
@(cd ${.CURDIR}/${entry} && \
|
||||
${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
|
||||
.endfor</programlisting>
|
||||
|
||||
<para>Falls das Verzeichnis <varname>SUBDIR</varname> leer ist,
|
||||
würde in unserem Beispiel keine Aktion erfolgen.
|
||||
Enthält das Verzeichnis hingegen ein oder mehrere
|
||||
Elemente, werden die Anweisungen zwischen
|
||||
<literal>.for</literal> und <literal>.endfor</literal>
|
||||
für jedes Element ausgeführt, wobei
|
||||
<varname>entry</varname> durch das jeweilige Element ersetzt
|
||||
werden würde.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 2013 Warren Block
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf:
|
||||
-->
|
||||
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="docbook-markup">
|
||||
<title>DocBook Markup (noch nicht übersetzt)</title>
|
||||
|
||||
<para>Dieses Kapitel ist noch nicht übersetzt. Lesen Sie daher bitte
|
||||
das <link
|
||||
xlink:href="&url.books.fdp-primer.en;/docbook-markup.html">Original in
|
||||
englischer Sprache</link>. Wenn Sie bei der Übersetzung
|
||||
mithelfen wollen, schicken Sie bitte eine E-Mail
|
||||
an &a.de.translators;.</para>
|
||||
</chapter>
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r49220
|
||||
-->
|
||||
|
||||
<!-- Copyright (c) 2013 Warren Block
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
-->
|
||||
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="editor-config">
|
||||
|
||||
<info><title>Editor-Konfiguration</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<para>Die korrekte Konfiguration Ihres Texteditors macht die Arbeit
|
||||
an der Dokumentation einfacher und schneller und hilft Ihnen dabei,
|
||||
die <acronym>FDP</acronym>-Richtlinien einzuhalten.</para>
|
||||
|
||||
<sect1 xml:id="editor-config-vim">
|
||||
<title><application>Vim</application></title>
|
||||
|
||||
<para>Installieren Sie entweder das Paket
|
||||
<package>editors/vim</package> oder
|
||||
<package>editors/vim-lite</package>, danach folgen Sie den
|
||||
Anweisungen in
|
||||
<xref linkend="editor-config-vim-config"/>.</para>
|
||||
|
||||
<sect2 xml:id="editor-config-vim-use">
|
||||
<title>Verwendung</title>
|
||||
|
||||
<para>Drücken Sie die Taste <keycap>P</keycap>, um Absätze
|
||||
oder Text, den Sie im visuellen Modus ausgewählt haben,
|
||||
zu formatieren. Drücken Sie die Taste
|
||||
<keycap>T</keycap>, um 8 Leerzeichen durch einen Tabulator
|
||||
zu ersetzen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="editor-config-vim-config">
|
||||
<title>Konfiguration</title>
|
||||
|
||||
<para>Fügen Sie die folgenden Zeilen am Ende der Datei
|
||||
<filename>~/.vimrc</filename> ein:</para>
|
||||
|
||||
<programlisting>if has("autocmd")
|
||||
au BufNewFile,BufRead *.sgml,*.ent,*.xsl,*.xml call Set_SGML()
|
||||
au BufNewFile,BufRead *.[1-9] call ShowSpecial()
|
||||
endif " has(autocmd)
|
||||
|
||||
function Set_Highlights()
|
||||
"match ExtraWhitespace /^\s* \s*\|\s\+$/
|
||||
highlight default link OverLength ErrorMsg
|
||||
match OverLength /\%71v.\+/
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function ShowSpecial()
|
||||
setlocal list listchars=tab:>>,trail:*,eol:$
|
||||
hi def link nontext ErrorMsg
|
||||
return 0
|
||||
endfunction " ShowSpecial()
|
||||
|
||||
function Set_SGML()
|
||||
setlocal number
|
||||
syn match sgmlSpecial "&[^;]*;"
|
||||
setlocal syntax=sgml
|
||||
setlocal filetype=xml
|
||||
setlocal shiftwidth=2
|
||||
setlocal textwidth=70
|
||||
setlocal tabstop=8
|
||||
setlocal softtabstop=2
|
||||
setlocal formatprg="fmt -p"
|
||||
setlocal autoindent
|
||||
setlocal smartindent
|
||||
" Rewrap paragraphs
|
||||
noremap P gqj
|
||||
" Replace spaces with tabs
|
||||
noremap T :s/ /\t/<CR>
|
||||
call ShowSpecial()
|
||||
call Set_Highlights()
|
||||
return 0
|
||||
endfunction " Set_SGML()</programlisting>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="editor-config-emacs">
|
||||
<title><application>Emacs</application></title>
|
||||
|
||||
<para>Installieren Sie entweder das Paket
|
||||
<package>editors/emacs</package> oder
|
||||
<package>editors/emacs-devel</package>.</para>
|
||||
|
||||
<sect2 xml:id="editor-config-emacs-validation">
|
||||
<title>Validierung</title>
|
||||
|
||||
<para>Der xnml-Modus von Emacs verwendet ein kompaktes
|
||||
RELAX-NG (<quote>Regular Language Description for XML
|
||||
New Generation</quote>)-Schema, um XML zu validieren. Ein
|
||||
solches, an DocBook 5.0 von FreeBSD angepasstes Schema ist
|
||||
im Dokumentationsrepository bereits vorhanden. Damit der
|
||||
nxml-Modus dieses Schema verwendet, müssen Sie die Datei
|
||||
<filename>~/.emacs.d/schema/schemas.xml</filename> anlegen und
|
||||
folgende Zeilen in die Datei einfügen:</para>
|
||||
|
||||
<programlisting><tag class="starttag">locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0"</tag>
|
||||
<tag class="starttag">documentElement localName="section" typeId="DocBook"</tag>
|
||||
<tag class="starttag">documentElement localName="chapter" typeId="DocBook"</tag>
|
||||
<tag class="starttag">documentElement localName="article" typeId="DocBook"</tag>
|
||||
<tag class="starttag">documentElement localName="book" typeId="DocBook"</tag>
|
||||
<tag class="starttag">typeId id="DocBook" uri="/usr/local/share/xml/docbook/5.0/rng/docbook.rnc"</tag>
|
||||
<tag class="endtag">locatingRules</tag></programlisting>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="editor-config-emacs-igor">
|
||||
<title>Automatisches Gegenlesen mit Flycheck und Igor</title>
|
||||
|
||||
<para>Das Flycheck-Paket ist über <quote>Milkypostman's
|
||||
Emacs Lisp Package Archive</quote> (<acronym>MELPA</acronym>)
|
||||
erhältlich. Ist <acronym>MELPA</acronym> noch nicht in
|
||||
packages-archives von Emacs eingetragen, muss dies manuell
|
||||
durch das Ausführen der folgenden Emacs-Anweisung
|
||||
erfolgen:</para>
|
||||
|
||||
<programlisting>(add-to-list 'package-archives '("melpa" . "http://stable.melpa.org/packages/") t)</programlisting>
|
||||
|
||||
<para>Um die Änderung permanent zu machen, müssen Sie diese Zeile
|
||||
in die Initialisierungsdatei von Emacs aufnehmen, konkret in eine
|
||||
der folgenden Dateien: <filename>~/.emacs</filename>,
|
||||
<filename>~/.emacs.el</filename> oder
|
||||
<filename>~.emacs.d/init.el</filename>.</para>
|
||||
|
||||
<para>Um Flycheck zu installieren, führen Sie folgende Anweisung
|
||||
aus:</para>
|
||||
|
||||
<programlisting>(package-install 'flycheck)</programlisting>
|
||||
|
||||
<para>Legen Sie einen Flycheck-Prüfer für
|
||||
<package>textproc/igor</package> an, indem Sie die folgende
|
||||
Anweisung ausführen:</para>
|
||||
|
||||
<programlisting>(flycheck-define-checker igor
|
||||
"FreeBSD Documentation Project sanity checker.
|
||||
|
||||
See URLs http://www.freebsd.org/docproj/ and
|
||||
http://www.freshports.org/textproc/igor/."
|
||||
:command ("igor" "-X" source-inplace)
|
||||
:error-parser flycheck-parse-checkstyle
|
||||
:modes (nxml-mode)
|
||||
:standard-input t)
|
||||
|
||||
(add-to-list 'flycheck-checkers 'igor 'append)</programlisting>
|
||||
|
||||
<para>Wie bei MELPA müssen Sie auch diese Anweisung in die
|
||||
Initialisierungsdatei von Emacs aufnehmen, um sie permanent
|
||||
zu aktivieren.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="editor-config-emacs-specifc">
|
||||
<title>FreeBSD-Dokumentationsspezische Einstellungen</title>
|
||||
|
||||
<para>Um FreeBSD-spezifische Einstellungen zu aktivieren, legen
|
||||
Sie die Datei <filename>.dir-locals.el</filename> im
|
||||
Wurzelverzeichnis des Dokumentationsrepositories an und fügen
|
||||
die folgenden Zeilen in diese Datei ein:</para>
|
||||
|
||||
<programlisting>;;; Directory Local Variables
|
||||
;;; For more information see (info "(emacs) Directory Variables")
|
||||
|
||||
((nxml-mode
|
||||
(eval . (turn-on-auto-fill))
|
||||
(fill-column . 70)
|
||||
(eval . (require 'flycheck))
|
||||
(eval . (flycheck-mode 1))
|
||||
(flycheck-checker . igor)
|
||||
(eval . (add-to-list 'rng-schema-locating-files "~/.emacs.d/schema/schemas.xml"))))</programlisting>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="editor-config-nano">
|
||||
<title><application>nano</application></title>
|
||||
|
||||
<para>Installieren Sie das Paket <package>editors/nano</package>
|
||||
oder <package>editors/nano-devel</package>.</para>
|
||||
|
||||
<sect2 xml:id="editor-config-nano-config">
|
||||
<title>Konfiguration</title>
|
||||
|
||||
<para>Kopieren Sie die Syntaxhighlighting-Datei für
|
||||
<acronym>XML</acronym> in ihr Homeverzeichnis:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cp /usr/local/share/nano/xml.nanorc ~/.nanorc</userinput></screen>
|
||||
|
||||
<para>Fügen Sie die folgenden Zeilen in die Datei
|
||||
<filename>~/.nanorc</filename> ein:</para>
|
||||
|
||||
<programlisting>syntax "xml" "\.([jrs]html?|xml|xslt?)$"
|
||||
# trailing whitespace
|
||||
color ,blue "[[:space:]]+$"
|
||||
# multiples of eight spaces at the start a line
|
||||
# (after zero or more tabs) should be a tab
|
||||
color ,blue "^([TAB]*[ ]{8})+"
|
||||
# tabs after spaces
|
||||
color ,yellow "( )+TAB"
|
||||
# highlight indents that have an odd number of spaces
|
||||
color ,red "^(([ ]{2})+|(TAB+))*[ ]{1}[^ ]{1}"
|
||||
# lines longer than 70 characters
|
||||
color ,yellow "^(.{71})|(TAB.{63})|(TAB{2}.{55})|(TAB{3}.{47}).+$"</programlisting>
|
||||
|
||||
<para>Verarbeiten Sie diese Datei, um eingebettete Tabulatoren
|
||||
zu erzeugen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>perl -i'' -pe 's/TAB/\t/g' ~/.nanorc</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="editor-config-nano-use">
|
||||
<title>Verwendung</title>
|
||||
|
||||
<para>Starten Sie Nano mit zusätzlichen hilfreichen
|
||||
Parametern:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>nano -AKipwz -r 70 -T8 <replaceable>chapter.xml</replaceable></userinput></screen>
|
||||
|
||||
<para>Verwenden Sie &man.csh.1;, können Sie in
|
||||
<filename>~/.cshrc</filename> einen Alias für diese Parameter
|
||||
anlegen:</para>
|
||||
|
||||
<programlisting>alias nano "nano -AKipwz -r 70 -T8"</programlisting>
|
||||
|
||||
<para>Nachdem der Alias definiert wurde, werden diese Parameter
|
||||
künftig automatisch angewendet:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>nano <replaceable>chapter.xml</replaceable></userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,373 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 2000 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r39632
|
||||
-->
|
||||
<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="examples">
|
||||
<title>Beispiele</title>
|
||||
|
||||
<para>In diesem Anhang sind XML-Beispieldokumente und Befehle
|
||||
enthalten, die zeigen, wie man aus DocBook-Dokumenten verschiedene
|
||||
Ausgabeformate erzeugen kann. Sofern alle Werkzeuge für das
|
||||
Dokumentationsprojekt ordnungsgemäß installiert wurden,
|
||||
können die angebotenen Beispiele direkt übernommen
|
||||
werden.</para>
|
||||
|
||||
<para>Die Beispiele dieses Abschnitts sind bewusst einfach aufgebaut.
|
||||
Daher fehlen in den Beispielen einige Elemente, insbesondere
|
||||
Elemente für die Titelei. Weitere DocBook-Beispiele
|
||||
können in den DocBook-Quellen dieses und anderer Dokumente
|
||||
des FDPs gefunden werden. Die Quellen des FDPs sind im
|
||||
<application>svn</application> doc-Repository und online unter <uri xlink:href="http://svnweb.FreeBSD.org/doc/">http://svnweb.FreeBSD.org/doc/</uri> verfügbar.</para>
|
||||
|
||||
<para>Um Irritationen zu vermeiden, bauen die XML-Beispiele auf der
|
||||
4.1er Standard-DocBook DTD anstatt auf der erweiterten
|
||||
FreeBSD-Variante auf. Ebenso werden die Standardstylesheets von
|
||||
Norman Welsh, anstatt der angepassten Stylesheets des
|
||||
FreeBSD-Dokumentationsprojektes benutzt. Dadurch eignen sich die
|
||||
Beispiele auch als generische DocBook-Vorlagen.</para>
|
||||
|
||||
<sect1 xml:id="examples-docbook-book">
|
||||
<title>DocBook-Buch (<tag>book</tag>)</title>
|
||||
|
||||
<example>
|
||||
<title>Ein DocBook-Buch (<tag>book</tag>)</title>
|
||||
|
||||
<programlisting><![CDATA[<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
|
||||
|
||||
<book lang='de'>
|
||||
<bookinfo>
|
||||
<title>Ein Buchbeispiel</title>
|
||||
|
||||
<author>
|
||||
<firstname>Vorname</firstname>
|
||||
<surname>Nachname</surname>
|
||||
<affiliation>
|
||||
<address><email>vorname.nachname@domain.de</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
|
||||
<copyright>
|
||||
<year>2000</year>
|
||||
<holder>Urheberhinweis</holder>
|
||||
</copyright>
|
||||
|
||||
<abstract>
|
||||
<para>Falls das Buch eine Zusammenfassung hat, sollte sie
|
||||
hier stehen.</para>
|
||||
</abstract>
|
||||
</bookinfo>
|
||||
|
||||
<preface>
|
||||
<title>Einleitung</title>
|
||||
|
||||
<para>Falls das Buch eine Einleitung hat, sollte diese hier
|
||||
stehen.</para>
|
||||
</preface>
|
||||
|
||||
<chapter>
|
||||
<title>Das erste Kapitel</title>
|
||||
|
||||
<para>Das ist das erste Kapitel des Buches.</para>
|
||||
|
||||
<sect1>
|
||||
<title>Der erste Abschnitt</title>
|
||||
|
||||
<para>Das ist der erste Abschnitte des Buches.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
</book>]]></programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="examples-docbook-article">
|
||||
<title>DocBook-Artikel (<tag>article</tag>)</title>
|
||||
|
||||
<example>
|
||||
<title>Ein DocBook-Artikel (<tag>article</tag>)</title>
|
||||
|
||||
<programlisting><![CDATA[<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
|
||||
|
||||
<article lang='de'>
|
||||
<articleinfo>
|
||||
<title>Ein Beispielartikel</title>
|
||||
|
||||
<author>
|
||||
<firstname>Vorname</firstname>
|
||||
<surname>Nachname</surname>
|
||||
<affiliation>
|
||||
<address><email>vorname.nachname@domain.de</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
|
||||
<copyright>
|
||||
<year>2000</year>
|
||||
<holder>Urheberhinweis</holder>
|
||||
</copyright>
|
||||
|
||||
<abstract>
|
||||
<para>Falls der Artikel eine Zusammenfassung hat, sollte sie
|
||||
hier stehen.</programlisting>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Der erste Abschnitt</title>
|
||||
|
||||
<para>Das ist der erste Abschnitt des Artikels.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Der erste Unterabschnitt</title>
|
||||
|
||||
<para>Das ist der erste Unterabschnitt des Artikels.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>]]></programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="examples-formatted">
|
||||
<title>Ausgabeformate erzeugen</title>
|
||||
|
||||
<para>Für diesen Abschnitt wird vorausgesetzt, dass die
|
||||
im Port <package>textproc/docproj</package>
|
||||
enthaltene Software manuell oder über das Portssystem
|
||||
installiert wurde. Weiter wird vorausgesetzt, dass alle
|
||||
Programme unterhalb des Verzeichnisses
|
||||
<filename>/usr/local</filename> installiert
|
||||
worden sind und die Verzeichnisse, die die ausführbaren
|
||||
Programme enthalten, in der Variable <envar>PATH</envar>
|
||||
enthalten sind.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Benutzung von Jade</title>
|
||||
|
||||
<example>
|
||||
<title>Ein DocBook-Dokument in eine einzelne HTML-Datei
|
||||
umwandeln</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>jade -V nochunks \ <co xml:id="examples-co-jade-1-nochunks"/>
|
||||
-c /usr/local/share/xml/docbook/dsssl/modular/catalog \ <co xml:id="examples-co-jade-1-catalog"/>
|
||||
-c /usr/local/share/xml/docbook/catalog \
|
||||
-c /usr/local/share/xml/jade/catalog \
|
||||
-d /usr/local/share/xml/docbook/dsssl/modular/html/docbook.dsl \<co xml:id="examples-co-jade-1-dsssl"/>
|
||||
-t sgml <co xml:id="examples-co-jade-1-transform"/> datei.xml > datei.html <co xml:id="examples-co-jade-1-filename"/></userinput></screen>
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="examples-co-jade-1-nochunks">
|
||||
<para>Übergibt den Parameter
|
||||
<literal>nochunks</literal> an die Stylesheets. Dadurch
|
||||
wird die gesamte Ausgabe in die Standardausgabe
|
||||
geschrieben (bei der Benutzung
|
||||
von Norm Walshs Stylesheets).</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-1-catalog">
|
||||
<para>Legt die von <application>Jade</application> zur
|
||||
Verarbeitung benötigten
|
||||
drei Kataloge fest. Der erste Katalog enthält
|
||||
Informationen zu den DSSSL-Stylesheets, der zweite zur
|
||||
DocBook DTD und der dritte
|
||||
<application>Jade</application>-spezifische Informationen.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-1-dsssl">
|
||||
<para>Übergibt den vollen Pfad zum
|
||||
DSSSL-Stylesheet, das von <application>Jade</application> zur
|
||||
Verarbeitung des Dokuments benutzt wird.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-1-transform">
|
||||
<para>Weist <application>Jade</application> an, eine
|
||||
<emphasis>Transformation</emphasis> von einer DTD zu
|
||||
einer anderen DTD vorzunehmen. In diesem Falle, von der
|
||||
DocBook DTD zur HTML DTD.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-1-filename">
|
||||
<para>Legt fest, welche Datei <application>Jade</application>
|
||||
verarbeiten soll und leitet die Ausgabe in die Datei
|
||||
<filename>datei.html</filename> um.</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Ein DocBook-Dokument in mehrere kleine HTML-Dateien umwandeln</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>jade \
|
||||
-c /usr/local/share/xml/docbook/dsssl/modular/catalog \ <co xml:id="examples-co-jade-2-catalog"/>
|
||||
-c /usr/local/share/xml/docbook/catalog \
|
||||
-c /usr/local/share/xml/jade/catalog \
|
||||
-d /usr/local/share/xml/docbook/dsssl/modular/html/docbook.dsl \<co xml:id="examples-co-jade-2-dsssl"/>
|
||||
-t sgml <co xml:id="examples-co-jade-2-transform"/> datei.xml <co xml:id="examples-co-jade-2-filename"/></userinput></screen>
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="examples-co-jade-2-catalog">
|
||||
<para>Legt die von <application>Jade</application>
|
||||
zur Verarbeitung benötigten
|
||||
drei Kataloge fest. Der erste Katalog enthält
|
||||
Informationen zu den DSSSL-Stylesheets, der zweite zur
|
||||
DocBook DTD und der dritte Jade-spezifische
|
||||
Informationen.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-2-dsssl">
|
||||
<para>Übergibt den vollen Pfad zum
|
||||
DSSSL-Stylesheet, das von
|
||||
<application>Jade</application> zur
|
||||
Verarbeitung des Dokuments benutzt wird.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-2-transform">
|
||||
<para>Weist <application>Jade</application> an, eine
|
||||
<emphasis>Transformation</emphasis> von einer DTD zu
|
||||
einer anderen DTD vorzunehmen. In diesem Falle, von der
|
||||
DocBook DTD zur HTML DTD.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-2-filename">
|
||||
<para>Legt die zu verarbeitende Datei fest. Die
|
||||
Stylesheets ermitteln eigenständig die Namen aller
|
||||
HTML-Ausgabedateien.</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
|
||||
<para>Abhängig von der Struktur des zu verarbeitenden
|
||||
Dokumentes und den Stylesheetregeln zur Aufteilung des
|
||||
Dokumentes, kann dieser Befehl auch nur eine einzelne
|
||||
HTML-Datei erzeugen.</para>
|
||||
</example>
|
||||
|
||||
<example xml:id="examples-docbook-postscript">
|
||||
<title>Ein DocBook-Dokument nach Postscript umwandeln</title>
|
||||
|
||||
<para>Um eine Postscript-Ausgabe zu erzeugen, muss zuerst
|
||||
die XML-Quelle in eine &tex;-Datei umgewandelt werden.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>jade -V tex-backend \ <co xml:id="examples-co-jade-3-tex-backend"/>
|
||||
-c /usr/local/share/xml/docbook/dsssl/modular/catalog \ <co xml:id="examples-co-jade-3-catalog"/>
|
||||
-c /usr/local/share/xml/docbook/catalog \
|
||||
-c /usr/local/share/xml/jade/catalog \
|
||||
-d /usr/local/share/xml/docbook/dsssl/modular/print/docbook.dsl \<co xml:id="examples-co-jade-3-dsssl"/>
|
||||
-t tex <co xml:id="examples-co-jade-3-tex"/> datei.xml</userinput></screen>
|
||||
|
||||
<calloutlist>
|
||||
<callout arearefs="examples-co-jade-3-tex-backend">
|
||||
<para>Weist die Stylesheets an, verschiedene
|
||||
&tex;-spezifische Optionen zu benutzen.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-3-catalog">
|
||||
<para>Legt die von <application>Jade</application>
|
||||
zur Verarbeitung benötigten
|
||||
drei Kataloge fest. Der erste Katalog enthält
|
||||
Informationen zu den DSSSL-Stylesheets, der zweite zur
|
||||
DocBook DTD und der dritte Jade-spezifische
|
||||
Informationen.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-3-dsssl">
|
||||
<para>Übergibt den vollen Pfad zum
|
||||
DSSSL-Stylesheet, das von
|
||||
<application>Jade</application> zur
|
||||
Verarbeitung des Dokuments benutzt wird.</para>
|
||||
</callout>
|
||||
|
||||
<callout arearefs="examples-co-jade-3-tex">
|
||||
<para>Weist <application>Jade</application> an,
|
||||
die Ausgabe in eine &tex;-Datei umzuwandeln.</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
|
||||
<para>Die so erzeugte <filename>.tex</filename>-Datei
|
||||
muss anschließend mittels <command>tex</command>,
|
||||
unter Angabe des Makropakets
|
||||
<literal>&jadetex</literal> weiterverarbeitet
|
||||
werden.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>tex "&jadetex" datei.tex</userinput></screen>
|
||||
|
||||
<para><command>tex</command> muss <emphasis>mindestens</emphasis>
|
||||
dreimal ausgeführt werden. Der erste Lauf ermittelt die
|
||||
die Querverweise innerhalb des Dokumentes, die
|
||||
für Stichwortverzeichnisse und ähnliches
|
||||
benötigt werden.</para>
|
||||
|
||||
<para>Warnungen, wie <errorname>LaTeX Warning: Reference `136'
|
||||
on page 5 undefined on input line 728.</errorname>, die zu
|
||||
diesem Zeitpunkt ausgegeben werden, können ohne
|
||||
weiteres ignoriert werden.</para>
|
||||
|
||||
<para>Der zweite Lauf kann jetzt, da mehr Informationen, wie
|
||||
zum Beispiel die Seitenlängen, zur Verfügung
|
||||
stehen, Einträge im Stichwortverzeichnis und
|
||||
Querverweise genauer bestimmen.</para>
|
||||
|
||||
<para>Der dritte Lauf ist für abschließende
|
||||
Aufräumarbeiten notwendig. Die so von
|
||||
<command>tex</command> erzeugte Ausgabe befindet sich
|
||||
anschließend in der Datei
|
||||
<filename>datei.div</filename>.</para>
|
||||
|
||||
<para>Zum Schluss muss noch <command>dvips</command>
|
||||
aufgerufen werden, um die <filename>.div</filename>-Datei in
|
||||
ein Postscript-Dokument umzuwandeln.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>dvips -o datei.ps datei.dvi</userinput></screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Eine PDF-Datei aus einem DocBook-Dokument
|
||||
erzeugen</title>
|
||||
|
||||
<para>Die ersten Schritte, um ein DocBook-Dokument in ein PDF
|
||||
umzuwandeln, stimmen mit denen überein, die notwendig sind,
|
||||
um eine Postscript-Ausgabe zu erzeugen (<xref linkend="examples-docbook-postscript"/>).</para>
|
||||
|
||||
<para>Nachdem die <filename>.tex</filename>-Datei durch
|
||||
<application>Jade</application> erzeugt wurde, muss
|
||||
<application>pdfTeX</application> stattdessen mit dem
|
||||
Makropaket <literal>&pdfjadetex</literal> aufgerufen
|
||||
werden.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>pdftex "&pdfjadetex" datei.tex</userinput></screen>
|
||||
|
||||
<para>Dieser Befehl muss ebenfalls dreimal ausgeführt werden.
|
||||
Am Ende liegt mit
|
||||
<filename>datei.pdf</filename>
|
||||
das fertige PDF-Dokument vor. Weitere Schritte sind jetzt
|
||||
nicht mehr notwendig.</para>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</appendix>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 2013 Warren Block
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf:
|
||||
-->
|
||||
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="manpages">
|
||||
<title>Manualpages (noch nicht übersetzt)</title>
|
||||
|
||||
<para>Dieses Kapitel ist noch nicht übersetzt. Lesen Sie daher bitte
|
||||
das <link
|
||||
xlink:href="&url.books.fdp-primer.en;/manpages.html">Original in
|
||||
englischer Sprache</link>. Wenn Sie bei der Übersetzung
|
||||
mithelfen wollen, schicken Sie bitte eine E-Mail
|
||||
an &a.de.translators;.</para>
|
||||
</chapter>
|
||||
|
|
@ -1,267 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r46642
|
||||
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="overview">
|
||||
<title>Überblick</title>
|
||||
|
||||
<para>Herzlich Willkommen beim FreeBSD-Dokumentationsprojekt
|
||||
(auch nur <acronym>FDP</acronym> genannt). Qualitativ hochwertige
|
||||
Dokumentation ist sehr wichtig für den Erfolg von &os;. Jeder
|
||||
Beitrag, der zu diesem Projekt geleistet wird, ist ungemein wertvoll.</para>
|
||||
|
||||
<para>Dieses Dokument macht den Leser mit dem
|
||||
<acronym>FDP</acronym> vertraut und erklärt, wie man
|
||||
selbst Dokumente erstellt und einreicht und wie die verfügbaren
|
||||
Werkzeuge effektiv beim Schreiben eingesetzt werden
|
||||
können.</para>
|
||||
|
||||
<para>Jeder kann zum <acronym>FDP</acronym> beitragen. Die einzige
|
||||
Voraussetzung ist die Bereitschaft, helfen zu wollen.</para>
|
||||
|
||||
<para>Nach dem Lesen dieses Dokuments werden Sie in der Lage sein,</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>die vom <acronym>FDP</acronym> betreuten Dokumente zu
|
||||
erkennen,</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>die benötigten Dokumentations-Werkzeuge und Dateien
|
||||
zu installieren,</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Änderungen an der Dokumentation vorzunehmen,</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Änderungen zur Begutachtung durch das FDP
|
||||
einreichen können.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect1 xml:id="overview-doc">
|
||||
<title>Die FreeBSD-Dokumentationsreihe</title>
|
||||
|
||||
<para>Das FDP umfasst vier verschiedene Kategorien:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>Handbook:</emphasis> Das Handbuch ist die
|
||||
umfassende Quelle und Referenz für &os;-Benutzer.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>FAQ:</emphasis> Eine Sammlung von kurzen
|
||||
Fragen und Antworten zu Themen, die auf den
|
||||
verschiedenen Mailinglisten und in auf &os; spezialisierten
|
||||
Foren regelmäßig diskutiert werden. Lange und komplizierte
|
||||
Antworten werden Sie hier nicht finden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Manualpages:</emphasis> Die englischen
|
||||
Manualpages werden normalerweise nicht vom FDP
|
||||
geschrieben, da sie ein Teil des Basissystems sind. Jedoch
|
||||
können bzw. wurden bereits Teile von existierenden
|
||||
Manualpages umformuliert, um sie verständlicher zu
|
||||
machen oder um Fehler zu beheben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Die Webseite:</emphasis> Die Hauptpräsenz
|
||||
von &os; im Internet, zu erreichen unter <link
|
||||
xlink:href="http://www.freebsd.org/index.html">http://www.FreeBSD.org</link>
|
||||
oder einem der zahlreichen Spiegelserver. Für viele Menschen
|
||||
ist sie der erste Kontakt mit &os;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Übersetzer-Teams sind für die Übersetzung des Handbuchs und
|
||||
der Webseite in verschiedene Sprachen verantwortlich. Manualpages
|
||||
werden derzeit nicht übersetzt.</para>
|
||||
|
||||
<para>Die Quellen für die FreeBSD-Website, das &os; Handbuch
|
||||
sowie die &os; <acronym>FAQ</acronym> werden im
|
||||
Dokumentations-Repository von &os; verwaltet, das Sie über
|
||||
<literal>https://svn.FreeBSD.org/doc/</literal> erreichen
|
||||
können.</para>
|
||||
|
||||
<para>Manualpages werden von &os; im einem eigenen
|
||||
Quellcode-Repository verwaltet, das Sie über
|
||||
<literal>https://svn.FreeBSD.org/base/</literal> erreichen
|
||||
können.</para>
|
||||
|
||||
<para>Committ-Nachrichten des <acronym>FDP</acronym>
|
||||
sind über <application>svn</application> abrufbar und werden
|
||||
zusätzlich unter
|
||||
<uri xlink:href="&a.svn-doc-all.url;">&a.svn-doc-all.url;</uri>
|
||||
archiviert.</para>
|
||||
|
||||
<para>Beide Repositories sind auch über ein Web-Interface erreichbar:
|
||||
<link xlink:href="https://svnweb.FreeBSD.org/doc/"></link> sowie
|
||||
<link xlink:href="https://svnweb.FreeBSD.org/base/"></link>.</para>
|
||||
|
||||
<para>Viele Menschen haben &os;-spezifische Anleitungen
|
||||
geschrieben und Webseiten mit Bezug zu FreeBSD erstellt. Einige
|
||||
davon werden im Subversion-Archiv verwaltet, sofern der Autor dem
|
||||
zugestimmt hat. In anderen Fällen hat sich der Autor
|
||||
entschlossen, seine Dokumentation außerhalb des zentralen
|
||||
FreeBSD-Archivs zu verwalten. Das <acronym>FDP</acronym> bemüht sich,
|
||||
so viele Verweise wie möglich auf solche Quellen
|
||||
bereitzustellen.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="overview-quick-start">
|
||||
<title>Schnellstart</title>
|
||||
|
||||
<para>Dieser Abschnitt beschreibt, was Sie tun müssen, bevor
|
||||
Sie Änderungen an der &os;-Dokumentation vornehmen können.
|
||||
Abonnieren Sie zuerst die Mailingliste &a.doc;. Einige Mitglieder
|
||||
dieser Mailingliste sind auch auf dem <acronym>IRC</acronym>-Kanal
|
||||
<literal>#bsddocs</literal> auf <link
|
||||
xlink:href="http://www.efnet.org/">EFnet</link> erreichbar. Nehmen
|
||||
Sie mit Ihnen Kontakt auf, wenn Sie Fragen oder Probleme bei
|
||||
der Arbeit an der &os;-Dokumentation haben.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Installieren Sie den Metaport
|
||||
<package>textproc/docproj</package> als Port oder Paket, um
|
||||
automatisch alle für die Arbeit an der Dokumentation benötigten
|
||||
Werkzeuge zu installieren.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Installieren Sie eine lokale Arbeitskopie der Dokumentation
|
||||
von einem Spiegelserver des &os;-Repository nach
|
||||
<filename>~/doc</filename> (lesen Sie dazu
|
||||
auch <xref linkend="working-copy"/>).</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn checkout https://<replaceable>svn0.us-west.FreeBSD.org</replaceable>/doc/head <replaceable>~/doc</replaceable></userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Ihr Texteditor sollte für die Arbeit an der
|
||||
&os;-Dokumentation wie folgt konfiguriert sein:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Zeilenumbruch nach 70 Zeichen.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Tabstop auf 2 Zeichen.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>8 Leerzeichen sollen durch einen Tabstop ersetzt
|
||||
werden.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Konfigurationen für einige häufig verwendete Editoren
|
||||
finden Sie im <xref linkend="writing-style"/>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Aktualisieren Sie Ihre lokale Arbeitskopie:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn up <replaceable>~/doc</replaceable></userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Bearbeiten Sie die Datei. Bevor Sie umfangreiche Änderungen
|
||||
an einer Datei vornehmen, kündigen Sie die geplanten Änderungen
|
||||
bitte auf der Mailingliste an.</para>
|
||||
|
||||
<para>Eine Auflistung häufig verwendeter Tags und
|
||||
Entities finden Sie in <xref linkend="xhtml-markup"/> und
|
||||
in <xref linkend="docbook-markup"/>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Nachdem Sie Ihre Änderungen vorgenommen haben, prüfen
|
||||
Sie diese auf potentielle Probleme:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>igor -R filename.xml | less -RS</userinput></screen>
|
||||
|
||||
<para>Werden Fehler gemeldet, editieren Sie die Datei erneut.
|
||||
Speichern Sie das Ergebnis und fühen Sie den Test erneut aus.
|
||||
Wiederholen Sie dies solange, bis keine Fehler mehr gemeldet
|
||||
werden.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Bauen Sie die Dokumentation <emphasis>immer</emphasis>,
|
||||
bevor Sie Änderungen einreichen. Dazu führen Sie
|
||||
<userinput>make</userinput> im Hauptverzeichnis des
|
||||
Dokuments aus, dass Sie gerade bearbeiten. Um beispielsweise
|
||||
die deutsche Version des &os;-Handbuchs als einzelne
|
||||
<acronym>HTML</acronym>-Dateien zu bauen, führen Sie
|
||||
<userinput>make</userinput> im Verzeichnis
|
||||
<filename>de_DE.ISO8859-1/books/handbook/</filename> aus.
|
||||
Durch diesen Schritt wird sichergestellt, dass Ihre
|
||||
Änderungen den Bau der Dokumentation nicht wegen eines
|
||||
Fehlers abbrechen.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Wenn Ihre Änderungen abgeschlossen und erfolgreich
|
||||
getestet wurden, erzeugen Sie eine
|
||||
<quote>Differenzdatei</quote> mit Ihren Änderungen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc</userinput>
|
||||
&prompt.user; <userinput>svn diff > <replaceable>bsdinstall</replaceable>.diff.txt</userinput></screen>
|
||||
|
||||
<para>Geben Sie der Differenzdatei einen aussagekräftigen Namen.
|
||||
Im angegebenen Bespiel wurden Änderungen im Abschnitt
|
||||
<filename>bsdinstall</filename> des Handbuchs vorgenommen.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Reichen Sie Ihre Änderungen über das webbasierte <link
|
||||
xlink:href="&url.base;/support.html#gnats">Problembericht-Formular</link>
|
||||
ein. Geben Sie eine kurze Beschreibung in der Form
|
||||
<emphasis>[patch] <replaceable>kurze Beschreibung des Problems</replaceable></emphasis>
|
||||
ein. Als Kategorie wählen Sie <literal>docs</literal>
|
||||
und als Klasse <literal>doc-bug</literal>. Danach geben
|
||||
Sie eine Beschreibung Ihrer Änderungen ein sowie eventuelle
|
||||
weitere wichtige Punkte. Verwenden Sie danach den Button
|
||||
<guibutton>[ Browse... ]</guibutton>, um Ihre
|
||||
Differenzdatei hochzuladen.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,960 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r52724
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="po-translations">
|
||||
|
||||
<info><title><acronym>PO</acronym>-Übersetzungen</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="po-translations-introduction">
|
||||
<title>Einführung</title>
|
||||
|
||||
<para>Das <link
|
||||
xlink:href="http://www.gnu.org/software/gettext/"><acronym>GNU</acronym>
|
||||
<application>gettext</application></link>-System bietet
|
||||
Übersetzern eine einfache Möglichkeit, Übersetzungen von
|
||||
Dokumenten zu erstellen und zu verwalten. Übersetzbare Strings
|
||||
werden dabei aus dem Originaldokument extrahiert und in eine
|
||||
<acronym>PO</acronym>-Datei (Portable Object-Datei) gespeichert.
|
||||
Übersetzte Versionen der Strings werden über einen zusätzlichen
|
||||
Editor eingefügt. Diese Strings können danach direkt verwendet
|
||||
werden oder zu einer kompletten Übersetzung des Originaldokuments
|
||||
zusammengefügt werden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="po-translations-quick-start">
|
||||
<title>Schnellstart</title>
|
||||
|
||||
<para>Die Anleitung geht davon aus, das Sie die Anweisungen in
|
||||
<xref linkend="overview-quick-start"/> bereits ausgeführt haben.
|
||||
Außerdem muss die Option <literal>TRANSLATOR</literal> aktiviert
|
||||
werden. Dies erfolgt automatisch während der Installation des Ports
|
||||
<package role="port">textproc/docproj</package>.</para>
|
||||
|
||||
<para>Das folgende Beispiel zeigt, wie Sie den kurzen Artikel
|
||||
<link xlink:href="&url.articles.leap-seconds.en;">Leap
|
||||
Seconds</link> auf Spanisch übersetzen.</para>
|
||||
|
||||
<procedure xml:id="po-translations-quick-start-install-po-editor">
|
||||
<title>Installieren Sie einen <acronym>PO</acronym>-Editor</title>
|
||||
|
||||
<step>
|
||||
<para>Sie benötigen einen <acronym>PO</acronym>-Editor, um die
|
||||
Übersetzungsdateien zu bearbeiten. Dieses Beispiel verwendet
|
||||
dafür <package role="ports">editors/poedit</package>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/ports/editors/poedit</userinput>
|
||||
&prompt.root; <userinput>make install clean</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<procedure xml:id="po-translations-quick-start-initial-setup">
|
||||
<title>Grundkonfiguration</title>
|
||||
|
||||
<para>Wenn Sie mit der Arbeit an einer bisher nicht existierenden
|
||||
Sprache oder einem nicht existierenden Dokument beginnen wollen,
|
||||
müssen Sie zuerst die Verzeichnisstruktur und ein
|
||||
<filename>Makefile</filename> anlegen oder von der englischen
|
||||
Originalversion kopieren:</para>
|
||||
|
||||
<step>
|
||||
<para>Legen Sie ein Verzeichnis für die neue Übersetzung an.
|
||||
Der Quellcode des englischen Artikel befindet sich unter
|
||||
<filename>~/doc/en_US.ISO8859-1/articles/leap-seconds/</filename>.
|
||||
Die spanische Übersetzung muss daher im Verzeichnis
|
||||
<filename>~/doc/es_ES.ISO8859-1/articles/leap-seconds/</filename>
|
||||
erstellt werden. Der Pfad ist also (abgesehen vom
|
||||
sprachspezifischen Verzeichnis) identisch.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn mkdir --parents ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kopieren Sie das <filename>Makefile</filename> des
|
||||
Originaldokuments in das Übersetzungsverzeichnis:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/leap-seconds/Makefile \
|
||||
~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<procedure xml:id="po-translations-quick-start-translation">
|
||||
<title>Übersetzung</title>
|
||||
|
||||
<para>Das Übersetzen eines Dokuments erfolgt in zwei Schritten,
|
||||
zuerst werden die zu übersetzenden Strings aus dem
|
||||
Originaldokument extrahiert, um sie anschließend zu
|
||||
übersetzen. Diese beiden Schritte werden wiederholt, bis
|
||||
ein brauchbares übersetztes Dokument entstanden ist.</para>
|
||||
|
||||
<step>
|
||||
<para>Extrahieren Sie die zu übersetzenden Strings aus der
|
||||
originalen englischen Version und speichern Sie diese
|
||||
in einer <acronym>PO</acronym>-Datei:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput>
|
||||
&prompt.user; <userinput>make po</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Verwenden Sie einen <acronym>PO</acronym>-Editor, um
|
||||
Ihre Übersetzungen in der <acronym>PO</acronym>-Datei zu
|
||||
speichern. Dafür gibt es diverse Editoren, dieses Beispiel
|
||||
verwendet <filename>poedit</filename> (das Sie über den
|
||||
Port <package role="port">editors/poedit</package>
|
||||
installieren können).</para>
|
||||
|
||||
<para>Der Name der <acronym>PO</acronym>-Datei setzt sich aus
|
||||
einem zwei Zeichen langen Sprachcode, gefolgt von einem
|
||||
Unterstrich sowie einem ebenfalls zwei Zeichen langen
|
||||
Regionencode zusammen. Für eine Übersetzung ins Spanische
|
||||
heißt die Datei daher <filename>es_ES.po</filename>.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>poedit es_ES.po</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<procedure xml:id="po-translations-quick-generating-a-translated-document">
|
||||
<title>Ein übersetztes Dokument bauen</title>
|
||||
|
||||
<step>
|
||||
<para>Bauen Sie das übersetzte Dokument:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput>
|
||||
&prompt.user; <userinput>make tran</userinput></screen>
|
||||
|
||||
<para>Der Name der erzeugten Datei entspricht dem Namen
|
||||
der englischen Originaldatei, normalerweise also
|
||||
<filename>article.xml</filename> für Artikel oder
|
||||
<filename>book.xml</filename> für Bücher.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Überprüfen Sie die gebaute Datei, indem Sie sie
|
||||
in <acronym>HTML</acronym> bauen und in einem
|
||||
Internetbrowser öffnen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>make FORMATS=html</userinput>
|
||||
&prompt.user; <userinput>firefox article.html</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="po-translations-creating">
|
||||
<title>Bisher nicht exisitierende Dokumente übersetzen</title>
|
||||
|
||||
<para>Der erste Schritt, um ein neues Dokument zu übersetzen, besteht
|
||||
darin, ein Verzeichnis zu suchen oder zu erstellen, in dem die
|
||||
Übersetzung gespeichert werden soll. &os; legt alle übersetzten
|
||||
Dokumente in einem Unterverzeichnis ab, dessen Name sich aus der
|
||||
Sprache und aus der Region in der Form
|
||||
<filename><replaceable>lang</replaceable>_<replaceable>REGION</replaceable></filename>
|
||||
zusammensetzt. <replaceable>lang</replaceable> ist ein Code,
|
||||
der immer aus zwei Zeichen in Kleinbuchstaben besteht. Auf ihn
|
||||
folgt ein Unterstrich und danach der Code für die
|
||||
<replaceable>REGION</replaceable> (der aus zwei Zeichen in
|
||||
Großbuchstaben besteht).</para>
|
||||
|
||||
<table xml:id="po-translations-language-names" frame="none">
|
||||
<title>Existierende Sprachen</title>
|
||||
|
||||
<tgroup cols="5">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Sprache</entry>
|
||||
<entry>Region</entry>
|
||||
<entry>Übersetzungsverzeichnis</entry>
|
||||
<entry><acronym>PO</acronym>Dateiname</entry>
|
||||
<entry>Zeichensatz</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>Englisch</entry>
|
||||
<entry>Vereinigte Staaten von Amerika</entry>
|
||||
<entry><filename>en_US.ISO8859-1</filename></entry>
|
||||
<entry><filename>en_US.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Bengalisch</entry>
|
||||
<entry>Bangladesch</entry>
|
||||
<entry><filename>bn_BD.UTF-8</filename></entry>
|
||||
<entry><filename>bn_BD.po</filename></entry>
|
||||
<entry><acronym>UTF</acronym>-8</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Dänisch</entry>
|
||||
<entry>Dänemark</entry>
|
||||
<entry><filename>da_DK.ISO8859-1</filename></entry>
|
||||
<entry><filename>da_DK.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Deutsch</entry>
|
||||
<entry>Deutschland</entry>
|
||||
<entry><filename>de_DE.ISO8859-1</filename></entry>
|
||||
<entry><filename>de_DE.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Griechisch</entry>
|
||||
<entry>Griechenland</entry>
|
||||
<entry><filename>el_GR.ISO8859-7</filename></entry>
|
||||
<entry><filename>el_GR.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-7</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Spanisch</entry>
|
||||
<entry>Spanien</entry>
|
||||
<entry><filename>es_ES.ISO8859-1</filename></entry>
|
||||
<entry><filename>es_ES.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>French</entry>
|
||||
<entry>France</entry>
|
||||
<entry><filename>fr_FR.ISO8859-1</filename></entry>
|
||||
<entry><filename>fr_FR.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Ungarisch</entry>
|
||||
<entry>Ungarn</entry>
|
||||
<entry><filename>hu_HU.ISO8859-2</filename></entry>
|
||||
<entry><filename>hu_HU.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-2</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Italienisch</entry>
|
||||
<entry>Italien</entry>
|
||||
<entry><filename>it_IT.ISO8859-15</filename></entry>
|
||||
<entry><filename>it_IT.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-15</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Japanisch</entry>
|
||||
<entry>Japan</entry>
|
||||
<entry><filename>ja_JP.eucJP</filename></entry>
|
||||
<entry><filename>ja_JP.po</filename></entry>
|
||||
<entry><acronym>EUC</acronym> JP</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Koreanisch</entry>
|
||||
<entry>Korea</entry>
|
||||
<entry><filename>ko_KR.UTF-8</filename></entry>
|
||||
<entry><filename>ko_KR.po</filename></entry>
|
||||
<entry><acronym>UTF</acronym>-8</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Mongolisch</entry>
|
||||
<entry>Mongolien</entry>
|
||||
<entry><filename>mn_MN.UTF-8</filename></entry>
|
||||
<entry><filename>mn_MN.po</filename></entry>
|
||||
<entry><acronym>UTF</acronym>-8</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Holländisch</entry>
|
||||
<entry>Niederlande</entry>
|
||||
<entry><filename>nl_NL.ISO8859-1</filename></entry>
|
||||
<entry><filename>nl_NL.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Polnisch</entry>
|
||||
<entry>Polen</entry>
|
||||
<entry><filename>pl_PL.ISO8859-2</filename></entry>
|
||||
<entry><filename>pl_PL.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-2</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Portugisisch</entry>
|
||||
<entry>Brasilien</entry>
|
||||
<entry><filename>pt_BR.ISO8859-1</filename></entry>
|
||||
<entry><filename>pt_BR.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Russisch</entry>
|
||||
<entry>Russland</entry>
|
||||
<entry><filename>ru_RU.KOI8-R</filename></entry>
|
||||
<entry><filename>ru_RU.po</filename></entry>
|
||||
<entry><acronym>KOI</acronym>8-R</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Türkisch</entry>
|
||||
<entry>Türkei</entry>
|
||||
<entry><filename>tr_TR.ISO8859-9</filename></entry>
|
||||
<entry><filename>tr_TR.po</filename></entry>
|
||||
<entry><acronym>ISO</acronym> 8859-9</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Chinesisch</entry>
|
||||
<entry>China</entry>
|
||||
<entry><filename>zh_CN.UTF-8</filename></entry>
|
||||
<entry><filename>zh_CN.po</filename></entry>
|
||||
<entry><acronym>UTF</acronym>-8</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Chinesisch</entry>
|
||||
<entry>Taiwan</entry>
|
||||
<entry><filename>zh_TW.UTF-8</filename></entry>
|
||||
<entry><filename>zh_TW.po</filename></entry>
|
||||
<entry><acronym>UTF</acronym>-8</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>Die Übersetzungen befinden sich in Unterverzeichnissen
|
||||
des Hauptverzeichnisses der Dokumentation (in den Beispielen
|
||||
von <xref linkend="overview-quick-start"/> ist dies
|
||||
<filename>~/doc/</filename>). Die deutschen
|
||||
Übersetzungen befinden sich daher beispielsweise unter
|
||||
<filename>~/doc/de_DE.ISO8859-1/</filename>, französische
|
||||
Übersetzungen hingegen unter
|
||||
<filename>~/doc/fr_FR.ISO8859-1/</filename>.</para>
|
||||
|
||||
<para>Jede Sprache enthält Unterverzeichnisse für die
|
||||
verschiedenen Dokumenttypen, also üblicherweise
|
||||
<filename>articles/</filename> und
|
||||
<filename>books/</filename>.</para>
|
||||
|
||||
<para>Kombiniert man diese Verzeichnisnamen, erhält man den
|
||||
kompletten Pfad zu einem Artikel oder zu einem Buch. Die
|
||||
französische Übersetzung des NanoBSD-Artikels ist daher etwa
|
||||
unter <filename>~/doc/fr_FR.ISO8859-1/articles/nanobsd/</filename>
|
||||
gespeichert, die mongolische Übersetzung des Handbuchs hingegen
|
||||
unter
|
||||
<filename>~/doc/mn_MN.UTF-8/books/handbook/</filename>.</para>
|
||||
|
||||
<para>Soll ein Dokument in eine bisher nicht existierende Sprache
|
||||
übersetzt werden, muss zuerst ein sprachspezifisches Verzeichnis
|
||||
erstellt werden. Existiert die Sprache hingegen schon, muss
|
||||
nur ein Unterverzeichnis unterhalb von
|
||||
<filename>articles/</filename> oder <filename>books/</filename>
|
||||
angelegt werden (falls noch nicht vorhanden).</para>
|
||||
|
||||
<para>Der Bau der &os;-Dokumentation wird durch ein
|
||||
<filename>Makefile</filename> gesteuert, das sich im gleichen
|
||||
Verzeichnis wie die Übersetzung befindet. Für einfache Artikel
|
||||
kann dieses <filename>Makefile</filename> oft unverändert aus
|
||||
der englischen Originalversion übernommen werden. Der
|
||||
Übersetzungsprozess für Bücher ist hingegen komplizierter, da
|
||||
dabei verschiedene getrennte <filename>book.xml</filename> und
|
||||
<filename>chapter.xml</filename>-Dateien in ein gemeinsames
|
||||
Dokument integriert werden, das <filename>Makefile</filename>
|
||||
für die Übersetzung eines Buches muss daher in der Regel immer
|
||||
kopiert und angepasst werden.</para>
|
||||
|
||||
<example xml:id="po-translations-creating-example">
|
||||
<title>Die spanische Übersetzung des Porter's Handbook
|
||||
erstellen</title>
|
||||
|
||||
<para>Starten Sie die bisher nicht vorhandene spanische
|
||||
Übersetzung des <link
|
||||
xlink:href="&url.books.porters-handbook.en;">Porter's
|
||||
Handbook</link>. Das originale Dokument ist ein Buch im
|
||||
Verzeichnis
|
||||
<filename>~/doc/en_US.ISO8859-1/books/porters-handbook/</filename>.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Das Verzeichnis für die spanische Übersetzung
|
||||
(<filename>~/doc/es_ES.ISO8859-1/books/</filename>) existiert
|
||||
bereits, daher müssen Sie nur ein Unterverzeichnis für das
|
||||
Porter's Handbook anlegen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/</userinput>
|
||||
&prompt.user; <userinput>svn mkdir porters-handbook</userinput>
|
||||
A porters-handbook</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kopieren Sie das <filename>Makefile</filename> des
|
||||
Originalen Buchs in den neuen Ordner:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput>
|
||||
&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/books/porters-handbook/Makefile .</userinput>
|
||||
A Makefile</screen>
|
||||
|
||||
<para>Passen Sie das <filename>Makefile</filename> an,
|
||||
damit es nur eine einzige <filename>book.xml</filename>
|
||||
als Eingabe erwartet:</para>
|
||||
|
||||
<programlisting>#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Build the FreeBSD Porter's Handbook.
|
||||
#
|
||||
|
||||
MAINTAINER=doc@FreeBSD.org
|
||||
|
||||
DOC?= book
|
||||
|
||||
FORMATS?= html-split
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
# Images from the cross-document image library
|
||||
IMAGES_LIB+= callouts/1.png
|
||||
IMAGES_LIB+= callouts/2.png
|
||||
IMAGES_LIB+= callouts/3.png
|
||||
IMAGES_LIB+= callouts/4.png
|
||||
IMAGES_LIB+= callouts/5.png
|
||||
IMAGES_LIB+= callouts/6.png
|
||||
IMAGES_LIB+= callouts/7.png
|
||||
IMAGES_LIB+= callouts/8.png
|
||||
IMAGES_LIB+= callouts/9.png
|
||||
IMAGES_LIB+= callouts/10.png
|
||||
IMAGES_LIB+= callouts/11.png
|
||||
IMAGES_LIB+= callouts/12.png
|
||||
IMAGES_LIB+= callouts/13.png
|
||||
IMAGES_LIB+= callouts/14.png
|
||||
IMAGES_LIB+= callouts/15.png
|
||||
IMAGES_LIB+= callouts/16.png
|
||||
IMAGES_LIB+= callouts/17.png
|
||||
IMAGES_LIB+= callouts/18.png
|
||||
IMAGES_LIB+= callouts/19.png
|
||||
IMAGES_LIB+= callouts/20.png
|
||||
IMAGES_LIB+= callouts/21.png
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting>
|
||||
|
||||
<para>Damit steht die Dokumentstruktur bereit und Sie können
|
||||
die <acronym>PO</acronym>-Datei mit
|
||||
<command>make po</command> erstellen.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</example>
|
||||
|
||||
<example xml:id="po-translations-creating-example-french">
|
||||
<title>Die französische Übersetzung des
|
||||
<acronym>PGP</acronym> Keys-Artikels erstellen</title>
|
||||
|
||||
<para>Starten Sie die bisher nicht vorhandene Übersetzung des
|
||||
<link xlink:href="&url.articles.pgpkeys.en;"><acronym>PGP</acronym>
|
||||
Keys-Artikels</link>. Das englische Original ist ein Artikel,
|
||||
der sich im Verzeichnis
|
||||
<filename>~/doc/en_US.ISO8859-1/articles/pgpkeys/</filename>
|
||||
befindet.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Das Verzeichnis für französische Artikel
|
||||
(<filename>~/doc/fr_FR.ISO8859-1/articles/</filename>)
|
||||
existiert bereits, Sie müssen daher nur ein neues
|
||||
Unterverzeichnis für den <acronym>PGP</acronym> Keys-Artikel
|
||||
anlegen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/</userinput>
|
||||
&prompt.user; <userinput>svn mkdir pgpkeys</userinput>
|
||||
A pgpkeys</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kopieren Sie das <filename>Makefile</filename> des
|
||||
originalen Artikels:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/pgpkeys</userinput>
|
||||
&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/pgpkeys/Makefile .</userinput>
|
||||
A Makefile</screen>
|
||||
|
||||
<para>Überprüfen Sie das <filename>Makefile</filename>. Da es
|
||||
sich um einen einfachen Artikel handelt, sind vermutlich
|
||||
keine Änderungen am <filename>Makefile</filename> nötig.
|
||||
Der Inhalt der zweiten Zeile (<literal>$&os;...$</literal>)
|
||||
wird durch das Versionskontrollsystem ersetzt werden, wenn
|
||||
diese Datei committet wird.</para>
|
||||
|
||||
<programlisting>#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Article: PGP Keys
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
# To build with just key fingerprints, set FINGERPRINTS_ONLY.
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting>
|
||||
|
||||
<para>Damit steht die Dokumentstruktur bereit und Sie können
|
||||
die <acronym>PO</acronym>-Datei mit
|
||||
<command>make po</command> erstellen.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="po-translations-translating">
|
||||
<title>Übersetzen</title>
|
||||
|
||||
<para>Das <application>gettext</application>-System macht die
|
||||
Übersetzung von Dokumenten einfacher, weil sich der Übersetzer
|
||||
dadurch um weniger Dinge kümmern muss. Die zu übersetzenden
|
||||
Strings werden aus dem Originaldokument in eine
|
||||
<acronym>PO</acronym>-Datei extrahiert. Danach wird ein
|
||||
<acronym>PO</acronym>-Editor verwendet, um die übersetzten
|
||||
Strings einzugeben.</para>
|
||||
|
||||
<para>Das von &os; verwendete
|
||||
<acronym>PO</acronym>-Übersetzungssystem überschreibt
|
||||
<acronym>PO</acronym>-Dateien nicht, daher können die Strings
|
||||
jederzeit extrahiert werden, um die
|
||||
<acronym>PO</acronym>-Datei zu aktualisieren.</para>
|
||||
|
||||
<para>Ein <acronym>PO</acronym>-Editor wird zum Bearbeiten der
|
||||
Datei benötigt. Die Beispiele in diesem Abschnitt verwenden
|
||||
<package role="port">editors/poedit</package>, da es sich dabei
|
||||
um einen einfach zu bedienenden Editor mit nur wenigen
|
||||
Abhängigkeiten handelt. Es gibt aber auch diverse andere
|
||||
<acronym>PO</acronym>-Editoren, die zusätzliche Funktionen
|
||||
haben, die bei der Übersetzung von Dokumenten helfen. Die
|
||||
Ports-Sammlung enthält verschiedene dieser Editoren,
|
||||
beispielsweise <package
|
||||
role="port">devel/gtranslator</package>.</para>
|
||||
|
||||
<para>Löschen Sie die <acronym>PO</acronym>-Datei auf keinen
|
||||
Fall, da Sie alle Änderungen enthält, die Übersetzer
|
||||
vorgenommen haben.</para>
|
||||
|
||||
<example xml:id="po-translations-translating-example">
|
||||
<title>Die spanische Version des Porter's Handbook
|
||||
übersetzen</title>
|
||||
|
||||
<para>Beginnen Sie mit der Übersetzung des spanischen
|
||||
Porter's Handbook.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Wechseln Sie in das Verzeichnis des spanischen
|
||||
Porter's Handbook und aktualisieren Sie die
|
||||
<acronym>PO</acronym>-Datei (wie bereits in
|
||||
<xref linkend="po-translations-language-names"/>
|
||||
erwähnt, heißt diese Datei
|
||||
<filename>es_ES.po</filename>.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput>
|
||||
&prompt.user; <userinput>make po</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Laden Sie die Datei in Ihren
|
||||
<acronym>PO</acronym>-Editor und beginnen Sie mit
|
||||
der Übersetzung:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>poedit es_ES.po</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="po-translations-tips">
|
||||
<title>Tips für Übersetzer</title>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-xmltags">
|
||||
<title><acronym>XML</acronym>-Tags beibehalten</title>
|
||||
|
||||
<para>Achten Sie darauf, dass Sie keine <acronym>XML</acronym>-Tags
|
||||
des englischen Originals verändern.</para>
|
||||
|
||||
<example>
|
||||
<title><acronym>XML</acronym>-Tags beibehalten</title>
|
||||
|
||||
<para>Englisches Original:</para>
|
||||
|
||||
<programlisting>If <tag class="starttag">acronym</tag>NTP<tag class="endtag">acronym</tag> is not being used</programlisting>
|
||||
|
||||
<para>Spanische Übersetzung:</para>
|
||||
|
||||
<programlisting>Si <tag class="starttag">acronym</tag>NTP<tag class="endtag">acronym</tag> no se utiliza</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-spaces">
|
||||
<title>Leerzeichen beibehalten</title>
|
||||
|
||||
<para>Achten Sie darauf, dass Sie Leerzeichen am Beginn und am
|
||||
Ende der zu übersetzenden Strings beibehalten. Ihre
|
||||
Übersetzung muss diese Strings ebenfalls enthalten.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-verbatim">
|
||||
<title>Nicht zu übersetzende Tags</title>
|
||||
|
||||
<para>Die folgenden Tags dürfen nicht übersetzt werden:</para>
|
||||
|
||||
<itemizedlist xml:id="po-translations-tips-verbatim-list">
|
||||
<listitem>
|
||||
<para><tag class="starttag">citerefentry</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">command</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">filename</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">literal</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">manvolnum</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">orgname</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">package</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">programlisting</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">prompt</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">refentrytitle</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">screen</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">userinput</tag></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><tag class="starttag">varname</tag></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
<!-- WIP WIP WIP -->
|
||||
<sect2 xml:id="po-translations-literal-dollar">
|
||||
<title><literal>$FreeBSD$</literal>-Strings</title>
|
||||
|
||||
<para>$FreeBSD$-Versionsstrings erfordern eine
|
||||
spezielle Behandlung. In Codebeispielen wie in
|
||||
<xref linkend="po-translations-creating-example"/> sollen
|
||||
diese Strings NICHT expandiert werden. Englische Dokumente
|
||||
verwenden deshalb die Entität <literal>&dollar;</literal>,
|
||||
damit das Dollarzeichen nicht in die Datei eingefügt werden
|
||||
muss:</para>
|
||||
|
||||
<programlisting>&dollar;FreeBSD&dollar;</programlisting>
|
||||
|
||||
<para>Die Entität <literal>&dollar;</literal> wird vom
|
||||
Versionskontrollsystem nicht als Dollarzeichen interpretiert
|
||||
und daher auch nicht in einen Versionsstring expandiert.</para>
|
||||
|
||||
<para>Wenn Sie eine <acronym>PO</acronym>-Datei erzeugen, wird
|
||||
die Entität <literal>&dollar;</literal> allerdings wieder
|
||||
durch das aktuelle Dollarzeichen ersetzt. Dies führt dazu,
|
||||
dass der dadurch enstandene String
|
||||
<literal>$FreeBSD$</literal> beim Commit im
|
||||
Versionskontrollsystem fälschlicherweise wieder expandiert
|
||||
wird.</para>
|
||||
|
||||
<para>Gehen Sie daher analog zum englischen Originaldokument
|
||||
vor und ersetzen Sie das Dollarzeichen in der übersetzten
|
||||
<acronym>PO</acronym>-Datei wiederum durch die Entität
|
||||
<literal>&dollar;</literal>:</para>
|
||||
|
||||
<programlisting>&dollar;FreeBSD&dollar;</programlisting>
|
||||
</sect2>
|
||||
|
||||
<!--
|
||||
<sect2 xml:id="po-translations-tips-makefile">
|
||||
<title>Modifying the <filename>Makefile</filename></title>
|
||||
|
||||
<para>What needs to be changed in the
|
||||
<filename>Makefile</filename>?</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-locale">
|
||||
<title>Setting Locales for Editing</title>
|
||||
|
||||
<para>Locale settings so the <acronym>PO</acronym> editor works
|
||||
correctly?</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-poeditors">
|
||||
<title>Settings for Specific <acronym>PO</acronym>
|
||||
Editors</title>
|
||||
|
||||
<para>Per bcr: turn off "intelligent quotes" in
|
||||
Mac poedit.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-tm">
|
||||
<title>Using Translation Memory</title>
|
||||
|
||||
<para>Using translation memory. Saving, updating, sharing
|
||||
with other members of a translation team.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="po-translations-tips-submitting">
|
||||
<title>Submitting Translations</title>
|
||||
|
||||
<para>Submitting translations as diffs, committing
|
||||
<acronym>PO</acronym> files.</para>
|
||||
</sect2>
|
||||
-->
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="po-translations-building">
|
||||
<title>Ein übersetztes Dokument bauen</title>
|
||||
|
||||
<para>Eine übersetzte Version eines Originaldokuments kann
|
||||
jederzeit erzeugt werden. Noch nicht übersetzte Teile des
|
||||
Dokuments werden dabei in Englisch verbleiben. Die meisten
|
||||
<acronym>PO</acronym>-Editoren zeigen Ihnen an, welcher
|
||||
Anteil des Dokuments bereits übersetzt ist. Dies erleichtert
|
||||
es dem Übersetzer zu beurteilen, ob sich der Bau des finalen
|
||||
Dokuments bereits lohnt oder nicht.</para>
|
||||
|
||||
<example xml:id="po-translations-building-example">
|
||||
<title>Die spanische Version des Porter's Handbook bauen</title>
|
||||
|
||||
<para>Bauen Sie die spanische Version des Porter's Handbooks, das
|
||||
in einem früheren Beispiel erzeugt wurde und überprüfen Sie das
|
||||
Ergebnis.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Bauen Sie das Dokument. Da das Original vom Typ Buch
|
||||
(<emphasis>book</emphasis>) ist, heißt das erzeugte Dokument
|
||||
<filename>book.xml</filename>.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput>
|
||||
&prompt.user; <userinput>make tran</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Erzeugen Sie aus der <filename>book.xml</filename> eine
|
||||
<acronym>HTML</acronym>-Version des Dokuments und lassen Sie
|
||||
sich das Ergebnis in <application>Firefox</application>
|
||||
anzeigen. Für die englische Dokumentation gehen Sie analog
|
||||
vor. Eine Liste aller verfügbaren Werte für die Variable
|
||||
<varname>FORMATS</varname> finden Sie in <xref
|
||||
linkend="doc-build-rendering-common-formats"/>.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>make FORMATS=html</userinput>
|
||||
&prompt.user; <userinput>firefox book.html</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</example>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="po-translations-submitting">
|
||||
<title>Neue Übersetzungen einreichen</title>
|
||||
|
||||
<para>Die neue Übersetzung ist nun zum Einreichen bereit. Um eine
|
||||
neue Übersetzung einzureichen, müssen Sie die neuen Übersetzungen
|
||||
in das Versionskontrollsystem einfügen, die Dateieigenschaften
|
||||
anpassen und eine Differenz erstellen, die Sie dann einreichen
|
||||
können.</para>
|
||||
|
||||
<para>Die in den folgenden Beispielen erstellten Differenzen können
|
||||
Sie entweder als <link
|
||||
xlink:href="https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Documentation">Documentation
|
||||
Bug Report</link> oder als <link
|
||||
xlink:href="https://reviews.freebsd.org/">Code Review</link>
|
||||
einreichen.</para>
|
||||
|
||||
<example xml:id="po-translations-submitting-spanish">
|
||||
<title>Die Spanische Übersetzung des NanoBSD-Artikel</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Fügen Sie in die <acronym>PO</acronym>-Datei als erste
|
||||
Zeile einen Kommentar mit dem &os;-Versionsstring ein:</para>
|
||||
|
||||
<programlisting>#$FreeBSD$</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Nehmen Sie das <filename>Makefile</filename>, die
|
||||
<acronym>PO</acronym>-Datei und die erzeugte
|
||||
<acronym>XML</acronym>-Übersetzung in die Versionskontrolle
|
||||
auf:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/nanobsd/</userinput>
|
||||
&prompt.user; <userinput>ls</userinput>
|
||||
Makefile article.xml es_ES.po
|
||||
&prompt.user; <userinput>svn add Makefile article.xml es_ES.po</userinput>
|
||||
A Makefile
|
||||
A article.xml
|
||||
A es_ES.po</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Setzen Sie die
|
||||
<application>Subversion</application>-Eigenschaft
|
||||
<literal>svn:keywords</literal> auf
|
||||
<literal>FreeBSD=%H</literal>. Diese Eigenschaft sorgt
|
||||
später beim Commit dafür, dass der String
|
||||
<literal>$FreeBSD$</literal>
|
||||
erweitert wird und den Pfad, die Revision, das Datum und den
|
||||
Autor des Committs enthält:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml es_ES.po</userinput>
|
||||
property 'svn:keywords' set on 'Makefile'
|
||||
property 'svn:keywords' set on 'article.xml'
|
||||
property 'svn:keywords' set on 'es_ES.po'</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Setzen Sie den korrekten <acronym>MIME</acronym>-Typ für
|
||||
die neuen Dateien. Für Bücher und Artikel ist dies
|
||||
<literal>text/xml</literal>, für die <acronym>PO</acronym>-Datei
|
||||
hingegen <literal>text/x-gettext-translation</literal>.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn propset svn:mime-type text/x-gettext-translation es_ES.po</userinput>
|
||||
property 'svn:mime-type' set on 'es_ES.po'
|
||||
&prompt.user; <userinput>svn propset svn:mime-type text/xml article.xml</userinput>
|
||||
property 'svn:mime-type' set on 'article.xml'</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Wechseln Sie nach <filename>~/doc/</filename> und erstellen
|
||||
Sie aus diesem Basisverzeichnis eine Differenz, damit der
|
||||
komplette Pfad in der Differenz angezeigt wird. Dies erleichert
|
||||
es Committern, das korrekte Zielverzeichnis zu identifizieren:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc</userinput>
|
||||
<userinput>svn diff es_ES.ISO8859-1/articles/nanobsd/ > /tmp/es_nanobsd.diff</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</example>
|
||||
|
||||
<example xml:id="po-translations-submitting-korean-utf8">
|
||||
<title>Koreanische <acronym>UTF-8</acronym>-Übersetzung des
|
||||
Explaining-BSD-Artikels</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Fügen Sie in die <acronym>PO</acronym>-Datei als erste
|
||||
Zeile einen Kommentar mit dem &os;-Versionsstring ein:</para>
|
||||
|
||||
<programlisting>#$FreeBSD$</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Nehmen Sie das <filename>Makefile</filename>, die
|
||||
<acronym>PO</acronym>-Datei und die erzeugte
|
||||
<acronym>XML</acronym>-Übersetzung in die Versionskontrolle
|
||||
auf:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/ko_KR.UTF-8/articles/explaining-bsd/</userinput>
|
||||
&prompt.user; <userinput>ls</userinput>
|
||||
Makefile article.xml ko_KR.po
|
||||
&prompt.user; <userinput>svn add Makefile article.xml ko_KR.po</userinput>
|
||||
A Makefile
|
||||
A article.xml
|
||||
A ko_KR.po</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Setzen Sie die
|
||||
<application>Subversion</application>-Eigenschaft
|
||||
<literal>svn:keywords</literal> auf
|
||||
<literal>FreeBSD=%H</literal>. Diese Eigenschaft sorgt später
|
||||
beim Commit dafür, dass der String
|
||||
<literal>$FreeBSD$</literal>
|
||||
erweitert wird und den Pfad, die Revision, das Datum und den
|
||||
Autor des Committs enthält:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml ko_KR.po</userinput>
|
||||
property 'svn:keywords' set on 'Makefile'
|
||||
property 'svn:keywords' set on 'article.xml'
|
||||
property 'svn:keywords' set on 'ko_KR.po'</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Setzen Sie den korrekten <acronym>MIME</acronym>-Typ für
|
||||
alle Dateien. Da die Dateien mit dem
|
||||
<acronym>UTF-8</acronym>-Charakterset erstellt wurden, muss
|
||||
dies ebenfalls angegeben werden. Um zu verhindern, dass das
|
||||
Versionskontrollsystem diese Dateien als Binärdateien erkennt,
|
||||
müssen Sie die Eigenschaft <literal>fbsd:notbinary</literal>
|
||||
setzen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn propset svn:mime-type 'text/x-gettext-translation; charset=UTF-8' ko_KR.po</userinput>
|
||||
property 'svn:mime-type' set on 'ko_KR.po'
|
||||
&prompt.user; <userinput>svn propset fbsd:notbinary yes ko_KR.po</userinput>
|
||||
property 'fbsd:notbinary' set on 'ko_KR.po'
|
||||
&prompt.user; <userinput>svn propset svn:mime-type 'text/xml; charset=UTF-8' article.xml</userinput>
|
||||
property 'svn:mime-type' set on 'article.xml'
|
||||
&prompt.user; <userinput>svn propset fbsd:notbinary yes article.xml</userinput>
|
||||
property 'fbsd:notbinary' set on 'article.xml'</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Wechseln Sie nach <filename>~/doc/</filename> und erstellen
|
||||
Sie aus diesem Basisverzeichnis eine Differenz, damit der
|
||||
komplette Pfad in der Differenz angezeigt wird. Dies erleichert
|
||||
es Committern, das korrekte Zielverzeichnis zu identifizieren:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc</userinput>
|
||||
<userinput>svn diff ko_KR.UTF-8/articles/explaining-bsd > /tmp/ko-explaining.diff</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</example>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,209 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r39632
|
||||
|
||||
Anmerkungen:
|
||||
Dieser Text wurde nach dem Lesen von "Technisches Schreiben
|
||||
(nicht nur) fuer Informatiker" ueberarbeitet.
|
||||
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="psgml-mode">
|
||||
<title><literal>sgml-mode</literal> und
|
||||
<application>Emacs</application></title>
|
||||
|
||||
<para>Neuere <application>Emacs</application>- und
|
||||
<application>XEmacs</application>-Versionen verfügen
|
||||
über ein nützliches Lisp-Paket namens PSGML. PSGML
|
||||
(das über den Port <package>editors/psgml</package> installiert werden kann) ist
|
||||
ein so genannter <foreignphrase>Majormode</foreignphrase>, der
|
||||
Funktionen speziell für den Umgang mit SGML-Dateien,
|
||||
-Elementen und deren Attributen bereit stellt. Emacs aktiviert
|
||||
PSGML automatisch, wenn eine Datei mit der Endung
|
||||
<filename>.xml</filename> geladen oder der Befehl <command>M-X
|
||||
sgml-mode</command> eingegeben wird.</para>
|
||||
|
||||
<para>Die Arbeit an SGML-Dokumenten wie dem FreeBSD-Handbuch kann
|
||||
sich wesentlich einfacher gestalten, wenn einige der Funktionen
|
||||
von PSGML gekannt sind:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>C-c C-e</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion <function>sgml-insert-element</function>
|
||||
auf, die nach dem Namen des einzufügenden Elements
|
||||
fragt. Ist dieser eingegeben worden und wurde die
|
||||
<keycap>Eingabetaste</keycap> gedrückt, fügt die
|
||||
Funktion Start- und Endtag des neuen Elements ein. Sofern
|
||||
das eingefügte Element laut DTD andere Elemente
|
||||
enthalten muß, werden diese ebenfalls
|
||||
eingefügt.</para>
|
||||
|
||||
<para>Falls Sie unsicher sind, wie der Name des
|
||||
gewünschten Elements lautet oder welche Elemente an der
|
||||
aktuellen Position erlaubt sind, können mittels der
|
||||
Taste <keycap>Tab</keycap> alle <emphasis>an dieser
|
||||
Stelle</emphasis> möglichen Elemente angezeigt
|
||||
werden. Ebenso ermöglicht <keycap>Tab</keycap> die
|
||||
Vervollständigung eines bereits eingegebenen
|
||||
Elementnamens.</para>
|
||||
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c =</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion
|
||||
<function>sgml-change-element-name</function> auf, mit der das
|
||||
aktuelle Element – das Element zwischen dessen Start-
|
||||
und Endtag sich der Cursor befindet – ausgewechselt
|
||||
werden kann. Die Funktion fragt nach dem Namen des neuen
|
||||
Elements und ersetzt anschließend Start- und Endtag
|
||||
des alten Elements durch die des neuen Elements.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c C-r</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion <function>sgml-tag-region</function>
|
||||
auf, die einen markierten Textabschnitt mit einem Element
|
||||
umschließt. Dazu markieren Sie zuerst den Textabschnitt
|
||||
(gehen Sie zum Anfang des Abschnitts und führen Sie
|
||||
<command>C-space</command> aus, dann gehen Sie zum Ende des
|
||||
Abschnitts und führen erneut <command>C-space</command>
|
||||
aus), danach führen Sie diese Funktion aus. Sie werden
|
||||
nach dem Namen des einzufügenden Elements gefragt. Dessen
|
||||
Start-Tag wird dann am Anfang des markierten Textes
|
||||
eingefügt, dessen End-Tag am Ende des markierten
|
||||
Texts.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c -</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion <function>sgml-untag-element</function>
|
||||
auf, die Start- und Endtag des Elements entfernt, innerhalb
|
||||
dessen sich der Cursor befindet.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c C-q</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion <function>sgml-fill-element</function>
|
||||
auf. Diese Funktion formatiert<footnote>
|
||||
<para>Formatieren bedeutet in diesem Zusammenhang,
|
||||
dass die Funktion versucht, soviel Zeichen wie
|
||||
möglich in einer Zeile unterzubringen. Die Stelle,
|
||||
bis zu der gefüllt und dann der Zeilemumbruch
|
||||
erfolgt, ist konfigurierbar.</para>
|
||||
</footnote> den Inhalt des aktuellen Elements neu. Dieser
|
||||
Vorgang betrifft auch Elemente wie
|
||||
<tag>programlisting</tag>, in denen Leerzeichen und
|
||||
ähnliches Teil der Formatierung sind. Aus diesem Grund
|
||||
ist mit <literal>sgml-fill-element</literal> bedächtig
|
||||
umzugehen.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c C-a</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion
|
||||
<function>sgml-edit-attributes</function> auf. Diese
|
||||
öffnet einen zweiten Puffer mit allen Attributen des
|
||||
Elements, innerhalb dessen sich der Cursor befindet.
|
||||
Über <keycap>Tab</keycap> kann von einem Attribut zum
|
||||
nächsten gewechselt werden. Ein existierender
|
||||
Attributwert kann mit <command>C-k</command> gelöscht
|
||||
werden. Die Tastenfolge <command>C-c C-c</command>
|
||||
schließt den Puffer und setzt die Attribute des
|
||||
Elements entsprechend den Puffervorgaben.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c C-v</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Ruft die Funktion <function>sgml-validate</function> auf,
|
||||
die zuerst fragt, ob das aktuelle Dokument gespeichert
|
||||
werden soll und anschließend einen SGML-Validator
|
||||
aufruft. Die Ausgaben des Validators werden in einem neuen
|
||||
Puffer angezeigt. Dadurch hat der Benutzer die
|
||||
Möglichkeit, eventuell vom Validator gefundene Fehler
|
||||
zu korrigieren.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><command>C-c /</command></term>
|
||||
|
||||
<listitem>
|
||||
<para>Startet die Funktion <function>sgml-insert-end-tag</function>,
|
||||
die automatisch das passende End-Tag für das gerade
|
||||
offene Element einfügt.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Zweifellos hat PSGML noch weitere nützliche Funktionen, doch
|
||||
die hier genannten sind die, die der Autor dieser Fibel am meisten
|
||||
benutzt.</para>
|
||||
|
||||
<para>Um den richtigen Einzug, die Umwandlung von Tabulatoren in
|
||||
Leerzeichen und die maximale Zeilenlänge für Dokumente des FDPs
|
||||
sicherzustellen, kann folgender Eintrag in
|
||||
<filename>.emacs</filename> vorgenommen werden:</para>
|
||||
|
||||
<programlisting> (defun local-sgml-mode-hook
|
||||
(setq fill-column 70
|
||||
indent-tabs-mode nil
|
||||
next-line-add-newlines nil
|
||||
standard-indent 4
|
||||
sgml-indent-data t)
|
||||
(auto-fill-mode t)
|
||||
(setq sgml-catalog-files '("/usr/local/share/xml/catalog")))
|
||||
(add-hook 'psgml-mode-hook
|
||||
'(lambda () (local-psgml-mode-hook)))</programlisting>
|
||||
</chapter>
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r39631
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="see-also">
|
||||
<title>Weiterführende Quellen</title>
|
||||
|
||||
<para>In dieser Fibel werden absichtlich nicht alle Aspekte von
|
||||
XML, der erwähnten DTDs und des
|
||||
FreeBSD-Dokumentationsprojekts behandelt. Interessierten werden daher
|
||||
die nachfolgenden Quellen empfohlen.</para>
|
||||
|
||||
<sect1 xml:id="see-also-fdp">
|
||||
<title>Das FreeBSD-Dokumentationsprojekt</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><link xlink:href="&url.base;/docproj/index.html">Die
|
||||
Webseiten des
|
||||
FreeBSD-Dokumentationsprojektes</link></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link xlink:href="&url.books.handbook;/index.html">Das
|
||||
FreeBSD-Handbuch</link></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="see-also-xml">
|
||||
<title>XML</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><link xlink:href="http://www.w3.org/XML/">W3C's
|
||||
XML-Webseite</link>, eine umfangreiche Quelle zu
|
||||
XML.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="see-also-html">
|
||||
<title>HTML</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><link xlink:href="http://www.w3.org/">Das
|
||||
World-Wide-Web-Konsortium</link></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link xlink:href="http://www.edition-w3.de/TR/1999/REC-html401-19991224/">Die
|
||||
HTML 4.0-Spezifikation</link></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="see-also-docbook">
|
||||
<title>DocBook</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><link xlink:href="http://www.oasis-open.org/docbook/">The
|
||||
DocBook Technical Committee</link>, die Betreuer der
|
||||
DocBook-DTD.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link xlink:href="http://www.docbook.org/">DocBook: The
|
||||
Definitive Guide</link>, die Online-Dokumentation zur
|
||||
DocBook-DTD.</para>
|
||||
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link xlink:href="http://docbook.sourceforge.net/">The DocBook
|
||||
Open Repository</link> bietet DSSSL-Stilvorlagen und
|
||||
andere Ressourcen für DocBook-Benutzer an.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="see-also-linuxdoc">
|
||||
<title>Das Linux-Dokumentationsprojekt</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Die Webseiten des <link xlink:href="http://www.tldp.org/">Linux-Dokumenationsprojektes</link>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,327 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r46365
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="structure">
|
||||
<info><title>Dokumentation-Verzeichnisstruktur</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<para>Die Struktur der Dateien und Ordner unterhalb von
|
||||
<filename>doc/</filename> hilft dabei,</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>die automatische Konvertierung der Dokumente in andere
|
||||
Formate einfach zu gestalten,</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>die Konsistenz zwischen den verschiedenen auf diese Weise
|
||||
organisierten Dokumenten sicherzustellen, was die parallele
|
||||
Bearbeitung verschiedener Dokumente vereinfacht, sowie</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>die Entscheidung, wo neue Dokumente innerhalb des Baumes
|
||||
platziert werden sollen, leichter zu machen.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Zusätzlich wird dadurch dem Umstand Rechnung getragen,
|
||||
dass die Dokumentation in verschiedenen Sprachen und Kodierungen
|
||||
vorhanden sein kann. Es ist von großer Bedeutung, dass
|
||||
die Struktur des Dokumentationsbaumes dabei dennoch einheitlich
|
||||
bleibt.</para>
|
||||
|
||||
<sect1 xml:id="structure-top">
|
||||
<title><filename>doc/</filename> als höchste Ebene</title>
|
||||
|
||||
<para>Unterhalb von <filename>doc/</filename> existieren zwei
|
||||
Arten von Verzeichnissen, die jeweils über spezifische
|
||||
Dateinamen und eine spezifische Bedeutung verfügen.</para>
|
||||
|
||||
<informaltable pgwide="1" frame="none">
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Verzeichnis</entry>
|
||||
<entry>Bedeutung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry valign="top"><filename>share</filename></entry>
|
||||
|
||||
<entry>Enthält Dateien, die für alle Sprachen und
|
||||
Kodierungen der Dokumentation gültig sind. Es
|
||||
enthält weitere Unterverzeichnisse, um diese
|
||||
Informationen zu kategorisieren. So enthält
|
||||
<filename class="directory">share/mk</filename>
|
||||
beispielsweise die Dateien,
|
||||
die die &man.make.1;-Infrastruktur bilden, während
|
||||
sich die für die <acronym>XML</acronym>-Unterstützung nötigen
|
||||
Dateien (darunter die FreeBSD DocBook <acronym>DTD</acronym>) unter
|
||||
<filename>share/xml</filename> befinden.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry valign="top"><filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable></filename></entry>
|
||||
|
||||
<entry>Für jede verfügbare Sprache und Kodierung
|
||||
existiert ein eigenes Unterverzeichnis. Beispiele dafür
|
||||
sind <filename>en_US.ISO8859-1/</filename> oder
|
||||
<filename>zh_TW.UTF-8/</filename>. Zwar sind diese
|
||||
Verzeichnisnamen nicht gerade kurz, durch die vollständige
|
||||
Angabe von Sprache und Kodierung werden aber Probleme bei einer
|
||||
eventuellen Erweiterung der Dokumentation (etwa um eine
|
||||
zusätzliche Kodierung für eine bereits vorhandene
|
||||
Sprache) vermieden. Auch eine eventuelle Konvertierung der
|
||||
Dokumentation nach Unicode ist dadurch problemlos
|
||||
möglich.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="structure-locale">
|
||||
<title>Die Verzeichnisse
|
||||
<filename><replaceable>Sprache</replaceable>.<replaceable>Kodierung</replaceable>/</filename></title>
|
||||
|
||||
<para>Diese Verzeichnisse enthalten die eigentliche Dokumentation.
|
||||
Auf dieser Ebene erfolgt eine Unterteilung in drei Kategorien,
|
||||
die durch entsprechende Verzeichnisnamen gekennzeichnet
|
||||
werden.</para>
|
||||
|
||||
<informaltable pgwide="1" frame="none">
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Verzeichis</entry>
|
||||
<entry>Bedeutung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry valign="top"><filename>articles</filename></entry>
|
||||
|
||||
<entry>DocBook-formatierte Artikel (<tag>article</tag>)
|
||||
oder ähnliche Dokumente. Meist relativ kurz und in
|
||||
Abschnitte aufgeteilt. Artikel sind in der Regel als ein
|
||||
einziges, großes <acronym>XHTML</acronym>-Dokument verfügbar.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry valign="top"><filename>books</filename></entry>
|
||||
|
||||
<entry>DocBook-formatierte Bücher (<tag>book</tag>)
|
||||
oder ähnliche Dokumente. Umfangreiche Dokumente,
|
||||
die in Kapitel aufgeteilt werden. Sind in der Regel sowohl
|
||||
als eine einzige, große <acronym>XHTML</acronym>-Datei (für Personen
|
||||
mit einer schnellen Internetanbindung oder für einen
|
||||
einfachen Druck über ein Browser) oder als eine
|
||||
Sammlung von vielen kleinen, miteinander verlinkten Dateien
|
||||
verfügbar.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry valign="top"><filename>man</filename></entry>
|
||||
|
||||
<entry>Dient für Übersetzungen von Manualpages. Es
|
||||
enthält ein oder mehrere <filename
|
||||
role="directory">man<replaceable>n</replaceable></filename>-Verzeichnisse,
|
||||
je nachdem, welche Abschnitte der Manualpages bereits
|
||||
übersetzt wurden.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
<para>Nicht jedes <filename
|
||||
role="directory"><replaceable>Sprache</replaceable>.<replaceable>Kodierung</replaceable></filename>-Verzeichnis
|
||||
enthält all diese Unterverzeichnisse. Ob ein Verzeichnis
|
||||
vorhanden ist, hängt vielmehr davon ab, ob bereits ein
|
||||
entsprechender Teil der Dokumentation übersetzt wurde.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="structure-document">
|
||||
<title>Dokumentenspezifische Informationen</title>
|
||||
|
||||
<para>Dieser Abschnitt enthält Informationen zu einigen vom
|
||||
FreeBSD Documentation Project (FDP) verwalteten
|
||||
Dokumenten.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Das Handbuch</title>
|
||||
|
||||
<subtitle><filename>books/handbook/</filename></subtitle>
|
||||
|
||||
<para>Das Handbuch wurde unter Verwendung von
|
||||
DocBook <acronym>XML</acronym> (und der vom FreeBSD
|
||||
Project erweiterten <acronym>XML</acronym> DocBook-DTD)
|
||||
geschrieben.</para>
|
||||
|
||||
<para>Das Handbuch ist als DocBook-<tag>book</tag>
|
||||
organisiert. Es besteht aus mehreren Teilen
|
||||
(<tag>part</tag>s), die wiederum mehrere
|
||||
Kapitel (<tag>chapter</tag>) enthalten können.
|
||||
Kapitel sind zusätzlich in Abschnitte
|
||||
(<tag>sect1</tag>) und Unterabschnitte
|
||||
(<tag>sect2</tag>, <tag>sect3</tag> und so
|
||||
weiter) unterteilt.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Physikalische Organisation</title>
|
||||
|
||||
<para>Das Verzeichnis <filename>handbook</filename> enthält
|
||||
sowohl weitere Verzeichnisse als auch zahlreiche einzelne
|
||||
Dateien.</para>
|
||||
|
||||
<note>
|
||||
<para>Die Organisation des Handbuchs hat sich im Laufe der
|
||||
Zeit geändert, daher könnten die Informationen
|
||||
in diesem Abschnitt eventuell nicht mehr dem akutellen
|
||||
Stand entsprechen. Haben Sie Fragen zur Organisation des
|
||||
Handbuchs, so wenden Sie sich bitte an das &a.doc;.</para>
|
||||
</note>
|
||||
|
||||
<sect4>
|
||||
<title><filename>Makefile</filename></title>
|
||||
|
||||
<para>Das <filename>Makefile</filename> definiert verschiedene
|
||||
Variablen zur Konvertierung der<acronym>XML</acronym>-Quellen in andere
|
||||
Formate. Außerdem listet es die verschiedenen Dateien
|
||||
auf, aus denen das Handbuch gebaut wird. Zusätzlich
|
||||
wird die Standard-<filename>doc.project.mk</filename>
|
||||
inkludiert, die den für die Konvertierung in andere
|
||||
Formate notwendigen Code bereitstellt.</para>
|
||||
</sect4>
|
||||
|
||||
<sect4>
|
||||
<title><filename>book.xml</filename></title>
|
||||
|
||||
<para>Das Hauptdokument innerhalb des Handbuchs. Neben der
|
||||
<link
|
||||
linkend="xml-primer-doctype-declaration">DOCTYPE-Deklaration</link>
|
||||
des Handbuchs werden hier auch
|
||||
die Elemente aufgelistet, die die Struktur des Handbuchs
|
||||
definieren.</para>
|
||||
|
||||
<para><filename>book.xml</filename> verwendet <link linkend="xml-primer-parameter-entities">
|
||||
Parameterentitäten</link>, um Dateien mit der
|
||||
Endung <filename>.ent</filename> zu laden. Diese
|
||||
Dateien definieren die <link linkend="xml-primer-general-entities">allgemeinen
|
||||
Entitäten</link>, die innerhalb des Handbuchs
|
||||
verwendet werden.</para>
|
||||
</sect4>
|
||||
|
||||
<sect4>
|
||||
<title><filename
|
||||
role="directory"><replaceable>Verzeichnis</replaceable>/chapter.xml</filename></title>
|
||||
|
||||
<para>Jedes Kapitel des Handbuchs wird in einer
|
||||
<filename>chapter.xml</filename> genannten Datei
|
||||
gespeichert. Jedes Verzeichnis erhält den Namen
|
||||
des <literal>id</literal>-Attributs des
|
||||
<tag>chapter</tag>-Elements.</para>
|
||||
|
||||
<para>Enthält eine Kapiteldatei beispielsweise die
|
||||
Einträge</para>
|
||||
|
||||
<programlisting><tag class="starttag">chapter id="kernelconfig"</tag>
|
||||
...
|
||||
<tag class="endtag">chapter</tag></programlisting>
|
||||
|
||||
<para>so handelt es sich um die Datei
|
||||
<filename>chapter.xml</filename> im Verzeichnis
|
||||
<filename>kernelconfig</filename>. Im Allgemeinen
|
||||
enthält diese Datei das komplette Kapitel.</para>
|
||||
|
||||
<para>Wird die <acronym>XHTML</acronym>-Version des Handbuchs
|
||||
gebaut, entsteht dadurch
|
||||
<filename>kernelconfig.html</filename>. Der Grund
|
||||
dafür ist allerdings der Wert des
|
||||
<literal>id</literal>-Attributs, und nicht der Name des
|
||||
Verzeichnisses.</para>
|
||||
|
||||
<para>In früheren Versionen des Handbuchs wurden all
|
||||
diese Dateien im gleichen Verzeichnis wie die Datei
|
||||
<filename>book.xml</filename> gespeichert und nach dem
|
||||
Wert des <literal>id</literal>-Attributs der
|
||||
<tag>chapter</tag>-Elemente benannt. Durch die
|
||||
Verwendung von eigenen Verzeichnissen für die
|
||||
verschiedenen Kapitel wurde das Handbuch für
|
||||
künftige Erweiterungen vorbereitet. Beispielsweise
|
||||
wurde es dadurch möglich, Bilder in die einzelnen
|
||||
Kapitel aufzunehmen. Die Bilder für das Handbuch
|
||||
werden zentral im Verzeichnis <filename>share/images/books/handbook</filename>
|
||||
gespeichert. Existiert eine lokalisierte Version eines
|
||||
Bildes, wird diese hingegen gemeinsam mit dem
|
||||
<acronym>XML</acronym>-Quellcode
|
||||
im gleichen Verzeichnis gespeichert. Ein Vorteil
|
||||
dieser Methode ist beispielsweise die Vermeidung von
|
||||
Namenskollisionen. Außerdem ist es
|
||||
übersichtlicher, mit mehreren Verzeichnissen zu
|
||||
arbeiten, die jeweils nur einige Dateien enthalten, als mit
|
||||
einem einzigen Verzeichnis, das eine Vielzahl von Dateien
|
||||
enthält.</para>
|
||||
|
||||
<para>Durch dieses Vorgehen entstanden viele Verzeichnisse,
|
||||
die jeweils eine <filename>chapter.xml</filename> enhalten,
|
||||
beispielsweise <filename>basics/chapter.xml</filename>,
|
||||
<filename>introduction/chapter.xml</filename> oder
|
||||
<filename>printing/chapter.xml</filename>.</para>
|
||||
|
||||
<important>
|
||||
<para>Benennen Sie Kapitel und Verzeichnisse nicht nach
|
||||
Ihrer Reihenfolge innerhalb des Handbuchs. Dann führt
|
||||
eine Umstrukturierung des Handbuchs im Normalfall nicht
|
||||
dazu, dass dafür Dateien umbenannt werden müssen (es sei
|
||||
denn, einzelne Kapitel werden neu aufgenommen oder
|
||||
entfernt).</para>
|
||||
</important>
|
||||
|
||||
<para>Die Datei <filename>chapter.xml</filename> ist keine
|
||||
komplette <acronym>XML</acronym>-Datei. Dies bedeutet,
|
||||
dass sie nicht alleine gebaut werden kann, sondern nur
|
||||
als Teil des Handbuchs.</para>
|
||||
</sect4>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r39632
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="stylesheets">
|
||||
<info><title>Stylesheets</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>SGML legt nicht fest, wie ein Dokument am Monitor oder auf einem
|
||||
Ausdruck dargestellt werden soll. Für diese Aufgabe wurden
|
||||
spezielle Sprachen entwickelt, die Formatvorlagen (die sogenannten
|
||||
<foreignphrase>Stylesheets</foreignphrase>) für die Darstellung
|
||||
der Inhalte definieren. Zu diesen Sprachen gehören
|
||||
beispielsweise DynaText, Panorama, SPICE, JSSS, FOSI, CSS, DSSSL
|
||||
und andere mehr.</para>
|
||||
|
||||
<para>DocBook verwendet in DSSSL geschriebene Stylesheets. XHTML
|
||||
verwendet hingegen in CSS geschriebene Stylesheets.</para>
|
||||
|
||||
<sect1 xml:id="stylesheets-dsssl">
|
||||
<title>DSSSL</title>
|
||||
|
||||
<para>Das Documentation Project verwendet eine anpasste Version der
|
||||
von Norm Walsh entwickelten modularen DocBook-Stylesheets, die
|
||||
über den Port <package>textproc/dsssl-docbook-modular</package>
|
||||
installiert werden können.</para>
|
||||
|
||||
<para>Die FreeBSD-Modifikationen sind hingegen nicht in der
|
||||
Ports-Sammlung enthalten, sondern befinden sich im
|
||||
Quellcode-Repository des Documentation Projects in der Datei
|
||||
<filename>doc/share/xml/freebsd.dsl</filename>. Diese Datei
|
||||
ist umfassend kommentiert und mit Beispielen versehen.
|
||||
Dadurch können Sie einfach nachvollziehen, wie die
|
||||
ursprünglichen Stylesheets vom FreeBSD Documentation
|
||||
Project angepasst wurden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="stylesheets-css">
|
||||
<title>CSS</title>
|
||||
|
||||
<para>Cascading Stylesheets (CSS) erlauben es, Elementen eines
|
||||
XHTML-Dokuments Formatangaben (wie Schriftart, Größe,
|
||||
Schriftfarbe und andere mehr) zuzuweisen, ohne das XHTML-Dokument
|
||||
mit diesen Informationen zu überfrachten.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Die DocBook-Dokumente</title>
|
||||
|
||||
<para>The FreeBSD DSSSL-Stylesheets enthalten eine Referenz auf
|
||||
ein Stylesheet namens <filename>docbook.css</filename>, das sich
|
||||
im gleichen Verzeichnis wie die XHTML-Dateien befindet. Diese
|
||||
projektweite CSS-Datei wird automatisch von
|
||||
<filename>doc/share/misc/docbook.css</filename> kopiert und
|
||||
installiert, wenn DocBook-Dokumente nach XHTML konvertiert
|
||||
werden.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,293 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES role="package"
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r53527
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="the-website">
|
||||
<info><title>Die Webseite</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<para>Die &os; Webseite ist Teil der &os;-Dokumentation. Die Dateien
|
||||
der englischen Webseite befinden sich im Unterverzeichnis
|
||||
<filename>en_US.ISO8859-1/htdocs</filename> des Dokumentationsbaum
|
||||
(in diesem Beispiel unter <filename>~/doc</filename>).</para>
|
||||
|
||||
<sect1 xml:id="the-website-env">
|
||||
<title>Umgebungsvariablen</title>
|
||||
|
||||
<para>Sie haben die Möglichkeit, über Umgebungsvariablen
|
||||
festzulegen, welchen Teil der Webseite Sie bauen wollen
|
||||
und in welches Verzeichnis Sie die fertige Webseite
|
||||
installieren wollen.</para>
|
||||
|
||||
<tip>
|
||||
<para>Beim Bau der Webseiten (durch &man.make.1;) wird
|
||||
angenommen, dass definierte Variablen gesetzt sind (dies gilt
|
||||
auch dann, wenn die Variable leer ist!). Die folgenden
|
||||
Beispiele zeigen die empfohlene Definition und Nutzung der
|
||||
möglichen Variablen. Wenn Sie diese Variablen auf andere
|
||||
Werte oder Methoden setzen, kann es zu überraschenden
|
||||
Ergebnissen kommen.</para>
|
||||
</tip>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry xml:id="the-website-env-docdir">
|
||||
<term><varname>DOCDIR</varname></term>
|
||||
|
||||
<listitem>
|
||||
<para>DOCDIR legt fest, in welches Verzeichnis die fertig
|
||||
gebaute Webseite installiert werden soll.</para>
|
||||
<para>Diese Variable wird am besten durch &man.env.1; oder
|
||||
durch die Shell-eigene Methode zum setzen von Variablen,
|
||||
also <command>setenv</command> für &man.csh.1; oder
|
||||
<command>export</command> für &man.sh.1;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry xml:id="the-website-env-englishonly">
|
||||
<term><varname>ENGLISH_ONLY</varname></term>
|
||||
|
||||
<listitem>
|
||||
<para>Default: Nicht definiert. Baue die Webseite inklusive
|
||||
aller Übersetzungen.</para>
|
||||
|
||||
<para><userinput>ENGLISH_ONLY=yes</userinput>: Baue nur die
|
||||
englischen Dokumente und ignoriere alle Übersetzungen.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry xml:id="the-website-env-webonly">
|
||||
<term><varname>WEB_ONLY</varname></term>
|
||||
|
||||
<listitem>
|
||||
<para>Default: Nicht definiert. Baue sowohl die Webseite als
|
||||
auch alle Bücher und Artikel.</para>
|
||||
|
||||
<para><userinput>WEB_ONLY=yes</userinput>: Baue oder installiere
|
||||
nur die <acronym>HTML</acronym>-Seiten im Verzeichis
|
||||
<filename>en_US.ISO8859-1/htdocs</filename>. Ignoriere alle
|
||||
anderen Verzeichnisse und Dokumente, Bücher und Artikel.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry xml:id="the-website-env-weblang">
|
||||
<term><varname>WEB_LANG</varname></term>
|
||||
|
||||
<listitem>
|
||||
<para>Default: Nicht definiert. Baue die Webseite in allen
|
||||
verfügbaren Sprachen.</para>
|
||||
|
||||
<para>Geben Sie die Sprachen (durch Leerzeichen getrennt) an,
|
||||
in denen Sie die Webseite bauen und/oder installieren
|
||||
wollen. Die Namen der zu bauenden Sprachen entsprechen dabei
|
||||
den Namen der Dokumentwurzelverzeichnisse. Wollen Sie
|
||||
beispielsweise die deutschen und französischen Dokumente
|
||||
einschließen:</para>
|
||||
|
||||
<screen><userinput>WEB_LANG="de_DE.ISO8859-1 fr_FR.ISO8859-1"</userinput></screen>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para><varname>WEB_ONLY</varname>, <varname>WEB_LANG</varname> und
|
||||
<varname>ENGLISH_ONLY</varname> sind Variablen für &man.make.1;.
|
||||
Diese werden entweder in <filename>/etc/make.conf</filename>, in
|
||||
<filename>Makefile.inc</filename> oder als Umgebungsvariablen auf
|
||||
der Kommandozeile oder in Ihrer Konfigurationsdatei gesetzt.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="the-website-build">
|
||||
<title>Die Webseiten bauen</title>
|
||||
|
||||
<para>Nachdem Sie die Quellen der Webseite erfolgreich
|
||||
heruntergeladen haben, können Sie mit dem Bau der Webseite
|
||||
beginnen.</para>
|
||||
|
||||
<para>Die Installation der Webseiten wird als
|
||||
<systemitem class="username">root</systemitem> ausgeführt, weil die
|
||||
Berechtigungen des Webserver-Verzeichnisses den Schreibzugriff für
|
||||
normale Benutzer verhindern. Zu Testzwecken können die Dateien auch
|
||||
als normaler Benutzer in ein temporäres Verzeichnis installiert
|
||||
werden.</para>
|
||||
|
||||
<para>In den folgenden Beispielen werden die
|
||||
Webseiten durch den Benutzer
|
||||
<systemitem class="username">jru</systemitem> in dessen
|
||||
Heimatverzeichnis, also unter
|
||||
<filename>/usr/home/jru/doc</filename>, gebaut.</para>
|
||||
|
||||
<tip>
|
||||
<para>Der Bau der Webseiten erfordert die Datei <filename>INDEX</filename>
|
||||
der Ports-Sammlung und schlägt fehl, wenn
|
||||
<filename>/usr/ports</filename> nicht existiert. Der einfachste
|
||||
Weg, dies zu vermeiden, ist die Installation der <link
|
||||
xlink:href="&url.books.handbook;/ports.html#ports-tree">Ports-Sammlung</link>.</para>
|
||||
</tip>
|
||||
|
||||
<example xml:id="the-website-examples-build">
|
||||
<title>Die komplette Webseite und alle Dokumente bauen</title>
|
||||
|
||||
<para>Bauen Sie die Webseite und alle Dokumente. Die erzeugten
|
||||
Dateien verbleiben dabei im Dokumentationsbaum:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/en_US.ISO8859-1/htdocs/</userinput>
|
||||
&prompt.user; <userinput>make all</userinput></screen>
|
||||
</example>
|
||||
|
||||
<example xml:id="the-website-examples-buildinstall-englishonly">
|
||||
<title>Nur die englische Webseite bauen</title>
|
||||
|
||||
<para>Bauen Sie nur die englische Webseite als Benutzer
|
||||
<systemitem class="username">jru</systemitem> und installieren
|
||||
Sie die erzeugten Dateien nach <filename>/tmp/www</filename>,
|
||||
um die Webseite testen zu können:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/en_US.ISO8859-1/htdocs/</userinput>
|
||||
&prompt.user; <userinput>env DOCDIR=/tmp/www make ENGLISH_ONLY=yes WEB_ONLY=yes all install</userinput></screen>
|
||||
|
||||
<para>Änderungen an statischen Dateien können Sie einfach testen,
|
||||
indem Sie die geänderten Dateien in Ihrem Webbrowser aufrufen.
|
||||
Haben Sie Seite wie eben gezeigt gebaut, können Sie sich die
|
||||
geänderte Startseite ganz einfach anzeigen lassen:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>firefox /tmp/www/data/index.html</userinput></screen>
|
||||
|
||||
<para>Änderungen an dynamischen Dateien können allerdings nur auf
|
||||
einem Webserver (der auf dem lokalen System läuft) getestet
|
||||
werden. Nachdem Sie die Website wie weiter oben gezeigt gebaut
|
||||
haben, können Sie <package>www/apache24</package> mit folgender
|
||||
Konfigurationsdatei
|
||||
<filename>/usr/local/etc/apache24/httpd.conf</filename> starten
|
||||
und Ihre Änderungen testen:</para>
|
||||
|
||||
<programlisting># httpd.conf for testing the FreeBSD website
|
||||
Define TestRoot "/tmp/www/data"
|
||||
|
||||
# directory for configuration files
|
||||
ServerRoot "/usr/local"
|
||||
|
||||
Listen 80
|
||||
|
||||
# minimum required modules
|
||||
LoadModule authz_core_module libexec/apache24/mod_authz_core.so
|
||||
LoadModule mime_module libexec/apache24/mod_mime.so
|
||||
LoadModule unixd_module libexec/apache24/mod_unixd.so
|
||||
LoadModule cgi_module libexec/apache24/mod_cgi.so
|
||||
LoadModule dir_module libexec/apache24/mod_dir.so
|
||||
|
||||
# run the webserver as user and group
|
||||
User www
|
||||
Group www
|
||||
|
||||
ServerAdmin you@example.com
|
||||
ServerName fbsdtest
|
||||
|
||||
# deny access to all files
|
||||
<Directory />
|
||||
AllowOverride none
|
||||
Require all denied
|
||||
</Directory>
|
||||
|
||||
# allow access to the website directory
|
||||
DocumentRoot "${TestRoot}"
|
||||
<Directory "${TestRoot}">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
# prevent access to .htaccess and .htpasswd files
|
||||
<Files ".ht*">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
ErrorLog "/var/log/httpd-error.log"
|
||||
LogLevel warn
|
||||
|
||||
# set up the CGI script directory
|
||||
<Directory "${TestRoot}/cgi">
|
||||
AllowOverride None
|
||||
Options None
|
||||
Require all granted
|
||||
Options +ExecCGI
|
||||
AddHandler cgi-script .cgi
|
||||
</Directory>
|
||||
|
||||
Include etc/apache24/Includes/*.conf</programlisting>
|
||||
|
||||
<para>Starten Sie den Webserver wie folgt:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>service apache24 onestart</userinput></screen>
|
||||
|
||||
<para>Die Webseite ist danach unter der Adresse
|
||||
<link xlink:href="http://localhost"/> erreichbar. Beachten Sie
|
||||
aber, dass viele Links auf die echte &os;-Webseite zeigen. Daher
|
||||
werden diese Links die externe Seite aufrufen und nicht Ihre
|
||||
lokale Testversion. Um dies zu verhindern und einen kompletten
|
||||
lokalen Test Ihrer lokalen Seite durchzuführen, müssen Sie
|
||||
<acronym>DNS</acronym> temporär umkonfigurieren, damit
|
||||
<literal>www.FreeBSD.org</literal> als
|
||||
<literal>localhost</literal> oder als Ihre lokale
|
||||
<acronym>IP</acronym>-Adresse aufgelöst wird.</para>
|
||||
</example>
|
||||
|
||||
<example xml:id="the-website-examples-buildinstall">
|
||||
<title>Die Webseite bauen und installieren</title>
|
||||
|
||||
<para>Bauen Sie die Webseite und alle Dokumente als Benutzer
|
||||
<systemitem class="username">jru</systemitem>. Installieren Sie
|
||||
die erzeugten Dateien als
|
||||
<systemitem class="username">root</systemitem> in das
|
||||
Standardverzeichnis, also nach
|
||||
<filename>/root/public_html</filename>:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~/doc/en_US.ISO8859-1/htdocs</userinput>
|
||||
&prompt.user; <userinput>make all</userinput>
|
||||
&prompt.user; <userinput>su -</userinput>
|
||||
Password:
|
||||
&prompt.root; <userinput>cd /usr/home/jru/doc/en_US.ISO8859-1/htdocs</userinput>
|
||||
&prompt.root; <userinput>make install</userinput></screen>
|
||||
</example>
|
||||
|
||||
<para>Veraltete (und nicht mehr verwendete) Dateien werden während
|
||||
der Installation nicht automatisch entfernt. Der folgende Befehl
|
||||
findet (und löscht) alle Dateien im Installationsverzeichnis, die
|
||||
in den letzten drei Tagen nicht aktualisiert wurden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>find <replaceable>/usr/local/www</replaceable> -ctime 3 -delete</userinput></screen>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r43126
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="tools">
|
||||
<title>Die Werkzeuge</title>
|
||||
|
||||
<para>Um die FreeBSD-Dokumentation zu verwalten und in verschiedene
|
||||
Formate zu konvertieren, werden diverse Werkzeuge verwendet. Einige
|
||||
dieser Werkzeuge sind verpflichtend und müssen auf Ihrem System
|
||||
installiert sein, bevor Sie den Beispielen in den folgenden Kapiteln
|
||||
folgen können. Andere sind hingegen optional und dienen dazu,
|
||||
zusätzliche Funktionalität bereitzustellen oder das Erzeugen der
|
||||
Dokumentation zu vereinfachen.</para>
|
||||
|
||||
<sect1 xml:id="tools-required">
|
||||
<title>Verpflichtende Werkzeuge</title>
|
||||
|
||||
<para>Installieren Sie zuerst den Port
|
||||
<filename role="package">textproc/docproj</filename> über die
|
||||
Ports-Sammlung. Dieser <emphasis>Metaport</emphasis> installiert
|
||||
alle verpflichtenden Werkzeuge für die Arbeit an der
|
||||
&os;-Dokumentation. Einige dieser Komponenten werden in den
|
||||
folgenden Abschnitten näher beschrieben.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Die DTDs und die Entitäten</title>
|
||||
|
||||
<para>Das FDP benutzt verschiedene <emphasis>Document Type
|
||||
Definitions</emphasis> (<acronym>DTD</acronym>s) und diverse
|
||||
<acronym>XML</acronym>-Entitätensätze. Diese werden durch den
|
||||
Port <filename role="package">textproc/docproj</filename>
|
||||
automatisch installiert.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><acronym>XHTML</acronym> <acronym>DTD</acronym> (<filename
|
||||
role="package">textproc/xhtml</filename>)</term>
|
||||
|
||||
<listitem>
|
||||
<para><acronym>XHTML</acronym> ist die meistverwendete
|
||||
Auszeichnungssprache des World Wide Web und wird
|
||||
durchgängig für die FreeBSD-Webseite
|
||||
genutzt.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>DocBook <acronym>DTD</acronym> (<filename
|
||||
role="package">textproc/docbook-xml-450</filename>)</term>
|
||||
|
||||
<listitem>
|
||||
<para>DocBook ist als Auszeichnungssprache für
|
||||
technische Dokumentationen entwickelt worden. Ein
|
||||
Großteil der FreeBSD-Dokumentation wird mittels DocBook
|
||||
erstellt.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ISO 8879 entities
|
||||
(<filename role="package">textproc/iso8879</filename>)</term>
|
||||
|
||||
<listitem>
|
||||
<para>Enties des ISO 8879:1986-Standards, die von
|
||||
vielen DTDs benötigt werden. Darin enthalten sind
|
||||
mathematische Symbole, zusätzliche Zeichen, die
|
||||
für auf dem lateinischen beruhende Alphabete
|
||||
benötigt werden sowie griechische Zeichen.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="tools-optional">
|
||||
<title>Optionale Werkzeuge</title>
|
||||
|
||||
<para>Die in diesem Kapitel genannten Programme müssen nicht
|
||||
unbedingt installiert werden. Allerdings können sie die
|
||||
Arbeit an der Dokumentation erleichtern und die Anzahl an
|
||||
möglichen Ausgabeformaten erhöhen.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Software</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><application>JadeTeX</application>,
|
||||
<application>teTeX</application> und Modular DocBook Stylesheets
|
||||
(<filename role="package">print/jadetex</filename>,
|
||||
<filename role="package">print/teTeX</filename> und
|
||||
<filename role="package">textproc/dsssl-docbook-modular</filename>)</term>
|
||||
|
||||
<listitem>
|
||||
<para><application>Jade</application>,
|
||||
<application>teTeX</application> und Modular DocBook
|
||||
Stylesheets werden eingesetzt, um
|
||||
DocBook-Dokumente nach DVI, Postscript und PDF zu
|
||||
konvertieren. Hierfür müssen die
|
||||
<application>JadeTeX</application>-Makros installiert
|
||||
sein.</para>
|
||||
|
||||
<para>Ist nicht geplant, die Dokumente in einem dieser
|
||||
Formate zu erzeugen (wenn also <acronym>XHTML</acronym>
|
||||
und Text ausreichend sind), brauchen Sie diese nicht zu
|
||||
installieren. Dazu deaktivieren Sie diese Option im
|
||||
Konfigurationsbildschirm des Ports <filename
|
||||
role="package">textproc/docproj</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><application>Vim</application>
|
||||
(<filename role="package">editors/vim</filename>)</term>
|
||||
|
||||
<listitem>
|
||||
<para>Ein beliebter Texteditor zur Bearbeitung von
|
||||
<acronym>XML</acronym> und davon abgeleiteten Dokumenten
|
||||
wie DocBook <acronym>XML</acronym>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><application>Emacs</application> oder
|
||||
<application>XEmacs</application>
|
||||
(<filename role="package">editors/emacs</filename> oder
|
||||
<filename role="package">editors/xemacs</filename>)</term>
|
||||
|
||||
<listitem>
|
||||
<para>Beide Texteditoren haben einen speziellen Modus zur
|
||||
Bearbeitung von Dokumenten entsprechend den Vorgaben
|
||||
einer <acronym>XML</acronym> <acronym>DTD</acronym>.
|
||||
Zusätzlich bieten sie
|
||||
Funktionen an, mit denen sich der Tippaufwand reduzieren
|
||||
und Fehlerwahrscheinlichkeit senken lässt.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,509 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1999 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r52692
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="translations">
|
||||
<info><title>Übersetzungen</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Dieses Kapitel enthält die FAQ für die Übersetzung
|
||||
der FreeBSD Dokumentation (FAQ, Handbuch, Artikel, Manualpages und
|
||||
sonstige Dokumente) in andere Sprachen.</para>
|
||||
|
||||
<para>Es beruht <emphasis>sehr</emphasis> stark auf den
|
||||
Übersetzungs-FAQ des FreeBSD German Documentation Projects, die
|
||||
ursprünglich von Frank Gründer
|
||||
<email>elwood@mc5sys.in-berlin.de</email> geschrieben und danach von
|
||||
Bernd Warken <email>bwarken@mayn.de</email> ins Englische
|
||||
übersetzt wurden.</para>
|
||||
|
||||
<para>Diese FAQ wird vom &a.doceng; gepflegt.</para>
|
||||
|
||||
<qandaset>
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Was bedeuten die Abkürzungen <phrase>i18n</phrase>
|
||||
und <phrase>l10n</phrase>?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para><phrase>i18n</phrase> steht für
|
||||
<foreignphrase>internationalization</foreignphrase>
|
||||
(Internationalisierung), <phrase>l10n</phrase> für
|
||||
<foreignphrase>localization</foreignphrase> (Lokalisierung).
|
||||
Es handelt sich dabei um besser handhabbare Abkürzungen
|
||||
dieser Begriffe.</para>
|
||||
|
||||
<para><phrase>i18n</phrase> kann als <quote>i</quote>, gefolgt
|
||||
von 18 Buchstaben, gefolgt von einem <quote>n</quote>, gelesen
|
||||
werden. Analog steht <phrase>l10n</phrase> für
|
||||
<quote>l</quote>, gefolgt von 10 Buchstaben, gefolgt von einem
|
||||
<quote>n</quote>.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Gibt es eigene Mailinglisten für Übersetzer?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Ja. Die verschiedenen Übersetzergruppen haben jeweils
|
||||
eigene Mailinglisten. Genauere Informationen finden Sie in der
|
||||
<link xlink:href="https://www.freebsd.org/docproj/translations.html">
|
||||
Liste der Übersetzungsprojekte</link>. Diese Liste
|
||||
enthält die Mailinglisten und Internetseiten, die von den
|
||||
einzelnen Übersetzungsprojekten betrieben werden. Für
|
||||
allgemeine Diskussionen zur Übersetzung der
|
||||
FreeBSD-Dokumentation gibt es die Mailingliste
|
||||
<email>freebsd-translators@freebsd.org</email>.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Werden noch Übersetzer benötigt?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Ja. Je mehr Leute an der Übersetzung arbeiten, desto
|
||||
schneller wird diese fertig, und umso schneller sind
|
||||
Änderungen im englischen Original auch in den
|
||||
übersetzten Dokumenten vorhanden.</para>
|
||||
|
||||
<para>Sie müsssen kein professioneller Dolmetscher sein, um
|
||||
dabei zu helfen.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Welche Sprachen muss ich dafür kennen/können?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Idealerweise haben Sie gute Kenntnisse in geschriebenem
|
||||
Englisch, außerdem sollten Sie natürlich fit in
|
||||
der Sprache sein, in die Sie übersetzen wollen.</para>
|
||||
|
||||
<para>Englisch ist allerdings nicht unbedingt nötig. Sie
|
||||
könnten beispielsweise auch die FAQ vom Spanischen ins
|
||||
Ungarische übersetzen.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Welche Software wird benötigt?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Es ist sehr empfehlenswert, eine lokale Kopie des FreeBSD
|
||||
Subversion-Repository (als Minimum den Dokumentationsteil)
|
||||
anzulegen. Dazu geben Sie den folgenden Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn checkout https://svn.FreeBSD.org/doc/head/ head</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para><link xlink:href="https://svn.FreeBSD.org/">svn.FreeBSD.org</link>
|
||||
ist ein öffentlicher Server. Überprüfen Sie das <link
|
||||
xlink:href="&url.books.handbook.en;/svn.html#svn-mirrors">Serverzertifikat</link>,
|
||||
bevor Sie erstmals auf den Server zugreifen.</para>
|
||||
</note>
|
||||
|
||||
<note>
|
||||
<para>Damit dieser Befehl funktioniert, muss der Port
|
||||
<package>devel/subversion</package>
|
||||
installiert sein.</para>
|
||||
</note>
|
||||
|
||||
<para>Sie sollten außerdem mit
|
||||
<application>svn</application> vertraut sein. Damit ist es
|
||||
möglich, festzustellen, was sich zwischen einzelnen
|
||||
Versionen eines Dokuments geändert hat.</para>
|
||||
|
||||
<para>Wenn Sie beispielsweise wissen wollen, was sich zwischen
|
||||
den Revisionen <literal>r33733</literal> und
|
||||
<literal>r33734</literal> der Datei
|
||||
<filename>en_US.ISO8859-1/books/fdp-primer/book.xml</filename>
|
||||
geändert hat, geben Sie den folgenden Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn diff -r<replaceable>33733</replaceable>:<replaceable>33734</replaceable> en_US.ISO8859-1/books/fdp-primer/book.xml</userinput></screen>
|
||||
|
||||
<para>Lesen Sie bitte das <link
|
||||
xlink:href="&url.books.handbook;/svn.html">&os; Handbook</link>,
|
||||
um sich darüber zu informieren, wie &os;
|
||||
<application>Subversion</application> einsetzt.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Wie finde ich heraus, ob noch jemand Teile der
|
||||
Dokumentation in die gleiche Sprache übersetzt?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Die <link xlink:href="https://www.FreeBSD.org/docproj/translations.html">
|
||||
Übersetzungsseite </link> des Documentation Projects
|
||||
listet alle Übersetzungs-Teams auf, die derzeit aktiv
|
||||
sind. Arbeitet bereits jemand an der Übersetzung in
|
||||
Ihre Sprache, so kontaktieren Sie dieses Team, damit
|
||||
Dokumente nicht unnötigerweise mehrfach übersetzt
|
||||
werden.</para>
|
||||
|
||||
<para>Wenn Ihre Sprache nicht aufgeführt ist, senden Sie
|
||||
bitte eine E-Mail an das &a.doc;. Vielleicht denkt ja jemand
|
||||
über eine Übersetzung nach, hat sich aber noch nicht
|
||||
dafür entschieden.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Niemand übersetzt in meine Sprache. Was soll ich
|
||||
machen?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Gratulation, Sie haben gerade das <quote>FreeBSD
|
||||
<replaceable>Ihre-Sprache</replaceable> Documentation
|
||||
Translation Project</quote> gestartet. Willkommen.</para>
|
||||
|
||||
<para>Entscheiden Sie zuerst, ob Sie die dafür nötige
|
||||
Zeit zur Verfügung haben. Da Sie als Einziger an der
|
||||
Übersetzung in Ihre Sprache arbeiten, sind Sie dafür
|
||||
verantwortlich, Ihre Arbeit zu veröffentlichen und die
|
||||
Arbeit von Freiwilligen, die Ihnen dabei helfen wollen, zu
|
||||
koordinieren.</para>
|
||||
|
||||
<para>Senden Sie eine E-Mail an die Mailingliste des
|
||||
Documentation Projects, in der Sie bekanntgeben, dass Sie an
|
||||
der Übersetzung der Dokumentation arbeiten, damit die
|
||||
Internetseiten aktualisiert werden können.</para>
|
||||
|
||||
<para>Gibt es in Ihrem Land einen FreeBSD-Spiegelserver, so
|
||||
sollten Sie den dafür Zuständigen kontaktieren und
|
||||
nachfragen, ob er Ihnen Speicherplatz oder E-Mailadressen
|
||||
für Ihr Projekt zur Verfügung stellen würde.</para>
|
||||
|
||||
<para>Danach wählen Sie ein Dokument aus und beginnen
|
||||
mit der Übersetzung. Am besten beginnen Sie mit kleineren
|
||||
Dateien, beispielsweise den FAQ oder einem der Artikel.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Ich habe ein Dokument übersetzt. Wo soll ich es
|
||||
hinschicken?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Das kommt darauf an. Wenn Sie bereits in einem
|
||||
Übersetzer-Team arbeiten (etwa dem japanischen oder dem
|
||||
deutschen Team), dann sollten Sie deren Richtlinien zum Umgang
|
||||
mit neuer Dokumentation folgen, die auf deren Internetseiten
|
||||
beschrieben werden.</para>
|
||||
|
||||
<para>Wenn Sie die einzige Person sind, die an der
|
||||
Übersetzung in eine Sprache arbeitet, oder wenn Sie
|
||||
für ein Übersetzungsprojekt verantwortlich sind,
|
||||
und Ihre Aktualisierungen an das FreeBSD Project
|
||||
übermitteln wollen, sollten Sie Ihre Übersetzungen
|
||||
dorthin senden (lesen Sie dazu auch die nächste
|
||||
Frage).</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Ich arbeite als einziger an der Übersetzung in diese
|
||||
Sprache, wie versende ich meine Übersetzungen?</para>
|
||||
|
||||
<para>oder</para>
|
||||
|
||||
<para>Wir sind ein Übersetzer-Team, und wollen Dokumente
|
||||
versenden, die unsere Mitglieder übersetzt haben.</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Stellen Sie zuerst sicher, dass Ihre Übersetzungen
|
||||
korrekt organisiert sind. Sie sollte sich also im
|
||||
existierenden Dokumentationsbaum befinden, und ohne Fehler
|
||||
bauen lassen.</para>
|
||||
|
||||
<para>Zurzeit wird die FreeBSD Dokumentation unterhalb des
|
||||
Verzeichnisses <filename>head/</filename> gespeichert. Die
|
||||
direkten Unterverzeichnisse werden entsprechend der
|
||||
Sprachkodierung benannt, in der sie geschrieben sind. Diese
|
||||
Kodierung nach ISO639 finden Sie auf einem FreeBSD-System
|
||||
unter <filename>/usr/share/misc/iso639</filename>,
|
||||
vorausgesetzt, das System wurde nach dem 20. Januar 1999
|
||||
gebaut.</para>
|
||||
|
||||
<para>Wenn in Ihrer Sprache mehrere Kodierungen (wie dies etwa
|
||||
für Chinesisch der Fall ist) vorhanden sind, existiert
|
||||
für jede Kodierung ein eigenes Unterverzeichnis.</para>
|
||||
|
||||
<para>Zuletzt existieren auch noch Verzeichnisse für die
|
||||
einzelnen Dokumente.</para>
|
||||
|
||||
<para>Die Verzeichnishierarchie für eine hypothetische
|
||||
schwedische Übersetzung könnte etwa so
|
||||
aussehen:</para>
|
||||
|
||||
<programlisting>head/
|
||||
sv_SE.ISO8859-1/
|
||||
Makefile
|
||||
htdocs/
|
||||
docproj/
|
||||
books/
|
||||
faq/
|
||||
Makefile
|
||||
book.xml</programlisting>
|
||||
|
||||
<para>Bei <literal>sv_SE.ISO8859-1</literal> handelt es sich um
|
||||
den Namen der Übersetzung in der Form
|
||||
<filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable></filename>.
|
||||
Beachten Sie auch, dass zum Bauen der Dokumentation
|
||||
zwei Makefiles notwendig sind.</para>
|
||||
|
||||
<para>Komprimieren Sie Ihre Übersetzungen mit &man.tar.1;
|
||||
und &man.gzip.1; und senden Sie sie an das FreeBSD
|
||||
Project.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd doc</userinput>
|
||||
&prompt.user; <userinput>tar cf swedish-docs.tar sv_SE.ISO8859-1</userinput>
|
||||
&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen>
|
||||
|
||||
<para>Legen Sie das Archiv <filename>swedish-docs.tar.gz</filename>
|
||||
irgendwo ab. Wenn Sie keinen eigenen Webspace haben (etwa weil
|
||||
Ihr Internetprovider Ihnen keinen zur Verfügung stellt),
|
||||
können Sie auch eine E-Mail an das &a.doceng; schicken, um
|
||||
abzuklären, ob Sie die Datei auch als E-Mail schicken
|
||||
können.</para>
|
||||
|
||||
<para>In beiden Fällen sollten Sie mit Bugzilla
|
||||
einen Bericht über den Versand der Dokumentation
|
||||
erstellen. Es ist sehr hilfreich, wenn Sie Ihre
|
||||
Übersetzung vorher korrekturlesen lassen und
|
||||
überprüfen, da es unwahrscheinlich ist, dass
|
||||
der Committer Ihre Sprache sehr gut beherrscht.</para>
|
||||
|
||||
<para>Danach wird jemand (meistens der Documentation Project
|
||||
Manager, derzeit ist dies das &a.doceng;) überprüfen,
|
||||
ob sich Ihre Übersetzungen problemlos bauen lassen. Dabei
|
||||
wird besonders auf folgende Punkte geachtet:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Verwenden alle Dateien RCS-Strings (wie "ID")?</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Arbeitet <command>make all</command> im Verzeichnis
|
||||
<filename>sv_SE.ISO8859-1</filename> korrekt?</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Funktioniert <command>make install</command> ohne
|
||||
Probleme?</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Gibt es dabei Probleme, so wird die Person, die Ihren
|
||||
Beitrag durchsieht, sich wieder an Sie wenden, damit Sie
|
||||
das Problem beheben.</para>
|
||||
|
||||
<para>Treten keine Probleme auf, wird Ihre Übersetzung
|
||||
so rasch als möglich committed.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Kann ich landes- oder sprachspezifische Informationen
|
||||
in meine Übersetzung aufnehmen?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Wir bitten Sie, dies nicht zu tun.</para>
|
||||
|
||||
<para>Nehmen wir an, dass Sie das Handbuch ins Koreanische
|
||||
übersetzen und einen Abschnitt mit
|
||||
Händlerinformationen in das Handbuch aufnehmen
|
||||
wollen.</para>
|
||||
|
||||
<para>Es gibt keinen Grund, warum diese Information nicht auch
|
||||
in der englischen (oder der deutschen, oder der spanischen,
|
||||
oder der japanischen oder der …) Version vorhanden sein
|
||||
sollte. Es ist etwa denkbar, dass sich jemand mit englischer
|
||||
Muttersprache während eines Aufenthalts in Korea eine
|
||||
FreeBSD-Kopie kaufen möchte. Außerdem wird dadurch
|
||||
die weltweite Präsenz von FreeBSD verdeutlicht, was
|
||||
natürlich ebenfalls von Vorteil ist.</para>
|
||||
|
||||
<para>Wenn Sie also länderspezifische Informationen
|
||||
ergänzen wollen, sollten Sie dies zuerst in der englischen
|
||||
Version (über Bugzilla) tun, und die Änderung
|
||||
anschließend in Ihre Sprache übersetzen.</para>
|
||||
|
||||
<para>Vielen Dank.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Wie lassen sich sprachspezifische Zeichen darstellen?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Nicht-ASCII-Zeichen innerhalb der Dokumentation werden
|
||||
durch SGML-Entities dargestellt.</para>
|
||||
|
||||
<para>Diese bestehen aus: Kaufmännischem Und (&),
|
||||
den Namen der Entity, und einem Strichpunkt (;).</para>
|
||||
|
||||
<para>Die Namen der Entities sind in ISO8879 definiert, die als
|
||||
Port <package>textproc/iso8879</package>
|
||||
installiert werden kann.</para>
|
||||
|
||||
<para>Dazu einige Beispiele:</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Entity</segtitle>
|
||||
|
||||
<segtitle>Darstellung</segtitle>
|
||||
|
||||
<segtitle>Beschreibung</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&eacute;</seg>
|
||||
<seg>é</seg>
|
||||
<seg>Kleines <quote>e</quote> mit (akutem) Akzent</seg>
|
||||
</seglistitem>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&Eacute;</seg>
|
||||
<seg>É</seg>
|
||||
<seg>Großes <quote>E</quote> mit (akutem) Akzent</seg>
|
||||
</seglistitem>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&uuml;</seg>
|
||||
<seg>ü</seg>
|
||||
<seg>Kleines Umlaut-<quote>u</quote></seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<para>Nachdem Sie den iso8879-Port installiert haben, ist die
|
||||
vollständige Liste unter
|
||||
<filename>/usr/local/share/xml/iso8879</filename>
|
||||
vorhanden.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Wie spricht man den Leser an?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>In englischen Dokumenten wird der Leser mit
|
||||
<quote>you</quote> angesprochen, es wird nicht zwischen
|
||||
formeller/informeller Anrede unterschieden, wie dies in
|
||||
manchen anderen Sprachen der Fall ist.</para>
|
||||
|
||||
<para>Wenn Sie in eine Sprache übersetzen, die diese
|
||||
Unterscheidung trifft, verwenden Sie die Form, die auch in
|
||||
den anderen technischen Dokumentationen dieser Sprache
|
||||
verwendet wird. Für deutsche Versionen ist dies die
|
||||
dritte Person Plural (<quote>Sie</quote>).</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Muss ich zusätzliche Informationen in meine
|
||||
Übersetzungen einbauen?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Ja.</para>
|
||||
|
||||
<para>Der Header der englischen Version jedes Textes sieht in
|
||||
etwa so aus:</para>
|
||||
|
||||
<programlisting><!--
|
||||
The FreeBSD Documentation Project
|
||||
|
||||
$FreeBSD: head/en_US.ISO8859-1/books/faq/book.xml 38674 2012-04-14 13:52:52Z $</programlisting>
|
||||
|
||||
<para>Das exakte Aussehen kann unterschiedlich sein, die Zeile
|
||||
mit $FreeBSD$ sowie der Ausdruck <literal>The
|
||||
FreeBSD Documentation Project</literal> sind allerdings immer
|
||||
enthalten. Beachten Sie, dass die Zeile mit $FreeBSD
|
||||
von Subversion automatisch expandiert wird, daher sollte an dieser
|
||||
Stelle in Ihren neuen Dokumenten nur
|
||||
<literal>$FreeBSD$</literal> stehen.</para>
|
||||
|
||||
<para>Ihre übersetzten Dokumente sollten eine eigene
|
||||
$FreeBSD$-Zeile enthalten. Zusätzlich
|
||||
sollten Sie die Zeile mit <literal>The FreeBSD Documentation
|
||||
Project</literal> in <literal>The FreeBSD
|
||||
<replaceable>Ihre-Sprache-hier-einfügen</replaceable>
|
||||
Documentation Project</literal>.</para>
|
||||
|
||||
<para>Außerdem sollten Sie eine weitere Zeile
|
||||
einfügen, die festlegt, auf welcher Version des englischen
|
||||
Originals Ihre Übersetzung basiert.</para>
|
||||
|
||||
<para>Die spanische Version dieser Datei könnte etwa so
|
||||
beginnen:</para>
|
||||
|
||||
<programlisting><!--
|
||||
The FreeBSD Spanish Documentation Project
|
||||
|
||||
$FreeBSD: head/es_ES.ISO8859-1/books/faq/book.xml 38826 2012-05-17 19:12:14Z hrs $
|
||||
Original revision: r38674
|
||||
--></programlisting>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandaset>
|
||||
</chapter>
|
||||
|
|
@ -1,202 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 2013 Warren Block
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: 45384
|
||||
-->
|
||||
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="working-copy">
|
||||
<title>Die Arbeitskopie</title>
|
||||
|
||||
<para>Die <emphasis>Arbeitskopie</emphasis> ist eine Kopie des &os;
|
||||
Dokumentationsrepositories, die Sie auf Ihren lokalen Computer
|
||||
heruntergeladen haben. Änderungen an der Dokumentation werden
|
||||
in der Arbeitskopie durchgeführt und getestet. Patches für
|
||||
Änderungen im Hauptrepository werden aus der Arbeitskopie
|
||||
erzeugt, nachdem Sie Ihre Änderungen durchgeführt haben.</para>
|
||||
|
||||
<para>Eine komplette Kopie des Dokumentationsbaums ist etwa 700 Megabyte
|
||||
groß. Damit Sie die Dokumentation auch in verschiedenen Formaten
|
||||
testen und bauen können, sollten Sie für das Repository mindestens
|
||||
1 Gigabyte an freiem Speicherplatz bereitstellen.</para>
|
||||
|
||||
<para>Die Dateien der &os;-Dokumentation werden mit <link
|
||||
xlink:href="&url.books.handbook;/svn.html"><application>Subversion</application></link>
|
||||
verwaltet. Falls es auf Ihrem System noch nicht vorhanden ist,
|
||||
wird dieses Werkzeug vom Port <package>textproc/docproj</package>
|
||||
automatisch installiert.</para>
|
||||
|
||||
<sect1 xml:id="working-copy-doc-and-src">
|
||||
<title>Die Dokumentation und Manualpages</title>
|
||||
|
||||
<para>Die &os;-Dokumentation besteht nicht nur aus Büchern und
|
||||
Artikeln. Auch die Manualpages für alle Befehle und
|
||||
Konfigurationsdateien sind Teil des <acronym>FDP</acronym>.
|
||||
Die Dokumentation ist dabei auf zwei Repositories verteilt:
|
||||
<literal>doc</literal> für Bücher und Artikel sowie
|
||||
<literal>base</literal> für das Betriebssystem und Manualpages.
|
||||
Um Manualpages zu bearbeiten, muss zusätzlich das Repository
|
||||
<literal>base</literal> ausgecheckt werden.</para>
|
||||
|
||||
<para>Ein Repository kann multiple Versionen der Dokumentatation
|
||||
enthalten. Änderungen werden in der Regel aber immer nur an
|
||||
der aktuellen Version durchgeführt, die als
|
||||
<literal>head</literal> bezeichnet wird.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-choosing-mirror">
|
||||
<title>Einen Spiegelserver wählen</title>
|
||||
|
||||
<para>Um die Geschwindigkeit zu erhöhen (und die Downloadzeit zu
|
||||
reduzieren), wählen Sie bitte aus der Liste der <link
|
||||
xlink:href="&url.books.handbook;/svn.html#svn-mirrors">Subversion
|
||||
Spiegelserver</link> einen Server in Ihrer Nähe. Ersetzen Sie
|
||||
dazu in den folgenden Beispielen die <acronym>URL</acronym>
|
||||
<replaceable>https://svn0.us-west.FreeBSD.org/</replaceable>
|
||||
durch die des von Ihnen gewählten Spiegelservers.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-choosing-directory">
|
||||
<title>Ein Verzeichnis für die Arbeitskopie wählen</title>
|
||||
|
||||
<para>Die &os;-Dokumentation wird üblicherweise unter
|
||||
<filename>/usr/doc/</filename>, Quellcode (inklusive Manualpages)
|
||||
unter <filename>/usr/src/</filename> installiert. Es ist
|
||||
sinnvoll, Arbeitskopien in einen anderen Ordner auszuchecken,
|
||||
um potentielle Konflikte mit bereits in diesen Ordnern vorhandenen
|
||||
Dokumenten zu vermeiden. Die folgenden Beispiele verwenden daher
|
||||
die Verzeichnisse <filename>~/doc</filename> sowie
|
||||
<filename>~/src</filename>. Bei beiden Verzeichnissen handelt
|
||||
es sich um Unterverzeichnisse des home-Verzeichnisses des
|
||||
jeweiligen Benutzers.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-checking-out">
|
||||
<title>Die Arbeitskopie auschecken</title>
|
||||
|
||||
<para>Der Download einer Arbeitskopie wird als
|
||||
<emphasis>checkout</emphasis> bezeichnet und erfolgt über den
|
||||
Befehl <command>svn checkout</command>. Das folgende Beispiel
|
||||
checkt die aktuelle Version der Dokumentatation
|
||||
(<literal>head</literal>) aus dem Hauptdokumentationsbaum aus:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-west.FreeBSD.org/doc/head</replaceable> <replaceable>~/doc</replaceable></userinput></screen>
|
||||
|
||||
<para>Das Auschecken des Quellcodes für die Arbeit an den Manualpages
|
||||
erfolgt analog:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-west.FreeBSD.org/base/head</replaceable> <replaceable>~/src</replaceable></userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-updating">
|
||||
<title>Die Arbeitskopie aktualisieren</title>
|
||||
|
||||
<para>Die Dokumente und Dateien im &os;-Repository ändern sich
|
||||
beinahe täglich. Änderungen werden durchgeführt und committed.
|
||||
Bereits kurz nach einem Checkout kann es daher Unterschiede
|
||||
zwischen Ihrer Arbeitskopie und dem &os;-Hauptrepository geben.
|
||||
Um eine lokale Arbeitskopie auf den Stand des Hauptrepository zu
|
||||
aktualisieren, wenden Sie den Befehl
|
||||
<command>svn update</command> auf das Verzeichnis an, in dem sich
|
||||
Ihre lokale Arbeitskopie befindet:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn update <replaceable>~/doc</replaceable></userinput></screen>
|
||||
|
||||
<para>Gewöhnen Sie sich an, <command>svn update</command> auszuführen,
|
||||
bevor Sie Dokumente bearbeiten. Sonst kann es passieren, dass
|
||||
das Dokument in der Zwischenzeit bearbeitet wurde, Ihre lokale
|
||||
Kopie diese Änderungen aber noch nicht enthält. Es ist deutlich
|
||||
einfacher, die aktuelle Version zu bearbeiten, als Ihre älteren
|
||||
lokalen Änderungen mit den aktuellen Änderungen des Repositories
|
||||
zu kombininieren.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-revert">
|
||||
<title>Änderungen an der Arbeitskopie zurücknehmen</title>
|
||||
|
||||
<para>Manchmal ist es notwendig, durchgeführte Änderungen
|
||||
zurück zu nehmen oder überhaupt von vorne zu beginnen. Änderungen
|
||||
an einer Datei können über den Befehl <command>svn revert</command>
|
||||
<quote>zurückgesetzt</quote> werden (die Datei ist danach wieder in
|
||||
ihrer ursprünglichen Version vorhanden). Wollen Sie beispielsweise
|
||||
Ihre Änderungen an der Datei <filename>chapter.xml</filename>
|
||||
zurücksetzen, um die unbearbeitete Originalversion zu erhalten,
|
||||
geben Sie den folgenden Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn revert chapter.xml</userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-making-diff">
|
||||
<title>Eine Differenzdatei erstellen</title>
|
||||
|
||||
<para>Nachdem Sie eine oder mehrere Dateien bearbeitet haben,
|
||||
müssen Sie die Unterschiede zwischen Ihrer lokalen Arbeitskopie
|
||||
und dem &os;-Repository in einer Datei sammeln, bevor Sie Ihre
|
||||
Änderungen einreichen können. Diese Dateien werden als
|
||||
<emphasis>diff</emphasis>-Dateien bezeichnet und können durch
|
||||
den Befehl <command>svn diff</command> erzeugt werden:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd <replaceable>~/doc</replaceable></userinput>
|
||||
&prompt.user; <userinput>svn diff > <replaceable>doc-fix-spelling.diff</replaceable></userinput></screen>
|
||||
|
||||
<para>Geben Sie der Datei einen Namen, die den Inhalt beschreibt.
|
||||
Die Differenzdatei im Beispiel enthält Rechtschreibkorrekturen
|
||||
für den gesamten Dokumentationsbaum.</para>
|
||||
|
||||
<para>Wenn Sie Ihre Änderungen über das Webformular
|
||||
<quote><link xlink:href="https://bugs.FreeBSD.org/bugzilla/enter_bug.cgi">Submit a &os;
|
||||
problem report</link></quote> einreichen wollen, fügen Sie bitte
|
||||
die Erweiterung <filename>.txt</filename> an den Dateinamen an,
|
||||
damit das Formular sicher erkennt, dass Sie gewöhnlichen Text
|
||||
hochladen wollen.</para>
|
||||
|
||||
<para>Vorsicht: <command>svn diff</command> protokolliert ALLE
|
||||
Änderungen im aktuellen Verzeichnis (und dessen Unterverzeichnissen).
|
||||
Wollen Sie einige dieser Änderungen noch nicht einreichen,
|
||||
müssen Sie angeben, für welche Dateien Sie eine Differenzdatei
|
||||
erstellen wollen.</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd <replaceable>~/doc</replaceable></userinput>
|
||||
&prompt.user; <userinput>svn diff <replaceable>disks/chapter.xml printers/chapter.xml</replaceable> > <replaceable>disks-printers.diff</replaceable></userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="working-copy-subversion-references">
|
||||
<title>Referenzen zu <application>Subversion</application></title>
|
||||
|
||||
<para>Diese Beispiele haben Ihnen den prinzipiellen Umgang mit
|
||||
<application>Subversion</application> gezeigt. Weitere
|
||||
detaillierte Informationen finden Sie im
|
||||
<link xlink:href="http://svnbook.red-bean.com/">Subversion Book</link>
|
||||
sowie in der <link
|
||||
xlink:href="http://subversion.apache.org/docs/">Subversion documentation</link>.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,517 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 1998 Nik Clayton, All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r40542
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="writing-style">
|
||||
<info><title>Der Schreibstil</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<para>Damit von verschiedenen Autoren geschriebene Dokumente
|
||||
zueinander konsistent bleiben, gibt es einige Richtlinien, denen
|
||||
Autoren bei der Erstellung ihrer Dokumente folgen müssen.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>Verwendung von amerikanischem Englisch</term>
|
||||
|
||||
<listitem>
|
||||
<para>Es gibt mehrere englische Varianten und damit verbunden
|
||||
verschiedene Schreibweisen für das gleiche Wort. Wo dies
|
||||
der Fall ist, ist die amerikanische Schreibweise zu verwenden.
|
||||
Man schreibt daher <quote>color</quote> statt
|
||||
<quote>colour</quote>, <quote>rationalize</quote> statt
|
||||
<quote>rationalise</quote>, und so weiter.</para>
|
||||
|
||||
<note>
|
||||
<para>Die Verwendung von Britischem Englisch ist akzeptabel,
|
||||
wenn es sich um einen neuen Beitrag handelt, solange die
|
||||
gesamte Schreibweise eines Dokuments einheitlich bleibt.
|
||||
Alle anderen Dokumente wie Bücher, Internetseiten,
|
||||
Manualpages und andere müssen allerdings
|
||||
amerikanisches Englisch verwenden.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Vermeiden von Zusammenziehungen</term>
|
||||
|
||||
<listitem>
|
||||
<para>Verwenden Sie keine Zusammenziehungen, sondern schreiben
|
||||
Sie die Phrase immer aus. Die Schreibweise
|
||||
<quote>Don't use contractions.</quote> wäre also nicht
|
||||
korrekt.</para>
|
||||
|
||||
<para>Die Vermeidung von Zusammenziehungen sorgt für einen
|
||||
etwas formelleren Ton, ist präziser und erleichtert die
|
||||
Arbeit der Übersetzer.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Nutzung von Kommas bei Aufzählungen</term>
|
||||
|
||||
<listitem>
|
||||
<para>Bei einer Aufzählung innerhalb eines Absatzes sollten
|
||||
Sie zwischen den einzelnen Begriffen Kommas setzen. Zwischen
|
||||
dem letzten und vorletzten Begriff setzen Sie ein Komma und
|
||||
das Wort <quote>und</quote>.</para>
|
||||
|
||||
<para>Dazu ein Beispiel:</para>
|
||||
|
||||
<blockquote>
|
||||
<para>Das ist eine Liste von ein, zwei und drei Dingen.</para>
|
||||
</blockquote>
|
||||
|
||||
<para>Handelt es sich dabei um eine Liste von drei Begriffen,
|
||||
<quote>ein</quote>, <quote>zwei</quote>, und
|
||||
<quote>drei</quote>, oder um eine Liste von zwei Begriffen,
|
||||
<quote>ein</quote> und <quote>zwei und drei</quote>?</para>
|
||||
|
||||
<para>Es ist daher besser, explizit ein serielles Komma zu
|
||||
setzen:</para>
|
||||
|
||||
<blockquote>
|
||||
<para>Das ist eine Liste von ein, zwei, und drei Dingen.</para>
|
||||
</blockquote>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Vermeidung von redundanten Begriffen</term>
|
||||
|
||||
<listitem>
|
||||
<para>Versuchen Sie, keine redundanten Phrasen zu verwenden.
|
||||
Dies gilt insbesondere für die Ausdrücke
|
||||
<quote>der Befehl</quote>, <quote>die Datei</quote>, und
|
||||
<quote>man command</quote>.</para>
|
||||
|
||||
<para>Die folgenden zwei Beispiele veranschaulichen dies
|
||||
für Befehle. Bevorzugt wird die Schreibweise des
|
||||
zweiten Beispiels.</para>
|
||||
|
||||
<informalexample>
|
||||
<para>Verwenden Sie den Befehl <command>svn</command>, um
|
||||
Ihre Quellen zu aktualisieren.</para>
|
||||
</informalexample>
|
||||
|
||||
<informalexample>
|
||||
<para>Verwenden Sie <command>svn</command>, um Ihre Quellen
|
||||
zu aktualisieren.</para>
|
||||
</informalexample>
|
||||
|
||||
<para>Analoges gilt für Dateinamen, wobei wiederum die
|
||||
zweite Schreibweise bevorzugt wird.</para>
|
||||
|
||||
<informalexample>
|
||||
<para>… in der Datei
|
||||
<filename>/etc/rc.local</filename>…</para>
|
||||
</informalexample>
|
||||
|
||||
<informalexample>
|
||||
<para>… in
|
||||
<filename>/etc/rc.local</filename>…</para>
|
||||
</informalexample>
|
||||
|
||||
<para>Auch für Manualpages gibt es zwei Schreibweisen.
|
||||
Auch hier wird die zweite Schreibweise bevorzugt (das
|
||||
zweite Beispiel nutzt das Tag
|
||||
<tag>citerefentry</tag>).</para>
|
||||
|
||||
<informalexample>
|
||||
<para>Weitere Informationen finden Sie in
|
||||
<command>man csh</command>.</para>
|
||||
</informalexample>
|
||||
|
||||
<informalexample>
|
||||
<para>Weitere Informationen finden Sie in &man.csh.1;.</para>
|
||||
</informalexample>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Zwei Leerzeichen am Satzende</term>
|
||||
|
||||
<listitem>
|
||||
<para>Verwenden Sie immer zwei Leerzeichen am Ende eines Satzes.
|
||||
Dadurch erhöht sich die Lesbarkeit des Textes und die
|
||||
Nutzung von Werkzeugen wie <application>Emacs</application>
|
||||
wird vereinfacht.</para>
|
||||
|
||||
<para>Nun könnte man behaupten, dass ein Punkt vor einem
|
||||
Großbuchstaben das Satzende markiert. Vor allem bei
|
||||
Namen, beispielsweise bei <quote>Jordan K. Hubbard</quote>,
|
||||
ist dies allerdings nicht der Fall. Wir haben hier ein
|
||||
großes <literal>K</literal>, gefolgt von einem Punkt
|
||||
und einem Leerzeichen. Dennoch handelt es sich nicht um
|
||||
den Anfang eines neuen Satzes.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Eine ausführliche Beschreibung des korrekten Schreibstils
|
||||
finden Sie im Buch <link xlink:href="http://www.bartleby.com/141/">Elements
|
||||
of Style</link> von William Strunk.</para>
|
||||
|
||||
<sect1 xml:id="writing-style-guide">
|
||||
<title>Anleitungen für einen korrekten Schreibstil</title>
|
||||
|
||||
<para>Damit die Quellen der Dokumentation selbst dann konsistent
|
||||
bleiben, wenn viele Leute daran arbeiten, folgen Sie bitte den
|
||||
folgenden Konventionen.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Groß- und Kleinschreibung</title>
|
||||
|
||||
<para>Tags werden in Kleinbuchstaben geschrieben, Sie schreiben
|
||||
also <tag>para</tag>, <emphasis>nicht</emphasis>
|
||||
<tag>PARA</tag>.</para>
|
||||
|
||||
<para>Text im SGML-Kontext wird hingegen in Großbuchstaben
|
||||
geschrieben. Man schreibt also
|
||||
<literal><!ENTITY…></literal> und
|
||||
<literal><!DOCTYPE…></literal>,
|
||||
<emphasis>nicht</emphasis>
|
||||
<literal><!entity…></literal> und
|
||||
<literal><!doctype…></literal>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Abkürzungen (Akronyme)</title>
|
||||
|
||||
<para>Abkürzungen sollten bei ihrer ersten Verwendung immer
|
||||
ausgeschrieben werden. Man schreibt also beispielsweise
|
||||
<quote>Network Time Protocol (<acronym role="Network Time Protocol">NTP</acronym>)</quote>. Nachdem
|
||||
die Abkürzung definiert wurde, sollte hingegen nur noch die
|
||||
Abkürzung verwendet werden, es sei denn, die Verwendung des
|
||||
gesamten Begriffes ergibt im jeweiligen Kontext mehr Sinn.
|
||||
Im Normalfall werden Akronyme in jedem Dokument nur einmal definiert.
|
||||
Es ist allerdings auch möglich, sie für jedes Kapitel
|
||||
erneut zu definieren.</para>
|
||||
|
||||
<para>Die drei ersten Vorkommen der Abkürzung sollten in
|
||||
<tag>acronym</tag>-Tags eingeschlossen werden.
|
||||
Zusätzlich wird ein <literal>role</literal>-Attribut mit dem
|
||||
vollständigen Begriff definiert. Dadurch kann ein Link
|
||||
zu einem Glossar erzeugt werden. Außerdem wird der
|
||||
komplette Begriff angezeigt, wenn man den Mauscursor über
|
||||
die Abkürzung bewegt.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Einrückung</title>
|
||||
|
||||
<para>Die erste Zeile jeder Datei hat die Einrückung 0, und
|
||||
zwar <emphasis>unabhängig</emphasis> von der Einrückung
|
||||
der Datei, in der sie enthalten ist.</para>
|
||||
|
||||
<para>Öffnende Tags erhöhen die Einrückung um zwei
|
||||
Leerzeichen. Schließende Tags verringern sie hingegen um
|
||||
zwei Leerzeichen. Ein Block von acht Leerzeichen wird durch
|
||||
einen Tabulator ersetzt. Ein solcher Block beginnt immer am
|
||||
Anfang einer Zeile, führende Leerzeichen sind hier also
|
||||
nicht erlaubt. Vermeiden Sie außerdem Leerzeichen am
|
||||
Zeilenende. Der Inhalt von Elementen wird um zwei Leerzeichen
|
||||
eingerückt, wenn er sich über mehr als eine Zeile
|
||||
erstreckt.</para>
|
||||
|
||||
<para>Der Quellcode dieses Abschnitts sieht daher in etwa so
|
||||
aus:</para>
|
||||
|
||||
<programlisting><![CDATA[+--- Einrückung (Spalte) 0
|
||||
V
|
||||
<chapter>
|
||||
<title>...</title>
|
||||
|
||||
<sect1>
|
||||
<title>...</title>
|
||||
|
||||
<sect2>
|
||||
<title>Einrückung</title>
|
||||
|
||||
<para>Die erste Zeile jeder Datei hat die Einrückung 0, und
|
||||
zwar <emphasis>unabhängig</emphasis> von der Einrückung
|
||||
der Datei, in der sie enthalten ist.</para>
|
||||
|
||||
...
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>]]></programlisting>
|
||||
|
||||
<para>Wenn Sie <application>Emacs</application> oder
|
||||
<application>XEmacs</application> verwenden, um Ihre Dateien zu
|
||||
bearbeiten, sollte der <literal>sgml-mode</literal> automatisch
|
||||
geladen werden, und die lokalen
|
||||
<application>Emacs</application>-Variablen am Ende einer Datei
|
||||
sollten diesen Stil erzwingen.</para>
|
||||
|
||||
<para>Verwenden Sie <application>Vim</application>, sollten Sie
|
||||
Ihren Editor so konfigurieren:</para>
|
||||
|
||||
<programlisting>augroup sgmledit
|
||||
autocmd FileType sgml set formatoptions=cq2l " Special formatting options
|
||||
autocmd FileType sgml set textwidth=70 " Wrap lines at 70 columns
|
||||
autocmd FileType sgml set shiftwidth=2 " Automatically indent
|
||||
autocmd FileType sgml set softtabstop=2 " Tab key indents 2 spaces
|
||||
autocmd FileType sgml set tabstop=8 " Replace 8 spaces with a tab
|
||||
autocmd FileType sgml set autoindent " Automatic indentation
|
||||
augroup END</programlisting>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Die korrekte Schreibweise von Tags</title>
|
||||
|
||||
<sect3>
|
||||
<title>Einrücken von Tags</title>
|
||||
|
||||
<para>Tags, die die gleiche Einrückung aufweisen wie das
|
||||
vorangegangene Tag, sollten durch eine Leerzeile getrennt
|
||||
werden, Tags mit unterschiedlicher Einrückung hingegen
|
||||
nicht:</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><![CDATA[<article lang='de'>
|
||||
<articleinfo>
|
||||
<title>NIS</title>
|
||||
|
||||
<pubdate>October 1999</pubdate>
|
||||
|
||||
<abstract>
|
||||
<para>...
|
||||
...
|
||||
...</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>...</title>
|
||||
|
||||
<para>...</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>...</title>
|
||||
|
||||
<para>...</para>
|
||||
</sect1>
|
||||
</article>]]></programlisting>
|
||||
</informalexample>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Gliederung von Tags</title>
|
||||
|
||||
<para>Tags wie zum Beispiel <tag>itemizedlist</tag>, die
|
||||
immer weitere Tags einschließen und selbst keine Zeichen
|
||||
enthalten, befinden sich immer in einer eigenen Zeile.</para>
|
||||
|
||||
<para>Tags wie <tag>para</tag> und
|
||||
<tag>term</tag> können selbst Text enthalten,
|
||||
und ihr Inhalt beginnt direkt nach dem Tag, und zwar
|
||||
<emphasis>in der gleichen Zeile</emphasis>.</para>
|
||||
|
||||
<para>Dies gilt analog, wenn diese zwei Tag-Arten wieder
|
||||
geschlossen werden.</para>
|
||||
|
||||
<para>Eine Vermischung dieser Tags kann daher zu Problemen
|
||||
führen.</para>
|
||||
|
||||
<para>Wenn auf ein Start-Tag, das keine Zeichen enthalten kann,
|
||||
unmittelbar ein Tag folgt, das andere Tags einschließen
|
||||
muss, um Zeichen darzustellen, befinden sich diese Tags auf
|
||||
verschiedenen Zeilen. Das zweite Tag wird dabei
|
||||
entsprechend eingerückt.</para>
|
||||
|
||||
<para>Wenn ein Tag, das Zeichen enthalten kann, direkt nach
|
||||
einem Tag, das keine Zeichen enthalten kann, geschlossen wird,
|
||||
befinden sich beide Tags in der gleichen Zeile.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Markup-Änderungen (<foreignphrase>white space
|
||||
changes</foreignphrase>)</title>
|
||||
|
||||
<para>Wenn Sie Änderungen committen, <emphasis>committen Sie
|
||||
niemals Inhalts- und Formatierungsänderungen zur gleichen
|
||||
Zeit</emphasis>.</para>
|
||||
|
||||
<para>Nur auf diese Weise können die Übersetzungs-Teams
|
||||
sofort erkennen, welche Änderungen durch Ihren Commit
|
||||
verursacht wurden, ohne darüber nachdenken zu müssen,
|
||||
ob sich der Inhalt einer Zeile oder nur deren Formatierung
|
||||
geändert hat.</para>
|
||||
|
||||
<para>Nehmen wir an, Sie haben zwei Sätze in einen Absatz
|
||||
eingefügt. Daher sind zwei Zeilen nun länger als
|
||||
80 Zeichen. Zuerst committen Sie Ihre inhaltliche
|
||||
Änderung inklusive der zu langen Zeilen. Im nächsten
|
||||
Commit korrigieren Sie den Zeilenumbruch und geben in der
|
||||
Commit-Mitteilung an, dass es sich nur um Änderung am
|
||||
Markup handelt (<foreignphrase>whitespace-only
|
||||
change</foreignphrase>), und Übersetzer den Commit daher
|
||||
ignorieren können.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Vermeiden von fehlerhaften Zeilenumbrüchen
|
||||
(Nutzung von <foreignphrase>non-breaking space</foreignphrase>)</title>
|
||||
|
||||
<para>Vermeiden Sie Zeilenumbrüche an Stellen, an denen diese
|
||||
hässlich aussehen oder es erschweren, einem Satz zu
|
||||
folgen. Zeilenumbrüche hängen von der Breite des
|
||||
gewählten Ausgabemedium ab. Insbesondere bei der Verwendung
|
||||
von Textbrowsern können schlecht formatierte Absätze
|
||||
wie der folgende entstehen:</para>
|
||||
|
||||
<literallayout class="monospaced">Data capacity ranges from 40 MB to 15
|
||||
GB. Hardware compression …</literallayout>
|
||||
|
||||
<para>Die Nutzung der Entity <literal>&nbsp;</literal>
|
||||
verhindert Zeilenumbrüche zwischen zusammengehörenden
|
||||
Teilen. Verwenden Sie <foreignphrase>non-breaking
|
||||
spaces</foreignphrase> daher in den folgenden Fällen:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Zwischen Zahlen und Einheiten:</para>
|
||||
<programlisting><![CDATA[57600 bps]]></programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Zwischen Programmnamen und Versionsnummern:</para>
|
||||
<programlisting><![CDATA[FreeBSD 4.7]]></programlisting>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Zwischen mehreren zusammengehörenden Wörtern
|
||||
(Vorsicht bei Namen, die aus mehr als 3-4 Wörtern
|
||||
bestehen, wie <quote>The FreeBSD Brazilian Portuguese
|
||||
Documentation Project</quote>):</para>
|
||||
<programlisting><![CDATA[Sun Microsystems]]></programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="writing-style-word-list">
|
||||
<title>Häufig verwendete Wörter</title>
|
||||
|
||||
<para>Die folgende Liste enthält einige Beispiele, wie
|
||||
bestimmte Wörter innerhalb des FreeBSD
|
||||
Documentation Projects geschrieben werden. Finden Sie ein
|
||||
gesuchtes Wort hier nicht, sehen Sie bitte in der <link xlink:href="http://www.oreilly.com/oreilly/author/stylesheet.html">
|
||||
Liste häufig verwendeter Wörter von
|
||||
O'Reilly</link> nach.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>2.2.X</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>4.X-STABLE</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>CD-ROM</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>DoS <emphasis>(Denial of Service)</emphasis> </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ports Collection</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>IPsec</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Internet</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>MHz</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Soft Updates</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Unix</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>disk label</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>email</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>file system</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>manual page</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>mail server</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>name server</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>null-modem</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>web server</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Copyright (c) 2013 Warren Block
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
||||
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code (SGML DocBook) must retain the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer as the first lines of this file unmodified.
|
||||
|
||||
2. Redistributions in compiled form (transformed to other DTDs,
|
||||
converted to PDF, PostScript, RTF and other formats) must reproduce
|
||||
the above copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf:
|
||||
-->
|
||||
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="xhtml-markup">
|
||||
<title>XHMTL Markup (noch nicht übersetzt)</title>
|
||||
|
||||
<para>Dieses Kapitel ist noch nicht übersetzt. Lesen Sie daher bitte
|
||||
das <link
|
||||
xlink:href="&url.books.fdp-primer.en;/xhtml-markup.html">Original in
|
||||
englischer Sprache</link>. Wenn Sie bei der Übersetzung
|
||||
mithelfen wollen, schicken Sie bitte eine E-Mail
|
||||
an &a.de.translators;.</para>
|
||||
</chapter>
|
||||
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue