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.
The manual pages
- Solnix: install(1) from
pkgs.solnix.coreutils - 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
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 with | Topic | What differs |
|---|---|---|
| Linux | same program as Linux | The 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 meaning | GNU -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, NetBSD | backup suffix option and naming | GNU 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 meaning | GNU -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 meaning | GNU -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 options | GNU 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 semantics | GNU -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 compare | GNU -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, NetBSD | strip program selection | GNU 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, NetBSD | BSD-only options | The 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, NetBSD | SELinux options | GNU 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 restrictions | GNU 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,-pand-Sflags 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,-oand-gplus source and destination. Avoid-S,-D,-T,-pand-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.