Managing Open Source Software on Workstations and Clusters. Theodore Kisner, LBNL

Similar documents
How to Contribute to a Sphinx Doc Documentation

Software Distribution and Package Management

Exercises. Cacti Installation and Configuration

Exercises. Cacti Installation and Configuration

A Makefile. The Makefile contains various statements that specify how the application should be compiled and where it should be installed on your

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software.

Setting up Python 3.5, numpy, and matplotlib on your Macintosh or Linux computer

The build2 Toolchain Installation and Upgrade

Install your scientific software stack easily with Spack

Compiling Software on UNIX. System Administration Decal Spring 2009 Lecture #4 George Wu Slides prepared by Joshua Kwan

CS 326: Operating Systems. Networking. Lecture 17

2 Installing the Software

Upgrading Your Geant4 Release

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

CS197U: A Hands on Introduction to Unix

Using git to download and update BOUT++

Building Open Source Software on DEC ULTRIX V4.5 (Revision ) RISC / VAX. Revision Joachim Buss

my Julia programming cheat sheet

COPYRIGHTED MATERIAL. Installing Xcode. The Xcode Installer

CMake & Ninja. by István Papp

Basic Uses of JavaScript: Modifying Existing Scripts

Software Installations

Package Managers. What are they and why we use them

manifold Documentation

What we already know. more of what we know. results, searching for "This" 6/21/2017. chapter 14

How to find and Delete Duplicate files in directory on Linux server with find and fdupes command

Genius Quick Start Guide

Centreon SSH Connector Documentation

Debian development with scratchbox. Lauri Arimo

TENSORRT 3.0. DU _v3.0 February Installation Guide

Code::Blocks Student Manual

Preview. COSC350 System Software, Fall

Installing SeisComP3

Why Operating Systems? Topic 3. Operating Systems. Why Operating Systems? Why Operating Systems?

Python for Earth Scientists

BUILD LINUX LEARNING LAB FOR FREE

IC Memory Card : How to make it work with your FM-Towns computer or console (V /12/20)

Applied Informatics POCO PRO C++ Frameworks

Installation and Basic Usage Constructing Graphs Analyzing Graphs Plotting (Matplotlib) NetworkX Tutorial

Laboratorio di Tecnologie dell'informazione

Backpacking with Code: Software Portability for DHTC Wednesday morning, 9:00 am Christina Koch Research Computing Facilitator

Installation and Licensing Guide

POOSL IDE Installation Manual

Homework 6: Pose Tracking EE267 Virtual Reality 2018

Introduction to Python Part 2

7 zip linux gui. Search

Singularity: container formats

Can t Believe It s Linux. a totally different and hypothetical linux distribution

TENSORRT 4.0 RELEASE CANDIDATE (RC)

Build Debian/Ubuntu packages to make it easy for users to install your software

8/16/12. Computer Organization. Architecture. Computer Organization. Computer Basics

File System. Preview. File Name. File Structure. File Types. File Structure. Three essential requirements for long term information storage

How to install and build an application

(page 0 of the address space) (page 1) (page 2) (page 3) Figure 12.1: A Simple 64-byte Address Space

Harnessing the Power of Python in ArcGIS Using the Conda Distribution. Shaun Walbridge Mark Janikas Ting Lee

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

System Administration for Beginners

52 Remote Target. Simulation. Chapter

apt list search show install remove autoremove update upgrade full-upgrade

The FreeBSD Package Cluster

EL2310 Scientific Programming

Unzip zip files command line

Masternode Setup Guide

Status.out and Debugging SWAMP Failures. James A. Kupsch. Version 1.0.2, :14:02 CST

cget Documentation Release Paul Fultz II

Leveraging Docker and CoreOS to provide always available Cassandra at Instaclustr

CROSS-PLATFORM UTILITIES (CXUTILS) LIBRARY 2.0 USER DOCUMENTATION

CT 320: Network and System Administration

Setting up Python 3.4 and numpy and matplotlib on your own Windows PC or laptop

Building a Successful SQL Server Lab. Ted Krueger Principal Consultant

Segmentation with Paging. Review. Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Segmentation with Page (MULTICS)

Print Audit 6. Print Audit 6 Documentation Apr :07. Version: Date:

