This topic answers some of the more common questions about Oracle Universal Installer posed by users. The questions and answers in this FAQ are grouped into the following categories:
Can an action be called in a code block?
No. Actions cannot be invoked inside code blocks.
How does the Universal Installer handle platform-specific actions when installing on a different platform?
Some of the actions are platform specific. OSP ships with actions for Windows and Solaris platforms only. Actions that are not applicable to a specific platform are ignored during installation, and any queries that are not applicable to a specific platform return the default value.
Is there an action to create or extract a .exe file?
No actions exist to create or run a self-extracting (.exe)
file in OUI. Add the contents of the self-extracting file to a file group, then
use the copyGroup action to copy the files instead.
If this procedure is used, all files can be removed during deinstallation. Once
you install the executable file, you can use spawn actions to run it.
How does deinstallation work?
Every action has an undo function defined that is run in the reverse order at the time of deinstallation. Actions may be specified to run during install, during install and deinstall, or during deinstall only. Each action that is specified to run during deinstall adds an entry to the components log. During deinstallation, the log is run in reverse with the deinstall methods of the actions.
What is the installer action log?
Action logs are written on a per-session basis. The installer action log is
created each time a new install session is started. What each action does and
whether it occurred during installation or deinstallation is logged for every
action in the installer action log. Each session is saved in the file, installActionstime_stamp.log,
where time_stamp is of the form:
yyyy-mm-dd_hh-mm-ss[AM|PM].log
The .err and .out files also use the time stamp in their file names, making it easier to keep track of these files for each session.
How do I spawn a SQL command?
To spawn a SQL command, use the spawn
action.
For example, to create two tables during your installation, use a SQL script
named ct.sql, for example, containing the following
lines:
create table &1 (col1 number, col2 number);
create table &2 (col1 number, col2 number);
exit;
To create tables foo1 and foo2 using SQL Plus during the installation using the spawn action, the Install Command parameter reads as follows:
On Windows NT, 95, or 98, use one of the following:
sqlplusw system/manager @x:/directory/ct.sql foo1 foo2
cmd /c sqlplus system/manager @x:/directory/ct.sql foo1 foo2 (NT only)
command /c sqlplus system/mamager @x:/directory/ct.sql foo1.foo2 (Win 95/98)
sqlplus system/manager @x:/directory/ct.dql foo1 foo2 (On UNIX)
To start an Oracle database during installation, use a script named db.startup,
for example, which contains the following lines:
connect internal
startup
exit;
Using the spawn action, the Install Command parameter reads as follows if
Server Manager line mode is in the system path:
On UNIX command line:
svrmgr1 command=@/private1/Directory/db.startup
On DOS command line:
svrmgr1 @/private1/Directory/db.startup
To shut down the database, use a script named db.shutdown, for example, which
contains the following lines:
connect internal
shutdown immediate
exit;
Using the spawn action, the Install or Deinstall Command parameter reads as follows, if Server Manager line mode is in the system path:
On UNIX command line:
svrmgr1 command=@/private1/Directory/db.shutdown
On DOS command line:
svrmgr1 @/private1/Directory/db.shutdown
Can an ORACLE_HOME inventory be retrieved using queries?
You can use RgsQueries to test for products installed with the
previous version of OUI. You can use AreasQueries to test for products
installed with OUI. Currently, there is no query that returns the list of all
products installed in an Oracle home.
How would I create two components that share the same files?
One way of creating two components that share the same files is to create a separate component containing the shared files. The two components can have dependencies on the component of shared files. This separate component would be installed if either of the two components is installed. This separate component would also be deinstalled when the other two components are deinstalled and there are no components depending on that component.
What is the difference between a dependent and a dependee component?
A dependent component is typically a top-level component which depends on a lower-level component (dependee). A dependent component cannot be installed unless all of its dependee components are installed.
For example: If component A (mandatory or optional) requires component B to be installed for component A to work correctly, then A depends on B. A is the dependent; B is the dependee.
What is a circular dependency?
A circular dependency occurs when the original dependent component is depended on by a dependee component. For example, if A depends on B, B depends on C, and C depends on A, then this is a circular dependency. This can occur when editing components in separate sessions and assigning dependencies. The Stage Verifier checks for circular dependencies.
Circular dependencies are not supported in OUI.
How do you export public variables?
Variable associations allow you to associate a variable in a dependent component
with a variable in a dependee component. You must associate variable foo
in B with the corresponding public variable in A. The requirement is that both
variables be marked "public" and be of the same type.
For example, if Component A depends on Component B and Component B has a public
variable named foo, a variable in Component A can
be exported to give the value for foo in Component
B.
How do I assign a string to a number variable in a code block?
Use the parseInt function to convert a string to a number. Because functions do not throw exceptions, the parseInt function returns 0 if the passed string does not represent a valid integer.
How Do I Use Variables in the Configuration Assistant Specification File?
Set the CLASSPATH variable in the configuration assistant specification file as follows:
Name=<classpath>
Description=<Specify the classpath required for this configtool to be launched>
You also includes CLASSPATH in the list of arguments in the GENERAL section of the specification file.
When you create a configuration assistant with this specification file, the install/deinstall arguments will include the CLASSPATH argument. You are expected to specify the CLASSPATH here in the form of an expression in the same way that arguments were specified for actions/queries/dialogs/functions.
Note: Since the switch (-cp) is already part
of the specification, you do not have to specify it again.
Ideally, you should create the following platform-specific constants:
c_sPathSeparator
and set its value for to semicolon (;) for Windows platforms and colon (:)
for UNIX platforms.
c_sCLASSPATH
and set its value to %CLASSPATH% for Windows
platforms and $CLASSPATH for UNIX platforms.
After you create the constants, you can use them as shown in the following example to make sure the correct classpath is passed to the Java Runtime Environment (JRE):
NET8_LOCATION + "/lib/netcfg.jar" + c_sPathSeparator + c_sCLASSPATH
How do I create a Multi-item dialog?
The Multi-item dialog displays a user-defined prompt and as many input fields as needed for your installation. Each input field has an associated label displayed to the left of the field. There are three input field types available: POPDOWN, SECURE, or TEXTFIELD. These input field types are case-sensitive and must be entered as listed. Currently, there can only be one POPDOWN field per dialog which enables you to choose from a list of available choices. The SECURE field is typically used when entering passwords. The TEXTFIELD type is used when you must manually enter the requested information.
What does the subtitle field display?
In all standard dialogs, you can specify a subtitle that appears directly under the title. The default value for the subtitle field is an empty string. In the Information dialog, you can specify descriptive text that appears at the bottom of the dialog. The default value for the descriptive text is null.
How can I validate a password?
When using the Password dialog, you can use the dialog default value feature to set a password. (The dialog default value is not validated.) The Password dialog performs validation to check if you entered the same value in both the Enter password and Confirm password fields. This value is set into the variable that accepts the password. The variable validation method can add more validation, such as checking to see if the password is correct, etc.
How do I perform operations on specific components?
By default, operations are performed on all components listed in the component_table. If you only want to perform operations on specific components, use the component-key to select the individual components from the list. For example:
Sample Components_Table:
comp0 c:/components/component0.prp component0 "NT,Solaris" 1.0
comp1 c:/components/component1.prp component1 "NT,Solaris" 1.0
comp2 c:/components/component2.prp component2 "NT,Solaris" 1.0
patch3 c:/components/patch3.prp patch1 "NT,Solaris" 1.1
Example of command line to specify components:
ospSilent c:/myspec.txt -components {comp0, comp1, patch3}
How can I add specify a custom default value for the Oracle_Home field on a clean NT system?
You can add the following entry to the oraparam.ini
file:
DEFAULT_HOME_LOCATION=/<HomeDirectory>
The directory name is appended to the drive with the largest disk free space and used as a default. This value is used only if the installation is on a clean system.
See the "Troubleshooting" chapter of the Oracle Universal Installer
Concepts Guide for more information on using the oraparam.ini
file.
How do I display Release Notes during a Unix installation?
At the end of an installation, OUI prompts you to enter a tool or command to
display the release notes, if applicable. If you want to use vi
or emacs to view the release notes, enter xterm -e
before the name of the tool. For example, xterm -e vi displays
a separate xterm window that immediately runs the command, vi <filename>.
What are the different exit codes returned by OUI?
For more information about exit codes, refer to the Oracle Universal Installer Concepts Guide.
How can I create a response file that has all the selections I make in a specific install session?
For more information about using response files, refer to the"Customizing and Creating Response Files" chapter of the Oracle Universal Installer Concepts Guide. Refer specifically to the "Creating a Response File with Record Mode" section.
How does OUI determine the location of its temporary files?
OUI first tries the $TEMP environment variable; if not found, it tries $TMP;
if not found, it defaults to /tmp on Solaris and C:/Temp on Windows.
In what order does OUI assign value to variables?
Variables are set in the following order of precedence:
Command line
Why am I not able to invoke OUI in languages other than English in Linux?
If you are not able to invoke OUI in languages other than English in Linux environment then configure the language settings in the shell using both country code and language code.
Example of command line to configure the language settings to French:
setenv LANG fr_FR
setenv LC_ALL fr_FR
Why am I not seeing the Node Selection page on a cluster system?
If you are not seeing this page on a cluster system, check if Oracle Clusterware is installed
successfully. If yes, run <CRSHome>/bin/olsnodes to check
if the clusterware is up an running. OUI does not show this page if olsnodes
does not return the node list. This is a system specific issue and not an OUI
issue. If Oracle Clusterware is not installed and the system is part of a vendor clusterware,
run Disk1/install/<platform>/lsnodes to get the list of nodes.
OUI does not show the page if lsnodes does not return a node list.
Why am I seeing a Selected Nodes page for an empty Oracle home?
This occurs if you have deinstalled software from this home. OUI continues to remember the home and node information. Remove the Oracle home from install inventory dialog (see online help for details) and then start the install.
Why does OUI show a list box on the Available Products page or Install Types page?
Either there are too many choices provided and/or the description for the choices are too long to fit the list, and the descriptions in a single page. If there are three choices, a three-line description per choice will ensure the radio button page to be shown.
Why is the size in Install Types and Summary pages different from the actual requirements for the Oracle home?
The size is cumulative for all space required during install and for the installed product. Typically some space (used for linking) is not required after the install is complete. If the size is inaccurate, install developers should update the offsets in the components as required. The actual size can be computed by running OUI with a -printdisk option and making sure that temp, temp space for linking, Oracle home and any files that go outside the Oracle home (e.g. database files) are set as different disks. OUI will create a file in the logs directory specifying the disk usage after each action. The peak and end usage can be used for setting the offsets (install, temporary, and post-install).
How do I debug an error during the install phase?
If this a problem with the Install phase, such as errors occuring during an
install, check the last updates to the installActionstime_stamp.log.
If the last entry is an error condition for an action/query, this is a potential
install script issue. Install development should triage the problem further.
Some tips for triaging these conditions:
Is the error condition expected? If it is, then this is not a bug.
Are the arguments to the action/query correct? If not, fix the same, restage the component and retry. This is an install script issue.
If the inputs to the action/query are correct, but the operation is incorrect, this could be a library issue. Check if this is a custom library or not.
If this is problem during the Link phase, check the installActionstime_stamp.log
for output of the make operation. Can you run the make operation successfully
from outside of OUI? If not, this is a make file issue and not an OUI problem.
How do I debug cluster install problems?
Check the installActionstime_stamp.log to see if
there is an error message indicating problems faced by OUI while pushing
files to remote nodes.
Restart the install selecting the same Oracle home and the same nodes and go to the Available Products page. OUI will perform a pre-requisite check to ensure the nodes are up and whether you have access to the Oracle home and inventory or not. (You can also do the same checks manually.)
If this is a cluster install and you have problem with files not getting
propagated to the remote nodes, check the installActionstime_stamp.log
to see if the file was included as part of the install in the copyGroup/copyExpandedGroup
actions. If it is not copied and the file is getting generated as part of
the link operation, this is an install issue and not an OUI issue. If this
file is owned by OUI (such as file in the OracleHome/inventory directory,
root.sh, etc.), this is an OUI issue.
If the problem is with respect to services / registry updates done on the remote nodes, this is an OUI issue. The OUI team will triage the problem after you provide a small reproducible test case for the issue. OUI depends on SRVM APIs for most of the cluster operations. The results of the triaging effort will determine if OUI is performing the task incorrectly or whether it is an SRVM issue. The OUI team will reassign the bug appropriately in this case.
How do I debug config assistant issues?
If this is a problem with the configuration assistants, stop all configuration
assistants. Exit OUI. Open the installActionstime_stamp.log
to see the list of configuration assistants that were skipped and the command
line for the same. Execute the tools in the same order outside of OUI and
see if they work. If not, the problem is with the configuration assistant.
This is not an install or OUI issue.
If this is a problem with stopping a particular configuration assistant, check if the Stop operation works for any other configuration assistant. If it does, this is a configuration assistant issue. OUI merely tries to kill the process for the configuration assistant and it is up to the configuration assistant to respond to the same.
If the problem is with a failure of a configuration assistant, this is
a configuration assistant issue. Check the Details panel
or the installActionstime_stamp.log on potential errors
reported by the configuration assistants. You can use this information to
fix the problem or report the problem to the install development teams.
If this is a problem with the configuration assistant names, it is an install script problem.
When I am trying to stage, I am getting an error message "Lock was not available to get exclusive write access in staging area."
In order to prevent simultaneous writes to a staging area, there is a lock maintained on the staging area. If you have another staging session running and trying to stage to the SAME staging area OR an install session trying to install from the SAME staging area, you can get this error. Check if you have a session of installer running and trying to stage from the SAME stage.
What is he maximum number of entries that I can add to a file group?
You can add up to approximately 6000 files to a file group. If the number of files in the file group exceeds this number, it impacts the install time memory requirements and inhibits the speed of installation. The same limit should be placed in on the jar files that are extracted using the copyJarContents action.
How do I include translated release notes for my component?
Since all release notes must be included in the filemap, you may add all the translated release notes files and mark them all to be copied to a specific target location. You may now create a release note for this file.
It is suggested that the translated (non-English) release notes be placed
in a separate file group, and the copyGroup
action follows the original copyGroup action.
I have a product that spans multiple disks. When installing it, OUI keeps on asking for the same disk multiple times. Why is that?
Make sure that "Create multi-CD operation" is the last operation performed on the staging area. If you stage, delete any components or make any other changes to the staging area then you have to redo the multi-cd creation in Oracle Software Packager. Also, please verify the following:
The staging area does not have any superfluous components. These are non-top-level components that exist in the staging area but are never installed because no other components depend on them.
While staging, make sure you only select the platforms that are supported for the target shiphome.
The following examples use top level components that have dependees of different types offered by Oracle Universal Installer.
Test 1: Test Components Having the "required" Type of Dependees
Setup
Create 2 top level components (A, B), each having the same "required" dependee (C).
Install
I1a. Choosing A results in the install of A and C.
I1b. Later, choosing B results in only B being installed (its dependee C was
previously installed).
Deinstall
D1a. Choosing A results in deinstall of A only. C is not deinstalled since
it is also a "required" dependee of B, and thus is still needed.
D1b. Choosing A and C results in deinstalling A, B, and C. B is also deinstalled
since its "required" dependee C is being deinstalled and it cannot
be left installed without it.
D1c. Choosing C results in deinstalling A, B, and C. A and B are also deinstalled
since their "required" dependee C is being deinstalled and they cannot
be left installed without it.
Test 2: Test Components having '1,more' Type of Dependees
Setup
Create 2 toplevel components (A, B), each having the SAME two '1,more' type dependees (C,D).
Install Test 2
I2.a. Choosing A and BOTH dependees (C,D) results in the install of A,C,D.
I2.b. Later, choosing B (without C,D) results in the install of only B.
Deinstall Test 2
D2.a1. Choosing A results in deinstall of only A.
D2.a2. Choosing A and ONE dependee C (under A) results in deinstall of all (A,B,C,D).
Note: The deinstall of B and D occurs.
D2.a3. Choosing only ONE dependee C (under A) results in deinstall of all (A,B,C,D).
Note: The deinstall of A, B and D occurs.
D2.a4. Choosing only one dependee D (under A) results in deinstall of all (A,B,C,D).
Note: The deinstall of A, B and C occurs.
D2.a5. Choosing both dependee C and D (under A) results in deinstall of all (A,B,C,D).
Note: The deinstall of A and B occurs.
D2.b1. Choosing B results in deinstall of only B.
D2.b2. Choosing B and one dependee C (under B) results in deinstall of all (A,B,C,D).
Note: The deinstall of A and D occurs.
D2.b3. Choosing only one dependee C (under B) results in deinstall of all (A,B,C,D).
Note: The deinstall of A, B and D occurs.
D2.b4. Choosing only one dependee D (under B) results in deinstall of all (A,B,C,D).
Note: The deinstall of A, B and C occurs.
D2.b5. Choosing both dependee C and D (under B) results in deinstall of all (A,B,C,D).
Note: The deinstall of A and B occurs.
Copyright © 1996, 2016, Oracle. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.