Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Application Packaging Developer's Guide
Previous Next

Modifying a File by Using The build Class

This case study modifies a file which exists on the installation machine during package installation. It uses one of three modification methods. The other two methods are described in Modifying a File by Using Standard Classes and Class Action Scripts and Modifying a File by Using the sed Class and a postinstall Script. The file modified is /etc/inittab.


This case study demonstrates how to use the build class. For more information on the build class, see The build Class Script.


This approach to modifying /etc/inittab uses the build class. A build class script is executed as a shell script and its output becomes the new version of the file being executed. In other words, the data file /etc/inittab that is delivered with this package will be executed and the output of that execution will become /etc/inittab.

The build class script is executed during package installation and package removal. The argument install is passed to the file if it is being executed at installation time. Notice in the sample build class script that installation actions are defined by testing for this argument.

To edit /etc/inittab using the build class, you must complete the following tasks:

  • Define the build file in the prototype file.

    The entry for the build file in the prototype file should place it in the build class and define its file type as e. Be certain that the CLASSES parameter in the pkginfo file is defined as build.

  • Create the build class script.

    The sample build class script performs the following procedures:

    • Edits the /etc/inittab file to remove any existing changes for this package. Notice that the file name /etc/inittab is hardcoded into the sed command.

    • If the package is being installed, adds the new line to the end of /etc/inittab. A comment tag is included in this new entry to describe where that entry came from.

    • Executes the init q command.

This solution addresses the drawbacks described in the case studies in Modifying a File by Using Standard Classes and Class Action Scripts and Modifying a File by Using the sed Class and a postinstall Script. Only one short file is needed (beyond the pkginfo and prototype files). The file works with multiple instances of a package since the PKGINST parameter is used, and no postinstall script is required since the init q command can be executed from the build class script.

Case Study Files

The pkginfo File
NAME=Case Study #6
VERSION=Version 1d05
The prototype File
i pkginfo
e build /etc/inittab ? ? ?
The Build File
# PKGINST parameter provided by installation service
# remove all entries from the existing table that
# are associated with this PKGINST
sed -e "/^[^:]*:[^:]*:[^:]*:[^#]*#$PKGINST$/d" /etc/inittab ||
exit 2
if [ "$1" = install ]
# add the following entry to the table
echo "rb:023456:wait:/usr/robot/bin/setup #$PKGINST" ||
exit 2
/sbin/init q ||
exit 2
exit 0
Previous Next

  Published under the terms fo the Public Documentation License Version 1.01. Design by Interspire