Update to r40153:

Import pkgng documentation.

Reviewed by:	bcr
This commit is contained in:
Bjoern Heidotting 2015-09-19 16:40:33 +00:00
parent 8ab79e4e2b
commit 4c27dd7997
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=47428

View file

@ -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: r40082
basiert auf: r40153
-->
<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>
@ -645,6 +645,423 @@ docbook =
</sect2>
</sect1>
<sect1 xml:id="pkgng-intro">
<title>Benutzen von <application>pkgng</application> zur
Verwaltung von Binärpaketen</title>
<para><application>pkgng</application> ist ein verbesserter
Ersatz für die traditionellen
<application>pkg_install</application> Paketverwaltungswerkzeuge
von &os;. Es bietet viele Funktionen, um den Umgang mit
Binärpaketen schneller und einfacher zu gestalten.
<application>pkgng</application> wurde erstmalig
im August 2012 veröffentlicht.</para>
<para><application>pkgng</application> ist kein Ersatz für die
Portverwaltungswerkzeuge wie
<package>ports-mgmt/portmaster</package> oder
<package>ports-mgmt/portupgrade</package>. Während
<package>ports-mgmt/portmaster</package> und
<package>ports-mgmt/portupgrade</package> Drittanbieter-Software
sowohl aus Binärpaketen als auch aus den Ports installieren
kann, so installiert <application>pkgng</application>
ausschließlich Binärpakete.</para>
<sect2 xml:id="pkgng-initial-setup">
<title>Erste Schritte mit
<application>pkgng</application></title>
<para>&os;&nbsp;9.1 und nachfolgende Versionen enthalten ein
&quot;Bootstrap&quot;-Programm für
<application>pkgng</application>. Das Bootstrap-Programm
lädt und installiert <application>pkgng</application>.</para>
<para>Um das Bootstrap Programm zu starten, geben Sie folgendes
ein:</para>
<screen>&prompt.root; <userinput>/usr/sbin/pkg</userinput></screen>
<para>Für ältere Versionen von &os; muss
<application>pkgng</application> zunächst aus der
Ports-Sammlung oder als Paket installiert werden.</para>
<para>Um <application>pkgng</application> aus den Ports zu
installieren, geben Sie folgendes ein:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/pkg</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Um das Paket zu installieren, geben Sie folgendes
ein:</para>
<screen>&prompt.root; <userinput>pkg_add -r pkg</userinput></screen>
<note>
<para>&os;&nbsp;7.<replaceable>X</replaceable> und
&os;&nbsp;8.0 enthalten keine Unterstützung für
<application>pkgng</application>.</para>
</note>
<para>Bestehende &os; Installationen benötigen eine
Konvertierung der
<application>pkg_install</application>-Paketdatenbank in das
neue Format. Um die Paketdatenbank zu konvertieren, geben Sie
folgendes ein:</para>
<screen>&prompt.root; <userinput>pkg2ng</userinput></screen>
<para>Auf neu installieren Systemen, auf denen noch keine
Software von Drittanbietern installiert wurde, kann dieser
Schritt entfallen.</para>
<important>
<para>Die Konvertierung ist unwiderruflich. Sobald die
Paketdatenbank in das Format von
<application>pkgng</application> umgewandelt wurde, sollten
die traditionellen <application>pkg_install</application>
Werkzeuge nicht mehr benutzt werden.</para>
</important>
<note>
<para>Bei der Konvertierung der Paketdatenbank können Fehler
ausgegeben werden, wenn die Inhalte auf die neue Version
umgewandelt werden. Im Allgemeinen können diese Fehler
ignoriert werden. Wenn <application>pkg2ng</application>
fertig ist, wird eine Liste von Drittanbieter-Software
ausgegeben, die nicht erfolgreich konvertiert werden konnte.
Diese Anwendungen müssen manuell neu installiert
werden.</para>
</note>
<para>Um sicherzustellen, dass die &os; Ports-Sammlung neue
Pakete mit <application>pkgng</application> und nicht mit
<application>pkg_install</application> registriert, muss in
&os;&nbsp;10.<replaceable>X</replaceable> und früheren
Versionen folgende Zeile in
<filename>/etc/make.conf</filename> hinzugefügt werden:</para>
<programlisting>WITH_PKGNG= yes</programlisting>
</sect2>
<sect2 xml:id="pkgng-pkg-conf">
<title>Konfiguration der <application>pkgng</application>
Umgebung</title>
<para>Das <application>pkgng</application>
Paketverwaltungssystem benutzt für die meisten Operationen ein
Paket-Repository. Der Speicherort des Paket-Repositories wird
in <filename>/usr/local/etc/pkg.conf</filename> oder der
Umgebungsvariablen <envar>PACKAGESITE</envar>
definiert.</para>
<para>Weitere Konfigurationsoptionen für
<application>pkgng</application> sind in &man.pkg.conf.5;
beschrieben.</para>
</sect2>
<sect2 xml:id="pkgng-basic-usage">
<title>Grundlegende Bedienung von
<application>pkgng</application></title>
<para>Informationen zur Bedienung von
<application>pkgng</application> ist in der Manualpage
&man.pkg.8; verfügbar. Alternativ kann <command>pkg</command>
ohne zusätzliche Argumente aufgerufen werden.</para>
<para>Jedes Argument von <application>pkgng</application> ist in
seiner spezifischen Manualpage dokumentiert. Um
beispielsweise die Manualpage von
<command>pkg install</command> zu lesen, geben Sie einen der
folgenden Befehle ein:</para>
<screen>&prompt.root; <userinput>pkg help install</userinput></screen>
<screen>&prompt.root; <userinput>man pkg-install</userinput></screen>
<sect3 xml:id="pkgng-pkg-info">
<title>Mit <application>pkgng</application> Informationen über
installierte Pakete anzeigen</title>
<para>Informationen über bereits installierte Pakete können
mit <command>pkg info</command> angezeigt werden. Dabei
wird die Version und die Beschreibung aller Pakete
ausgegeben.</para>
<para>Informationen zu einem bestimmten Paket können wie folgt
angezeigt werden:</para>
<screen>&prompt.root; <userinput>pkg info <replaceable>paketname</replaceable></userinput></screen>
<para>Um zu ermitteln welche Version von
<application>pkgng</application> installiert ist, geben Sie
folgendes ein:</para>
<screen>&prompt.root; <userinput>pkg info pkg</userinput>
pkg-1.0.2 New generation package manager</screen>
</sect3>
<sect3 xml:id="pkgng-installing-deinstalling">
<title>Installation und Deinstallation von Paketen mit
<application>pkgng</application></title>
<para>In der Regel werden Benutzer von &os; Binärpakete wie
folgt installieren:</para>
<screen>&prompt.root; <userinput>pkg install <replaceable>paketname</replaceable></userinput></screen>
<para><command>pkg install</command> benutzt das in
<xref linkend="pkgng-pkg-conf"/> erwähnte Repository.
Im Gegensatz dazu benutzt &man.pkg-add.8; kein Repository,
oder eine definierte <envar>PACKAGESITE</envar>, so dass
Abhängigkeiten nicht ordnungsgemäß aufgelöst und fehlende
Abhängigkeiten nicht von entfernten Systemen
heruntergeladen werden. Dieser Abschnitt beschreibt die
Bedienung von <command>pkg install</command>. Informationen
zur Bedienung von <command>pkg add</command> finden Sie in
&man.pkg-add.8;.</para>
<para>Zusätzliche Binärpakete können mit
<command>pkg intall</command> installiert werden. Um
beispielsweise <application>curl</application> zu
installieren:</para>
<screen>&prompt.root; <userinput>pkg install curl</userinput>
Updating repository catalogue
Repository catalogue is up-to-date, no need to fetch fresh copy
The following packages will be installed:
Installing ca_root_nss: 3.13.5
Installing curl: 7.24.0
The installation will require 4 MB more space
1 MB to be downloaded
Proceed with installing packages [y/N]: <userinput>y</userinput>
ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00
curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Installing ca_root_nss-3.13.5... done
Installing curl-7.24.0... done</screen>
<para>Das neue Paket und jedes weitere Paket, das als
Abhängigheit installiert wurde, ist in der Liste der
installierten Pakete zu sehen:</para>
<screen>&prompt.root; <userinput>pkg info</userinput>
ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project
curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
pkg-1.0.2 New generation package manager</screen>
<para>Wird ein Paket nicht mehr benötigt, kann es mit
<command>pkg delete</command> entfernt werden. Wenn
beispielsweise <application>curl</application> nicht mehr
benötigt wird:</para>
<screen>&prompt.root; <userinput>pkg delete curl</userinput>
The following packages will be deleted:
curl-7.24.0_1
The deletion will free 3 MB
Proceed with deleting packages [y/N]: <userinput>y</userinput>
Deleting curl-7.24.0_1... done</screen>
</sect3>
<sect3 xml:id="pkgng-upgrading">
<title>Installierte Pakete mit
<application>pkgng</application> aktualisieren</title>
<para>Pakete die nicht mehr aktuell sind, können mit
<command>pkg version</command> gefunden werden.
&man.pkg-version.8; nutzt zur Identifikation der
Paketversionen die lokale Ports-Sammlung, falls diese
instlliert ist. Ansonsten wird dazu das entfernte
Repository benutzt.</para>
<para>Pakete können mit <application>pkgng</application> auf
neue Versionen aktualisiert werden. Wenn eine neue Version
von <application>curl</application> veröffentlicht wurde,
kann das lokale Paket auf die neue Version aktualisiert
werden:</para>
<screen>&prompt.root; <userinput>pkg upgrade</userinput>
Updating repository catalogue
repo.txz 100% 297KB 296KB/s 296KB/s 00:00
The following packages will be upgraded:
Upgrading curl: 7.24.0 -> 7.24.0_1
1 MB to be downloaded
Proceed with upgrading packages [y/N]: <userinput>y</userinput>
curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Upgrading curl from 7.24.0 to 7.24.0_1... done</screen>
</sect3>
<sect3 xml:id="pkgng-auditing">
<title>Installierte Pakete mit
<application>pkgng</application> auditieren</title>
<para>Gelegentlich werden Sicherheitslücken in einer
Software innerhalb der Ports-Sammlung entdeckt.
<application>pkgng</application> besitzt ein eingebautes
Auditing, was mit dem Paket
<package>ports-mgmt/portaudit</package> vergleichbar ist.
Um die auf dem System installierte Software zu prüfen, geben
Sie folgenden Befehl ein:</para>
<screen>&prompt.root; <userinput>pkg audit -F</userinput></screen>
</sect3>
</sect2>
<sect2 xml:id="pkgng-advanced-usage">
<title>Fortgeschrittene Arbeiten mit
<application>pkgng</application></title>
<sect3 xml:id="pkgng-autoremove">
<title>Automatisches Entfernen von nicht mehr benötigten
Abhängigkeiten mit <application>pkgng</application></title>
<para>Das Entfernen eines Pakets kann möglicherweise unnötige
Abhängigkeiten hinterlassen, wie im obigen Beispiel
<package>ca_root_nss</package>. Solche Pakete sind zwar
noch installiert, aber keine weiteren Pakete hängen mehr von
ihnen ab. Unnötige Pakete, die als Abhängigkeit von anderen
Paketen installiert wurden, können automatisch erfasst und
entfernt werden:</para>
<screen>&prompt.root; <userinput>pkg autoremove</userinput>
Packages to be removed:
ca_root_nss-3.15.5
The autoremoval will free 723 kB
Proceed with autoremoval of packages [y/N]: <userinput>y</userinput>
Deinstalling ca_root_nss-3.13.5... done</screen>
</sect3>
<sect3 xml:id="pkgng-backup">
<title>Sicherung der <application>pkgng</application>
Datenbank</title>
<para>Im Gegensatz zum alten
<application>pkg_install</application>
Paketverwaltungssystem beinhaltet
<application>pkgng</application> einen eigenen Mechanismus
zur Sicherung der Paketdatenbank. Um den Inhalt der
Datenbank manuell zu sichern, geben Sie folgendes
ein:</para>
<screen>&prompt.root; <userinput>pkg backup -d <replaceable>pkgng.db</replaceable></userinput></screen>
<note>
<para>Ersetzen Sie den Dateinamen
<replaceable>pkgng.db</replaceable> durch einen geeigneten
Dateinamen.</para>
</note>
<para>Zusätzlich verfügt <application>pkgng</application> über
ein &man.periodic.8;-Skript, das automatisch eine tägliche
Sicherung der Paketdatenbank erstellt, wenn in
&man.periodic.conf.5;
<literal>daily_backup_pkgng_enable</literal> auf
<literal>YES</literal> gesetzt ist.</para>
<tip>
<para>Um <application>pkg_install</application> daran zu
hindern, ebenfalls eine Sicherung der Paketdatenbank zu
erstellen, muss in &man.periodic.conf.5;
<literal>daily_backup_pkgdb_enable</literal> auf
<literal>NO</literal> gesetzt werden.</para>
</tip>
<para>Um den Inhalt einer früheren Paketdatenbank
wiederherzustellen, geben Sie folgendes ein:</para>
<screen>&prompt.root; <userinput>pkg backup -r <replaceable>/path/to/pkgng.db</replaceable></userinput></screen>
</sect3>
<sect3 xml:id="pkgng-clean">
<title>Alte Pakete mit <application>pkgng</application>
entfernen</title>
<para>Standardmäßig speichert <application>pkgng</application>
Pakete in einem Cache-Verzeichnis, welches in
&man.pkg.conf.5; in der Variablen
<envar>PKG_CACHEDIR</envar> definiert wird. Beim Upgrade
der Pakete mit <command>pkg upgrade</command>, werden die
alten Versionen der Pakete nicht automatisch
entfernt.</para>
<para>Um veraltete Pakete zu entfernen, geben Sie folgendes
ein:</para>
<screen>&prompt.root; <userinput>pkg clean</userinput></screen>
</sect3>
<sect3 xml:id="pkgng-set">
<title>Manipulation der <application>pkgng</application> Paket
Metadaten</title>
<para>Bei Software aus der &os; Ports-Sammlung kann es
vorkommen, dass die Hauptversionsnummer geändert wird. Im
Gegensatz zu <application>pkg_install</application> hat
<application>pkgng</application> ein eingebautes Kommando,
um die Quelle eines Pakets zu aktualisieren. Wenn zum
Beispiel <package>lang/php5</package> ursprünglich die
Version <literal>5.3</literal> hatte, nun aber in
<package>lang/php53</package> umbenannt wurde, um die
Version <literal>5.4</literal> zu integrieren, dann hätte
<application>pkg_install</application> zusätzliche Software,
wie beispielsweise <package>ports-mgmt/portmaster</package>
benötigt, um die Quelle des Pakets in der Paketdatenbank
zu aktualisieren.</para>
<para>Bei <package>ports-mgmt/portmaster</package> und
<package>ports-mgmt/portupgrade</package> unterscheidet sich
die Ausgabe bei der Auflistung von neuen und alten
Versionen. Für <application>pkgng</application> lautet die
Syntax:</para>
<screen>&prompt.root; <userinput>pkg set -o <replaceable>category/oldport</replaceable>:<replaceable>category/newport</replaceable></userinput></screen>
<para>Um die Quelle des Pakets für das obige Beispiel zu
ändern, geben Sie folgendes ein:</para>
<screen>&prompt.root; <userinput>pkg set -o lang/php5:lang/php53</userinput></screen>
<para>Ein weiteres Beispiel:
Um <package>lang/ruby18</package> auf
<package>lang/ruby19</package> zu aktualisieren, geben Sie
folgendes ein:</para>
<screen>&prompt.root; <userinput>pkg set -o lang/ruby18:lang/ruby19</userinput></screen>
<para>In diesem letzten Beispiel wird die Quelle der
Bibliotheken von <filename>libglut</filename> von
<package>graphics/libglut</package> auf
<package>graphics/freeglut</package> geändert:</para>
<screen>&prompt.root; <userinput>pkg set -o graphics/libglut:graphics/freeglut</userinput></screen>
<note>
<para>Bei dem Wechsel einer Paketquelle ist es in den
meisten Fällen notwendig, die Pakete neu zu installieren,
welche von dem Paket abhängig sind, welches seine
Paketquelle geändert hat. Um eine Neuinstallation von
abhängigen Paketen zu erzwingen, führen Sie folgenden
Befehl aus:</para>
<screen>&prompt.root; <userinput>pkg install -Rf <replaceable>graphics/freeglut</replaceable></userinput></screen>
</note>
</sect3>
</sect2>
</sect1>
<sect1 xml:id="ports-using">
<title>Benutzen der Ports-Sammlung</title>