Update to r44016:
Introduction to using Poudriere Reviewed by: bcr Differential Revision: https://reviews.freebsd.org/D5740
This commit is contained in:
parent
542138d47b
commit
b6f54a3243
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48469
1 changed files with 207 additions and 1 deletions
|
@ -5,7 +5,7 @@
|
|||
|
||||
$FreeBSD$
|
||||
$FreeBSDde: de-docproj/books/handbook/ports/chapter.xml,v 1.111 2011/12/19 17:13:33 bcr Exp $
|
||||
basiert auf: r43886
|
||||
basiert auf: r44016
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ports">
|
||||
<info><title>Installieren von Anwendungen: Pakete und Ports</title>
|
||||
|
@ -1596,6 +1596,212 @@ Thee deinstallation will free 229 kB
|
|||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="ports-poudriere">
|
||||
<title>Pakete mit <application>Poudriere</application>
|
||||
bauen</title>
|
||||
|
||||
<para><application>Poudriere</application> ist ein unter der
|
||||
<acronym>BSD</acronym>-Lizenz stehendes Werkzeug zum Erstellen
|
||||
und Testen von &os;-Paketen. Dieses Programm nutzt &os; Jails,
|
||||
um die Pakete in einer isolierten Umgebung zu bauen. Diese
|
||||
Jails können verwendet werden, um Pakete für andere Versionen
|
||||
von &os; zu bauen, oder um auf einem &arch.amd64;-System Pakete
|
||||
für i386 zu bauen. Sobald die Pakete gebaut sind, haben sie das
|
||||
gleiche Format wie auf den offiziellen Spiegeln. Die Pakete
|
||||
können dann mit &man.pkg.8; oder anderen
|
||||
Paketverwaltungswerkzeugen benutzt werden.</para>
|
||||
|
||||
<para><application>Poudriere</application> wird über das Paket
|
||||
oder den Port <package>ports-mgmt/poudriere</package>
|
||||
installiert. Die Installation beinhaltet eine
|
||||
Beispielkonfiguration in
|
||||
<filename>/usr/local/etc/poudriere.conf.sample</filename>.
|
||||
Kopieren Sie diese Datei nach
|
||||
<filename>/usr/local/etc/poudriere.conf</filename>. Bearbeiten
|
||||
Sie dann die kopierte Datei, um die Konfiguration
|
||||
anzupassen.</para>
|
||||
|
||||
<para>Obwohl <acronym>ZFS</acronym> für
|
||||
<application>poudriere</application> nicht zwingend erforderlich
|
||||
ist, so hat die Nutzung doch einige Vorteile. Wird
|
||||
<acronym>ZFS</acronym> eingesetzt, muss in
|
||||
<filename>/usr/local/etc/poudriere.conf</filename> die Variable
|
||||
<varname>ZPOOL</varname> definiert, und die Variable
|
||||
<varname>FREEBSD_HOST</varname> auf einen nahe gelegenen
|
||||
Spiegel gesetzt werden. Die Definition von
|
||||
<varname>CCACHE_DIR</varname> erlaubt die Verwendung von
|
||||
<package>devel/ccache</package>, um die Bauzeit für häufig
|
||||
kompilierten Code verkürzen. Es kann vorteilhaft sein, die
|
||||
<application>poudriere</application>-Datasets in einem separaten
|
||||
Verzeichnis auf <filename>/poudriere</filename> einzuhängen.
|
||||
Die Werte der anderen Konfigurationsvariablen sind in der Regel
|
||||
angemessen und brauchen nicht geändert werden.</para>
|
||||
|
||||
<para>Die Anzahl der Kerne im Prozessor wird verwendet um zu
|
||||
bestimmen, wie viele Bauprozesse parallel ausgeführt werden
|
||||
sollen. Stellen Sie ausreichend virtuellen Speicher bereit,
|
||||
entweder in Form von <acronym>RAM</acronym> oder als
|
||||
Swap-Speicher. Ist der virtuelle Speicher aufgebraucht, bricht
|
||||
der Bauprozess ab und die Jails stürzen ab, was zu seltsamen
|
||||
Fehlermeldungen führt.</para>
|
||||
|
||||
<sect2 xml:id="poudriere-initialization">
|
||||
<title>Jails und Ports-Sammlung initialisieren</title>
|
||||
|
||||
<para>Nach der Konfiguration muss
|
||||
<application>poudriere</application> initialisiert werden,
|
||||
damit es eine Jail mit der benötigten Ports-Sammlung startet.
|
||||
Geben Sie mit <option>-j</option> den Namen der Jail und mit
|
||||
<option>-v</option> die gewünschte &os;-Version an. Auf
|
||||
&os;/&arch.amd64;-Systemen kann die Architektur mit dem
|
||||
Schalter <option>-a</option> und <literal>i386</literal> oder
|
||||
<literal>amd64</literal> gesetzt werden. Der voreingestellte
|
||||
Wert für die Architektur können Sie sich mit
|
||||
<command>uname</command> anzeigen lassen.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>poudriere jail -c -j <replaceable>10amd64</replaceable> -v <replaceable>10.0-RELEASE</replaceable></userinput>
|
||||
====>> Creating 10amd64 fs... done
|
||||
====>> Fetching base.txz for FreeBSD 10.0-RELEASE amd64
|
||||
/poudriere/jails/10amd64/fromftp/base.txz 100% of 59 MB 1470 kBps 00m42s
|
||||
====>> Extracting base.txz... done
|
||||
====>> Fetching src.txz for FreeBSD 10.0-RELEASE amd64
|
||||
/poudriere/jails/10amd64/fromftp/src.txz 100% of 107 MB 1476 kBps 01m14s
|
||||
====>> Extracting src.txz... done
|
||||
====>> Fetching games.txz for FreeBSD 10.0-RELEASE amd64
|
||||
/poudriere/jails/10amd64/fromftp/games.txz 100% of 865 kB 734 kBps 00m01s
|
||||
====>> Extracting games.txz... done
|
||||
====>> Fetching lib32.txz for FreeBSD 10.0-RELEASE amd64
|
||||
/poudriere/jails/10amd64/fromftp/lib32.txz 100% of 14 MB 1316 kBps 00m12s
|
||||
====>> Extracting lib32.txz... done
|
||||
====>> Cleaning up... done
|
||||
====>> Jail 10amd64 10.0-RELEASE amd64 is ready to be used</screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>poudriere ports -c -p <replaceable>local</replaceable></userinput>
|
||||
====>> Creating local fs... done
|
||||
====>> Extracting portstree "local"...
|
||||
Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found.
|
||||
Fetching public key from ec2-eu-west-1.portsnap.freebsd.org... done.
|
||||
Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done.
|
||||
Fetching snapshot metadata... done.
|
||||
Fetching snapshot generated at Tue Feb 11 01:07:15 CET 2014:
|
||||
94a3431f0ce567f6452ffde4fd3d7d3c6e1da143efec76100% of 69 MB 1246 kBps 00m57s
|
||||
Extracting snapshot... done.
|
||||
Verifying snapshot integrity... done.
|
||||
Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done.
|
||||
Fetching snapshot metadata... done.
|
||||
Updating from Tue Feb 11 01:07:15 CET 2014 to Tue Feb 11 16:05:20 CET 2014.
|
||||
Fetching 4 metadata patches... done.
|
||||
Applying metadata patches... done.
|
||||
Fetching 0 metadata files... done.
|
||||
Fetching 48 patches.
|
||||
(48/48) 100.00% done.
|
||||
done.
|
||||
Applying patches...
|
||||
done.
|
||||
Fetching 1 new ports or files... done.
|
||||
/poudriere/ports/tester/CHANGES
|
||||
/poudriere/ports/tester/COPYRIGHT
|
||||
|
||||
[...]
|
||||
|
||||
Building new INDEX files... done.</screen>
|
||||
|
||||
<para><application>poudriere</application> kann auf einem
|
||||
einzelnen Rechner Ports mit mehreren Konfigurationen
|
||||
bauen, in mehreren Jails und aus unterschiedlichen
|
||||
Ports-Sammlungen. Spezifische Konfigurationen für diese
|
||||
Kombinationen werden <emphasis>Sets</emphasis>
|
||||
genannt. Lesen Sie den Abschnitt CUSTOMIZATION in
|
||||
&man.poudriere.8; für weitere Einzelheiten nach der
|
||||
Installation von <package>port-mgmt/poudriere</package> oder
|
||||
<package>ports-mgmt/poudriere-devel</package>.</para>
|
||||
|
||||
<para>Die hier gezeigte Konfiguration verwendet eine einzelne
|
||||
Jail-, Port- und Set-spezifische
|
||||
<filename>make.conf</filename> in
|
||||
<filename>/usr/local/etc/poudriere.d</filename>. Der
|
||||
verwendete Dateiname in diesem Beispiel wird aus einer
|
||||
Kombination von Jailnamen, Portnamen und Setnamen zusammen
|
||||
gesetzt:
|
||||
<filename><replaceable>10amd64-local-workstation</replaceable>-make.conf</filename>.
|
||||
Die <filename>make.conf</filename> des Systems und diese neue
|
||||
Datei werden verwendet, um die <filename>make.conf</filename>
|
||||
für die Jail zu erzeugen.</para>
|
||||
|
||||
<para>Die zu bauenden Pakete werden in
|
||||
<filename><replaceable>10amd64-local-workstation</replaceable>-pkglist</filename>
|
||||
eingetragen:</para>
|
||||
|
||||
<programlisting>editors/emacs
|
||||
devel/git
|
||||
ports-mgmt/pkg
|
||||
...</programlisting>
|
||||
|
||||
<para>Die Optionen und Abhängigkeiten für die Ports werden wie
|
||||
folgt konfiguriert:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>poudriere options -j <replaceable>10amd64</replaceable> -p <replaceable>local</replaceable> -z <replaceable>workstation</replaceable> -f <replaceable>10amd64-local-workstation-pkglist</replaceable></userinput></screen>
|
||||
|
||||
<para>Schließlich werden die Pakete gebaut und ein
|
||||
Paket-Repository erstellt:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>poudriere bulk -j <replaceable>10amd64</replaceable> -p <replaceable>local</replaceable> -z <replaceable>workstation</replaceable> -f <replaceable>10amd64-local-workstation-pkglist</replaceable></userinput></screen>
|
||||
|
||||
<para><keycombo
|
||||
action="simul"><keycap>Ctrl</keycap><keycap>t</keycap></keycombo>
|
||||
zeigt den aktuellen Status des Baus an.
|
||||
<application>Poudriere</application> speichert zudem Dateien
|
||||
in <filename>/poudriere/logs/bulk/jailname</filename>. Diese
|
||||
Dateien kann ein Webserver nutzen, um Informationen über den
|
||||
Bau anzuzeigen.</para>
|
||||
|
||||
<para>Die Pakete stehen jetzt im
|
||||
<application>poudriere</application> Repository für die
|
||||
Installation zur Verfügung.</para>
|
||||
|
||||
<para>Weitere Informationen zu
|
||||
<application>poudriere</application> finden Sie in
|
||||
&man.poudriere.8; und unter <link
|
||||
xlink:href="https://github.com/freebsd/poudriere/wiki"></link>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Konfiguration des pkg-Clients für das Poudriere
|
||||
Repository</title>
|
||||
|
||||
<para>Obwohl es möglich ist ein eigenes Repository zusammen mit
|
||||
dem offiziellen Repository zu nutzen, ist es manchmal
|
||||
sinnvoll das offizielle Repository zu deaktivieren. Dazu
|
||||
wird eine Konfigurationsdatei erstellt, welche die offizielle
|
||||
Konfigurationsdatei überschreibt. Erzeugen Sie dazu
|
||||
<filename>/usr/local/etc/pkg/repos/FreeBSD.conf</filename>
|
||||
mit dem folgenden Inhalt:</para>
|
||||
|
||||
<programlisting>FreeBSD: {
|
||||
enabled: no
|
||||
}</programlisting>
|
||||
|
||||
<para>Am einfachsten ist es, das poudriere Repository über
|
||||
<acronym>HTTP</acronym> zur Verfügung zu stellen. Setzen Sie
|
||||
einen Webserver auf, der die Dateien des Paketverzeichnisses
|
||||
ausliefert, zum Beispiel
|
||||
<filename>/usr/local/poudriere/data/packages/<replaceable>10amd64</replaceable></filename>.
|
||||
<filename>10amd64</filename> bezeichnet dabei den Namen des
|
||||
Baus.</para>
|
||||
|
||||
<para>Wenn die <acronym>URL</acronym> des Paket Repositories
|
||||
<literal>http://pkg.example.com/10amd64</literal> ist, dann
|
||||
sollte die Konfiguration des Repositories in
|
||||
<filename>/usr/local/etc/pkg/repos/custom.conf</filename>
|
||||
wie folgt aussehen:</para>
|
||||
|
||||
<programlisting>custom: {
|
||||
url: "<replaceable>http://pkg.example.com/10amd64</replaceable>",
|
||||
enabled: yes,
|
||||
}</programlisting>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="ports-nextsteps">
|
||||
<title>Nach der Installation</title>
|
||||
|
||||
|
|
Loading…
Reference in a new issue