# Intel® Parallel Studio XE 2015 Composer Edition for Linux Silent Installation Guide

Published: 09/17/2014

Last Updated: 10/12/2017

#### Intel® Parallel Studio XE 2015 Composer Edition for Linux "Silent" or non-interactive Installation Instructions

Linux* and Mac OS* Compilers Installation Help: https://software.intel.com/en-us/articles/intel-compilers-linux-installation-help

## Silent Command Line Installations

Starting with release 11.0, the Linux installation programs for Compiler Professional are built using the PSET (Program Startup Experience Technologies) 2.0 core.  This PSET core is a framework of tools built by Intel to provide a robust set of installation and licensing features that are consistent across Intel product lines.  A similar PSET core is used for the Windows* and Mac OS* X installation packages as well.

One feature provided in the PSET core is support for the "silent" install.  Historically, "silent" really meant "non-interactive".  At this point, "silent" also means "does not report copious amounts of information", assuming there are no problems during the installation.  The silent install method allows the user to perform a command line installation of an entire package with no need to answer prompts or make product selections.

A historical note specific to Linux installs: there has been a "silent" install capability in the Linux Compiler products since version 9.0.  This legacy version, included in versions 9.1, 10.0, 10.1, and 11.0 as well, performed the same function.  But starting with version 11.1, the legacy silent install embedded in the "inner install components" has been removed.  The new PSET core silent install is the only method still supported - that is, older silent installation tools in v11.0 and older are no longer supported other than the RPM command line install method (see details on RPM-based installs below).

### Silent Install Steps: "From Scratch"

To run the silent install, follow these steps:

• For reasons outlined below we recommend that a working product license or server license is in place before beginning.  The file should be world-readable and located in a standard Intel license file directory, such as the default linux license directory /opt/intel/licenses.  For more details, keep reading.
• Create or edit an existing silent install configuration file.  This file controls the behavior of the installation.  Here is an example file.  A similar file can be edited and placed in any directory on the target system.  After this example we explain the configuration file contents.
# silent.cfg
# Patterns used to check silent configuration file
#
# anythingpat - any string
# filepat     - the file location pattern (/file/location/to/license.lic)
# snpat      - the serial number pattern (ABCD-01234567)

# accept EULA, valid values are: {accept, decline}
ACCEPT_EULA=accept

# install mode for RPM system, valid values are: {RPM, NONRPM}
INSTALL_MODE=RPM

# optional error behavior, valid values are: {yes, no}
CONTINUE_WITH_OPTIONAL_ERROR=yes

# install location, valid values are: {/opt/intel, filepat}
PSET_INSTALL_DIR=/opt/intel

# continue with overwrite of existing installation directory, valid values are: {yes, no}
CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes

# list of components to install, valid values are: {ALL, DEFAULTS, anythingpat}
COMPONENTS=DEFAULTS

# installation mode, valid values are: {install, modify, repair, uninstall}
PSET_MODE=install

# this one is optional
# directory for non-RPM database, valid values are: {filepat}
#NONRPM_DB_DIR=filepat

# Choose 1 of the 2 activation options - either serial or license
# license is needed if system does not have internet connectivity to Intel
#
# Serial number, valid values are: {snpat}
#ACTIVATION_SERIAL_NUMBER=snpat
#
#
# and based on the above, set the activation type: again, recommend using a license_file.
# exist_lic will look in the normal places for an existing license.
ACTIVATION_TYPE=exist_lic

# the next block is for Cluster Edition installations.  Leave commented for non-cluster installs
# Select 'yes' if head node installation can be used from compute nodes, valid values are: {yes, no}
#CLUSTER_INSTALL_AUTOMOUNT=yes
#
# Path to the cluster description file, valid values are: {filepat}
#CLUSTER_INSTALL_MACHINES_FILE=filepat

# Intel(R) Software Improvement Program opt-in, valid values are: {yes, no}
PHONEHOME_SEND_USAGE_DATA=no

# Perform validation of digital signatures of RPM files, valid values are: {yes, no}
SIGNING_ENABLED=yes

## Running the Silent Installation

Once you have created your silent installation configuration file, installation is quite simple.  First, extract the compiler full package tar file in a temporary directory.  For purposes of this example we use /tmp as our temporary directory.  You may use any directory in which you have full file permissions.  Do not untar the package in the directory where you intend to install the compiler, the temporary directory should be disjoint from your final target installation directory.

