From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Andere Sprachen
Deutsch ; English ; français ;
Einleitung:
Mock ist ein einfach zu verwendender Paketersteller, welcher es dir ermöglicht Pakete in einer sauberen Container Umgebung zu erstellen. Es unterstützt aktuell Mageia (Mageia 6 und höher), Fedora, RHEL/CentOS, openSUSE Leap (openSUSE Leap 15.0 und höher) und openSUSE Tumbleweed als Ziel-Distributionen zum bauen von Paketen.

Installation und Einrichtung

  • Installiere mock und mock-mageia-configs:
  # dnf install mock mock-mageia-configs # Wenn DNF verwendet wird
  # urpmi mock mock-mageia-configs # Wenn urpmi verwendet wird
  • Füge deinen Benutzer der Gruppe 'mock' hinzu:
  # usermod -a -G mock <benutzername>
  • Erstelle eine neue Gruppe:
  $ newgrp mock

Alternativ kannst du statt newgrp zu verwenden dich aus dem System abmelden und erneut anmelden um den gleichen Effekt zu erzielen.

Bauen von Paketen mit Mock

Mock kann zum erstellen von Paketen für die gleiche Host-Architektur verwendet werden, sowie für andere kompatible Architekturen. Als Bespiel kann ein i586 Paket auf einem x86_64 Host erstellt werden.

Falls du ein Paket von einem Quellpaket für Mageia 6 x86_64 erstellen möchtest, führe einfach den folgenden Befehl aus:

 mock --root mageia-6-x86_64 --rebuild </pfad/zum/paket.src.rpm> --resultdir </pfad/wohin/das/erstellte_paket/geschriebenwerdensoll>

Falls du mit den Quellen und einer spec Datei beginnst, möchtest du möglicherweise mock dafür verwenden, um auch das Quellpaket zu generieren:

 mock --root mageia-6-x86_64 --buildsrpm --spec </pfad/zum/paket.spec> --sources </pfad/zum/quellverzeichnis> --resultdir </pfad/wohin/das/erstellte_paket/geschriebenwerdensoll>

Beachte, dass die Verwendung von "--resultdir" optional ist und wenn es nicht verwendet wird, wird das voreingestellte Verzeichnis, "/var/lib/mock/root-name/result", verwendet.

Um für i586 System ein Paket zu bauen, wechsel einfach von x86_64 auf i586 und es wird funktionieren!

Mock unterstützt auch nicht-native Architekturen (wie z.B. armv7hl und aarch64) und wird transparent mit Emulation umgehen, solange qemu-user-static installiert ist. Verwenden Sie einfach die richtige --root die auf die gewünschte Architektur verweist, und es wird einfach funktionieren!

Bauen einer Serie von Paketen mit Mockchain

Mockchain ist ein Werkzeug, welches dir ermöglicht eine Serie an Quellpaketen nacheinander zu bauen. Die Verwendung ist sehr einfach:

 mockchain --root mageia-6-x86_64 </pfad/zu/paket1.src.rpm> </pfad/zu/paket2.src.rpm> ...

Es wird einige zufällige Verzeichnisse erstellen, um die Pakete zu bauen und das Ergebnis als Bildschirmausgabe anzeigen, so dass du hinterher weißt, wo sich diese befinden, wenn diese fertig sind.

Verwendung von Paketen, die nicht in den Mageia Repositories enthalten sind

Oft hat die Erstellung eines Pakets vorangehende Paketabhängigkeiten, die noch nicht in den offiziellen Repositories sind. Hierfür sind zwei Schritte notwendig, einer für die Paketintegration und der zweite für den eigentlichen Build, der die vorherigen Pakete verwendet:

mock -r mageia-8-x86_64 --install </path/to/package1.rpm> </path/to/package2.rpm> ... 
mock --no-clean -r mageia-8-x86_64 --source SOURCES --spec SPECS/<mon paquet>.spec

Bauen von Pakete unter Verwendung von tainted oder nonfree

Falls du Pakete bauen möchtest die unter tainted oder nonfree eingeordnet werden, füge "-tainted" oder "-nonfree" im root-Namen hinzu.

Als Beispiel um ein Paket von einem Quellpaket für Mageia 6 x86_64 mit tainted Paketen zu bauen, führe einfach folgenden Befehl aus:

 mock --root mageia-6-x86_64-tainted --rebuild </pfad/zu/paket.src.rpm> --resultdir </pfad/wohin/das/erstellte_paket/geschriebenwerdensoll>

Bauen von Paketen, mit Cauldron als Ziel

Falls du Pakete bauen möchtest die Cauldron als Ziel haben, wechsel die Veröffentlichungsversion auf "cauldron".

Als Beispiel um ein Paket von einem Quellpaket für Mageia Cauldron x86_64 zu bauen, führe einfach folgenden Befehl aus:

 mock --root mageia-cauldron-x86_64 --rebuild </pfad/zu/paket.src.rpm> --resultdir </pfad/wohin/das/erstellte_paket/geschriebenwerdensoll>

Individuelle Konfiguration für Ihre Bedürfnisse

Sie können einige Einstellungen vornehmen um Mock an Ihre Bedürfnisse oder Ihren Rechner anzupassen. Zu diesem Zweck können Sie eine Konfigurationsdatei ~/.config/mock.cfg erstellen.

Eine Standardkonfiguration kann aus /usr/share/doc/mock/site-defaults.cfg als Dokumentation kopiert werden.

Hier sind einige Beispiele:

# Arbeitsverzeichnisse für mock
config_opts['basedir'] = '/var/lib/mock/'
config_opts['cache_topdir'] = '/var/cache/mock'
# 3 Kerne in der Kompressionsphase verwenden. Ersetzen Sie T3 durch T<n>, wobei <n> die Anzahl der verfügbaren Kerne ist.
config_opts['macros']['%_binary_payload'] = 'w19T3.zstdio'

Dokumentation

Zurück zum Portal der Paketbauer