/usr (system resources)
The /usr hierarchy is for vendor-supplied operating system
resources. Except for the /usr/local hierarchy, nothing should modify anything
under /usr except the OS package manager.
Software must assume that /usr can be read-only, and must not use
it for volatile data. Software installed outside of the OS package manager belongs in
/usr/local, not elsewhere in
/usr, so that it cannot interfere with package operations.
Unified /usr/bin and /usr/sbin
In AL2027, /usr/sbin is a symbolic link to
/usr/bin. The executables that AL2023 shipped in
/usr/sbin, such as useradd, sysctl, and
ip, now live in /usr/bin. This follows the same change in
Unify bin and sbin
Existing paths keep working: because /sbin and
/usr/sbin both resolve to /usr/bin, a script that
calls, for example, /usr/sbin/ip or /sbin/ldconfig
runs unchanged. Commands formerly restricted to administrator search paths now also appear
in every user's $PATH; the commands themselves still require the same
privileges to do their work.
/usr/bin (executables)
Executable files that appear in the standard search $PATH and are useful
to invoke from a shell. Daemons and executables not useful from a shell live in
/usr/lib or /usr/libexec.
/usr/include (C/C++ headers)
C and C++ header files, usually installed by packages with the -devel
suffix.
/usr/lib and /usr/lib64 (shared libraries)
The /usr/lib64 path holds 64-bit shared libraries and
architecture-dependent package data. AL2027 does not ship 32-bit (i686) packages, so all
shared libraries are 64-bit. The /usr/lib path is for static,
architecture-independent package data, and might include executables not usually invoked from
a shell, which might also be found in /usr/libexec.
/usr/local (administrator-installed software)
The /usr/local hierarchy is reserved for the system administrator
to install software that is not owned by the OS. The OS does not touch it. Its layout
mirrors the / hierarchy.
/usr/share (shared resources)
Architecture-independent shared resources such as documentation, fonts, and time zone
data. Package documentation is installed under
/usr/share/doc.