Handling of Unix Application Software Stephan Wiesand DESY -DV - May 25, 2004.

Slides:



Advertisements
Similar presentations
05/11/2001 CPT week Natalia Ratnikova, FNAL 1 Software Distribution in CMS Distribution unitFormContent Version of SCRAM managed project.
Advertisements

Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 9: Implementing and Using Group Policy.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 9: Implementing and Using Group Policy.
7.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 7: Introducing Group Accounts.
Packaging of EPICS-basedControl System Software
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
9.1 © 2004 Pearson Education, Inc. Lesson 9: Implementing Group Policy in Windows 2000 Server Exam Microsoft® Windows® 2000 Directory Services Infrastructure.
9.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Linux Operations and Administration
Experiences Deploying Xrootd at RAL Chris Brew (RAL)
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 9: Implementing and Using Group Policy.
Wolfgang Friebel, April AFS Administration Framework.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
SKA/KAT SPIN Presentation Software Engineering (!?) Robert Crida.
May 10, 2012 Lloyd Moore, President/Owner. Quick Start Video Building Mobility 1.2 SDK Emulator Quirks Installing On A Device Summary Overview.
E-Commerce: Introduction to Web Development 1 Dr. Lawrence West, Management Dept., University of Central Florida Topics What is a Web.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
The Cluster Computing Project Robert L. Tureman Paul D. Camp Community College.
Nov 1, 2000Site report DESY1 DESY Site Report Wolfgang Friebel DESY Nov 1, 2000 HEPiX Fall
…using Git/Tortoise Git
© Blackboard, Inc. All rights reserved. Deploying a complex building block Andre Koehorst Learning Lab Universiteit Maastricht, the Netherlands July 18.
11.1 © 2004 Pearson Education, Inc. Exam Designing a Microsoft ® Windows ® Server 2003 Active Directory and Network Infrastructure Lesson 11: Planning.
Module 7 Configure User and Computer Environments By Using Group Policy.
SUSE Linux Enterprise Desktop Administration Chapter 6 Manage Software.
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
05/29/2002Flavia Donno, INFN-Pisa1 Packaging and distribution issues Flavia Donno, INFN-Pisa EDG/WP8 EDT/WP4 joint meeting, 29 May 2002.
Installing of a VAULT server. Few recommendations: The Vault Server can be any dedicated server or normal PC operating under Windows 2003 server or Windows.
ALMA Archive Operations Impact on the ARC Facilities.
Deployment work at CERN: installation and configuration tasks WP4 workshop Barcelona project conference 5/03 German Cancio CERN IT/FIO.
G. Cancio, L. Cons, Ph. Defert - n°1 October 2002 Software Packages Management System for the EU DataGrid G. Cancio Melia, L. Cons, Ph. Defert. CERN/IT.
Samba – Good Just Keeps Getting Better The new and not so new features available in Samba, and how they benefit your organization. Copyright 2002 © Dustin.
Feedback from the POOL Project User Feedback from the POOL Project Dirk Düllmann, LCG-POOL LCG Application Area Internal Review October 2003.
National Center for Supercomputing ApplicationsNational Computational Science Grid Packaging Technology Technical Talk University of Wisconsin Condor/GPT.
Marco Cattaneo - DTF - 28th February 2001 File sharing requirements of the physics community  Background  General requirements  Visitors  Laptops 
Rob Davidson, Partner Technology Specialist Microsoft Management Servers: Using management to stay secure.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
Module 9 User Profiles and Social Networking. Module Overview Configuring User Profiles Implementing SharePoint 2010 Social Networking Features.
Linux Operations and Administration
Software in the Data Protector Architecture
Separate distribution of the analysis code (and more) P. Hristov 19/03/2014.
Andrew McNab - Globus Distribution for Testbed 1 Globus Distribution for Testbed 1 Andrew McNab, University of Manchester
36 th LHCb Software Week Pere Mato/CERN.  Provide a complete, portable and easy to configure user environment for developing and running LHC data analysis.
Solaris 가상화 기술 이강산. What is a zone? A zone is a virtual operating system abstraction that provides a protected environment in which applications run.
XAMPP.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
CACI Proprietary Information | Date 1 PD² v4.2 Increment 2 SR13 and FPDS Engine v3.5 Database Upgrade Name: Semarria Rosemond Title: Systems Analyst, Lead.
Scientific Linux Inventory Project (SLIP) Troy Dawson Connie Sieh.
Maria Alandes Pradillo, CERN Training on GLUE 2 information validation EGI Technical Forum September 2013.
Use Cases, Issues, Proposed Solutions: Software and Environment Non Privileged User Package Management Francois-Denis Gonthier Kryptiva inc.
Stephanie Allison Software Mar 2, 2006 IOC Applications Host Applications Directory Structure Environment Setup Issues.
Managing User Desktops with Group Policy
Installation of MySQL Objectives Contents Practical Summary
CMS DCS: WinCC OA Installation Strategy
Current Generation Hypervisor Type 1 Type 2.
Overview – SOE PatchTT November 2015.
Data Virtualization Tutorial: XSLT and Streaming Transformations
Overview – SOE PatchTT December 2013.
The Linux Operating System
Introduction to Configuration Management
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Electronics II Physics 3620 / 6620
Discussing an OVS/OVN Split
Chapter 15: File System Internals
Open Automation Software
Presentation transcript:

Handling of Unix Application Software Stephan Wiesand DESY -DV - May 25, 2004