Untar the compiler package (assumes the package is copied to /tmp).  Your compiler version and package name may differ than that shown below:

1. cd /tmp
2. tar -zxvf  l_ccompxe_2015.0.090.tgz or
3. tar -zxvf l_fcompxe_2015.0.090.tgz

Now cd to the extracted directory

1. cd l_ccompxe_2015.0.090  or
2. cd l_fcompxe_2015.0.090

Run  the install.sh installer program, passing the full path to your configuration file with the --silent option

1. ./install.sh --silent /tmp/silent.cfg

where "silent.cfg" is replaced by the name you used to create your silent configuration file.   You may use any name for this file.

DONE.  If your configuration file is accepted the installer will now progress with the installation without further input from you, and no output will appear unless there is an error.

### CONFIGURATION FILE FORMAT

A few comments on the directives inside the silent install configuration file:

ACCEPT_EULA=accept

• This directive tells the install program that the invoking user has agreed to the End User License Agreement or EULA.  This is a mandatory option and MUST be set to 'accept'. If this is not present in the configuration file, the installation will not complete.  By using the silent installation program you are accepting the EULA.
• The EULA is in a plain text file in the same directory as the installer.  It has file name "license".  Read this before proceeding as using the silent installer means you have read and agree to the EULA.  If you have questions, see our Get Help page for your support options.

INSTALL_MODE=RPM

• This directive tells the install program that the RPM method should be used to install the software.  This will only work if the install user is "root" or has full root priveleges and your distribution support RPM for package management.  In some cases, where the operating system of the target system does not support RPM or if the install program detects that the version of RPM supported by the operating system is flawed or otherwise incompatible with the install program, the installation will proceed but will switch to non-RPM mode automatically.  This is the case for certain legacy operating systems (e.g. SLES9) and for operating systems that provide an RPM utility, but do not use RPM to store or manage system-installed operating system infrastructure (e.g. Ubuntu, Debian).  THUS, Ubuntu and Debian users set this to INSTALL_MODE=NONRPM.

• If the you do not want to use RPM, then this line should read "INSTALL_MODE=NONRPM".  In this case, the products will be installed to the same location, but instead of storing product information in the system's RPM database, the Intel product install information will be stored in a flat file called "intel_sdp_products.db", usually stored in /opt/intel (or in $HOME/intel for non-root users). To override this default, use configuration file directive NONRPM_DB_DIR ​NONRPM_DB_DIR • If INSTALL_MODE=NONRPM the directive NONRPM_DB_DIR can be used to override the default directory for the installation database. The default is /opt/intel or in$HOME/intel for non-root users.  The format for this directive is:
• NONRPM_DB_DIR=/path/to/your/db/directory

ACTIVATION=exist_lic

• Options for ACTIVATION are { exist_lic, license_file, server_lic, serial_number, trial_lic }
• exist_lic directs the installer to search for a valid license on the server.  Searches will utilize the environment variable INTEL_LICENSE_FILE, search the default license directory /opt/intel/licenses, or use the ACTIVATION_LICENSE_FILE directive to find a valid license file.
• license_file is similar to exist_lic but directs the installer to use ACTIVATION_LICENSE_FILE to find the license file.
• serial_number directs the installer to use directive ACTIVATION_SERIAL_NUMBER for activation.  This method will require the installer to contact an external Intel activation server over the Internet to confirm your serial number.  Due to user and company firewalls, this method is more complex and hence error prone of the available activation methods.  We highly recommend using a license file or license server for activation instead.
• trial_lic is used only if you do not have an existing license and intend to temporarily evaluate the compiler.  This method creates a temporary trial license in Trusted Storage on your system.
• Save the license file in /opt/intel/licenses/ directory, or in your preferred directory and set INTEL_LICENSE_FILE environment variable to this non-default location.  If you have already registered your serial number but have lost the license file, revisit https://lemcenter.intel.com and click on the hyperlinked product name to get to a screen where you can cut and paste or mail yourself a copy of your registered license file.
• Still confused about licensing?  Go to our licensing FAQS page https://software.intel.com/en-us/articles/licensing-faq

• This directive instructs the installer where to find your named-user or client license.  The format is:

