Software Packaging with RPM

Size: px
Start display at page:

Download "Software Packaging with RPM"

Transcription

1 Software Packaging with RPM Andrew Ford 18 April 2013 Copyright 2013 Ford & Mason Ltd

2 About this talk Covers package building not package management Material was collected for a book: The RPM Handbook Warning: this talk is not exhaustive!

3 Outline of talk What is RPM? Building RPMs Dependencies and capabilities Macros Running rpmbuild Anatomy of a specfile Build scripts Management scripts and triggers Evolution of RPM Sources of further information

4 What is the significance of packaging? Ian Murdoch, founder of Debian, suggested in 2007 that: [Package management is] the biggest advancement Linux has brought to the industry Debian and RPM packages evolved at roughly the same time and are comparable in functionality

5 Why is RPM relevant? Provides a straightforward, consistent way to manage software and resources directly or through higher-level tools The fundamental building block of distros Widespread use: RPM-based distros (RHEL, Fedora, SLE, opensuse) Independent Software Vendors (ISVs) Packages for internal use Well-constructed packages give a professional impression

6 RPM design goals Upgradability (easy to install, upgrade and remove packages) Powerful querying System verification Pristine sources (start with original, upstream source code) Reproducible builds

7 Issues with RPM Poorly documented Shows signs of age but it is evolving Enterprise distributions lag behind latest developments (newer features often not available for several years) Many packaging details are distribution-specific (see Fedora, opensuse and Mandriva packaging guidelines) Information and misinformation on the internet

8 Versions of RPM in use Version Date Used by (EOL) SUSE RHEL 5 (2017/2020), SUSE RHEL 6 (2020/2023) OpenSUSE 12.2 (2014) Fedora 17 (2013) Fedora 18 (2014) These are just the versions still in use by major distributions. Prior to 2005 RPM development languished. Version is the first version of the relaunched rpm.org In 2006 RPM was forked by the previous developer rpm5 is only used by Mandriva

