Portable Software-Installation mit pkgsrc Dipl.-Chem. Technische Fakultät Universität Bielefeld ro@techfak.uni-bielefeld.de AG Rechnerbetrieb SS 2006 pkgsrc 1 von 12
Übersicht Problemstellung Benutzersicht Parallelinstallationen: Package Views Entwicklersicht Probleme Alternativen AG Rechnerbetrieb SS 2006 pkgsrc 2 von 12
Software-Installation: Der Status Quo manuelles Bauen aus den Quellen für verschiedene Plattformen zeitaufwendig mühselig verschiedene Versionsstände, keine problemlosen Updates wegen Abhängigkeiten zunehmende Zahl von Abhängigkeiten zahlreiche Packages kommen mit Volume-Struktur nicht gut zurecht kein Tracking installierter Software AG Rechnerbetrieb SS 2006 pkgsrc 3 von 12
Problemstellung Ziel: einheitliche plattformübergreifende Software-Installation mindestens für Linux, Mac OS X, Solaris; gut, wenn auch IRIX und Tru64 UNIX Option: native Package-Systeme (Blastwave, Sun Freeware, Fink,... ) Einzelmaschinen-orientiert plattformabhängig keine einfache lokale Konfiguration Binary Packages stellen verschiedene Software-Versionen in verschiedenen Konfigurationen bereit schwierige Parallel-Installation verschiedener Versionen AG Rechnerbetrieb SS 2006 pkgsrc 4 von 12
pkgsrc Framework zum Bauen und Installieren von Software-Paketen entstanden aus FreeBSD ports, ursprünglich nur für NetBSD (August 1997) inzwischen: Unterstützung von 12 Plattformen: AIX, *BSD, IRIX, Linux, Mac OS X, Solaris, Tru64 UNIX, Windows (via Interix) basiert auf BSD Make (bmake) unterstützt Bauen aus den Quellen und Binärpackages 6110 Software-Pakete in ca. 50 Kategorien inkl. Meta-Packages (zwei CVS-Branches: stable und current) weitere 2400 Packete via pkgsrc-wip: Work in Progress AG Rechnerbetrieb SS 2006 pkgsrc 5 von 12
Features Installation in einheitlichen Directory-Baum (/usr/pkg per Default) Berücksichtigung von Dependencies portabel, plattform-übergreifend einheitlich Unterstützung verschiedener Compiler: nativer cc, gcc, distcc, ccache Konfigurationsmöglichkeiten über mk.conf: Directories Optionen (global und pro Package) AG Rechnerbetrieb SS 2006 pkgsrc 6 von 12
Benutzersicht Installation von Binärpackages mit pkg_add Installation aus den Quellen: zunächst: pkgsrc-bootstrap NetBSD-Compat-Library, bmake, ggfs. Ersatz für einige native Tools (sed, ftp,... ) dann: cd <pkgsrc>/<category>/<package>; bmake install Schritte beim Bauen: fetch, checksum, extract, patch, tools, wrapper, configure, build, test, install, package Möglichkeit lokaler Patches Security-Checks mit audit_packages AG Rechnerbetrieb SS 2006 pkgsrc 7 von 12
Parallelinstallationen mit Package Views Problem: verschiedene Versionen der gleichen Software parallel bereitstellen (z.b. für Tests oder bei Inkompatibilitäten) mit Package Views: Installation in ein Directory pro Version (Default: /usr/pkg/packages/<pkg>) verschiedene Views (i.e. Symlinks-Trees) möglich, z.b. Default, Test,... AG Rechnerbetrieb SS 2006 pkgsrc 8 von 12
Entwicklersicht benötigt werden: Makefile, DESCR, PLIST (wird bei Package Views dynamisch erzeugt), distinfo, ggfs. Patches Tools zur Unterstützung: url2pkg, pkglint AG Rechnerbetrieb SS 2006 pkgsrc 9 von 12
Probleme manche Packages recht alt systemnahe Packages fehlen u.u. ganz (z.b. ntp, amd,... ) Packages lassen sich nicht bauen (aber meist Upstream-Problem) AG Rechnerbetrieb SS 2006 pkgsrc 10 von 12
Alternativen OpenPKG: Projekt von Ralf S. Engelschall, Cable & Wireless RPM-basiert eingeschränkter Satz von Packages (vor allem Server-Software) primär für FreeBSD, Linux, Solaris The Written Word kommerziell, kostenpflichtig basiert auf Wrappern um native Package-Tools eingeschränkte Sammlung von Packages AG Rechnerbetrieb SS 2006 pkgsrc 11 von 12
Weitere Informationen pkgsrc: The NetBSD Packages Collection: http://www.pkgsrc.org/ Web-Frontend zu pkgsrc: http://pkgsrc.se/ pkgsrc-work In Progress: http://pkgsrc-wip.sourceforge.net/ OpenPKG: http://www.openpkg.org/ The Written Word: http://www.thewrittenword.com/ AG Rechnerbetrieb SS 2006 pkgsrc 12 von 12