CONTINUE_WITH_OPTIONAL_ERROR

• This directive controls behavior when the compiler encounters an "optional" error.  These errors are non-fatal errors and will not prevent the installation to proceed if the user has set CONTINUE_WITH_OPTIONAL_ERROR=yes.  Examples of optional errors include an unrecognized or unsupported linux distribution or version or certain prerequisites for a product cannot be found at the time of installation (such as a supported Java runtime or missing 32bit development libraries for 32bit tool installation).   Fatal errors found during installation will cause the installer to abort with appropriate messages printed.
• CONTINUE_WITH_OPTIONAL_ERROR=yes directs the installer to ignore non-fatal installation issues and continue with the installation.
• CONTINUE_WITH_OPTIONAL_ERROR=no directs the installer to abort with appropriate warning messages for the non-fatal error found during the installation.

PSET_INSTALL_DIR

• This directive specifies the target directory for the installation.  The Intel Compilers default to /opt/intel for installation target.  Set this directive to the root directory for the final compiler installation.

CONTINUE_WITH_INSTALLDIR_OVERWRITE

• Determines the behavior of the installer if the PSET_INSTALL_DIR already contains a existing installation of this specific compiler version. The Intel compiler allows co-existence of multiple versions on a system.  This directive does not affect this behavior, each version of the compiler will have a unique installation structure that does not overwrite other versions.  This directive dictates behavior when the SAME VERSION is already installed in the PSET_INSTALL_DIR.
• CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes directs the installer to overwrite the existing compiler version of the SAME VERSION
• CONTINUE_WITH_INSTALLDIR_OVERWRITE=no directs the installer to exit if an existing compiler installation of the SAME VERSION already exists in PSET_INSTALL_DIR

COMPONENTS

• A typical compiler package contains multiple sub-packages, such as MKL, IPP, TBB, Debugger, etc.  This directive allows the user to control which sub-packages to install.
• COMPONENTS=DEFAULTS directs the installer to install the pre-determined default packages for the compiler (recommended setting).  The defaults may not include some sub-packages deemed non-essential or special purpose.  An example is the cluster components of MKL, which are only needed in a distributed memory installation.  If you're not sure of the defaults you can do a trial installation of the compiler in interactive mode and select CUSTOMIZE installation to see and select components.
• COMPONENTS=ALL directs the installer to install all packages for the compiler.
• COMPONENTS=<pattern> allows the user to specify which components to install.  The components vary by compiler version and package.  The components should be enclosed in double-quotes and semi-colon separated.  For a list of component, grep for the <Abbr> tags in <installation directory>/uninstall/mediaconfig.xml, such as this :
• cd <compiler root>/uninstall
• grep Abbr mediaconfig.xml
• note that the list may have close to or over 100 components.

PSET_MODE

• Sets the installer mode.  The installer can install, remove, modify, or repair an installation.
• PSET_MODE=install directs the installer to perform an installation
• PSET_MODE=remove directs the installer to remove a previous installation.  If multiple versions of the compiler are installed, the installer removes the most recent installation.  This information is kept in the RPM database or the non-rpm database depending on the mode used for the installation.
• PSET_MODE=modify allows the user to redo an installation.  The most common scenario is to overwrite an existing installation with more COMPONENTS set or unset.
• PSET_MODE=repair directs the installer to retry an installation again, checking for missing or damaged files, directories, and symbolic links, permissions, etc.

CLUSTER_INSTALL_AUTOMOUNT (optional)

• This directive is only needed for installation of the Intel(R) Parallel Studio XE 2015 Cluster Edition product.  For Composer and Professional Editions leave this directive commented out.
• CLUSTER_INSTALL_AUTOMOUNT=yes tells the installer to only perform the main package installation on a cluster head node or admin node in a directory that is remote mounted on all the cluster compute nodes.  This prevents the cluster installation from replicating all files on all nodes.  The head or admin nodes has the tools installed whereas compute nodes assume the PSET_INSTALL_DIR is  remote mounted - hence they do not need a full installation and just a few symbolic links and other small changes as necessary.
• CLUSTER_INSTALL_AUTOMOUNT=no directs the installer to use CLUSTER_INSTALL_MACHINES_FILES to find all cluster nodes and perform local installations as if those nodes were stand-alone servers.  This requires additional time and replicates files on all nodes.

