install(8) on Solnix vs Linux and the BSDs
On Solnix, /usr/sbin/install is the illumos install, which searches a list of default directories for an existing copy of the file and replaces it. It is not the cp-like install of Linux and the BSDs. Its -c, -d, -f, -g, -m, -n, -o, -s and -u flags mean different things, and options like -D, -t, -b, -p and -C do not exist.
The manual pages
- Solnix: install(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: install(1) coreutils-full-9.11
- FreeBSD: install(1) 15.1-RELEASE
- OpenBSD: install(1) 8.0
- NetBSD: install(1) 11.0
What Solnix runs
A default Solnix system runs the illumos /usr/sbin/install, described here. /usr/ucb/install is also shipped. The Solnix page says it is more compatible with other Unix versions and refers to install(1B), which the bundle does not include. For Linux or BSD-style behaviour, check /usr/ucb/install first.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | command model and synopsis | Solnix install takes a file and searches default directories (/bin, /usr/bin, /etc, /lib, /usr/lib) for a file of the same name to overwrite. Linux and the BSDs take explicit source and destination (file1 file2, or files plus a directory).Source: Solnix install(8) DESCRIPTION, SYNOPSIS; Linux install(1) SYNOPSIS; FreeBSD install(1) SYNOPSIS; OpenBSD install(1) SYNOPSIS; NetBSD install(1) SYNOPSIS |
| all four | -c meaning | On Solnix, -c dira installs into dira only if the file does not exist yet, and otherwise exits without overwriting. On Linux, the BSDs, -c is ignored or means plain copy, the default, and takes no argument.Source: Solnix install(8) -c; Linux install(1) -c; FreeBSD install(1) -c; OpenBSD install(1) -c; NetBSD install(1) -c |
| FreeBSD, OpenBSD, NetBSD | -f meaning | Solnix -f dirb forces installation into directory dirb even if the file exists. On FreeBSD, OpenBSD and NetBSD, -f flags sets the target's file flags (see chflags(1)).Source: Solnix install(8) -f; FreeBSD install(1) -f; OpenBSD install(1) -f; NetBSD install(1) -f |
| all four | owner and group options | Solnix uses -u user for the owner and -g group for the group. Linux and the BSDs use -o owner. Solnix -o instead saves the found file as OLDfile. Solnix defaults to owner bin and group bin. Solnix -u and -g need super-user.Source: Solnix install(8) -u, -g, -o; Linux install(1) -o; FreeBSD install(1) -o; OpenBSD install(1) -o; NetBSD install(1) -o |
| all four | -s meaning | Solnix -s only suppresses messages other than errors. On Linux and all three BSDs, -s strips the installed binary with strip(1), or a program set by STRIP, STRIPBIN or --strip-program.Source: Solnix install(8) -s; Linux install(1) -s, --strip-program; FreeBSD install(1) -s, ENVIRONMENT; OpenBSD install(1) -s; NetBSD install(1) -s |
| all four | messages by default | Solnix install prints messages about what it replaces or creates unless -s is given. Linux prints names only with -v. FreeBSD and NetBSD are verbose only with -v. OpenBSD documents no verbose option.Source: Solnix install(8) DESCRIPTION, -s; Linux install(1) -v; FreeBSD install(1) -v; NetBSD install(1) -v; OpenBSD install(1) OPTIONS |
| all four | -d and -i | Solnix -d creates directories like mkdir -p, but sets owner, group and mode on an existing directory. Solnix -i means ignore the default directory list. Neither -i nor that search behaviour exists in the other pages.Source: Solnix install(8) -d, -i; Linux install(1) -d; FreeBSD install(1) -d; OpenBSD install(1) -d; NetBSD install(1) -d |
| all four | missing options | Solnix has no -b/-B backup, -C compare, -p preserve timestamps, or -D. Linux has -D for leading components and the BSDs differ: FreeBSD/NetBSD -D means DESTDIR and OpenBSD -D creates leading components. Solnix has no -t, -T, or -v.Source: Solnix install(8) OPTIONS; Linux install(1) -b, -C, -D, -p, -t; FreeBSD install(1) -D; OpenBSD install(1) -D; NetBSD install(1) -D |
| all four | ROOT environment variable | On Solnix, if ROOT is set, each default directory path is prefixed by it. The other pages document no ROOT variable. They use STRIP/STRIPBIN/DONTSTRIP for stripping, or DESTDIR via -D on FreeBSD and NetBSD.Source: Solnix install(8) DESCRIPTION; FreeBSD install(1) ENVIRONMENT, -D; OpenBSD install(1) ENVIRONMENT; NetBSD install(1) -D, -s |
| all four | default mode | The default mode is 0755 on Solnix and on the other systems. Solnix -f and -n new files get owner bin and mode 755. Linux and the BSD pages document no default owner other than the invoking user.Source: Solnix install(8) -f, -n, -m; Linux install(1) -m; FreeBSD install(1) -m; OpenBSD install(1) -m; NetBSD install(1) -m |
| FreeBSD, NetBSD | metalog and unprivileged use | FreeBSD and NetBSD can write mtree metadata with -M and install unprivileged with -U. The Solnix page documents neither. Non-root Solnix use gives files owned by the invoker.Source: FreeBSD install(1) -M, -U; NetBSD install(1) -M, -U; Solnix install(8) DESCRIPTION |
Standards
- POSIX: install is not a POSIX.1-2024 utility.
- OpenBSD: The
-C,-D,-F,-p, and-Sflags are non-standard and should not be relied upon for portability. - Solnix: The Solnix page says
/usr/sbin/installis not compatible with the install binaries in many versions of Unix other than Solaris.
Writing portable scripts
- Do not use
/usr/sbin/installin portable scripts. Its flags differ from Linux and the BSDs. Use mkdir and cp plus chmod/chown, or/usr/ucb/install, where you need the same flags everywhere. - Avoid
-c,-f,-o,-sand-u: each means something different on Solnix. Only-d,-gand-mbehave broadly alike.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.