|
|||
3. Enhancing the Functionality of a Package (Tasks) 4. Verifying and Transferring a Package 5. Case Studies of Package Creation Soliciting Input From the Administrator Creating a File at Installation and Saving It During Removal Defining Package Compatibilities and Dependencies Modifying a File by Using Standard Classes and Class Action Scripts Modifying a File by Using The build Class Modifying crontab Files During Installation Installing and Removing a Driver With Procedure Scripts Installing a Driver by Using the sed Class and Procedure Scripts |
Modifying a File by Using the sed Class and a postinstall ScriptThis 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 build Class. The file modified is /etc/inittab. TechniquesThis case study demonstrates the following techniques:
ApproachTo modify /etc/inittab at the time of installation, using the sed class, you must complete the following tasks:
This approach to editing /etc/inittab during installation has one drawback; you have to deliver a full script (the postinstall script) simply to perform the init q command. Case Study FilesThe pkginfo FilePKG=case4 NAME=Case Study #4 CATEGORY=applications BASEDIR=/opt ARCH=SPARC VERSION=Version 1d05 CLASSES=sed The prototype Filei pkginfo i postinstall e sed /etc/inittab ? ? ? The sed Class Action Script (/etc/inittab)!remove # remove all entries from the table that are associated # with this package, though not necessarily just # with this package instance /^[^:]*:[^:]*:[^:]*:[^#]*#ROBOT$/d !install # remove any previous entry added to the table # for this particular change /^[^:]*:[^:]*:[^:]*:[^#]*#ROBOT$/d # add the needed entry at the end of the table; # sed(1) does not properly interpret the '$a' # construct if you previously deleted the last # line, so the command # $a\ # rb:023456:wait:/usr/robot/bin/setup #ROBOT # will not work here if the file already contained # the modification. Instead, you will settle for # inserting the entry before the last line! $i\ rb:023456:wait:/usr/robot/bin/setup #ROBOT The postinstall Script# make init re-read inittab /sbin/init q || exit 2 exit 0 |
||
|