CLUSTER_INSTALL_MACHINES_FILE (optional)

• This directive is only needed for installation of the Intel(R) Parallel Studio XE 2015 Cluster Edition product.  For Composer and Professional Editions leave this directive commented out.
• This directive instructs the installer where to find the machines file for a cluster installation.  The machines file is any text file with the names of all the cluster hosts on which to install the compiler.  The work performed on each host depends on CLUSTER_INSTALL_AUTOMOUNT (see above)
• CLUSTER_INSTALL_MACHINES_FILE=/your/path/to/your/machinefile/machinefile.txt

PHONEHOME_SEND_USAGE_DATA

• This directive guides the installer in the user's intent for the optional Intel Software Improvement Program.  This setting determines whether or not the compiler periodically sends customer usage information back to Intel.  The intent is for Intel to gather information on what compiler options are being used, amongst other information.  More information on the Intel Software Improvement Program can be found here: /content/www/us/en/develop/articles/software-improvement-program.html.
• PHONEHOME_SEND_USAGE_DATA=no directs the installer to configure the compiler to not send usage data back to the Intel Software Improvement Program.
• PHONEHOME_SEND_USAGE_DATA=yes directs the installer to configure the compiler to send usage data back to the Intel Software Improvement Program.  Setting this to YES is your consent to opt-into this program.

SIGNING_ENABLED

• Directs the installer whether or not to check RPM digital signatures.  Checking signatures is recommended.  It allows the installer to find data corruption from such things as incomplete downloads of compiler packages or damaged RPMs.
• SIGNING_ENABLED=yes directs the installer to check RPM digital signatures.
• SIGNING_ENABLED=no directs the installer to skip the checking of RPM digital signatures.

### Silent Install Steps: "Copy and Repeat" Method for Silent Configuration File Creation

If you need to make the same sort of installation over and over again, one way to get the silent installation configuration file right the first time is to run the installation program once interactively, using the options that meet the local needs, and record these options into a configuration file that can be used to replicate this same install via silent install for future installations.

To do this, the user simply needs to add the "duplicate" option to the script invocation, and run a normal interactive install, as follows:

• prompt> ./install.sh --duplicate /tmp/silent.cfg

This "dash dash duplicate" option will put the choices made by you into the file specified on the command line.  You can modify this recorded configuration file as appropriate and use it to perform future silent installations.

## RPM Command Line Installations

The files associated the Linux Compiler Professional products are stored in "RPM" files.  RPMs (short for Red Hat Package Manager).  They are grouped according to certain file type guidelines.  Each major product component will consist of one more or of these RPMs.  For non-RPM systems and for users who choose to install the product without using the RPM database of their target systems, an "underneath the hood" utility is embedded inside the installation program tools to extract the contents of the RPM files.

### RPM Embedded Installation Functionality

Starting with the  version 11.1 packages, the Linux Compiler Professional packaging includes RPM files that also contain embedded installation functionality.  This means that key install behaviors such as environment script updating and symbolic link creation, which used to be only in the install program itself, are now embedded in the RPM files.  As a result, the experienced user can make use of the RPM files directly in order to install and remove Intel Composer XE 2011 for Linux and intel Compiler Professional 11.1 for Linux products.

### Warning: this is truly for the experienced, Linux system savvy user.  Most RPM command capabilities require root privileges.  Improper use of rpm commands can corrupt and destroy a working system.

The changes done for the Linux compiler products are intended to ease the job of deploying in enterprise deployments, including cluster environments.

### Product Layout for Composer XE 2015

Here is an example (for C++ package 2011.2.137)

Top directory contents of l_ccompxe_2011.2.137 package:

• cd_eject.sh - CD eject script used by install.sh
• install.sh - install script
• install_GUI.sh - GUI front-end to the installer using X11. Only used for interactive, graphical installation method.
• support.txt - package version and contents information
• pset - installation and licensing content directory used by the Intel installers
• rpm - directory containing all product content in RPM file format, plus the EULA and LPGL license

This is an example Composer XE 2015  rpm directory.  This directory listing is for the initial Composer XE 2015 C++ release, your version strings will vary by compiler versions: /content/www/us/en/develop/articles/intel-compiler-and-composer-update-version-numbers-to-compiler-version-number-mapping.html   NOTE:  this is not intended to be a comprehensive list for every compiler.  RPMs vary by compiler edition, components, and may vary by release.  Please list your 'rpm' directory for a list specific to your compiler.  The following is intended as a representative list:

