Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!pcad!john From: john@pcad.UUCP (John Grow) Newsgroups: comp.unix.admin Subject: Re: Software installation opinions needed Message-ID: <312@pcad.UUCP> Date: 25 Sep 90 21:02:29 GMT Organization: Personal CAD Systems, Westford, MA Lines: 112 Here are a few things we do with our installation scripts for the installation of our electronic CAD package for PCB layout. This is a list of steps required for us: Before running the installation script, determine where you want to place our software. This can be anywhere, but it is recommended that it be placed where it can be accessed via NFS. Next extract the first tar file on the tape into that directory. This contains the installation scripts. cd into the directory and run installme. Select platform. Select architectures for which you want to load architecture dependent software. Load the software. There are four parts: one required and three optional. User selects what to load in a menu format. The software gets loaded into /bin. Install the "command." This step installs a script which invokes the rest of the application when the application is run. It sets up the environment variables needed by the application. We recommend that it be placed somewhere in the users' path, but invoking it with an absolute path works fine. Information needed from the installer for this step is the location of the directory where the software is installed in a form accessible over the network which is put into the script. The user is also asked where to place the script. Manage Network Licenses. Our application makes use of a third party floating network license application which requires us to create a directory in /usr/adm, a symbolic link in /etc and modify the rc.local file. However, each step is explained before it is done and the installer is told what to do to do this himself if he does not want the script to take care of it for him. Load optional libraries. In addition to our executables, there are several (50 - 100) optional parts libraries. These are selected from a menu and loaded after the installer selects what he wants. These can be located anywhere, but the default is underneath the directory where everything else is loaded. Here are a few things I found getting the installation scripts for our software written: While the rc.local file is modified (either by the installation scripts or by hand), only a line calling another file, rc. (ours is rc.pcad), is inserted. The rc. file does all the necessary startup work. This allows us to plug in a new release more easily if the startup sequence changes for some reason. Only the rc. file needs to be replaced. There is no need to try editing the rc.local file again for later releases. Another advantage is that the rc. file can be run independently if, for some reason, the call to it is removed from rc.local, or the installer decides not to modify rc.local. Installation directories should be specified by the user. The only things which we cannot change are those required by the third part licensing package we use. If the disk space required by all the software is large, let customers load only what they need. The only part of the installation which requires root access concerns the 3rd party license package over which we have no control. Allow loading from a remote tape drive. The last file in a group of files loaded from tape should be a checkpoint file which the installation script can check. If it doesn't exist, the load is incomplete. Before loading, the script should check available disk space and inform installer if not enough is available. While this is not foolproof (someone can use up more disk space after a load has started), it works fairly well. Executing all the software from a single script allows the following: Environment variables do not need to be set before running the software. Any needed are set up by the script. The one set by ours is a path variable specifying the location(s) of files needed by our application. The executables and configuration files needed by the application should be kept in one spot. There are is no need to mix these in with other files in a /usr/bin (or wherever) directory. This script is the only file which should need to be installed in the users' path, and it should be callable by absolute path. The PATH variable does not need to be changed. Document in the installation guide the files which may/will be installed/changed. Also, the installation guide should explain step by step what the installation program is doing, and give examples where needed. Like with many other vendors, a large number of our customers are UNIX novices. It is necessary to use a script which provides reasonable defaults to get our product installed. I have reservations about someone without system administration experience doing root tasks, but with the trend of more people buying workstations, it is tough to avoid. As far as other software packages go, Saber C was pretty good. It had a menu based installation script and put all its executables in a single directory of your choice. The only executable necessary in the users' path was a script which got it going. An rc file change was necessary (for their network license manager), but the script told you what to append to the file instead of modifying it itself. -- John Grow | uucp: (uunet!pcad!john) Personal CAD Systems/CADAM | 1 Technology Park Drive | Westford, MA 01886 |