install(1) on Solnix vs Linux and the BSDs

The install(1) page Solnix publishes is GNU coreutils install, identical in options to the Linux page. A default Solnix system runs the illumos install at /usr/sbin/install, and the bundle does not include that page. The biggest hazard is -S: it means a backup suffix in GNU, a disk flush on FreeBSD, a no-op on OpenBSD and strip options on NetBSD.

What Solnix runs

The published page comes from pkgs.solnix.coreutils (GNU coreutils install). The command on PATH is the illumos /usr/sbin/install, and /usr/ucb/install is also shipped. The bundle has no illumos install text, so the option differences below are those of the GNU page. The manual does not say how the illumos install behaves. Check install on the target system before relying on any of them.

Differences

Compared withTopicWhat differs
Linuxsame program as LinuxThe published Solnix page and the Linux page describe the same GNU coreutils install: same synopsis forms, same options, same backup rules. Differences from Linux apply only if the illumos binary on PATH behaves differently, and the bundle does not document that.
Source: Solnix install(1) SYNOPSIS, OPTIONS; Linux install(1) SYNOPSIS, OPTIONS
FreeBSD, OpenBSD, NetBSD-S meaningGNU -S/--suffix overrides the backup suffix. FreeBSD -S flushes each file to disk. OpenBSD -S is a compatibility no-op. NetBSD -S passes stripflags to strip(1) and implies -s.
Source: Solnix install(1) -S; FreeBSD install(1) -S; OpenBSD install(1) -S; NetBSD install(1) -S
FreeBSD, OpenBSD, NetBSDbackup suffix option and namingGNU backups use the suffix '~' (SIMPLE_BACKUP_SUFFIX, VERSION_CONTROL, --backup=CONTROL), with -b taking no argument. The BSDs rename to file.old with -b and set the suffix with -B. NetBSD -B with a '%' makes numbered backups.
Source: Solnix install(1) -b, --backup, -S, closing paragraph; FreeBSD install(1) -b, -B; OpenBSD install(1) -b, -B; NetBSD install(1) -B
FreeBSD, NetBSD-D meaningGNU -D creates the leading directories of DEST. OpenBSD -D does the same for the target. On FreeBSD and NetBSD, -D destdir sets the DESTDIR for metalog names and does not change where files are installed.
Source: Solnix install(1) -D; OpenBSD install(1) -D; FreeBSD install(1) -D; NetBSD install(1) -D
FreeBSD, NetBSD-T meaningGNU -T/--no-target-directory treats DEST as a normal file. On FreeBSD and NetBSD, -T tags gives mtree(8) tags for the -M metalog. OpenBSD has no -T.
Source: Solnix install(1) -T; FreeBSD install(1) -T; NetBSD install(1) -T; OpenBSD install(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSD-t and long optionsGNU install has -t DIRECTORY (target directory first) and long options such as --mode and --owner. The three BSD pages show only single-letter options and always put the directory last.
Source: Solnix install(1) SYNOPSIS, -t; FreeBSD/OpenBSD/NetBSD install(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSD-p semanticsGNU -p applies access and modification times of the source. OpenBSD -p preserves only the modification time and acts like -C. FreeBSD -p preserves both times and acts like -C. NetBSD -p preserves both times.
Source: Solnix install(1) -p; FreeBSD install(1) -p; OpenBSD install(1) -p; NetBSD install(1) -p
NetBSD-C compareGNU -C leaves the destination untouched if content, owner and permissions are unchanged. FreeBSD and OpenBSD also have -C, which keeps the target's modification time. The NetBSD synopsis has no -C.
Source: Solnix install(1) -C; FreeBSD install(1) -C; OpenBSD install(1) -C; NetBSD install(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSDstrip program selectionGNU uses --strip-program=PROGRAM. FreeBSD reads STRIPBIN (and ignores -s if DONTSTRIP is set). OpenBSD and NetBSD read STRIP. The Solnix page names no strip environment variable.
Source: Solnix install(1) --strip-program; FreeBSD install(1) ENVIRONMENT; OpenBSD install(1) ENVIRONMENT; NetBSD install(1) -s
FreeBSD, OpenBSD, NetBSDBSD-only optionsThe GNU page lacks file flags (-f), which all three BSDs have. It also lacks -l linkflags, -M metalog, -h hash, -N dbdir and -U (FreeBSD and NetBSD), -a command and -r (NetBSD), and -F flush (OpenBSD).
Source: FreeBSD install(1) -f, -l, -M, -h, -N, -U; NetBSD install(1) -a, -r; OpenBSD install(1) -F; Solnix install(1) OPTIONS
FreeBSD, OpenBSD, NetBSDSELinux optionsGNU install has -Z, --context and --preserve-context for SELinux or SMACK contexts. The three BSD pages have no equivalent.
Source: Solnix install(1) -Z, --context, --preserve-context; BSD install(1) SYNOPSIS
OpenBSD-v and -d restrictionsGNU has -v/--verbose and --debug. The OpenBSD synopsis has no -v. OpenBSD -d cannot be combined with -B, -b, -C, -c, -f, -p or -s. The GNU page states no such limits.
Source: Solnix install(1) -v, --debug; OpenBSD install(1) SYNOPSIS, -d

Standards

  • POSIX: install is not a POSIX.1-2024 utility.
  • OpenBSD: CAVEATS: the -C, -D, -F, -p and -S flags are non-standard and should not be relied upon for portability.
  • FreeBSD: The page says install appeared in 4.2BSD. The default changed from moving files to copying in FreeBSD 4.4.

Writing portable scripts

  • Use only install -d, -c, -m, -o and -g plus source and destination. Avoid -S, -D, -T, -p and -t, which differ or are missing across GNU and the BSDs.
  • Do not rely on backup naming: GNU uses '~', the BSDs use file.old. Make backups explicitly with cp or mv if you need a fixed name.

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.