EULA.txt                                             intel-ipp-sc-090-8.2-0.i486.rpm
intel-ccompxe-090-15.0-0.noarch.rpm                  intel-ipp-sc-090-8.2-0.x86_64.rpm
intel-compilerproc-090-15.0-0.i486.rpm               intel-ipp-sc-common-090-8.2-0.noarch.rpm
intel-compilerproc-090-15.0-0.x86_64.rpm             intel-ipp-st-090-8.2-0.i486.rpm
intel-compilerproc-common-090-15.0-0.noarch.rpm      intel-ipp-st-090-8.2-0.x86_64.rpm
intel-compilerproc-devel-090-15.0-0.i486.rpm         intel-ipp-st-devel-090-8.2-0.i486.rpm
intel-compilerproc-devel-090-15.0-0.x86_64.rpm       intel-ipp-st-devel-090-8.2-0.x86_64.rpm
intel-compilerpro-common-090-15.0-0.noarch.rpm       intel-ipp-st-devel-common-090-8.2-0.noarch.rpm
intel-compilerpro-common-pset-090-15.0-0.noarch.rpm  intel-ipp-vc-090-8.2-0.i486.rpm
intel-compilerproc-vars-090-15.0-0.noarch.rpm        intel-ipp-vc-090-8.2-0.x86_64.rpm
intel-compilerpro-devel-090-15.0-0.i486.rpm          intel-ipp-vc-common-090-8.2-0.noarch.rpm
intel-compilerpro-devel-090-15.0-0.x86_64.rpm        intel-mkl-090-11.2-0.i486.rpm
intel-compilerpro-vars-090-15.0-0.noarch.rpm         intel-mkl-090-11.2-0.x86_64.rpm
intel-gdb-090-7.7-0.i486.rpm                         intel-mkl-cluster-090-11.2-0.i486.rpm
intel-gdb-090-7.7-0.x86_64.rpm                       intel-mkl-cluster-090-11.2-0.x86_64.rpm
intel-gdb-cdt-090-7.7-0.x86_64.rpm                   intel-mkl-cluster-common-090-11.2-0.noarch.rpm
intel-gdb-cdt-source-090-7.7-0.x86_64.rpm            intel-mkl-cluster-devel-090-11.2-0.i486.rpm
intel-gdb-common-090-7.7-0.noarch.rpm                intel-mkl-cluster-devel-090-11.2-0.x86_64.rpm
intel-gdb-mic-090-7.7-0.x86_64.rpm                   intel-mkl-common-090-11.2-0.noarch.rpm
intel-gdb-mpm-090-7.7-0.x86_64.rpm                   intel-mkl-devel-090-11.2-0.i486.rpm
intel-gdb-python-source-090-7.7-0.noarch.rpm         intel-mkl-devel-090-11.2-0.x86_64.rpm
intel-gdb-source-090-7.7-0.noarch.rpm                intel-mkl-f95-common-090-11.2-0.noarch.rpm
intel-gdb-toplevel-090-7.7-0.noarch.rpm              intel-mkl-f95-devel-090-11.2-0.i486.rpm
intel-ipp-ac-090-8.2-0.i486.rpm                      intel-mkl-f95-devel-090-11.2-0.x86_64.rpm
intel-ipp-ac-090-8.2-0.x86_64.rpm                    intel-mkl-gnu-090-11.2-0.i486.rpm
intel-ipp-ac-common-090-8.2-0.noarch.rpm             intel-mkl-gnu-090-11.2-0.x86_64.rpm
intel-ipp-common-090-8.2-0.noarch.rpm                intel-mkl-gnu-devel-090-11.2-0.i486.rpm
intel-ipp-di-090-8.2-0.i486.rpm                      intel-mkl-gnu-devel-090-11.2-0.x86_64.rpm
intel-ipp-di-090-8.2-0.x86_64.rpm                    intel-mkl-mic-090-11.2-0.x86_64.rpm
intel-ipp-di-common-090-8.2-0.noarch.rpm             intel-mkl-mic-devel-090-11.2-0.x86_64.rpm
intel-ipp-gen-090-8.2-0.i486.rpm                     intel-mkl-pgi-090-11.2-0.i486.rpm
intel-ipp-gen-090-8.2-0.x86_64.rpm                   intel-mkl-pgi-090-11.2-0.x86_64.rpm
intel-ipp-gen-common-090-8.2-0.noarch.rpm            intel-mkl-pgi-devel-090-11.2-0.i486.rpm
intel-ipp-jp-090-8.2-0.i486.rpm                      intel-mkl-pgi-devel-090-11.2-0.x86_64.rpm
intel-ipp-jp-090-8.2-0.x86_64.rpm                    intel-mkl-sp2dp-090-11.2-0.x86_64.rpm
intel-ipp-jp-common-090-8.2-0.noarch.rpm             intel-mkl-sp2dp-devel-090-11.2-0.x86_64.rpm
intel-ipp-mt-090-8.2-0.i486.rpm                      intel-openmp-090-15.0-0.i486.rpm
intel-ipp-mt-090-8.2-0.x86_64.rpm                    intel-openmp-090-15.0-0.x86_64.rpm
intel-ipp-mt-devel-090-8.2-0.i486.rpm                intel-openmp-devel-090-15.0-0.i486.rpm
intel-ipp-mt-devel-090-8.2-0.x86_64.rpm              intel-openmp-devel-090-15.0-0.x86_64.rpm
intel-ipp-mx-090-8.2-0.i486.rpm                      intel-sourcechecker-common-090-15.0-0.noarch.rpm
intel-ipp-mx-090-8.2-0.x86_64.rpm                    intel-sourcechecker-devel-090-15.0-0.i486.rpm
intel-ipp-mx-common-090-8.2-0.noarch.rpm             intel-sourcechecker-devel-090-15.0-0.x86_64.rpm
intel-ipp-rr-090-8.2-0.i486.rpm                      intel-tbb-090-4.3-0.noarch.rpm
intel-ipp-rr-090-8.2-0.x86_64.rpm                    intel-tbb-devel-090-4.3-0.noarch.rpm
intel-ipp-rr-common-090-8.2-0.noarch.rpm
Installing Compilers With the RPM Command Line

