ARC Policies » Recommended Installation Locations for Solaris-compatible Software Components
en

Recommended Installation Locations for Solaris-compatible Software Components

Recommended Installation Locations for Solaris-compatible Software Components

Copyright 2006, Sun Microsystems, Inc

Policy Synopsis

This document is a summary of recommendations for installation locations of package objects on Foundation Solaris 2.x.

Contents

Overview

CategorySoftware
OwnerSAC
AuthorPSARC
ChangesPSARC
AuthoritySAC
Policy Version1.2
StatusApproved March 23, 1999
Last ReviewedMarch, 1999
EffectiveSolaris 2.x

Applicability

All software that installs on Solaris 

Background

A number of Solaris platform unbundled product teams and ISVs are installing software package objects in inappropriate locations in the Solaris filesystems, despite the information available in standards and Solaris documentation. In many cases, this is due to the project teams not having a clear understanding of what kind of objects are appropriate for which installation paths on the Solaris platform. 

BestPractice

  • Applies to All software installed on Solaris
  • Authority SAC
  • Approval PSARC 1998/374 1998/09/30
  • Effective Solaris 2.x
  • Policy This project documents what the ARCs have approved for standard directories in the Solaris Foundation filesystems and what can be found in the System V ABI documentation. It is assumed that the information this project provides will be publically posted (perhaps to enhance the filesystem(5) manpage) and used by the ARCs and SCs in guiding project teams.
  • Details The following table is a summary of recommendations for installation locations of package objects on Foundation Solaris 2.x.

    The Installation Location for Bundled Foundation Solaris software column contains the locations by which Solaris diversity can be delivered either as add-on application software or as add-on system modules.

    Platform in the definitions below refers to the Instruction Set Architecture (ISA) or processor type (uname -p).

    Platform-specific in the definitions below generally refers to the specific hardware implementation (uname -i).

     System Software is defined to be software required for initial installation and/or booting of a system and to provide a sufficient execution environment for additional software.

     Add On Software is all other software not required at initial system installation or boot to provide a fully operational system environment. For additional details on Solaris directory structure and filesystem organization, see filesystem(5).

     Type of File  Installation Location for  
     Bundled Foundation Solaris software Add-on system software or applications
     Platform dependent [1] modules required for boot. (see kernel(1M)) /kernel//kernel/
     (system software only)
     SPARC 64-bit
     Platform dependent
     modules required for boot
     [Solaris 2.7 and beyond] 
    /kernel/subsystem/sparcv9//kernel/subsystem/sparcv9/
     (system software only)
     Intel IA64 64-bit
     Platform dependent
     modules required for boot
     [Solaris future] 
    /kernel/subsystem/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different) 
    /kernel/subsystem/ia64/ (system software only)
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent
     configuration files for
     the system node and
     not shared between
     systems 
    /etc//etc/opt/$PKG/
     Platform dependent
     subsystem configuration
     files for the system node
     and not shared between
     systems 
    /etc/subsystem//etc/opt/$PKG/
     non-permanent temporary
     files created by the system 
    /etc/volatile//etc/volatile/ (system software only)
     Essential executables used
     in the booting process and
     in manual system recovery.
     The full complement of
     utilities is available only
     after /usr is mounted. 
    /sbin//opt/$PKG/sbin/
     Not Applicable since one
     cannot assume that /opt
     is part of the root
     filesystem.
     non-permanent (contents
     cleared during system
     boot) temporary files
     created by applications 
    /tmp//tmp/
     This directory contains
     files installed by
     add-on software
     application packages 
     Should not be Applicable /opt/
     system or node specific changing files (logs, databases) /var//var/opt/$PKG/
     status log files produced by
     software management
     functions and/or
     applications. E.g., log files
     produced for product installation. 
    /var/sadm/system/logs//var/sadm/system/logs/
     files that vary in size or
     presence during normal
     system operations created
     by application packages 
     Not Applicable /var/opt/
     files that vary in size or
     presence during normal
     system operations created
     by applications. Contents
     are preserved across the
     system boot operation. 
    /var/tmp//var/tmp/
     Platform-specific[2] modules required for boot /platform/`uname -i`/kernel/[3]/platform/`uname -i`/kernel/
     (system software only)
     SPARC 64-bit
     Platform-specific
     modules required for boot
     [Solaris 2.7 and beyond] 
    /platform/`uname -i`/kernel/subsystem/sparcv9/ Not Applicable
     Intel IA64 64-bit
     Platform dependent
     modules required for boot
     [Solaris future] 
    /platform/`uname -i`/kernel/subsystem/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different) 
     Not Applicable
     Hardware class specific
     modules required for boot 
    /platform/`uname -m`/kernel//platform/`uname -m`/kernel/
     (system software only)
     Platform-specific shared
     objects required for boot 
    /platform/`uname -i`/lib//platform/`uname -i`/lib/
     (system software only)
     Platform-specific
     administrative utilities
     required for boot 
     /platform/`uname -i`/sbin//platform/`uname -i`/sbin/
     (system software only)
     usr platform dependent
     loadable modules 
    /usr/kernel/ Not Applicable
     usr platform-specific
     modules 
    /usr/platform/`uname -i`/kernel//usr/platform/`uname -i`/kernel/
     (system software only)
     Platform-specific
     daemon and shared
     objects 
    /usr/platform/`uname -i`/lib//usr/platform/`uname -i`/lib/
     (system software only)
     SPARC 64-bit
     Platform-specific
     daemon and shared
     objects
     [Solaris 2.7 and beyond] 
    /usr/platform/`uname -i`/lib/sparcv9//usr/platform/`uname -i`/lib/sparcv9/
     (system software only)
     Intel IA64 64-bit
     Platform-specific
     daemon and shared
     objects
     [Solaris future] 
    /usr/platform/`uname -i`/lib/ia64/ (NOTE: "ia64" is an example;
     the actual name may be different) 
    /usr/platform/`uname -i`/lib/ia64
     (system software only)
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform-specific System
     administration utilities 
    /usr/platform/`uname -i`/sbin//usr/platform/`uname -i`/sbin/
     (system software only)
     Platform-specific System
     (sys, vm) header files 
    /usr/platform/`uname -i`/include//usr/platform/`uname -i`/include/
     (system software only)
     Platform-specific System
     manual pages for
     documenting platform-
     specific shared objects,
     administration utilities,
     configuration files,
     special files/modules,
     and header files 
    /usr/platform/`uname -i`/[s]man/
     /usr/platform/`uname -i`/[s]man/[s]man3x/
     /usr/platform/`uname -i`/[s]man/[s]man1m/
     /usr/platform/`uname -i`/[s]man/[s]man4/
     /usr/platform/`uname -i`/[s]man/[s]man7d/
     /usr/platform/`uname -i`/[s]man/[s]man9e/
    /usr/platform/`uname -i`/[s]man
     (system software only)
     platform-specific shared objects
     platform-specific utilities
     platform-specific file formats
     platform-specific special files
     platform-specific device headers
     Platform dependent
     user-invoked executables;
     commands expected to be
     run users as part of their
     normal PATH. 
    /usr/bin/
     All user-level commands should be run out
     of this directory. For executable that have to
     be different on a 64-bit system than on a
     32-bit system, a wrapper that selects the
     appropriate executable is placed here.
     See isaexec(3C). 
    /opt/$PKG/bin/
     SPARC 64-bit Platform
     dependent user-invoked
     executables that have to be
     different on a 64-bit
     system.
     [Solaris 2.7 and beyond] 
    /usr/bin/sparcv9/
     see isaexec(3C).
     Note that this directory shall not be part
     of the user's PATH, as the user should never
     directly invoke an executable in this
     directory; rather the identically-named
     wrapper in /usr/bin is invoked and
     that in turn invokes the executable in this
     directory, when appropriate. 
    /opt/$PKG/bin/sparcv9/
     Intel IA64 64-bit Platform
     dependent user-invoked
     executables that have to be
     different on a 64-bit
     system.
     [Solaris future] 
    /usr/bin/ia64/
     see isaexec(3C)
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Note that this directory shall not be part
     of the user's PATH, as the user should never
     directly invoke an executable in this
     directory; rather the identically-named
     wrapper in /usr/bin is invoked and
     that in turn invokes the executable in this
     directory, when appropriate. 
    /opt/$PKG/bin/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent subsystem user-invoked executables; commands expected to be run users as part of their normal PATH  /usr/bin/subsystem[4]/ see isaexec(3C).  /opt/$PKG/bin/
     SPARC 64-bit Platform dependent user-invoked
     executables that have to be
     different on a 64-bit
     system.
     [Solaris 2.7 and beyond] 
    /usr/bin/subsystem[4]/sparcv9/
     see isaexec(3C)
     Note that this directory shall not be part
     of the user's PATH, as the user should never
     directly invoke an executable in this
     directory; rather the identically-named
     wrapper in /usr/bin is invoked and
     that in turn invokes the executable in this
     directory, when appropriate. 
    /opt/$PKG/bin/sparcv9/
     Intel IA64 64-bit Platform
     dependent user-invoked
     executables that have to be
     different on a 64-bit
     system.
     [Solaris future] 
     /usr/bin/subsystem[4]/ia64/
     see isaexec(3C)
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Note that this directory shall not be part
     of the user's PATH, as the user should never
     directly invoke an executable in this
     directory; rather the identically-named
     wrapper in /usr/bin is invoked and
     that in turn invokes the executable in this
     directory, when appropriate 
     /opt/$PKG/bin/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent
     subsystem user-invoked
     executables; commands
     expected to be run users as
     part of their normal PATH
    /usr/subsystem[4]/bin/
     see isaexec(3C)
    /opt/$PKG/bin/
     SPARC 64-bit Platform
     dependent user-invoked
     executables that have to be
     different on a 64-bit
     system.
     [Solaris 2.7 and beyond] 
     /usr/subsystem[4]/bin/sparcv9/
     see isaexec(3C)
     Note that this directory shall not be part
     of the user's PATH, as the user should never
     directly invoke an executable in this
     directory; rather the identically-named
     wrapper in /usr/bin is invoked and
     that in turn invokes the executable in this
     directory, when appropriate 
    /opt/$PKG/bin/sparcv9/
     Intel IA64 64-bit Platform
     dependent user-invoked
     executables that have to be
     different on a 64-bit
     system.
     [Solaris future] 
     /usr/subsystem[4]/bin/ia64/
     see isaexec(3C)
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Note that this directory shall not be part
     of the user's PATH, as the user should never
     directly invoke an executable in this
     directory; rather the identically-named
     wrapper in /usr/bin is invoked and
     that in turn invokes the executable in this
     directory, when appropriate 
    /opt/$PKG/bin/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent
     libraries, commands,
     daemons, never directly
     executed by a human 
    /usr/lib//opt/$PKG/lib/
     SPARC 64-bit
     Platform dependent
     libraries, commands,
     daemons, never
     directly executed by a
     human 
    /usr/lib/sparcv9//opt/$PKG/lib/sparcv9/
     Intel IA64 64-bit Platform
     dependent libraries,
     commands, daemons, never
     directly executed by a
     human 
    /usr/lib/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different) 
    /opt/$PKG/lib/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent
     subsystem extensions;
     libraries, commands,
     daemons, never directly
     executed by a human 
     /usr/lib/subsystem[4]/opt/$PKG/lib/
     SPARC 64-bit
     Platform dependent
     libraries, commands,
     daemons, never
     directly executed by a
     human 
     /usr/lib/subsystem[4]/sparcv9//opt/$PKG/lib/sparcv9/
     Intel IA64 64-bit Platform
     dependent libraries,
     commands, daemons, never
     directly executed by a
     human 
     /usr/lib/subsystem[4]/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different) 
    /opt/$PKG/lib/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent
     subsystem extensions;
     libraries, commands,
     daemons, never directly
     executed by a human 
     /usr/subsystem[4]/lib//opt/$PKG/lib/
     SPARC 64-bit
     Platform dependent
     libraries, commands,
     daemons, never
     directly executed by a
     human 
     /usr/subsystem[4]/lib/sparcv9//opt/$PKG/lib/sparcv9/
     Intel IA64 64-bit Platform
     dependent libraries,
     commands, daemons, never
     directly executed by a
     human 
     /usr/subsystem[4]/lib/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be
     different) 
    /opt/$PKG/lib/ia64/
     (NOTE: "ia64" is an example;
     the actual name may be different)
     Platform dependent
     system administration
     utilities expected to be
     run only by administrators 
    /usr/sbin/ /opt/$PKG/sbin/
     Platform dependent
     system administration
     subsystem utilities
     expected to be run only
     by administrators 
     /usr/sbin/subsystem[4]//opt/$PKG/sbin/
     Platform dependent
     system administration
     subsystem utilities
     expected to be run only
     by administrators 
     /usr/subsystem[4]/sbin//opt/$PKG/sbin/
     platform independent[5]
     sharable files 
     /usr/share/ Not Applicable
     platform independent
     sharable databases 
     /usr/share/lib/ Not Applicable
     platform independent
     sharable manual pages 
     /usr/share/[s]man/ /opt/$PKG/[s]man/

    1. A platform dependent file is one that is installed on all platforms, but whose contents vary depending on the platform in question.
       Executable files are the classic  platform dependent file, but there can also be  platform dependent shell scripts or configuration files.
       One example is /kernel/genunix.

      2. A  platform specific file is one that is only installed on a subset of the supported platforms.  Platform specific files can be further sub-divided into  platform dependent and  platform independent. A  platform specific platform independent file is one that is only present on some platforms, but is always the same (if it is present).
     A  platform specific platform dependent file is only present on some platforms, and its contents differ on different platforms.

      3. The minimal default kernel search path is
    /platform/`uname -i`/kernel:/kernel:/usr/kernel,
     but some systems may have a search path of
    /platform/`uname -i`/kernel:/platform/`uname -m`/kernel:/kernel:/usr/kernel.
     See kernel(1M) for details.

      4. There is no recommended convention to use for a given subsystem, but a single subsystem should not mix conventions of /usr/*/subsystem and /usr/subsystem/*.

      5. A platform independent file is one that is installed on all platforms, and whose contents are the same on all platforms. Portable shell scripts, standard configuration files, and manual page sources are common examples of  platform independent files.

    Exemptions

    Discuss at your ARC review 

    Appeals

    Follow the normal ARC appeal process 

    Interface

    Exported Interface Name Stability Classification ARC Case Comments
    filesystem locationsEvolvingPSARC/1998/374SUN NON-PROPRIETARY INFORMATION

    CaseHistory

    CaseTypeName
    PSARC/1998/374OnePager Solaris Platform Installed Object Paths  
    LSARC/1992/011OnePager Name Changes for SunPro Packages and Install Directory  
    PSARC/1992/169Unknown /kernel/unix dependencies
    PSARC/1992/170Unknown /kernel directory layout
    PSARC/1992/171Unknown userland machine dependencies
    PSARC/1993/242FastTrack KBI Implementation (Phase 2)  
    PSARC/1993/271OnePager PKG REORG: Footprint Reduction  
    PSARC/1993/321OnePager KBI (Kernel Binary Interface)  
    PSARC/1993/636OnePager SHWP Certified CD install  
    PSARC/1993/638OnePager SHWP Certified CD /platform support  
    PSARC/1994/291OnePager KBI Versioning  
    PSARC/1994/331FastTrack Restructuring /var/sadm  
    PSARC/1994/400FastTrack Changes to KBI VM interfaces  
    PSARC/1994/440FastTrack Platform Definition File  
    PSARC/1994/441OnePager PSMI for PowerPC  
    PSARC/1995/028FastTrack Maintain Namespace for eeprom(1M)  
    PSARC/1995/029FastTrack Modified Implementation of Platform Dependent Executables  
    PSARC/1995/109FastTrack /usr/openwin/platform  
    PSARC/1995/422OnePager PSMI Extensions  
    PSARC/1996/039OnePager Solaris Packaging Requirements  
    PSARC/1997/310FastTrack PSMI Version 1.2  
    PSARC/1997/386FastTrack Platform Names for Solaris x86  
    PSARC/1998/231FastTrack New Algorithm for x86 Platform Name  

    ManPages

    DocumentDescription
    filesystem.5 
    kernel.1M  
    isaexec.3C  

    References

Tags:
Created by admin on 2009/10/26 12:07
Last modified by Asa Romberger on 2010/03/12 20:41

Collectives

Community Group arc Pages


XWiki Enterprise 2.7.1.34853 - Documentation