9 What does RPM consist of? Package file format (.rpm and.srpm) contains metadata and payload Package database (/var/lib/rpm/*) information on installed packages Configuration files (/etc/rpm/* and /usr/lib/rpm/*) Run-time admin tools (rpm command) Build tools (rpmbuild command) Libraries used by tools such as yum and the rpm tools themselves

10 What does RPM do? Installs, erases and updates packages Reports on what packages are installed Verifies installed packages Checks dependencies within sets of packages being installed, upgraded or removed Underpins higher-level packaging tools e.g. YUM, PackageKit, Zypper (these resolve dependencies, as well as checking) Provides a package build tool (rpmbuild)

11 Building RPM packages Dependencies Macros The build environment The build process Scriptlets, Scripts, and Triggers

12 Dependencies Dependency tracking is fundamental to packaging systems Ensures that software being installed has all its prerequisites Ensures that packages aren't inadvertently removed while other packages depend on them Differentiate between dependency checking and dependency solving

13 Dependencies (2) Packages provide capabilities (text strings) One automatic capability is the name of the package Special capabilities: rpmlib(feature) interp(module) e.g. perl(class::accessor) Requirements can specify versions of capability: op [epoch:]version[-release]

14 Version comparison rules Epoch - integer comparison Version and release: Split into numeric and alpha substrings and compared substring by substring (separators ignored) Leading zeroes ignored Longer substring or sequence is newer e.g.: > 1.9 1a > 1B 3:1.0 > 2: abc = 1_2_3_abc

15 RPM macros Macro values control all rpm tools (rpmbuild, rpm, etc) e.g.: %_topdir defines build directory (~/rpmbuild) %_binary_payload defines payload format and compression Defaults defined in /usr/lib/rpm/macros About 250 macros another 80 commented out

16 RPM macros (2) Can be defined: In macro files (/usr/lib/rpm/macros, /etc/rpm/*, ~/.rpmmacros) On the command line for all commands (-D 'name definition') In spec files %global name[(args)] expansion %define name[(args)] expansion By rpmbuild internally e.g. Name tag causes %name macro to be defined with the tag's value Note: parameterized macros definitions are evaluated twice (on definition and use), simple macros are evaluated once (on definition)

17 RPM macros (3) Usage %name or %{name} note: if the macro is not defined you get literal string in output Conditionals: %{?name[:expansion]} %{!name:expansion} %if expr... %else... %endif %ifarch / %ifnarch / %ifos / %ifnos Shell escape: %(command arg...) Messages: %{echo: msg} (also warn and error) Dump all definitions: %dump

18 Building RPMs Packages are normally built from sources and patches Aimed at software that follows GNU Coding Standard (autoconf/automake, etc) works best if you don't fight it RPM packages built with rpmbuild command (-ba option to build everything) Controlled by spec file (which may be located within tar file use -ta) Spec file can define multiple packages Spec file specifies build requirements (can be installed with yum-builddep from yum-utils)

19 Build process rpmbuild initializes itself from macro files (/etc/rpm/*, /usr/lib/rpm/macros, ~/.rpmmacros) Reads spec file, expanding macros as it goes Steps through build stages specified by spec file Determines dependencies and capabilities provided Constructs binary RPM and/or source SRPM Note: never build as root! always test RPMs on a clean system or with mock to identify unspecified dependencies (which may be satisified by s/w installed on the build system)

20 Build environment Build area is a directory hierarchy location specified by %_topdir (~/rpmbuild) SPECS/ (% specdir) SOURCES/ (% sourcedir) BUILD/ (% builddir) BUILDROOT/ (% buildroot) RPMS/ (% rpmdir) SRPMS/ (% srcrpmdir) Setup directories under $HOME with rpmdev-setuptree (from rpmdevtools package)

21 Spec files Complete specification of package Defines meta data for package (name, version, release, license, etc) Specifies dependency information Describes software build process Provides a manifest of the files to be installed Provides scripts for package install/erase Note: clumsy syntax %thing may be a macro, a spec file section or an file attribute depending on context Comments are marked with #, but macros within comments are expanded which can cause problems

22 Spec file sections Preamble (subpackage preambles introduced by %package) Package description (%description) Build script sections (%prep, %build, %install, %check, %clean) Run-time scripts (%pre, %post, %preun, %postun, %pretrans, %posttrans, %verify) Trigger scripts (%triggerprein, %triggerin, %triggerun, %triggerpostun) Files manifest (%files) Change log (%changelog) Subpackages have separate description, run-time scripts, triggers and manifests (sections qualified with subpackage suffix or full name)

23 ~/rpmbuild/ (%_topdir) Name: pkg Version: 1.0 Release: 1 SPECS/ %prep %setup -q %build configure make SOURCES/ BUILD/ %install make install %files BUILDROOT/ pkg.spec RPMS/

24 Example spec file Name: hello Version: 2.7 Release: 1%{?dist} Summary: GNU 'hello world' program Group: Miscellany Vendor: Free Software Foundation License: GPLv3 URL: BuildRoot: %{_tmppath}/%{name}-root-%(%{ id_u} -n) Requires: info Source0: %{name}-%version.tar.gz %description GNU Hello produces a familiar, friendly greeting. The practical purpose Of GNU Hello is to serve as a minimal example of a GNU package. %prep %setup -q %build %configure make %install make install DESTDIR=$RPM_BUILD_ROOT

25 ExamplesSpec file (continued) %clean rm -rf $RPM_BUILD_ROOT %post /sbin/install-info %{_infodir}/hello.info.gz %{_infodir}/dir : %preun if [ $1 = 0 ]; then /sbin/install-info --delete %{_infodir}/hello.info.gz %{_infodir}/dir : fi %files %defattr(-,root,root,-) %doc README /usr/bin/hello %exclude /usr/share/info/dir %doc /usr/share/info/hello.info.gz /usr/share/locale/*/lc_messages/hello.mo %doc /usr/share/man/man1/hello.1.gz %changelog * Fri Apr <andrew@ford-mason.co.uk> Initial packaging

26 Spec file preamble Consists of key-value records before first section Name: name of the software package Version: version number of the upstream source code Release: number of this release of the software package Summary: short, one-line description of the package URL: web site URL for software License: licence for the software Group: category the software falls in Source0: file containing the N'th source file Preamble for subpackages specified with %package section Info corresponds to output from rpm --query info %description section provides more detailed description

27 Specifying dependencies Automatic and manual dependencies (scripts % find_requires and % find_provides) Packages provide capabilities (including one with the name of the package) Specify capabilities provided with Provides tag Required packages/capabilities with Requires tag PreReqs tag is deprecated use Requires(pre) Conflicts specified with Conflicts tag SUSE has soft dependencies (Suggests and Recommends) these may come to later versions of rpm

28 Specifying dependencies (2) Dependencies and capabilities provided can be Automatically determined by rpmbuild (and helpers) Manually specified (%requires, %provides, etc) Automatic dependency generators run by rpmbuild after %install section Also need to specify build dependencies

29 Build process in detail %prep Unpacks source files and applies patches, e.g.: %prep %setup -q %patch0 Process often acheived with two pseudo -macros: %setup unpacks (compressed) tar files into build dir %patchn applies patch N

30 Build drocess in detail %build Configures and builds software e.g.: %build %configure make %configure runs GNU configure make is standard Linux make command

31 Build process in detail %install Installs to the build root - a staging area (proxy for the real root directory) %install make install DESTDIR=$RPM_BUILD_ROOT Installs into build root (proxy for the filesystem root) Configure-generated makefiles support $DESTDIR

32 Debugging RPM build scripts rpmbuild creates temporary script files Build can be executed up to a certain stage -bp stop after %prep -bc stop after %build (compile stage -bi stop after %install -bl do list check (expand %files and check everything exists) --short-circuit option to skip to stage specified with -bc, -bi or -bb (but makes generated RPM essentially unusable) shortrpm program can be used to create installable RPMs skipping prep and build stages but should only be used in development Alternatively exit 1 to build or install script, and examine and debug the script left in /var/tmp

33 Management scripts Scripts run before/after package installation, upgrade and erasure %pretrans run at start of transaction %pre before package installed %post after package installs %preun before package uninstalled %postun after package uninstalled %posttrans at end of transaction %verifyscript run by rpm -V On upgrade install scripts are run from new version of package, then uninstall scripts from old version Install scripts are not interactive we're not on Debian here!

34 Management scripts (2) Uses: Set up users and groups Install services and cron jobs, set up alternatives Refresh dynamic linker bindings (ldconfig) Scripts receive argument $1 says how many instances left at end of operation: 1 after first install 2 for install of new version on upgrade 1 for uninstall of previous version on upgrade 0 for final uninstall

35 Management scripts (3) Scripts can be provided for subpackages (specify name after script tag) Interpreter specified with -p program Default interpreter is /bin/sh <lua> for built-in lua interpreter (all that is available on %pretrans of first-stage install) Can specify /sbin/ldconfig if that is all that needs to run Creates an automatic dependency on interpreter

36 Triggers Scripts that run when a target package is installed or uninstalled: %triggerin run when target or source package installed/upgraded %triggerun run when target or source package is uninstalled %triggerpostun run after target package is uninstalled e.g.: %triggerin -p /bin/sh postfix Trigger scripts invoked with two arguments: $1 gives number of instances of source package remaining when trigger completes $2 gives number of instances of target package remaining

37 File lists List of files in package(s) specified by %files List can be read from file with -f file Attributes specified with %defattr, %attr Configuration files marked with %config Documentation flagged with %doc (collected and placed in /var/share/doc) 4.11 introduces %license to mark license files Error if there are unpackaged files in build root

38 Repeatable builds BuildRequires specifies packages needed for building Building under mock can ensure unspecified dependencies are identified basic usage: mock -init chroot-name mock -root chroot-name \ -rebuild package.src.rpm Should also test installation of built packages

39 RPM evolves Just a couple of examples (remember RHEL5 uses ): BuildRoot tag now silently ignored Group tag no longer mandatory %_topdir now $HOME/rpmbuild (was /usr/src/redhat) New macros %patches and %sources Support for XZ compression Group tag in subpackage inherits from main package New macros %getenv and %getconfdir

40 More changes (used by RHEL6) Deprecated Copyright tag no longer recognized PreReq and BuildPreReq are deprecated New BugUrl tag and %_bugurl macro New %make_install macro Macros %PACKAGE_VERSION and %PACKAGE_RELEASE removed (use %version and %release) New Requires(pretrans) and Requires(posttrans) tags New OrderWithRequires tag --sign option to rpmbuild no longer supported (now is a separate command rpmsign) Release notes on rpm.org have the details

41 And there's more... Multilib SE Linux policies POSIX capabilities Software collections

42 Sources of further information Man pages for rpm, rpmbuild, etc rpm.org fedoraproject.org/wiki/ Category:Package_Maintainers opensuse.org/portal:packaging wiki.linuxfoundation.org/en/lsb (Linux Standards Base) Classic Shell Scripting, Robbins & Beebe (O'Reilly) AUTOTOOLS, John Calcote (No Starch Press) GNU Coding Standards (Free Software Foundation) rpmhandbook.com (coming soon)

43 Thank you

BUILDING YOUR OWN RPMS

BUILDING YOUR OWN RPMS BUILDING YOUR OWN RPMS CONNECTING TO THE LAB EQUIPMENT These steps will help you get started with the exercises: 1. Login to the desktop you are seated at as the user student, with the password student

More information

Red Hat Enterprise Linux 7 RPM Packaging Guide

Red Hat Enterprise Linux 7 RPM Packaging Guide Red Hat Enterprise Linux 7 RPM Packaging Guide Basic and Advanced RPM Packaging Maxim Svistunov Red Hat Marie Doleželová Red Hat Adam Miller Red Hat Red Hat Enterprise Linux 7 RPM Packaging Guide Basic

More information

What s new in RPM. (insider info from upstream development) Jindr ich Novy, September 15, 2009

What s new in RPM. (insider info from upstream development) Jindr ich Novy, September 15, 2009 What s new in RPM (insider info from upstream development) Jindr ich Novy, jnovy@redhat.com September 15, 2009 Copyright 2009 Jindřich Nový Permission is granted to copy, distribute and/or modify this

More information

Red Hat Enterprise Linux 7

Red Hat Enterprise Linux 7 Red Hat Enterprise Linux 7 RPM Packaging Guide Basic and Advanced RPM Packaging Last Updated: 2018-07-19 Red Hat Enterprise Linux 7 RPM Packaging Guide Basic and Advanced RPM Packaging Adam Kvítek Red

More information

DICE and LCFG Software Guidelines

DICE and LCFG Software Guidelines DICE and LCFG Software Guidelines by paul@dcs.ed.ac.uk DICE Computing Environment Project Division of Informatics University of Edinburgh 1 Introduction This document describes the standards to be used

More information

Integration of UNICORE Components into Linux Systems

Integration of UNICORE Components into Linux Systems Mitglied der Helmholtz-Gemeinschaft Integration of UNICORE Components into Linux Systems 15.12.2009 Rebecca Breu UNICORE Installation as of Now tgz or graphical installer all files installed into one directory

More information

Building RPMs. Josko Plazonic. & Thomas Uphill. January 25, Building RPMs. Josko Plazonic. Princeton University.

Building RPMs. Josko Plazonic. & Thomas Uphill. January 25, Building RPMs. Josko Plazonic. Princeton University. Building Building January 25, 2007 Building What is? Building RPM Package Manager What is? Building RPM Package Manager Two types of RPM packages. What is? Building RPM Package Manager Two types of RPM

More information

Building RPMs for Native Application Hosting

Building RPMs for Native Application Hosting This section explains how you can build RPMs for native application hosting. Setting Up the Build Environment, page 1 Building Native RPMs, page 3 Setting Up the Build Environment This section describes

More information

RPM How To: Intro. What is RPM? Why Building RPMS? Who is this howto designed for? Who can build RPMS? What do I need to build RPMS?

RPM How To: Intro. What is RPM? Why Building RPMS? Who is this howto designed for? Who can build RPMS? What do I need to build RPMS? RPM How To: Intro What is RPM? The RedHat Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer

More information

Software Deployment Packaging, Installation, Updates

Software Deployment Packaging, Installation, Updates Software Deployment Packaging, Installation, Updates Peter Libič, Pavel Parízek, Tomáš Kalibera DISTRIBUTED SYSTEMS RESEARCH GROUP http://dsrg.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics

More information

Package Manager. RPM (Red Hat Package Manager)

Package Manager. RPM (Red Hat Package Manager) Package Manager RPM (Red Hat Package Manager) A toolset for distributing and maintaining packages (tools,libraries, etc) Package name: Name-version-release.distribution.archtecture Source package suffix.src.rpm

More information

RHEL Packaging. (making life easier with RPM) Jindr ich Novy Ph.D., June 26, 2012

RHEL Packaging. (making life easier with RPM) Jindr ich Novy Ph.D., June 26, 2012 RHEL Packaging (making life easier with RPM) Jindr ich Novy Ph.D., jnovy@redhat.com June 26, 2012 RHEL Packaging 1/30 Agenda 1 How Red Hat Enterprise Linux is packaged 2 Software Collections (SCLs) Filesystem

More information

Software Distribution and Package Management

Software Distribution and Package Management Software Distribution and Package Management Pieter Lexis February 15, 2016 Package Management - Pieter Lexis February 15, 2016 1 / 1 whoami Pieter Lexis OS3 graduate SysAdmin for a long time DNS + DNSSEC

More information

Fedora Draft Documentation Packager's Guide

Fedora Draft Documentation Packager's Guide Fedora Draft Documentation Packager's Guide A guide to software packaging for Fedora 18 Petr Kovář Packager's Guide Draft Fedora Draft Documentation Packager's Guide A guide to software packaging for Fedora

More information

Python RPM Porting Guide Release 0.1

Python RPM Porting Guide Release 0.1 Python RPM Porting Guide Release 0.1 Red Hat, Inc. Apr 27, 2017 Contents 1 Porting the specfile to Python 3 2 2 Modifications 3 2.1 BuildRequires and Requires....................................... 3 2.2

More information

Overview. What are community packages? Who installs what? How to compile and install? Setup at FSU RCC. Using RPMs vs regular install

Overview. What are community packages? Who installs what? How to compile and install? Setup at FSU RCC. Using RPMs vs regular install Overview What are community packages? Who installs what? How to compile and install? Setup at FSU RCC Dependency hell Where to install? Using RPMs vs regular install Getting RPMs How to build an RPM Automated

More information

Building Linux Packages with RPM

Building Linux Packages with RPM Building Linux Packages with RPM S9239, Long Beach Tuesday 1:30pm, February 24, 2004 Alex devries Outline Why? The goal of pristine sources Some unobvious suggestions How it all fits

More information

Software Packaging with RPM. Schalk W. Cronjé

Software Packaging with RPM. Schalk W. Cronjé Software Packaging with RPM Schalk W. Cronjé ysb33r@gmail.com Background RPM == Red Hat Package Manager No longer just Red Hat Leadership by Marc Ewing and Erik Troan Development was in decay by start

More information

Linux Fundamentals (L-120)

Linux Fundamentals (L-120) Linux Fundamentals (L-120) Modality: Virtual Classroom Duration: 5 Days SUBSCRIPTION: Master, Master Plus About this course: This is a challenging course that focuses on the fundamental tools and concepts

More information

RHCE BOOT CAMP. Various Additional Topics

RHCE BOOT CAMP. Various Additional Topics RHCE BOOT CAMP Various Additional Topics BUILDING RPMS Building an RPM can be simple or difficult, depending on if it s done incorrectly or correctly. ;) Fortunately, for the RHCE exam, you only need to

More information

CT 320: Network and System Administration

CT 320: Network and System Administration CT 320: Network and System Administration CHAPTER 12: SOFTWARE INSTALLATION COLORADO STATE UNIVERSITY COMPUTER SCIENCE DEPARTMENT CHRIS WILCOX FALL 2012 1 Topics 1. The Problem of Software Installation

More information

Software Collections. Honza Horak freenode Red Hat, Brno CentOS Dojo 30 th Jan 2015

Software Collections. Honza Horak freenode Red Hat, Brno CentOS Dojo 30 th Jan 2015 Software Collections Honza Horak hhorak @ freenode Red Hat, Brno CentOS Dojo 30 th Jan 2015 1 2 All versions of any software on your system. Together. Software management challenges

More information

opensuse Packaging for the osmocom stack Martin Hauke

opensuse Packaging for the osmocom stack Martin Hauke opensuse Packaging for the osmocom stack Martin Hauke mardnh@gmx.de 21.04.2018 Intro Why opensuse? It s my favourite Linux distribution (open)suse has great tools and infrastructure OBS, OpenQA, KIWI opensuse

More information

Open Build Service (OBS) Packager Workshop

Open Build Service (OBS) Packager Workshop Open Build Service (OBS) Packager Workshop A Packagers OBS Tools Components Overview Hermes Web UI Web UI Command Line Client Your Client Installer (YaST,etc.) Notification Server OBS API (api.opensuse.org)

More information

Nexus Application Development - SDK

Nexus Application Development - SDK This chapter contains the following sections: About the Cisco SDK, page 1 Installing the SDK, page 1 Procedure for Installation and Environment Initialization, page 2 Using the SDK to Build Applications,

More information

LINUX FUNDAMENTALS (5 Day)

LINUX FUNDAMENTALS (5 Day) www.peaklearningllc.com LINUX FUNDAMENTALS (5 Day) Designed to provide the essential skills needed to be proficient at the Unix or Linux command line. This challenging course focuses on the fundamental

More information

Manual Install Package Rpm Linux Command Line

Manual Install Package Rpm Linux Command Line Manual Install Package Rpm Linux Command Line You can either install it as a package or via another installer, or download the source code If you want to install Git on Linux via a binary installer, you

More information

RPM Package Building & Automated Package Manager

RPM Package Building & Automated Package Manager RPM Package Building & Automated Package Manager Last Modified: May 25,2004 Version: 1.1.1 By: Benjamin Arai This is an evolving project specification so, check back frequently for revisions and hints

More information

The student will have the essential skills needed to be proficient at the Unix or Linux command line.

The student will have the essential skills needed to be proficient at the Unix or Linux command line. Table of Contents Introduction Audience At Course Completion Prerequisites Certified Professional Exams Student Materials Course Outline Introduction This challenging course focuses on the fundamental

More information

LINUX FUNDAMENTALS. Supported Distributions: Red Hat Enterprise Linux 6 SUSE Linux Enterprise 11 Ubuntu LTS. Recommended Class Length: 5 days

LINUX FUNDAMENTALS. Supported Distributions: Red Hat Enterprise Linux 6 SUSE Linux Enterprise 11 Ubuntu LTS. Recommended Class Length: 5 days LINUX FUNDAMENTALS The course is a challenging course that focuses on the fundamental tools and concepts of Linux and Unix. Students gain proficiency using the command line. Beginners develop a solid foundation

More information

T A B L E O F C O N T E N T S

T A B L E O F C O N T E N T S Linux driver - Binary rpm/source rpm user guide and known limitation T A B L E O F C O N T E N T S 1. OVERVIEW... 2 2. DRIVER COMPILATION STEPS... 2 3. OS SUPPORT MATRIX... 2 4. RELEASE CONTENTS... 5 5.

More information

Custom RPMs. For system configuration. Tim Klemz. Presented by. Unix Admin(RHCE), Lifetouch Inc.

Custom RPMs. For system configuration. Tim Klemz. Presented by. Unix Admin(RHCE), Lifetouch Inc. Custom RPMs For system configuration Presented by Tim Klemz Unix Admin(RHCE), Lifetouch Inc. Twin Cities Red Hat User Group :: Q3/2013 Preface 1. I still have lots to learn about RPM creation! 2. RPM's,

More information

T A B L E O F C O N T E N T S

T A B L E O F C O N T E N T S Linux driver - Binary rpm/source rpm user guide and known limitation T A B L E O F C O N T E N T S 1. OVERVIEW... 2 2. DRIVER COMPILATION STEPS... 2 3. OS SUPPORT MATRIX... 2 4. RELEASE CONTENTS... 5 5.

More information

We d like to hear your suggestions for improving our indexes. Send to

We d like to hear your suggestions for improving our indexes. Send  to Index [ ] (brackets) wildcard, 12 { } (curly braces) in variables, 41 ( ) (parentheses) in variables, 41 += (append) operator, 45 * (asterisk) wildcard, 12 $% automatic variable, 16 $+ automatic variable,

More information

Fedora Contributor Documentation Software Collections Guide

Fedora Contributor Documentation Software Collections Guide Fedora Contributor Documentation Software Collections Guide A guide to Software Collections for Fedora and Enterprise Linux Petr Kovář Software Collections Guide Fedora Contributor Documentation Software

More information

A Tutorial on using Code::Blocks with Catalina 3.0.3

A Tutorial on using Code::Blocks with Catalina 3.0.3 A Tutorial on using Code::Blocks with Catalina 3.0.3 BASIC CONCEPTS...2 PREREQUISITES...2 INSTALLING AND CONFIGURING CODE::BLOCKS...3 STEP 1 EXTRACT THE COMPONENTS...3 STEP 2 INSTALL CODE::BLOCKS...3 Windows

More information

Manual Shell Script Linux If Not Exist Directory Does

Manual Shell Script Linux If Not Exist Directory Does Manual Shell Script Linux If Not Exist Directory Does Bash can be configured to be POSIX-confor mant by default. and then a much longer manual available using info (usually they refer to the info page

More information

The build2 Toolchain Installation and Upgrade

The build2 Toolchain Installation and Upgrade The build2 Toolchain Installation and Upgrade Copyright 2014-2019 Code Synthesis Ltd Permission is granted to copy, distribute and/or modify this document under the terms of the MIT License This revision

More information

Perl in RPM-Land. Dave Cross Magnum Solutions Ltd MiltonKeynes.pm. 8 th. th September 2008

Perl in RPM-Land. Dave Cross Magnum Solutions Ltd   MiltonKeynes.pm. 8 th. th September 2008 Magnum Solutions Ltd http://mag-sol.com/ dave@mag-sol.com MiltonKeynes.pm th September 2008 8 th What is RPM? RPM is the RPM Package Manager Previously RedHat Package Manager Package manager for Red Hat

More information

Makefile Brief Reference

Makefile Brief Reference Makefile Brief Reference COMP 229, 346, 444, 5201 Revision 1.1 Date: July 31, 2003 1 Contents Intro Format Examples 2 Intro Makefiles in conjunction with the make utility (man make) provide a very convenient

More information

Software Collectoins for bleeding edge stacks on enterprise

Software Collectoins for bleeding edge stacks on enterprise Software Collectoins for bleeding edge stacks on enterprise Honza Horak hhorak @ freenode Twitter: @HorakHonza Fosdem 1 st Feb 2015 1 2 All versions of any software on your system.

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS MODULAR FILE

More information

RPM Python (and friends) Paul Nasrat. Copyright 2004 Paul NasratRed Hat Inc.

RPM Python (and friends) Paul Nasrat. Copyright 2004 Paul NasratRed Hat Inc. RPM Python (and friends) Paul Nasrat Copyright 2004 Paul NasratRed Hat Inc. Summary Background of rpm python bindings Reasons for interacting with RPM RPM python itself Friends Copyright 2004 Paul NasratRed

More information

New Tools Used by the Scientific Linux Team

New Tools Used by the Scientific Linux Team New Tools Used by the Scientific Linux Team Troy Dawson dawson@fnal.gov HEPIX Fall 2010 November 4, 2010 Overview Overview of the Fedora work flow from source code to distribution Step through the Fedora's

More information

Makefile Tutorial. Eric S. Missimer. December 6, 2013

Makefile Tutorial. Eric S. Missimer. December 6, 2013 Makefile Tutorial Eric S. Missimer December 6, 2013 1 Basic Elements of a Makefile 1.1 Explicit Rules A the major part of a Makefile are the explicit rules (a.k.a. recipes) that make certain files. Below

More information

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

Linux Essentials. Smith, Roderick W. Table of Contents ISBN-13: Introduction xvii. Chapter 1 Selecting an Operating System 1 Linux Essentials Smith, Roderick W. ISBN-13: 9781118106792 Table of Contents Introduction xvii Chapter 1 Selecting an Operating System 1 What Is an OS? 1 What Is a Kernel? 1 What Else Identifies an OS?

More information

Shell Scripting. Todd Kelley CST8207 Todd Kelley 1

Shell Scripting. Todd Kelley CST8207 Todd Kelley 1 Shell Scripting Todd Kelley kelleyt@algonquincollege.com CST8207 Todd Kelley 1 If we have a set of commands that we want to run on a regular basis, we could write a script A script acts as a Linux command,

More information

SDK. About the Cisco SDK. Installing the SDK. Procedure. This chapter contains the following sections:

SDK. About the Cisco SDK. Installing the SDK. Procedure. This chapter contains the following sections: This chapter contains the following sections: About the Cisco, page 1 Installing the, page 1 Using the to Build Applications, page 2 About ISO, page 3 Installing the ISO, page 3 Using the ISO to Build

More information

COMS 6100 Class Notes 3

COMS 6100 Class Notes 3 COMS 6100 Class Notes 3 Daniel Solus September 1, 2016 1 General Remarks The class was split into two main sections. We finished our introduction to Linux commands by reviewing Linux commands I and II

More information

The WebGUI Runtime Environment. Roy Johnson Plain Black Corporation

The WebGUI Runtime Environment. Roy Johnson Plain Black Corporation The WebGUI Runtime Environment Roy Johnson Plain Black Corporation What is the WRE? All the supporting software required to host WebGUI Apache 2 / Mod_Perl 2 MySQL 5 Supporting Perl Modules AWStats Utilities

More information

Linux shell scripting Getting started *

Linux shell scripting Getting started * Linux shell scripting Getting started * David Morgan *based on chapter by the same name in Classic Shell Scripting by Robbins and Beebe What s s a script? text file containing commands executed as a unit

More information

Fedora Linux Kernels Running on ARM Processors

Fedora Linux Kernels Running on ARM Processors Fedora Linux Kernels Running on ARM Processors PETER KOTVAN, PETER FODREK Institute of Control and Industrial Informatics Faculty of Electrical Engineering and Information Technology Slovak University

More information

Prerequisites: Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required.

Prerequisites: Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required. GL-120: Linux Fundamentals Course Length: 4 days Course Description: The GL120 is a challenging course that focuses on the fundamental tools and concepts of Linux and Unix. Students gain proficiency using

More information

Prerequisites: General computing knowledge and experience. No prior knowledge with Linux is required. Supported Distributions:

Prerequisites: General computing knowledge and experience. No prior knowledge with Linux is required. Supported Distributions: This course prepares students to take the 101 exam of the LPI level 1 certification. The Linux Professional Institute (LPI) is the go to certification body for vendor independent Linux certifications.

More information

e2 factory the emlix Embedded Build Framework

e2 factory the emlix Embedded Build Framework e2 factory the emlix Embedded Build Framework Agenda Motivation Basic Concepts Design and Implementation Working with e2 factory e2 factory Motivation Motivation Development Tools Source Code Management

More information

Packaging Tools for OpenServer & UnixWare. Ron Record John Wolfe

Packaging Tools for OpenServer & UnixWare. Ron Record John Wolfe Packaging Tools for OpenServer & UnixWare Ron Record John Wolfe rr@sco.com jlw@sco.com 1 Why Package? Single software administration tool Ease of installation, update, and removal Support for multiply

More information

Red Hat Software Collections 3.x

Red Hat Software Collections 3.x Red Hat Software Collections 3.x Packaging Guide A guide to packaging Software Collections for Red Hat Enterprise Linux Last Updated: 2018-11-01 Red Hat Software Collections 3.x Packaging Guide A guide

More information

COURSE 10961B: AUTOMATING ADMINISTRATION WITH WINDOWS POWERSHELL

COURSE 10961B: AUTOMATING ADMINISTRATION WITH WINDOWS POWERSHELL ABOUT THIS COURSE Learn how with Windows PowerShell 3.0, you can remotely manage single or multiple Windows-based servers and automate day-to-day management and administration tasks. This five day course

More information

simplevisor Documentation

simplevisor Documentation simplevisor Documentation Release 1.2 Massimo Paladin June 27, 2016 Contents 1 Main Features 1 2 Installation 3 3 Configuration 5 4 simplevisor command 9 5 simplevisor-control command 13 6 Supervisor

More information

Salesforce DX Setup Guide

Salesforce DX Setup Guide Salesforce DX Setup Guide Version 44.0, Winter 19 @salesforcedocs Last updated: September 6, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

Installing SmartSense on HDP

Installing SmartSense on HDP 1 Installing SmartSense on HDP Date of Publish: 2018-07-12 http://docs.hortonworks.com Contents SmartSense installation... 3 SmartSense system requirements... 3 Operating system, JDK, and browser requirements...3

More information

ZenUp Installation and Administration

ZenUp Installation and Administration Zenoss Service Dynamics ZenUp Installation and Administration Release 1.1 Zenoss, Inc. www.zenoss.com Zenoss Service Dynamics ZenUp 1.1 Installation and Administration Copyright 2014 Zenoss, Inc. All rights

More information

GNU make... Martin Ohlerich, Parallel Programming of High Performance Systems

GNU make... Martin Ohlerich, Parallel Programming of High Performance Systems ... Martin Ohlerich, Martin.Ohlerich@lrz.de Parallel Programming of High Performance Systems Outline 1 2 3 Leibniz Rechenzentrum 2 / 42 Outline 1 2 3 Leibniz Rechenzentrum 3 / 42 Common Situation Larger

More information

Salesforce DX Setup Guide

Salesforce DX Setup Guide Salesforce DX Setup Guide Version 42.0, Spring 18 @salesforcedocs Last updated: April 24, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

EECS2301. Example. Testing 3/22/2017. Linux/Unix Part 3. for SCRIPT in /path/to/scripts/dir/* do if [ -f $SCRIPT -a -x $SCRIPT ] then $SCRIPT fi done

EECS2301. Example. Testing 3/22/2017. Linux/Unix Part 3. for SCRIPT in /path/to/scripts/dir/* do if [ -f $SCRIPT -a -x $SCRIPT ] then $SCRIPT fi done Warning: These notes are not complete, it is a Skelton that will be modified/add-to in the class. If you want to us them for studying, either attend the class or get the completed notes from someone who

More information

Bootstrapping the LSM policies in RPM. Elena Reshetova, Intel OTC

Bootstrapping the LSM policies in RPM. Elena Reshetova, Intel OTC Bootstrapping the LSM policies in RPM Elena Reshetova, Intel OTC Agenda RPM introduction SELinux in RPM Goals for RPM security plug-in Proposal Beyond native applications Conclusions & QA 2 RPM Introduction

More information

1Z Oracle Linux Fundamentals (Oracle Partner Network) Exam Summary Syllabus Questions

1Z Oracle Linux Fundamentals (Oracle Partner Network) Exam Summary Syllabus Questions 1Z0-409 Oracle Linux Fundamentals (Oracle Partner Network) Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-409 Exam on Oracle Linux Fundamentals (Oracle Partner Network)... 2 Oracle

More information

Frédéric Crozat SUSE Linux Enterprise Release Manager

Frédéric Crozat SUSE Linux Enterprise Release Manager Distribution build / delivery styles, one style to rule them all? Is rolling release the answer for everything? Or Service Pack? SUSE and opensuse experience Frédéric Crozat SUSE Linux

More information

A shell can be used in one of two ways:

A shell can be used in one of two ways: Shell Scripting 1 A shell can be used in one of two ways: A command interpreter, used interactively A programming language, to write shell scripts (your own custom commands) 2 If we have a set of commands

More information

TIBCO FTL Installation

TIBCO FTL Installation TIBCO FTL Installation Software Release 5.2 March 2017 Two-Second Advantage 2 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO SOFTWARE

More information

Manual Shell Script Linux If Not Equal String Comparison

Manual Shell Script Linux If Not Equal String Comparison Manual Shell Script Linux If Not Equal String Comparison From the Linux ping manual: If mkdir d failed, and returned a non-0 exit code, Bash will skip the next command, and we will stay in the current

More information

# Example 1: Hello World! (thanks to Mauricio Vergara Ereche)

# Example 1: Hello World! (thanks to Mauricio Vergara Ereche) # Example 1: Hello World! (thanks to Mauricio Vergara Ereche) Name: helloworld Version: 1.1 Release: 2 Summary: An application that prints Hello World! License: GPL Group: System Environment/Base Source0:

More information

NetCDF Build and Test System. Ed Hartnett, 1/25/8

NetCDF Build and Test System. Ed Hartnett, 1/25/8 NetCDF Build and Test System Ed Hartnett, 1/25/8 Outline NetCDF Repository Building NetCDF Testing NetCDF NetCDF Code Repository We use cvs for netcdf code repository. The cvs repository module is called

More information

9.2 Linux Essentials Exam Objectives

9.2 Linux Essentials Exam Objectives 9.2 Linux Essentials Exam Objectives This chapter will cover the topics for the following Linux Essentials exam objectives: Topic 3: The Power of the Command Line (weight: 10) 3.3: Turning Commands into

More information

/opt/products /opt/products /opt/products/perl /opt/products/perl/5.8.2 perl /opt/products/bin/perl -> /opt/products/perl/5.8.

/opt/products /opt/products /opt/products/perl /opt/products/perl/5.8.2 perl /opt/products/bin/perl -> /opt/products/perl/5.8. /opt/products /opt/products: /opt/products/perl /opt/products/perl/5.8.2 perl-5.8.2 /opt/products/bin/perl -> /opt/products/perl/5.8.2/bin/perl perl-default-5.8.2 perl-5.8.2 rpm --justdb perl-default-5.8.2

More information

CMU : Cluster Management Utility. CMU diskless user s guide Version 4.0, January 2009

CMU : Cluster Management Utility. CMU diskless user s guide Version 4.0, January 2009 CMU : Cluster Management Utility CMU diskless user s guide Version 4.0, January 2009 Version 4.0 January 2009 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject

More information

RED HAT DEVELOPER TOOLSET: Build, Run, & Analyze Applications On Multiple Versions of Red Hat Enterprise Linux

RED HAT DEVELOPER TOOLSET: Build, Run, & Analyze Applications On Multiple Versions of Red Hat Enterprise Linux RED HAT DEVELOPER TOOLSET: Build, Run, & Analyze Applications On Multiple Versions of Red Hat Enterprise Linux Dr. Matt Newsome Engineering Manager Tools 13/JUN/13 v0.8 -> Introduction Dr. Matt Newsome

More information

Have examined process Creating program Have developed program Written in C Source code

Have examined process Creating program Have developed program Written in C Source code Preprocessing, Compiling, Assembling, and Linking Introduction In this lesson will examine Architecture of C program Introduce C preprocessor and preprocessor directives How to use preprocessor s directives

More information

Bash command shell language interpreter

Bash command shell language interpreter Principles of Programming Languages Bash command shell language interpreter Advanced seminar topic Louis Sugy & Baptiste Thémine Presentation on December 8th, 2017 Table of contents I. General information

More information

CS 25200: Systems Programming. Lecture 10: Shell Scripting in Bash

CS 25200: Systems Programming. Lecture 10: Shell Scripting in Bash CS 25200: Systems Programming Lecture 10: Shell Scripting in Bash Dr. Jef Turkstra 2018 Dr. Jeffrey A. Turkstra 1 Lecture 10 Getting started with Bash Data types Reading and writing Control loops Decision

More information

Introduction to RPM Packaging

Introduction to RPM Packaging SUSE Best Practices Introduction to RPM Packaging SUSE Linux Enterprise, opensuse Duncan Mac-Vicar Prett, Director Data Center Management R&D, SUSE 1 Introduction to RPM Packaging In general, a pre-built,

More information

An Introduction to Debian Packaging

An Introduction to Debian Packaging An Introduction to Debian Packaging Tom Most Board Member at Large, NBLUG February 11, 2014 Outline What is Packaging? Where.debs Come From Building Your Own Packages Additional Resources What is Packaging?

More information

SUSE Linux Enterprise 12 Service-Pack Migration What is possible and what supported

SUSE Linux Enterprise 12 Service-Pack Migration What is possible and what supported SUSE Linux Enterprise 12 Service-Pack Migration What is possible and what supported Thorsten Kukuk Senior Architect SUSE Linux Enterprise Server kukuk@suse.com Overview The plan What is supported Definitions

More information

Adding Applications to the GNOME Software Center

Adding Applications to the GNOME Software Center Adding Applications to the GNOME Software Center Copyright 2016, Richard Hughes, Red Hat Abstract Traditionally we have had little information about Linux applications before they have been installed.

More information

Linux Essentials Objectives Topics:

Linux Essentials Objectives Topics: Linux Essentials Linux Essentials is a professional development certificate program that covers basic knowledge for those working and studying Open Source and various distributions of Linux. Exam Objectives

More information

Static Analysis of a Linux Distribution

Static Analysis of a Linux Distribution Kamil Dudka Red Hat, Inc. November 8th 2016 How to find programming mistakes efficiently? 0 users (preferably volunteers) 1 Automatic Bug Reporting Tool 2 code review, automated tests

More information

COSC345 Software Engineering. Make

COSC345 Software Engineering. Make COSC345 Software Engineering Make The build process Make When to use make How to use make Suffix rules makedepend Outline Warning: Make is different everywhere you go! Build Process The build process can

More information

How to stop / start services in boot time and install / remove / update SuSE SLES (Suse Enterprise Linux Server)?

How to stop / start services in boot time and install / remove / update SuSE SLES (Suse Enterprise Linux Server)? How to stop / start services in boot time and install / remove / update SuSE SLES (Suse Enterprise Linux Server)? Author : admin If you're long time Linux sysadmin but you haven't need to adminster SuSE

More information

The KBackup Handbook. Martin Koller

The KBackup Handbook. Martin Koller Martin Koller 2 Contents 1 Introduction 5 2 Using KBackup 6 2.1 Using profiles........................................ 6 2.2 Archive slices........................................ 7 2.3 Incremental Backup.....................................

More information

ARC infrastructure and releases. Anders Wäänänen, NBI

ARC infrastructure and releases. Anders Wäänänen, NBI ARC infrastructure and releases Anders Wäänänen, NBI Overview Source code repository Binary repository ARC release status Legal stuff Globus issues 0.6 11/08/06 www.knowarc.eu 2 Software development Need

More information

You must have a basic understanding of GNU/Linux operating system and shell scripting.

You must have a basic understanding of GNU/Linux operating system and shell scripting. i About the Tutorial This tutorial takes you through AWK, one of the most prominent text-processing utility on GNU/Linux. It is very powerful and uses simple programming language. It can solve complex

More information

Parallels Software International, Inc. Parallels Compressor. Installation Guide. Server

Parallels Software International, Inc. Parallels Compressor. Installation Guide. Server Parallels Software International, Inc. Parallels Compressor Installation Guide Server (c) 2005-2007 Copyright 2006-2007 by Parallels Software International Inc. All rights reserved. Parallels, Parallels

More information

[Software Development] Makefiles. Davide Balzarotti. Eurecom Sophia Antipolis, France

[Software Development] Makefiles. Davide Balzarotti. Eurecom Sophia Antipolis, France [Software Development] Makefiles Davide Balzarotti Eurecom Sophia Antipolis, France 1 Software Development Tools 1. Configuring and Building the program GCC Makefiles Autotools 2. Writing and managing

More information

Kernel Debugging with netdump and crash Worcester Linux Users Group January 13th, 2005

Kernel Debugging with netdump and crash Worcester Linux Users Group January 13th, 2005 Kernel Debugging with netdump and crash Worcester Linux Users Group January 13th, 2005 Presenter: Jeff Moyer Overview Kernel debugging tools Kernel crash dump implementations Netdump

More information

OCTVQE Zaptel Echo Canceller (PRELIMINARY)

OCTVQE Zaptel Echo Canceller (PRELIMINARY) OCTVQE - Zaptel Echo Canceller User s Guide (Preliminary) OCTVQE Zaptel Echo Canceller (PRELIMINARY) User s Guide Revision 1.9 OctWare Inc. www.octware.net 4101, Molson St., Suite 300 Montreal Quebec H1Y

More information

National Aeronautics and Space and Administration Space Administration. CFE CMake Build System

National Aeronautics and Space and Administration Space Administration. CFE CMake Build System National Aeronautics and Space and Administration Space Administration CFE CMake Build System 1 1 Simplify integrating apps together CFS official Recycled from other projects Custom LC... SC HK A C B Z

More information

Makefiles SE 2XA3. Term I, 2018/19

Makefiles SE 2XA3. Term I, 2018/19 Makefiles SE 2XA3 Term I, 2018/19 Outline Example Calling make Syntax How it works Macros Suffix rules Command line options Example Assume we have files main.c, test.c, and lo.asm Consider the makefile

More information

Web Ontology for Software Package Management

Web Ontology for Software Package Management Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 331 338. Web Ontology for Software Package Management Péter Jeszenszky Debreceni

More information

PowerShell 10961: Automating Administration with Windows PowerShell. Upcoming Dates. Course Description. Course Outline

PowerShell 10961: Automating Administration with Windows PowerShell. Upcoming Dates. Course Description. Course Outline PowerShell 10961: Automating Administration with Windows PowerShell Learn how with Windows PowerShell you can remotely manage single or multiple Windows-based servers and automate day-to-day management

More information

Zend Server Cluster Manager 5.5 Beta. Installation Guide. By Zend Technologies.

Zend Server Cluster Manager 5.5 Beta. Installation Guide. By Zend Technologies. Zend Server Cluster Manager 5.5 Beta Installation Guide By Zend Technologies www.zend.com Abstract This is the Installation Guide for Zend Server Cluster Manager Version 5.5 Beta. The information in this

More information