To install a Linux compiler solution set via RPM command line, you should first ensure that a working license file or other licensing method (such as floating or network-served licenses) is already in place.  There is no license checking performed during RPM installation.  However, if you install without a license file you will get an 'cannot check out license' error when you try to use the compiler.

You are assumed to have complied with the End User License Agreement (EULA) if you are performing an RPM command line installation.  The EULA is present in the parent installation directory ( license or license.txt file).  Please read this license agreement.  It is assumed you agree to this license agreement if you proceed with an rpm installation.

Once a license file or license method is in place, the user can install the products directly with these simple steps:

• Login as root or 'su' to root
• Composer XE 2015:  'cd' to the package/rpm directory ( e.g. /tmp/l_ccompxe_2015.0.090/rpm )
• Run the RPM install command
• rpm -i *.rpm

This completes without error in most cases.  If some system-level prerequisites, for required system libraries for example, are not met by the target operating system, a dependency warning may be returned by the rpm install.  There are no embedded detailed dependency checks inside the RPM install capabilities for required commands such as g++ or for optional requirements such as a valid supported operating system or supported JRE.  The embedded requirements are kept simple to ease installation for the general case, with an  exception.  The exception is the requirement for a /usr/lib/libstdc++.so.6 library to exist on the target system, and must match in 64bit or 32bit (there will be 2 copies of this library, one 64bit and one 32bit in 2 separate /lib paths, if you wish to be able to compile in 64bits and 32bits).

The second requirement is that the target operating system have at least the 3.0 version of "lsb" component installed.  Availability of this LSB component will, in the vast majority of cases, also ensure that other necessary system level libraries are available.  See LSB Support below for more information on getting the 'lsb' capability onto a target system.

If you believe that you have effectively installed the correct requirements on the target system and the dependency failures still persist, there is a fallback option, the "--nodeps" (dash dash nodeps) rpm switch.  Invoking 'rpm -i' with the --nodeps option will allow the rpm installation to succeed in most cases.

• prompt>  rpm -i --nodeps *.rpm

