Table of ContentsOverviewBestPractice Synopsis

Applicability
Background
Policy
Exemptions
Appeals
Interface
CaseHistory
ManPages
References
CategorySoftware
OwnerSAC
AuthorPSARC
ChangesPSARC
AuthoritySAC
Policy Version1.2
StatusApproved March 23, 1999
Last ReviewedMarch, 1999
EffectiveSolaris 2.x
 This document is a summary of recommendations for installation locations of package objects on Foundation Solaris 2.x.
 

Applicability


Background


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


Appeals


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

last modified by admin on 2009/10/26 12:07
Collectives
Project

Community Group arc Pages


© Sun Microsystems Inc. 2009
XWiki Enterprise 1.8.2.19075 - Documentation
Terms Of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines | Site map | Help
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.