UUGRN:Jails/uug fbsd9: Unterschied zwischen den Versionen
Rabe (Diskussion | Beiträge) K (Rabe verschob die Seite UUGRN:Jails/shd fbsd9 nach UUGRN:Jails/uug fbsd9: shd/uug) |
Rabe (Diskussion | Beiträge) (Aktueller Stand zum Buildsystem) |
||
Zeile 1: | Zeile 1: | ||
− | {{fbsd9.uugrn.org}} ist ein Infrastruktur-Jail für FreeBSD spezifische Aufgaben | + | {{fbsd9.uugrn.org}} ist ein Infrastruktur-Jail für FreeBSD spezifische Aufgaben. |
{{Navigationsleiste Systeme}} | {{Navigationsleiste Systeme}} | ||
__TOC__ | __TOC__ | ||
Zeile 5: | Zeile 5: | ||
== Zweck == | == Zweck == | ||
− | + | * Daily updates von FreeBSD-Source (/freebsd/upstream/src/) | |
− | * | + | * Daily updates fon FreeBSD-Ports (/freebsd/upstream/ports/) |
− | * | + | * Daily Vanilla Image (make buildworl -> tarball) |
− | * Package- | + | * Package-Buildsystem |
− | * | + | * Jail-Flavour-Builds |
+ | * Images (=tarballs) bauen | ||
+ | * Veröffentlichung aller Build-Ergebnisse unter /freebsd/ bzw. http://freebsd.uugrn.lan/ | ||
+ | * Upload von Distfiles und Packages nach http://ftp.uugrn.org/ | ||
− | |||
− | |||
− | |||
− | + | == Tägliche Updates == | |
− | == | + | Jeden Tag um 03:30 Uhr wird ein Script ausgeführt, welcher folgende Tasks erledigt: |
− | + | ||
− | -- | + | ;sourcen updaten: ''svn update'' in http://freebsd.uugrn.lan/upstream/src/9.1-RELEASE/ bzw. /freebsd/upstream/src/9.1-RELEASE/ |
+ | ;sourcen als tarball: tar von /freebsd/upstream/src/9.1-RELEASE/ nach /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-src.tar / http://freebsd.uugrn.lan/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-src.tar | ||
+ | ;ports updaten: '''portsnap''' in /freebsd/upstream/ports/ / http://freebsd.uugrn.lan/upstream/ports/ | ||
+ | ;ports als tarball: tar von /freebsd/upstream/ports/ in /freebsd/upstream/images/ports.tar / http://freebsd.uugrn.lan/upstream/images/ports.tar | ||
+ | ;vanilla image aus aktuellen sourcen erzeugen: | ||
+ | : '''make buildworld installworld distribtion''' in /freebsd/upstream/src/9.1-RELEASE/ http://freebsd.uugrn.lan/upstream/src/9.1-RELEASE/ | ||
+ | : und einpacken als /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar http://freebsd.uugrn.lan/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar | ||
+ | : '''falls''' /freebsd/upstream/src/9.1-RELEASE/UPDATING neuer als /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar | ||
+ | ;uugrn image aus aktuellem vanilla image bauen: | ||
+ | :* vanilla image entpacken | ||
+ | :* überflüssige Verzeichnisse entfernen | ||
+ | :* Anlegen von /alternatives/, /data/ports/ | ||
+ | :* konfigurieren und patchen von /etc/motd, /etc/resolv.conf, /etc/profile, /etc/rc.conf, /etc/periodic.conf, /etc/localtime, /etc/mail/, /etc/crontab, /etc/login.conf, | ||
+ | :* root-Passwort non-empty setzen | ||
+ | :* alles einpacken unter /freebsd/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar oder http://freebsd.uugrn.lan/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar | ||
+ | |||
+ | == Package-Builds == | ||
+ | Package-Builds erzeugen für ausgewählte Ports passende Binär-Packages basierend auf den aktuellen Ports. Jeder Build wird dabei bei Bedarf mit einem Script (/build/tools/new_build.sh) in ein komplett eigenständiges Build-Verzeichnis gebootstrappt. Das Buildverzeichnis liegt unter /build/YYYYMMDDHHMMSS/. | ||
+ | |||
+ | Das Buildverzeichnis enthält eine Kopie der aktuellen Buildscripte und ein Unterverzeichnis namens buildroot, welches durch folgende nightly-Tagrballs gebootstrappt wird: | ||
+ | * vanilla.tar: aktuelles Userland-Image basierend auf aktellsten Sourcen (direkt in .../buildroot/) | ||
+ | * src.tar: aktuellste Sourcen in .../buildroot/usr/src/ | ||
+ | * ports.tar: aktueller Portsbaum in .../buildroot/usr/ports/ | ||
+ | |||
+ | Außerdem wird in .../buildroot/build/ alles an Scripten und Konfiguration abgelegt, was für den Build *innerhalb* dieses chroot() erforderlich ist, u.a. das .../buildroot/build/build.sh, welches mehr oder weniger den vollständugen Build durchführt. | ||
+ | |||
+ | Nach Ende des (erfolgreichen) Builds innerhalb des buildroot/ werden die im Buildroot erzeugten Packages aus "herausgeholt". | ||
+ | |||
+ | == Jail-Flavours == | ||
+ | Basierend auf wiederum dem aktuellen nightly-Buildworld (/freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar) werden verschiedene Geschmacksrichtungen und typische Konfigurationen für Jails erzeugt, jeweils aufeinander aufbauend: | ||
+ | |||
+ | ;uugrn/tiny: | ||
+ | : Hier wird die nicht weiter konfigurtierte Standard-''world'' (''vanilla.tar'') angepasst für den Betrieb als Jail bei UUGRN | ||
+ | : Es werden hier *keine* Packages installiert | ||
+ | ;uugrn/small: | ||
+ | : Wird aus tiny.tar erzeugt | ||
+ | : Packages: ''bash coreutils sudo gsed findutils nano screen portupgrade pkg_cutleaves portaudit'' | ||
+ | ;uugrn/medium: | ||
+ | : Wird erzeugt aus small.tar | ||
+ | : Packages: ''vim-lite emacs-nox11 mc gnupg mutt slrn tin irssi lynx w3m wget rsync procmail figlet fetchmail'' | ||
+ | ;uugrn/large: | ||
+ | : Wird aus medium.tar erzeugt | ||
+ | : Packages: ''links rar unrar zip zsh gawk ksh93 pwgen muh climm dovecot2 apache22 mod_php5 php5-extensions'' | ||
+ | ;uugrn/huge: | ||
+ | : Wird aus large.tar erzeugt | ||
+ | : Packages (diese ziehen jeweils sehr viele Abhängikeiten mit): ''graphviz ImageMagick'' | ||
+ | ;uugrn/www: | ||
+ | : Wird aus small.tar erzeugt | ||
+ | : Packages: ''apache22'' | ||
+ | ;uugrn/wwwphp: | ||
+ | : Wird aus www.tar erzeugt | ||
+ | : Packages: ''mod_php5 php5-extensions'' | ||
+ | ;uugrn/mediawiki: | ||
+ | : wird aus wwwphp.tar erzeugt | ||
+ | : Packages: (sieht sehr viele Abhängigkeiten nach): ''ImageMagick'' | ||
+ | |||
+ | Die hier resultierenden Tarballs heißen vollständig dann z.B. FreeBSD-9.1-RELEASE-amd64-image-uugrn-medium.tar | ||
+ | |||
+ | == Images (tarballs) == | ||
+ | Am Ende des Build-Vorgangs wird alles in tarballs verpackt und für die Veröffentlichung vorbereitet. | ||
− | + | Ein typisches images/-Verzeichnis enthält folgende Tarballs: | |
− | + | <pre> | |
− | + | -rw-r--r-- 1 root wheel 2818033664 Jun 8 00:29 FreeBSD-9.1-RELEASE-amd64-image-buildroot-noports-nosrc.tar | |
+ | -rw-r--r-- 1 root wheel 167 Jun 8 00:30 FreeBSD-9.1-RELEASE-amd64-image-buildroot-noports-nosrc.tar.sha256 | ||
+ | -rw-r--r-- 1 root wheel 671779840 Jun 8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar | ||
+ | -rw-r--r-- 1 root wheel 6935 Jun 8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar.origins | ||
+ | -rw-r--r-- 1 root wheel 162 Jun 8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar.sha256 | ||
+ | -rw-r--r-- 1 root wheel 2204937216 Jun 8 00:32 FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar | ||
+ | -rw-r--r-- 1 root wheel 164 Jun 8 00:33 FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar.sha256 | ||
+ | -rw-r--r-- 1 root wheel 1347032576 Jun 8 00:52 FreeBSD-9.1-RELEASE-amd64-image-uugrn-huge.tar | ||
+ | -rw-r--r-- 1 root wheel 1037542912 Jun 8 00:50 FreeBSD-9.1-RELEASE-amd64-image-uugrn-large.tar | ||
+ | -rw-r--r-- 1 root wheel 1068101120 Jun 8 00:56 FreeBSD-9.1-RELEASE-amd64-image-uugrn-mediawiki.tar | ||
+ | -rw-r--r-- 1 root wheel 837196800 Jun 8 00:47 FreeBSD-9.1-RELEASE-amd64-image-uugrn-medium.tar | ||
+ | -rw-r--r-- 1 root wheel 496647168 Jun 8 00:46 FreeBSD-9.1-RELEASE-amd64-image-uugrn-small.tar | ||
+ | -rw-r--r-- 1 root wheel 342000640 Jun 8 00:46 FreeBSD-9.1-RELEASE-amd64-image-uugrn-tiny.tar | ||
+ | -rw-r--r-- 1 root wheel 563835392 Jun 8 00:53 FreeBSD-9.1-RELEASE-amd64-image-uugrn-www.tar | ||
+ | -rw-r--r-- 1 root wheel 662937088 Jun 8 00:54 FreeBSD-9.1-RELEASE-amd64-image-uugrn-wwwphp.tar | ||
+ | -rw-r--r-- 1 root wheel 341968384 Jun 6 22:59 FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar | ||
+ | -rw-r--r-- 1 root wheel 1438161920 Jun 6 22:59 FreeBSD-9.1-RELEASE-src.tar | ||
+ | -rw-r--r-- 1 root wheel 382213632 Jun 6 22:59 ports.tar | ||
+ | </pre> | ||
− | + | === Verwendung der Images === | |
+ | ; FreeBSD-9.1-RELEASE-amd64-image-buildroot*.tar: enthält jeweils eine Auswahl des buildroots, mit dem die Packages gebaut wurden. Das dient vor allem Debugging- und Analysezwecken und allgemein als Referenz für die Herkunft der Packages (d.h. unter welchen kokreten Bedingungen sie gebaut wurden) | ||
+ | ;FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar: /usr/ports mit /usr/ports/distfiles/ und /usr/ports/packages/ jedoch ohne /var/db/ports/ (persistiertes ''make config'' der Ports, die das supporten) | ||
+ | ; FreeBSD-9.1-RELEASE-amd64-image-uugrn-*.tar: Fertige Jail-Images, die einfach mittels "tar xf" im Hauptverzeichnis eines *neuen* (leeren) Jails entpackt werden können. Ein neues Jail läst sich dann sinngemäß so anlegen und starten: | ||
+ | <pre> | ||
+ | # (jail.conf anpassen) | ||
+ | # zfs create zroot/jails/uug/foo | ||
+ | # cd /jails/uug/foo && tar xf /freebsd/uugrn/live/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn-small.tar | ||
+ | # jail -c uug_foo (gemäß jail.conf::uug_foo{}) | ||
+ | </pre> | ||
+ | ; FreeBSD-9.1-RELEASE-src.tar und ports.tar: | ||
+ | : sind die zum Zeitpunkt, an dem der Build angelegt wurde aktuellen Sourcen und Ports von FreeBSD. Dienen als Referenz und werden als stabile Version in den Jails verwendet. | ||
+ | : Werden /freebsd/uugrn/{dev,qa,live}/src/ und /freebsd/uugrn/{dev,qa,live}/ports/ abgelegt und sollten via /alternatives/ports und /alternatives/src in den Jails entsprechend unter /usr/src und /usr/ports (read-only) zugreifbar sein: | ||
+ | <pre> | ||
+ | lrwxr-xr-x 1 root wheel 19 Jun 14 2013 /usr/ports -> /alternatives/ports | ||
+ | lrwxr-xr-x 1 root wheel 25 May 9 2013 /alternatives/ports -> /freebsd/uugrn/live/ports | ||
+ | drwxr-xr-x 70 root wheel 86 Jun 6 23:40 /freebsd/uugrn/live/ports | ||
+ | drwxr-xr-x 70 root wheel 86 Jun 6 23:40 /freebsd/uugrn/20140606225918/ports | ||
+ | </pre> | ||
− | + | == Veröffentlichung == | |
+ | === Lokal in /freebsd === | ||
+ | Ein Build wird unter /freebsd/uugrn/ veröffentlicht und enthält sieht zB so aus: | ||
− | + | <pre> | |
+ | # ls -la /freebsd/uugrn/20140606225918/ | ||
+ | total 19 | ||
+ | drwxr-xr-x 5 root wheel 5 Jun 8 00:56 . | ||
+ | drwxr-xr-x 7 root wheel 14 Jun 8 11:02 .. | ||
+ | drwxr-xr-x 2 root wheel 20 Jun 8 00:55 images | ||
+ | drwxr-xr-x 70 root wheel 86 Jun 6 23:40 ports | ||
+ | drwxr-xr-x 22 root wheel 31 Jun 6 22:59 src | ||
+ | </pre> | ||
− | + | ;images/: enthält eine '''Kopie''' er in /build/20140606225918/images/ erzeugten Tarballs | |
+ | ;ports/ und src/: enthalten exakt den Stand von FreeBSD-Sourcen und FreeBSD-Ports, wie sie innerhalb des Builds aktuell waren und genutzt wurden | ||
+ | |||
+ | === FTP-Server === | ||
+ | ;Distfiles: Beim Build benötigte (heruntergeladene) Distfiles werden auf dem FTP-Server hochgeladen und werden dort unter http://ftp.uugrn.org/pub/FreeBSD/ports/distfiles/ gesammelt. Hier befinden sind üblicherweise auch älte Versionen der jeweiligen Distfiles, zB verschiedene Releases von Perl 5.12 bis 5.16 in http://ftp.uugrn.org/pub/FreeBSD/ports/distfiles/perl/ | ||
− | + | ; Packages: Gebaute Packages werden auf dem FTP-Server an der Stelle abgelegt, wo "pkg_add -r" sie suchen würde: http://ftp.uugrn.org/pub/FreeBSD/ports/amd64/packages-9.1-release/. Hat man in seinem Jail die Variable '''PACKAGEROOT="http://ftp.uugrn.lan"''' gesetzt (und exportiert), dann wird pkg_add -r die jeweiligen Packages auf dem FTP-Server automatisch an der passenden Stelle finden. Das geht auch externen Systemen aus, die keinen Zugriff auf /freebsd/ oder http://freebsd.uugrn.lan/ haben. | |
− | |||
− | + | == Daten == | |
+ | ;Server: {{top3.uugrn.org}} | ||
+ | ;Admin: [[Benutzer:Rabe|Raphael Eiselstein]] <sup><small>[[Benutzer Diskussion:Rabe|talk]]</small></sup> 01:07, 12. Apr. 2013 (CEST) | ||
Version vom 22. Juni 2014, 02:35 Uhr
fbsd9.uugrn.org ist ein Infrastruktur-Jail für FreeBSD spezifische Aufgaben.
[ Verein: Server:
• top4
• higgsBeta
]
[ Vereinsjails: mail
• mx1
• mysql
• lists
• wiki
• blogs
• pad
• proxy
• uugrn
• shell
• irc
• bnc
• news
• ftp
• fbsd9
• gitAlpha
• calendarAlpha
]
[ Mitglieder-Jails: shell
• mile
• rabe
• trickster
• che
• friedel
• shl
• hdi
• ltrn
]
Zweck
- Daily updates von FreeBSD-Source (/freebsd/upstream/src/)
- Daily updates fon FreeBSD-Ports (/freebsd/upstream/ports/)
- Daily Vanilla Image (make buildworl -> tarball)
- Package-Buildsystem
- Jail-Flavour-Builds
- Images (=tarballs) bauen
- Veröffentlichung aller Build-Ergebnisse unter /freebsd/ bzw. http://freebsd.uugrn.lan/
- Upload von Distfiles und Packages nach http://ftp.uugrn.org/
Tägliche Updates
Jeden Tag um 03:30 Uhr wird ein Script ausgeführt, welcher folgende Tasks erledigt:
- sourcen updaten
- svn update in http://freebsd.uugrn.lan/upstream/src/9.1-RELEASE/ bzw. /freebsd/upstream/src/9.1-RELEASE/
- sourcen als tarball
- tar von /freebsd/upstream/src/9.1-RELEASE/ nach /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-src.tar / http://freebsd.uugrn.lan/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-src.tar
- ports updaten
- portsnap in /freebsd/upstream/ports/ / http://freebsd.uugrn.lan/upstream/ports/
- ports als tarball
- tar von /freebsd/upstream/ports/ in /freebsd/upstream/images/ports.tar / http://freebsd.uugrn.lan/upstream/images/ports.tar
- vanilla image aus aktuellen sourcen erzeugen
- make buildworld installworld distribtion in /freebsd/upstream/src/9.1-RELEASE/ http://freebsd.uugrn.lan/upstream/src/9.1-RELEASE/
- und einpacken als /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar http://freebsd.uugrn.lan/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar
- falls /freebsd/upstream/src/9.1-RELEASE/UPDATING neuer als /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar
- uugrn image aus aktuellem vanilla image bauen
-
- vanilla image entpacken
- überflüssige Verzeichnisse entfernen
- Anlegen von /alternatives/, /data/ports/
- konfigurieren und patchen von /etc/motd, /etc/resolv.conf, /etc/profile, /etc/rc.conf, /etc/periodic.conf, /etc/localtime, /etc/mail/, /etc/crontab, /etc/login.conf,
- root-Passwort non-empty setzen
- alles einpacken unter /freebsd/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar oder http://freebsd.uugrn.lan/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar
Package-Builds
Package-Builds erzeugen für ausgewählte Ports passende Binär-Packages basierend auf den aktuellen Ports. Jeder Build wird dabei bei Bedarf mit einem Script (/build/tools/new_build.sh) in ein komplett eigenständiges Build-Verzeichnis gebootstrappt. Das Buildverzeichnis liegt unter /build/YYYYMMDDHHMMSS/.
Das Buildverzeichnis enthält eine Kopie der aktuellen Buildscripte und ein Unterverzeichnis namens buildroot, welches durch folgende nightly-Tagrballs gebootstrappt wird:
- vanilla.tar: aktuelles Userland-Image basierend auf aktellsten Sourcen (direkt in .../buildroot/)
- src.tar: aktuellste Sourcen in .../buildroot/usr/src/
- ports.tar: aktueller Portsbaum in .../buildroot/usr/ports/
Außerdem wird in .../buildroot/build/ alles an Scripten und Konfiguration abgelegt, was für den Build *innerhalb* dieses chroot() erforderlich ist, u.a. das .../buildroot/build/build.sh, welches mehr oder weniger den vollständugen Build durchführt.
Nach Ende des (erfolgreichen) Builds innerhalb des buildroot/ werden die im Buildroot erzeugten Packages aus "herausgeholt".
Jail-Flavours
Basierend auf wiederum dem aktuellen nightly-Buildworld (/freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar) werden verschiedene Geschmacksrichtungen und typische Konfigurationen für Jails erzeugt, jeweils aufeinander aufbauend:
- uugrn/tiny
- Hier wird die nicht weiter konfigurtierte Standard-world (vanilla.tar) angepasst für den Betrieb als Jail bei UUGRN
- Es werden hier *keine* Packages installiert
- uugrn/small
- Wird aus tiny.tar erzeugt
- Packages: bash coreutils sudo gsed findutils nano screen portupgrade pkg_cutleaves portaudit
- uugrn/medium
- Wird erzeugt aus small.tar
- Packages: vim-lite emacs-nox11 mc gnupg mutt slrn tin irssi lynx w3m wget rsync procmail figlet fetchmail
- uugrn/large
- Wird aus medium.tar erzeugt
- Packages: links rar unrar zip zsh gawk ksh93 pwgen muh climm dovecot2 apache22 mod_php5 php5-extensions
- uugrn/huge
- Wird aus large.tar erzeugt
- Packages (diese ziehen jeweils sehr viele Abhängikeiten mit): graphviz ImageMagick
- uugrn/www
- Wird aus small.tar erzeugt
- Packages: apache22
- uugrn/wwwphp
- Wird aus www.tar erzeugt
- Packages: mod_php5 php5-extensions
- uugrn/mediawiki
- wird aus wwwphp.tar erzeugt
- Packages: (sieht sehr viele Abhängigkeiten nach): ImageMagick
Die hier resultierenden Tarballs heißen vollständig dann z.B. FreeBSD-9.1-RELEASE-amd64-image-uugrn-medium.tar
Images (tarballs)
Am Ende des Build-Vorgangs wird alles in tarballs verpackt und für die Veröffentlichung vorbereitet.
Ein typisches images/-Verzeichnis enthält folgende Tarballs:
-rw-r--r-- 1 root wheel 2818033664 Jun 8 00:29 FreeBSD-9.1-RELEASE-amd64-image-buildroot-noports-nosrc.tar -rw-r--r-- 1 root wheel 167 Jun 8 00:30 FreeBSD-9.1-RELEASE-amd64-image-buildroot-noports-nosrc.tar.sha256 -rw-r--r-- 1 root wheel 671779840 Jun 8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar -rw-r--r-- 1 root wheel 6935 Jun 8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar.origins -rw-r--r-- 1 root wheel 162 Jun 8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar.sha256 -rw-r--r-- 1 root wheel 2204937216 Jun 8 00:32 FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar -rw-r--r-- 1 root wheel 164 Jun 8 00:33 FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar.sha256 -rw-r--r-- 1 root wheel 1347032576 Jun 8 00:52 FreeBSD-9.1-RELEASE-amd64-image-uugrn-huge.tar -rw-r--r-- 1 root wheel 1037542912 Jun 8 00:50 FreeBSD-9.1-RELEASE-amd64-image-uugrn-large.tar -rw-r--r-- 1 root wheel 1068101120 Jun 8 00:56 FreeBSD-9.1-RELEASE-amd64-image-uugrn-mediawiki.tar -rw-r--r-- 1 root wheel 837196800 Jun 8 00:47 FreeBSD-9.1-RELEASE-amd64-image-uugrn-medium.tar -rw-r--r-- 1 root wheel 496647168 Jun 8 00:46 FreeBSD-9.1-RELEASE-amd64-image-uugrn-small.tar -rw-r--r-- 1 root wheel 342000640 Jun 8 00:46 FreeBSD-9.1-RELEASE-amd64-image-uugrn-tiny.tar -rw-r--r-- 1 root wheel 563835392 Jun 8 00:53 FreeBSD-9.1-RELEASE-amd64-image-uugrn-www.tar -rw-r--r-- 1 root wheel 662937088 Jun 8 00:54 FreeBSD-9.1-RELEASE-amd64-image-uugrn-wwwphp.tar -rw-r--r-- 1 root wheel 341968384 Jun 6 22:59 FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar -rw-r--r-- 1 root wheel 1438161920 Jun 6 22:59 FreeBSD-9.1-RELEASE-src.tar -rw-r--r-- 1 root wheel 382213632 Jun 6 22:59 ports.tar
Verwendung der Images
- FreeBSD-9.1-RELEASE-amd64-image-buildroot*.tar
- enthält jeweils eine Auswahl des buildroots, mit dem die Packages gebaut wurden. Das dient vor allem Debugging- und Analysezwecken und allgemein als Referenz für die Herkunft der Packages (d.h. unter welchen kokreten Bedingungen sie gebaut wurden)
- FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar
- /usr/ports mit /usr/ports/distfiles/ und /usr/ports/packages/ jedoch ohne /var/db/ports/ (persistiertes make config der Ports, die das supporten)
- FreeBSD-9.1-RELEASE-amd64-image-uugrn-*.tar
- Fertige Jail-Images, die einfach mittels "tar xf" im Hauptverzeichnis eines *neuen* (leeren) Jails entpackt werden können. Ein neues Jail läst sich dann sinngemäß so anlegen und starten:
# (jail.conf anpassen) # zfs create zroot/jails/uug/foo # cd /jails/uug/foo && tar xf /freebsd/uugrn/live/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn-small.tar # jail -c uug_foo (gemäß jail.conf::uug_foo{})
- FreeBSD-9.1-RELEASE-src.tar und ports.tar
- sind die zum Zeitpunkt, an dem der Build angelegt wurde aktuellen Sourcen und Ports von FreeBSD. Dienen als Referenz und werden als stabile Version in den Jails verwendet.
- Werden /freebsd/uugrn/{dev,qa,live}/src/ und /freebsd/uugrn/{dev,qa,live}/ports/ abgelegt und sollten via /alternatives/ports und /alternatives/src in den Jails entsprechend unter /usr/src und /usr/ports (read-only) zugreifbar sein:
lrwxr-xr-x 1 root wheel 19 Jun 14 2013 /usr/ports -> /alternatives/ports lrwxr-xr-x 1 root wheel 25 May 9 2013 /alternatives/ports -> /freebsd/uugrn/live/ports drwxr-xr-x 70 root wheel 86 Jun 6 23:40 /freebsd/uugrn/live/ports drwxr-xr-x 70 root wheel 86 Jun 6 23:40 /freebsd/uugrn/20140606225918/ports
Veröffentlichung
Lokal in /freebsd
Ein Build wird unter /freebsd/uugrn/ veröffentlicht und enthält sieht zB so aus:
# ls -la /freebsd/uugrn/20140606225918/ total 19 drwxr-xr-x 5 root wheel 5 Jun 8 00:56 . drwxr-xr-x 7 root wheel 14 Jun 8 11:02 .. drwxr-xr-x 2 root wheel 20 Jun 8 00:55 images drwxr-xr-x 70 root wheel 86 Jun 6 23:40 ports drwxr-xr-x 22 root wheel 31 Jun 6 22:59 src
- images/
- enthält eine Kopie er in /build/20140606225918/images/ erzeugten Tarballs
- ports/ und src/
- enthalten exakt den Stand von FreeBSD-Sourcen und FreeBSD-Ports, wie sie innerhalb des Builds aktuell waren und genutzt wurden
FTP-Server
- Distfiles
- Beim Build benötigte (heruntergeladene) Distfiles werden auf dem FTP-Server hochgeladen und werden dort unter http://ftp.uugrn.org/pub/FreeBSD/ports/distfiles/ gesammelt. Hier befinden sind üblicherweise auch älte Versionen der jeweiligen Distfiles, zB verschiedene Releases von Perl 5.12 bis 5.16 in http://ftp.uugrn.org/pub/FreeBSD/ports/distfiles/perl/
- Packages
- Gebaute Packages werden auf dem FTP-Server an der Stelle abgelegt, wo "pkg_add -r" sie suchen würde: http://ftp.uugrn.org/pub/FreeBSD/ports/amd64/packages-9.1-release/. Hat man in seinem Jail die Variable PACKAGEROOT="http://ftp.uugrn.lan" gesetzt (und exportiert), dann wird pkg_add -r die jeweiligen Packages auf dem FTP-Server automatisch an der passenden Stelle finden. Das geht auch externen Systemen aus, die keinen Zugriff auf /freebsd/ oder http://freebsd.uugrn.lan/ haben.
Daten
- Server
- top3.uugrn.orgoffline
- Admin
- Raphael Eiselstein talk 01:07, 12. Apr. 2013 (CEST)
siehe auch
- ftp.uugrn.org (Dienst)
- qa.uugrn.org (Jail)