UUGRN:Jails/uug fbsd9: Unterschied zwischen den Versionen
Rabe (Diskussion | Beiträge) (Aktueller Stand zum Buildsystem) |
Rabe (Diskussion | Beiträge) (Feinheiten) |
||
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 (Update, Buildsystem) | ||
{{Navigationsleiste Systeme}} | {{Navigationsleiste Systeme}} | ||
__TOC__ | __TOC__ | ||
Zeile 5: | Zeile 5: | ||
== Zweck == | == Zweck == | ||
* Daily updates von FreeBSD-Source (/freebsd/upstream/src/) | * Daily updates von FreeBSD-'''Source''' (/freebsd/upstream/src/) | ||
* Daily updates fon FreeBSD-Ports (/freebsd/upstream/ports/) | * Daily updates fon FreeBSD-'''Ports''' (/freebsd/upstream/ports/) | ||
* Daily Vanilla Image (make | * Daily Vanilla Image (make buildworld → tarball) | ||
* Package-Buildsystem | * '''Package'''-Buildsystem | ||
* Jail-Flavour-Builds | * Jail-'''Flavour'''-Builds | ||
* Images (=tarballs) bauen | * Images (=tarballs) bauen | ||
* Veröffentlichung aller Build-Ergebnisse unter /freebsd/ bzw. http://freebsd.uugrn.lan/ | * interne Veröffentlichung aller Build-Ergebnisse unter '''/freebsd/''' bzw. '''http://freebsd.uugrn.lan/''' | ||
* Upload von Distfiles und Packages nach http://ftp.uugrn.org/ | * Upload von Distfiles und Packages nach '''http://ftp.uugrn.org/''' | ||
== Tägliche Updates == | == Tägliche Updates == | ||
Täglich morgens um 03:30 Uhr wird ein Script ausgeführt, welcher folgende Tasks erledigt: | |||
;sourcen updaten: ''svn update'' in | ;sourcen updaten: ''svn update'' in /freebsd/upstream/src/9.1-RELEASE/ (= http://freebsd.uugrn.lan/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 | ;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: | ;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 | ;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: | ;vanilla image aus aktuellen sourcen erzeugen: | ||
: '''make buildworld installworld | : '''make buildworld installworld distribution''' 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 | : 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 | : '''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: | ;uugrn image aus aktuellem vanilla image bauen: | ||
Zeile 32: | Zeile 32: | ||
:* 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, | :* 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 | :* root-Passwort non-empty setzen | ||
:* alles einpacken unter /freebsd/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar | :* alles einpacken unter /freebsd/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar (= http://freebsd.uugrn.lan/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar) | ||
== Package-Builds == | == Package-Builds == | ||
Zeile 44: | Zeile 44: | ||
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. | 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". | Nach Ende des (erfolgreichen) Builds innerhalb des buildroot/ werden die im Buildroot erzeugten Packages aus "herausgeholt". | ||
Das buildroot wird für alle weiteren Steps nicht mehr weiter verwendet, alle folgenden Schritte basieren ausschließlich auf einem frischen Bootstrap unter der Verwendung der vorkompilierten Pakete. | |||
== Jail-Flavours == | == Jail-Flavours == | ||
Basierend | Basierend 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. Dabei werden zunächst lokale Standardeinstellungen vorgenomen und dann nach und nach Packages (und deren Abhängigkeiten) installiert: | ||
;uugrn/tiny: | ;uugrn/tiny (uugrn/core): | ||
: Hier wird die nicht weiter konfigurtierte Standard-''world'' (''vanilla.tar'') angepasst für den Betrieb als Jail bei UUGRN | : 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 | : Es werden hier *keine* Packages installiert | ||
;uugrn/small: | ;uugrn/small (uugrn/basic): | ||
: Enthält ein Minimalset an Tools, die in jedem Jail vorhanden sein sollten. | |||
: Wird aus tiny.tar erzeugt | : Wird aus tiny.tar erzeugt | ||
: Packages: ''bash coreutils sudo gsed findutils nano screen portupgrade pkg_cutleaves portaudit'' | : Packages: ''bash coreutils sudo gsed findutils nano screen portupgrade pkg_cutleaves portaudit'' | ||
;uugrn/medium: | ;uugrn/medium: | ||
: Enthält erweiterte Tools und typische Textconsolen-Anwendungen wie Editoren, E-Mail, .. | |||
: Wird erzeugt aus small.tar | : Wird erzeugt aus small.tar | ||
: Packages: ''vim-lite emacs-nox11 mc gnupg mutt slrn tin irssi lynx w3m wget rsync procmail figlet fetchmail'' | : Packages: ''vim-lite emacs-nox11 mc gnupg mutt slrn tin irssi lynx w3m wget rsync procmail figlet fetchmail'' | ||
;uugrn/large: | ;uugrn/large: | ||
: Enthält mehr Tools und Serversoftware | |||
: Wird aus medium.tar erzeugt | : Wird aus medium.tar erzeugt | ||
: Packages: ''links rar unrar zip zsh gawk ksh93 pwgen muh climm dovecot2 apache22 mod_php5 php5-extensions'' | : Packages: ''links rar unrar zip zsh gawk ksh93 pwgen muh climm dovecot2 apache22 mod_php5 php5-extensions'' | ||
;uugrn/huge: | ;uugrn/huge: | ||
: Enthält sehr viele Grafik und Multimediaibliotheken und Tools | |||
: Wird aus large.tar erzeugt | : Wird aus large.tar erzeugt | ||
: Packages (diese ziehen jeweils sehr viele Abhängikeiten mit): ''graphviz ImageMagick'' | : Packages (diese ziehen jeweils sehr viele Abhängikeiten mit): ''graphviz ImageMagick'' | ||
;uugrn/www: | ;uugrn/www: | ||
: Für ein Betrieb eines einfachen Webservers | |||
: Wird aus small.tar erzeugt | : Wird aus small.tar erzeugt | ||
: Packages: ''apache22'' | : Packages: ''apache22'' | ||
;uugrn/wwwphp: | ;uugrn/wwwphp: | ||
: Webserver mit Apache + PHP5 | |||
: Wird aus www.tar erzeugt | : Wird aus www.tar erzeugt | ||
: Packages: ''mod_php5 php5-extensions'' | : Packages: ''mod_php5 php5-extensions'' | ||
;uugrn/mediawiki: | ;uugrn/mediawiki: | ||
: Enthält alles, was man für den Betrieb von MediaWiki oder PHP5 basierte CMS-Systeme benötigt | |||
: wird aus wwwphp.tar erzeugt | : wird aus wwwphp.tar erzeugt | ||
: Packages: (sieht sehr viele Abhängigkeiten nach): ''ImageMagick'' | : Packages: (sieht sehr viele Abhängigkeiten nach): ''ImageMagick'' | ||
Zeile 77: | Zeile 86: | ||
== Images (tarballs) == | == Images (tarballs) == | ||
Am Ende des Build-Vorgangs wird alles in tarballs verpackt und für die Veröffentlichung vorbereitet. | Am Ende des Build-Vorgangs wird alles jeweils in tarballs verpackt und für die Veröffentlichung vorbereitet. | ||
Ein typisches images/-Verzeichnis enthält folgende Tarballs: | Ein typisches images/-Verzeichnis enthält folgende Tarballs: | ||
Zeile 102: | Zeile 111: | ||
=== Verwendung der Images === | === 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 | ; 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 konkreten 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-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: | ; 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: | ||
Zeile 139: | Zeile 148: | ||
=== FTP-Server === | === FTP-Server === | ||
;Distfiles: Beim Build benötigte (heruntergeladene) Distfiles werden auf | ;Distfiles: Beim Build benötigte (heruntergeladene) Distfiles werden auf den 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, z.B. 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. | ; 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. | ||
Version vom 22. Juni 2014, 09:51 Uhr
fbsd9.uugrn.org ist ein Infrastruktur-Jail für FreeBSD spezifische Aufgaben (Update, Buildsystem)
[ 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 buildworld → tarball)
- Package-Buildsystem
- Jail-Flavour-Builds
- Images (=tarballs) bauen
- interne 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
Täglich morgens um 03:30 Uhr wird ein Script ausgeführt, welcher folgende Tasks erledigt:
- sourcen updaten
- svn update in /freebsd/upstream/src/9.1-RELEASE/ (= http://freebsd.uugrn.lan/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 distribution 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 (= 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".
Das buildroot wird für alle weiteren Steps nicht mehr weiter verwendet, alle folgenden Schritte basieren ausschließlich auf einem frischen Bootstrap unter der Verwendung der vorkompilierten Pakete.
Jail-Flavours
Basierend 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. Dabei werden zunächst lokale Standardeinstellungen vorgenomen und dann nach und nach Packages (und deren Abhängigkeiten) installiert:
- uugrn/tiny (uugrn/core)
- 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 (uugrn/basic)
- Enthält ein Minimalset an Tools, die in jedem Jail vorhanden sein sollten.
- Wird aus tiny.tar erzeugt
- Packages: bash coreutils sudo gsed findutils nano screen portupgrade pkg_cutleaves portaudit
- uugrn/medium
- Enthält erweiterte Tools und typische Textconsolen-Anwendungen wie Editoren, E-Mail, ..
- 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
- Enthält mehr Tools und Serversoftware
- Wird aus medium.tar erzeugt
- Packages: links rar unrar zip zsh gawk ksh93 pwgen muh climm dovecot2 apache22 mod_php5 php5-extensions
- uugrn/huge
- Enthält sehr viele Grafik und Multimediaibliotheken und Tools
- Wird aus large.tar erzeugt
- Packages (diese ziehen jeweils sehr viele Abhängikeiten mit): graphviz ImageMagick
- uugrn/www
- Für ein Betrieb eines einfachen Webservers
- Wird aus small.tar erzeugt
- Packages: apache22
- uugrn/wwwphp
- Webserver mit Apache + PHP5
- Wird aus www.tar erzeugt
- Packages: mod_php5 php5-extensions
- uugrn/mediawiki
- Enthält alles, was man für den Betrieb von MediaWiki oder PHP5 basierte CMS-Systeme benötigt
- 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 jeweils 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 konkreten 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 den 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, z.B. 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)