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.

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 withTopicWhat differs
all fourcommand model and synopsisSolnix 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 meaningOn 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 meaningSolnix -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 fourowner and group optionsSolnix 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 meaningSolnix -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 fourmessages by defaultSolnix 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 -iSolnix -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 fourmissing optionsSolnix 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 fourROOT environment variableOn 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 fourdefault modeThe 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, NetBSDmetalog and unprivileged useFreeBSD 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 -S flags are non-standard and should not be relied upon for portability.
  • Solnix: The Solnix page says /usr/sbin/install is not compatible with the install binaries in many versions of Unix other than Solaris.

Writing portable scripts

  • Do not use /usr/sbin/install in 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, -s and -u: each means something different on Solnix. Only -d, -g and -m behave 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.