Cette démarche de modification du fichier /etc/inittab utilise la classe build. Un script de classe build est exécuté comme un script shell et son résultat devient la nouvelle version du fichier exécuté. Autrement dit, le fichier de données /etc/inittab fourni avec ce package est exécuté et le résultat de cette exécution devient /etc/inittab.
Le script de classe build est exécuté lors de l'installation et de la suppression du package. L'argument install est transmis au fichier s'il est exécuté lors de la phase d'installation. Remarquez dans l'exemple de script de classe build que la procédure d'installation est définie en testant cet argument.
Pour modifier /etc/inittab à l'aide de la classe build, vous devez effectuer les opérations suivantes :
Définir le fichier de version dans le fichier prototype.
L'entrée correspondant au fichier de version dans le fichier prototype doit le placer dans la classe build et définir son type de fichier comme étant e. Vérifiez que la valeur du paramètre CLASSES figurant dans le fichier pkginfo est build.
Créer le script de classe build.
L'exemple de script de classe build effectue les procédures suivantes :
Il modifie le fichier /etc/inittab pour modifier toute modification apportée à ce package. Remarquez que le nom de fichier /etc/inittab est codé en dur dans la commande sed.
Si l'installation du package est en cours, il ajoute le nouvelle ligne à la fin du fichier /etc/inittab. La nouvelle entrée inclut une balise de commentaire qui indique sa provenance.
Il exécute la commande init q.
Cette solution résout les inconvénients décrits dans les études de cas des rubriques Modification d'un fichier à l'aide de classes standard et de scripts d'action de classe et Modification d'un fichier à l'aide de la classe sed et d'un script postinstall. Seul un bref fichier est nécessaire (outre les fichiers pkginfo et prototype). Le fichier fonctionne avec plusieurs instances d'un package puisque le paramètre PKGINST est utilisé ; par ailleurs, aucun script postinstall n'est requis puisque la commande init q peut être exécutée à partir du script de classe build.