Cross-Platform Multi-Instance Unix Software Packaging Facility
Total Page:16
File Type:pdf, Size:1020Kb
Cross-Platform Multi-Instance Unix Software Packaging The best way to the future is to predict — Alan Kayinvent it. Only those who attempt package once — the the absurd use everywhere ! impossiblecan achieve Ralf S. Engelschall — Unknown. [email protected] 2.5 2006-03-19 1 Part I: Name Of The Game What is the Problem? Why Packaging at all? Why Cross-Platform? There are two types of people in this world, good and bad. The good sleep better, but the bad seem to enjoy the waking hours much more. — Woody Allen 2 What is the Problem? (1) Cross-Platform: Bleeding Edge: How to manage different Unix How to use a software just a platforms without having to deal few hours after it was released with different vendor facilities? by the vendor? Trust: Package Variants: How to trust any vendor unless How to deploy multiple variants their whole project workflow and (build-time options) of a results are public and software with an arbitrary transparent? vendor packaging facility? Organizational Separation: Multiple Instances: How to achieve a clean How to use staging installations responsibility separation on without having to buy additional servers between System dedicated servers? Administrators and Application Administrators/Developers? Understanding a problem is knowing why it is hard to solve it, and why the most straightforward approaches won't work. — Karl Popper 3 What is the Problem? (2) Sane Build Environment: Building from Source: How to build packages in a sane How to reproduce a software and well-defined environment? installation from pristine vendor Unprivileged Packaging: sources directly on the end-user How to build binary packages target machine? without write access to the Conciseness/Cleanness: target filesystem area? How to trust the resulting binary Unprivileged Deployment: packages if the packaging itself How to use a software packaging is not already known to be facility in a fully unprivileged maximum concise, clean and deployment environment? reviewable? Safe Environment: How to make sure that own solutions are future safe by not being too tied to a particular underlying operating system? It's not enough to be a great programmer; you have to find a great problem. — Charles Simonyi 4 Why Packaging at all? (1) Reproducibility: Unification: Packaging allows to really Packaging unifies individual reproduce the resulting software approaches across application installation. vendors to simplify Filesystem Intrusion: administration. Packaging allows to exactly Problem Focusing: know what files form a piece of Packaging allows to focus on software. Later removal is the problem (deployment and possible without any residual configuration) instead of having files. to fight (again and again) Scalability: against the porting and building Packaging allows software of vendor software. deployment to be independent Cost Reduction: on the required number of Packaging reduces costs by no deployments. longer requiring experts for boring deployment tasks. Instead their expertise can be “Reuse an expert's code” is the right advice for most used for service improvements. people. But it's useless advice for the experts writing the code in the first place. — Dan J. Bernstein 5 Why Packaging at all? (2) Built-In Experience: Annotations: Packaging combines vendor Packaging annotates vendor applications with pre- applications with useful meta configuration and packager information for administration. knowledge to create optimum Querying Information: total result. Packaging allows to reasonably Knowledge Consolidation: query information about the Packaging allows central application installation. consolidation of knowledge. Safe Upgrade Path: Patch Maintenance: Packaging allows a guaranteed Packaging allows you to keep upgrade path for software during pristine vendor sources and the whole life of a system. patches separate without Integrity Verification: loosing seamless integration. Packages can be signed and their content integrity can be verified. The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. — George Bernard Shaw 6 Why Cross-Platform? (1) The Mountain Problem Different flavors of Unix operating systems have to be used and cannot be avoided. Differences in vendor supplied user add-on applications: Total number of applications. Third-party application ??? ??? versions. ??? s n o Used filesystem layout. i t a Particular chosen build-time n c o i l options. - p d p Amount of pre-configuration. d A A Administrators have to know how to manage n different base base base platforms. kernel kernel kernel Solaris FreeBSD Linux There's a lesson to be learned from this but I'll be damned if I know what it is. — Al Bundy 7 Why Cross-Platform? (2) The OpenPKG Solution Different flavors of Unix operating systems are still being used because cannot be avoided. user Vendor supplied add-on applications are deinstalled or at least shadowed by OpenPKG. s n o i OpenPKG is a maximum t a n independent layer on top of c o OpenPKG i l the operating system. - p d p d A All add-on applications are A provided as cross-platform packages by OpenPKG. base base base Administrators now just have kernel kernel kernel to know how to manage 1 unified platform. Solaris FreeBSD Linux The software said it requires Solaris 9 or better, so I installed OpenPKG... 8 Part II: The Solution The Solution: Overview The Solution: Design Goals Platform Availability Platform Classification Package Classification Packaging Approaches The solution of this problem is left as an exercise to the reader. 9 The Solution: Marketing Style OpenPKG — The Cross-Platform Multi-Instance Unix Software Packaging Facility. Much valued by IT decision makers and beloved by Unix system administrators, OpenPKG is the world leading instrument for deployment and maintenance of Open Source software when administration crosses Unix platform boundaries. The unique OpenPKG architecture leverages proven technologies like Red Hat Package Manager (RPM) and OSSP and GNU components to establish a unified software administration environment, independent of the underlying Unix operating system. Software is like sex; it's better when it's free. — Linus Torvalds 10 The Solution: Technology Style LOAD "OPENPKG",8,1 a cross-platform packaging freely available to anyone as facility for Unix software. Open Source under a MIT-style based on a ported, cleaned up distribution license. and extended version of the releases are provided three times popular Red Hat Package Manager per year and the last two (RPM 4.2). releases are fully covered with a fully self-contained packaging security updates. facility which is maximum independent of underlying operating system. minimum intrusion during linkage into the underlying operating system (just 6 connection points). very complete, i.e., it currently provides already over 880 packaged applications. a mature technology now in production use since 4 years. 11 The Solution: Design Goals Design Goal 1: Design Goal 5: Packaging at all Accuracy & Conciseness (keywords: complexity, (keywords: artwork, human removability, reproducability, friendliness, maintainability) scalability) Design Goal 6: Design Goal 2: Covering Essentials Only Cross-Platform (keywords: “best of”, quality not (keywords: inherent constraints, quantity, major Unix flavors) flexibility, cost reducation) Design Goal 7: Design Goal 3: Open Source Licensing Multiple Instances (keywords: “free as in freedom, not (keywords: complexity, flexibility, as in free beer”) utilization, evaluation, staging) Design Goal 4: I'd like to thank all the little people who helped make this Out-of-the-Box possible, but I can't, because I Configuration did it all myself. (keywords: minimum default, — Herman Monster maximum usability, experience Good design means less design. Design must serve users, bundling) not try to fool them. — Dieter Rams, Chief Designer, BRAUN 12 We the unwilling, The Solution: led by the unknowing, are doing the impossible. “Big Picture” — Larry Wall In the Classic approach, addon In the OpenPKG approach, an OS vendor packages plus OpenPKG Base instance extends manually installed software the OS Base installation and provide services. dedicated OpenPKG instances provide services. The killer for system administration! Specific ... ... OpenPKG Addon OpenPKG Addon OpenPKG Addon OpenPKG Addon Service ManualManual ManualManual OpenPKG OpenPKG OS1 Addon OS2 Addon Base Base Specific OS Base OS Base 1 2 OS1 Base OS2 Base HW1 HW2 HW HW Server 1 2 OpenPKG Approach Classic Approach 13 Platform Availability OpenPKG is officially available FreeBSD FreeBSD 4.11 (iX86) for mainly 3 Unix platform FreeBSD 5.3 (iX86) technologies: FreeBSD 5.3 (SPARC64) FreeBSD FreeBSD 5.3 (IA64) FreeBSD 6.0 (iX86) GNU/Linux GNU/Linux Sun Solaris Debian GNU/Linux 3.0 (iX86) Debian GNU/Linux 3.1-PRE (iX86) OpenPKG is officially available RedHat Enterprise Linux 3 (iX86) for 21 particular platform Fedora Core 3 (iX86) SuSE Enterprise Linux 9 (iX86) products (as of OpenPKG 2.3) SuSE Linux 9.2 (iX86) For every release, all Gentoo Linux 1.6.9 (iX86) packages are built on all Mandrake Linux 10.1 (iX86) Sun Solaris platforms. Sun Solaris 8 (SPARC64) Sun Solaris 9 (iX86) Sun Solaris 9 (SPARC64) Sun Solaris 10 (ix86) Sun Solaris 10 (SPARC) Others NetBSD 2.0 (iX86) HP HP-UX 11.11i (HPPA) Apple Darwin 7.8 (PPC) It’s hard to teach old dogs new tricks. 14