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. |
Contents
- 1 Installation und Einrichtung
- 2 Bauen von Paketen mit Mock
- 3 Bauen einer Serie von Paketen mit Mockchain
- 4 Verwendung von Paketen, die nicht in den Mageia Repositories enthalten sind
- 5 Bauen von Pakete unter Verwendung von tainted oder nonfree
- 6 Bauen von Paketen, mit Cauldron als Ziel
- 7 Individuelle Konfiguration für Ihre Bedürfnisse
- 8 Dokumentation
Installation und Einrichtung
- Installiere
mock
undmock-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'