Again, this will get you past the perceived dependency issues, which may be unique to a particular distribution of Linux and not really a problem for the resulting installation.  But there is no assurance of complete success other than testing the resulting installation.

### Other Special RPM Install Cases

If you are installing RPMs using the rpm command line, but using a multi-architecture package (such as the "combo" IA-32 / Intel64 package or a DVD package), you may want to install all of the RPMs that match their specific target machine's architecture.  Or, if you are installing onto an Intel64 system and want to include both the IA-32 and Intel64 components, you may want both of these included.  Here are some example rpm command line invocations:

• prompt>  rpm  -i  *.noarch.rpm  *.486.rpm
• ​installs all components needed for operation on IA-32 architecture
• prompt>  rpm  -i  *.noarch.rpm  *.i486.rpm   *.x86_64.rpm
• installs all components needed for operation on both IA-32 and Intel 64 architecture

Certain Linux distributions do not like the idea of two RPM files having the same base name.  For example, the rpm versions of certain distros might complain that there is more than one instance of  intel-cproc023-11.1-1 on the command line when installing both the IA-32 and Intel64 RPMs onto the same machine.  For these distros, use the "--force" ( dash dash force ) command line switch:

• prompt>  rpm  -i  --force  *.noarch.rpm  *.i486.rpm  *.x86_64.rpm

### Customizing the RPM Command Line

The rpm command has a long list of available options, including hooks to install from FTP and HTTP RPM repositories, features to examine contents of installed RPM-based programs and uninstalled RPM package files, etc.  Most of these are beyond the scope of this document.  See the Links section for references to external documentation on RPM.  Here are a couple of additional RPM switches, however, which may be routinely useful.

• prompt>  rpm  -i  --prefix  /my_NFS_dir/intel_compiler_directory/this_version  *.rpm
• ​instructs rpm to use directory /my_NFS_dir/intel_compiler_directory/this_version as the root installation directory
• ​prompt>  rpm  -i --replacefiles  *.rpm
• ​directs rpm to replace any existing files using the new rpm files
• ​prompt>  rpm  -i --replacepkgs  *.rpm
• directs ​rpm to replace any existing package on the system using the new RPM files, even if they are already installed ... this may be useful in test applications where newer versions of a package with the same name are being tested

### Uninstallation Using RPM

Since the installation of Intel Linux compiler packages includes in its deliver all of the uninstall scripts, the easiest way to perform a product uninstall is to simply run the uninstall script that is created by the install process.  If you have a need to automate rpm-based uninstalls, however, a couple of "tricks" can be employed to make this simpler.  These should be used with caution, as with any system command performed from a privileged account.

Here is an example command line that will remove all RPM packages from a Linux Composer XE 2015 package number "090":

• rpm  -e  --allmatches rpm -qa | grep intel- | grep 090
• ​note use of back-quotes
• note that this only removes compiler packages.  You may wish to use a similar method to remove intel-mkl, intel-ipp, intel-gdb, intel-openmp and other intel packages

Some Linux distributions will also complain about "multiple matches" during the uninstall process.  In this case, the "--allmatches" switch mentioned above can also be employed here.

### A Short Word on Updates

The rpm structure and command set support the application of updates or "patches" to existing installations.  For example a util-1.1-2.rpm package may be issued that adds fixed content to some pre-existing util-1.1-1.rpm.   The existing release process for Linux Composer XE includes support for "version co-existence" or multiple installs of separate product versions.  So each new iteration of the product is unique from the previous version.  This means that Intel compiler packages are not available in "patch" form.  All product releases are stand-alone versions.  So use of the 'rpm -U' upgrade capability is not supported by our product delivery model at this time.

## LSB Support