Source control with Subversion A user perspective

LOCAL WALLET (COLD WALLET):

Current Topics in OS Research. So, what s hot?

Dalton/LSDalton Installation Guide

Laboratorio di Programmazione. Prof. Marco Bertini

LINUXBUILD User's Manual

Apache FastCGI Tutorial

Semester 2, 2018: Lab 1

The PBI format re-implemented for FreeBSD and PC-BSD. Kristofer Paul Moore

Chapter 8: Virtual Memory. Operating System Concepts Essentials 2 nd Edition

What is Subversion and what does it do?

How to install and build an application

GRACES Data Reduction Cookbook

Chapter 8 Virtual Memory

Microchip WebSeminar

Virtual Machines. Module 2

How to build Simbody 2.2 from source on Windows

!"#$%&'())*'"+,&-,.-!! 1

Drupal Command Line Instructions Windows 7 Network Drives >>>CLICK HERE<<<

Operating Systems. Operating Systems Professor Sina Meraji U of T

Department of Computer Science. Software Usage Guide. CSC132 Programming Principles 2. By Andreas Grondoudis

Market Data Platform Real Time. SNAPSHOT DATA Futures & Options Market

Installing Eclipse (C++/Java)

Tutorial - How to upgrade firmware on Phison S9 controller MyDigitalSSD using a Windows PE environment

Building CircuitPython

AASPI Software Structure

Linux Essentials. Smith, Roderick W. Table of Contents ISBN-13: Introduction xvii. Chapter 1 Selecting an Operating System 1

Creating and Using File Folders

Transcription:

Managing Open Source Software on Workstations and Clusters Theodore Kisner, LBNL

Why Use Open Source Software (OSS)? Many useful tools for data processing and visualization Quality is usually good FREE! (as in purchase price == $0.00) No vendor lock-in Some people like the philosophy... Direct contact with developers if there are problemseven if you don t have a costly support contract. T. Kisner, LBNL - GRITS 6/17/2011

Challenges For some specialized software needs or usage cases, OSS might not be sufficient (e.g. you require specific features that are not mainstream) Installation Where do I find the software? How do I put it on my computer? How do I get rid of it later if I change my mind? How do I upgrade to newer versions of the software? T. Kisner, LBNL - GRITS 6/17/2011

Installation Binary package managers (APT, yum, zypper) Source-based package managers (portage, BSD ports, macports) Roll your own : manually download the sources and compile on your computer Dependencies checked automatically, official builds, good chance of working Concrete Example: we want to install matplotlib to make plots from within python... T. Kisner, LBNL - GRITS 6/17/2011

Binary Package Management (Ubuntu) Search for what you want: $> aptitude search matplotlib p python-matplotlib - Python based plotting system similar to Matlab p python-matplotlib-data - Python based plotting system (data package) p python-matplotlib-dbg - Python based plotting system (debug extension) p python-matplotlib-doc - Python based plotting system (documentation package) v python2.6-matplotlib - v python2.7-matplotlib - And... Install it! $> aptitude install python-matplotlib The following NEW packages will be installed: blt{a} python-dateutil{a} python-matplotlib python-matplotlib-data{a} python-pyparsing{a} python-tk{a} python-tz{a} tcl8.5{a} tk8.5{a} ttf-lyx{a} 0 packages upgraded, 10 newly installed, 0 to remove and 34 not upgraded. Need to get 7,903 kb of archives. After unpacking 28.9 MB will be used. Do you want to continue? [Y/n/?] T. Kisner, LBNL - HiPACC 12/16/2010

Binary Package Management (Ubuntu) Dependency tracking T. Kisner, LBNL - HiPACC 12/16/2010

Binary Package Management (Ubuntu) Dependency tracking T. Kisner, LBNL - HiPACC 12/16/2010

Binary Package Management (Ubuntu) Other tools to track which packages were install automatically and remove if no longer needed in the future. In a binary package management scheme, all the timeconsuming building of packages is done on servers somewhere else! Scenario: developer uploads new source code to build server. Code is built automatically. After testing, it is available for you to download as an upgrade. T. Kisner, LBNL - GRITS 6/17/2011