Motivation in early 2003, we looked for a replacement for our Unix software deployment scheme: installsoftware in /afs/ /products create symlinks in all systems have these symlinks /products -> /afs/ /products /usr/local -> /afs/ the replacement was designed, implemented and deployed since, as time allowed (no dedicated resources), and is presented here

The Problem provide additional software on all client systems sw not included with the distribution, or needed in different or multiple versions, or built with different options (kerberized...) targets: Linux, Solaris, & any other potentially relevant platform desktops, farm nodes, (workgroup) servers, controls, notebooks many have disks too small to install all software locally some must function properly without network or other infrastructure

Additional Requirements automatic (un)installation, up/downgrade configurable per client (tests...) keep systems in a well defined, working state reproducible without backup verifyable decent dependency handling (shared libraries allowed) within add-on software and against the host system for every client, even if some software isn't local lightweight solution, don't invent a new framework use standard tools, unmodified

Solution use a standard package format and a package database separate from the host system's split packages into a main package that can be replaced by a single symlink into a central “reference installation” an optional “default” package (always installed locally) populating directories in PATH, MANPATH etc. with symlinks populate the reference installation from same packages that would be installed locally on the client, maintain the package database as though all packages were installed locally

Packager Choice: RPM (all platforms) available and working on all potential targets has all required features versioned dependencies/conflicts, virtual packages automatic for shared library dependencies --justdb switch for updating the database only structured package building from specs is a plus build procedure is fully documented automatically powerful macro facility (one spec for all platforms) writing specs is becoming a common skill excellent documentation for beginners available

Closing the Dependency Chain using a separate RPM DB is possible and consistent across platforms doesn't interfere with any mechanism maintaining the client but leaves a dependency gap between system and add-ons solution: glue packages, providing virtual packages (ABI version of shared libraries,...) ghost files (/bin/sh,...) safeguards in pre[uninstall] script enforce --justdb verifying a glue package will check that the system installation keeps its promises

Glue Packages to build a glue package, define macros for the missing dependencies for virtual/real packages: add Provides: for files, add %ghost in files section provide a verify script checking existence of files (test -f ) or using /bin/rpm -q --whatprovides can have one or more (glue-devel, glue-legacy,...) possible enhancement: mirror package for system DB requiring everything the glue package provides & vice versa

Filesystem Layout & Packaging deliberately chose not to use /usr/local /opt/ products/ bin/ perl->/opt/products/perl/5.8.2/bin/perl pine->/opt/products/pine/4.58/bin/pine perl/ 5.8.2/ bin/ perl* pine/ 4.58/ bin/ pine* perl i586.rpm pine i586.rpm perl-default i586.rpm pine-default i586.rpm

Packages: Rules base packages contain /opt/products/ / + content nothing else can be replaced by a single symlink to / / default packages contain links to files from base packages anywhere in /opt/products except in any directory owned by a base package must require their base package

Refinements what if we want /opt/products/bin/perl5.8.0 ? -> alias packages (like default, but multiple versions ok) what if we want to add files in a base directory ?(additional perl modules, configuration files) -> daughter packages allowed to write anywhere below parent's directory must require their parent names prefixed by _ - what if we want to maintain certain files by other means? (again, configuration files) -> local packages (like default, but links point to local fs)

Shared Library Dependencies we do populate /opt/products/lib (and include) but use is discouraged and it's not searched by the dynamic loader by default instead, set runtime search path for shared libs at build time (link)... -Wl,-rpath,/opt/products/ / /lib... sometimes hard to do (improper use of libtool...) means we have to rebuild dependent packages more often also means rolling out new versions doesn't break anything needs a modified find-requires not processing shared libs in /opt/products (spec macro __find_requires)

Deployment manual/scripted installation is possible: mkdir -p /opt/products/RPMDB rpm -p --verify --verbose.../glue i586.rpm rpm --dbpath... -i --justdb.../glue i586.rpm rpm --dbpath... -i.../pine i586.rpm mkdir -p /opt/products/perl ln -s /perl/5.8.2 /opt/products/perl rpm -i --justdb.../perl i586.rpm rpm -i.../perl-default i586.rpm rpm -i.../pine-default i586.rpm possible and straightforward, but tedious...

Tools instead, implemented ppm perl wrapper calling rpm finds packages in a repository on central filesystem locatedb for locating package files RPM DB (created with -i --justdb) for dependencies, content accepts input like this: [install] justdbglue2.02 localpine4.581default linkperl default,alias

ppm features accepts one or more flat file names as input processed sequentially conflicting/redundant input ok last one takes precedence -> overrides, delegation (also has an include mechanism) there's a [remove] tag as well set of input files defines absolute final state not an incremental change final state is verified & sanitized - if possible resolve dependencies automatically correct children of base packages installed as link...

Status so far, we mostly built packages for software that needed a rebuild or were unavailable before and a few essential ones and their dependencies in full production on DESY Linux 5 most important packages available, few missing in use on DL4 and Solaris 8 hosts to varying degrees DL4 now obsolete, Solaris actually started this year on both sites (independent of host management solutions) also in use on Linux Notebooks

Experience improved preservation and transfer of knowledge about building an application or library properly no diligence (installation notes...) required package builders have to go through a learning curve about one day for building a first package not yet built starting from a similar example once used to it, little overhead to other procedures at least any producing transparent, reproducible results rebuilds and small changes much faster and more reliable we're probably past break even