LSB, or Linux Standard Base, is an effort sponsored by the Linux Foundation (http://www.linuxfoundation.org) to improve the interoperability of Linux operating systems and application software.  Intel is a major participant in Linux Foundation activities and has embraced LSB as a viable means of improving our products and our customers' use of those products.  To that end, we have included establishing LSB compliance as a part of our goals for our products and software packages in the future.

For the purposes of the Intel Composer XE 2015 for Linux our primary objective is to product packages that adhere to LSB packaging requirements.  Most of the RPM changes mentioned above were done for this purpose.  To be specific, however, we should draw a distinction between product compliance and package compliance.  Because our compiler products must support a vast array of legacy constructs, the applications themselves may or may not be "certifiable" within the LSB guidelines, but our packages, i.e. our RPMs and install programs should be.  This is the primary reason for inclusion of the "lsb >= 3.0" embedded requirements being added to our RPMs.

Some of these Linux distributions come with LSB support already included in the operating system by default (e.g. SLES11).  For others, an external or optional package must be installed.  If supporting an environment that is using RPM command line installation and want to enable that site / system / systems to be able to install without using the dreaded "--nodeps" option, the best best is to acquire and install the companion LSB solution for that operating system.

The Linux Foundation website contains links to download resources for LSB, as to many of the vendor-specific support sites.  Check out these sites for information on adding LSB support to an existing operating system.

For RPM-based systems, a user can check on the status of LSB for their system, using a command like this:

• prompt>  rpm -q --provides lsb

This will tell if an 'lsb' RPM package is already installed and, if so, what version.

For our non-RPM supported operating systems, Ubuntu and Debian, the privileged user can use the Debian 'apt-get' facility to easily install the latest version of LSB supported by the specific distribution:

• prompt> apt-get install lsb

## Redistribution Package Installations

Redistribution packages allow applicaitons built with the Intel compilers to be run on client systems that do not have the Intel compilers installed (i.e. end-user systems).  These are ONLY needed on systems without the Intel compilers installed. A redistribution package has all the Intel dynamic libraries possibly needed for a dynamically linked application.  Alternatively, you can explore to -static-intel compiler switch to statically link all required Intel libraries into an application.  Redistribution packages were officially supported with the 11.0 release and beyond.

Installation is simple.  Once you extract the contents of the downloaded tarball (or accessing the redist contents of a DVD/image directory or media), you should simply invoke the "install.sh" script provided.  The user is instructed to accept a EULA, but there is no run-time license enforcement or any other software licensing included in the redist packages.  An uninstall script is produced during the redist install process, which provided for removal of the contents.

A note of caution: if the redist packages are installed on top of an existing Compiler package of the same release, it will land on and replace existing files in that compiler installation by default.  Similarly, if the redist uninstall operation is run and the redist and compiler packages are sharing the same directory space, removing the redist package will break the compiler installation.  Since the redist packages are not intended for use by compiler users on their development machines, this should not be an issue in most environments.  But it is mentioned here in case situations come up where this might explain problems that have occurred.

## Uninstall Instructions

As mentioned above, a standard uninstall script is included with each product installation, regardless of whether the install was performed using menu installs, RPM command line installs, or "silent" installs.  In all cases, using the provided uninstall script should work and is the usual preferred method of removing installed product..  There is one uninstall feature, however, that is undocumented and can be used to make life a little easier.  Here's an example invocation of that feature:

• prompt>  /opt/intel/composer_xe_2015.<update>.<build>/bin/uninstall.sh  --default

This "--default" ( dash dash default ) option tells the uninstall script to use the "remove all" option and remove any compiler components associated with the specific package (in this case all  components, including C/C++, Fortran, IDB, MKL, TBB, and IPP, if installed).  There is no uninstall program interaction when this switch is used.

### Uninstallation Using RPM

Since the installation of Intel Linux compiler packages includes in its deliver all of the uninstall scripts, the easiest way to perform a product uninstall is to simply run the uninstall script that is created by the install process.  If you have a need to automate rpm-based uninstalls, however, a couple of "tricks" can be employed to make this simpler.  These should be used with caution, as with any system command performed from a privileged account.

Here is an example command line that will remove all RPM packages from a Linux Composer XE 2015 package number "090":

• rpm  -e  --allmatches rpm -qa | grep intel- | grep 090
• ​note use of back-quotes
• note that this only removes compiler packages.  You may wish to use a similar method to remove intel-mkl, intel-ipp, intel-gdb, intel-openmp and other intel packages

Some Linux distributions will also complain about "multiple matches" during the uninstall process.  In this case, the "--allmatches" switch mentioned above can also be employed here.

Note:
As noted in the Intel® Software Development Product End User License Agreement, the Intel® Software Development Product you install will send Intel the product’s serial number and other system information to help Intel improve the product and validate license compliance. No personal information will be transmitted.

The following links are provided for reference information.

Excellent on-line resource for understanding RPMs and their usage.