Source Package Management (Macports) Search for what you want: $> port search matplotlib py-matplotlib @0.99.0 (python, graphics, math) matlab-like syntax for creating plots in python py-matplotlib-basemap @0.99.4 (python, graphics, math) matplotlib toolkit for plotting data on map projections py25-matplotlib @1.0.1 (python, graphics, math) matlab-like syntax for creating plots in python py25-matplotlib-basemap @1.0.1 (python, graphics, math) matplotlib toolkit for plotting data on map projections py26-matplotlib @1.0.1 (python, graphics, math) matlab-like syntax for creating plots in python py26-matplotlib-basemap @1.0.1 (python, graphics, math) matplotlib toolkit for plotting data on map projections py27-matplotlib @1.0.1 (python, graphics, math) matlab-like syntax for creating plots in python py27-matplotlib-basemap @1.0.1 (python, graphics, math) matplotlib toolkit for plotting data on map projections Found 8 ports. T. Kisner, LBNL - HiPACC 12/16/2010

Source Package Management (Macports) And... install it! $> port install py27-matplotlib ---> Computing dependencies for py27-matplotlib ---> Dependencies to be installed: py27-configobj py27-dateutil py27-tz py27- pyobjc-cocoa py27-pyobjc py27-py2app py27-bdist_mpkg py27-macholib py27- modulegraph py27-altgraph py27-tkinter ---> Fetching py27-configobj ---> Attempting to fetch configobj-4.6.0.zip from http://cdnetworksus-2.dl.sourceforge.net/configobj ---> Verifying checksum(s) for py27-configobj ---> Extracting py27-configobj ---> Configuring py27-configobj ---> Building py27-configobj ---> Staging py27-configobj into destroot ---> Installing py27-configobj @4.6.0_0 ---> Activating py27-configobj @4.6.0_0 ---> Cleaning py27-configobj ---> Fetching py27-tz <SNIP> (more downloading, compiling, laptop churning, etc) <SNIP> ---> Installing py27-matplotlib @1.0.1_1+tkinter ---> Activating py27-matplotlib @1.0.1_1+tkinter ---> Cleaning py27-matplotlib T. Kisner, LBNL - HiPACC 12/16/2010

Why Roll Your Own Software Install? No package exists from the OS distribution, or existing package is too old Need to compile the software with non-standard options. You don t have root access and the administrators are unresponsive ( this will never happen! ) Where to start: Decide what software you want and how it is going to be used- this will determine the best place to install. T. Kisner, LBNL - GRITS 6/17/2011

Software that you want Can all dependencies be installed by a package manager? NO YES Compile and install in standard place (e.g. /usr/local)

Make list of all dependencies and their relationships and save it somewhere! Are you willing to use only the latest versions of all tools? NO YES Compile and install to a fixed, custom location (e.g. /usr/local/software)

Do you want to mix and match versions of dependencies? NO YES Install every version of every package to its own directory (e.g. /usr/local/software/python-2.7.1). Use modules to swap between the versions.

Make directory for each snapshot of all package versions (e.g. /usr/local/software_20110617). Change values of PATH, LD_LIBRARY_PATH, MANPATH, etc when you want to switch between them.

Details of Software Building Remember: YOU are the package manager Look at all the dependencies and sketch out a picture of which tools depend on which. Download all the source tarballs. Start at the lowest level tools and work up the dependency chain. Use the same compiler version for all software. Record how you called configure for each piece of software and / or any edits to Makefiles, etc that you did. If you upgrade one tool, recompile anything that depends on it. T. Kisner, LBNL - GRITS 6/17/2011

Considerations for Multi-user Systems If you break things, more than one person will complain! Use local disk for compilation (faster; no risk of clock skew), and install to shared filesystems if desired. When rolling your own and upgrading some of the software, rebuild everything and install to a new prefix. Then swap environment variables to the new location. Can use modules to allow users to load old versions of software for debugging / validation. T. Kisner, LBNL - GRITS 6/17/2011

Conclusions Use the recommended package management system(s) for your platform when ever possible! Manual installation of large software packages with many dependencies is painful. It would be nice to have a source-based package manager that would work across all UNIX systems, similar to FreeBSD Ports / Macports. T. Kisner, LBNL - GRITS 6/17/2011